問題タブ [prolog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# と Prolog の統合
私が取り組んでいるプロジェクトでは、WordNetを使用してユーザー入力の言語分類を行い、データベースの Prolog バージョンを使用したいと考えています。
P#を試してみましたが、これはかなりうまく機能しますが、WordNet データベースの膨大なサイズを処理できないようです。使用したい最小のファイル (218 kB) をコンパイルできますが、2 つの大きなファイル (それぞれ 2.3 MB と 7.3 MB) をコンパイルしようとすると、約 30 分の作業の後に失敗し、Windows は "問題が発生しました。Microsoft にレポートを送信しますか?」ダイアログ。
Prolog.Netも試しましたが、うまく機能していないようです。
最後に、SWI-Prolog のC# バインディングを試しましたが、正しく動作しません。サンプル コードを実行しようとすると、PLEngine.Initialise()
ステップで失敗し、ロードしようとしているもの (私が想定する DLL) が無効な Win32 アプリケーション (BadImageFormatException) であると主張します。
C# と Prolog を統合する他の方法についての提案、または私が既に試したソリューションを取得するための提案はありますか? OSはWindowsサーバー2008(64ビット)、SWI Prologはバージョン5.7.11です。
java - jplでリスト関数を呼び出す
誰かが「リスト」をなんとか使ったのだろうかと思っていました。Prologナレッジベースの内容を調べるためのJPLのコマンド?JPLでは、クエリを作成する必要があり、クエリで設定した変数に基づいてソリューションが返されます。例(Java):
これがlisting/0、またはインスタンス化された入力を必要とするlisting/1でどのように機能するかわかりません。現在、私はフォームのコードで遊んでいます
これは、ナレッジベースに存在する関数を返します。
答え:
しかし、どのゴールも返されないので、それだけでは十分ではありません。私が必要としているのは(JPLを使用してリスト関数を呼び出せない場合)、満たす必要のある関連する目標のリストとともに述語ヘッドを変数として返す関数だと思います。残念ながら、私はリスト関数の内部に精通していないので、これを行う方法がわかりません。
前もって感謝します
prolog - Prologでケース変換を行う方法は?
WordNetとやり取りしていて、分類したい用語の一部(さまざまな固有名)がデータベースで大文字になっていますが、取得した入力が正しく大文字になっていない可能性があります。ここでの私の最初のアイデアは、入力の可能なさまざまな大文字化を生成する述語を作成することですが、それをどのように実行するかはわかりません。
誰かがこれをどうやってやるのか、もっと良いのは私がやりたいことを達成するためのより効率的な方法を知っていますか?
php - PHPでPrologを使用する方法は?
PHPでPrologを使いたい。出来ますか?
data-structures - プロローグのハッシュテーブル
先日、プロローグでパズルを解いていて、別のプログラミング言語を使っていたら、ハッシュテーブル/辞書を使っていただろうと気づきましたが、私が知る限り、これはプロローグでは実際には不可能です。
だから私の最初の質問は、ハッシュテーブルのパフォーマンス特性を備えた辞書のようなデータ構造をサポートするプロローグはありますか?
次に、ほとんどのプロローグは述語を格納するためにハッシュテーブルを使用するため、ファクトをアサートおよびリトラクトするラッパー述語を記述して、述語の基になるハッシュテーブルを活用する辞書インターフェイスを作成できることに気付きました。しかし、ハッシュテーブルのパフォーマンス特性を取得するのでしょうか、それともインターフェイスがパフォーマンスを低下させるオーバーヘッドを追加するのでしょうか。
list - プロローグでリストの最後に到達する
私は質問を受けました:
整数のリストが正しく昇順になっているかどうかをチェックする述語、ordered/1 を定義します。たとえば、ゴール
ordered([1,3,7,11])
は成功する必要がordered([1,3,3,7])
ありますが、ゴールordered([1,7,3,9])
は失敗する必要があります。
これまでのところ、私はこれを持っています:
しかし、すべてのリストで失敗します。
失敗する理由は、リストの最後の番号に到達し、その番号を空のリストと比較しようとするためだと推測しました。整数を空のリストと比較できないため、明らかにこれは失敗します。可能で、たとえば、0
空のリストに対して返されたとしても、数値が よりも大きくなり0
、未満ではないため、 false が返されます。
解決策が見つかりません...何かアイデアはありますか? ありがとう、ジョン。
編集
したがって、いくつかのわずかに修正されたコード:
これは で機能するようになりましordered([1])
たが、より大きなリストはまだ正しく動作しません。
ordered([N, M|Ns])
のようなものを定義に含める必要がありますか?
prolog - Prologのサブリスト要素のカウント
Prologでネストされたリスト要素をカウントするにはどうすればよいですか?次の述語を定義しました。これにより、ネストされたリストが1つの要素としてカウントされます。
使用法:
これは機能しますが、ネストされた要素もカウントしたいと思います。
出力=6
math - Prolog =:=演算子
Prologにはいくつかの特別な演算子がありますが、そのうちの1つはis
最近、演算子に出くわし、=:=
それがどのように機能するのかわかりません。
誰かがこの演算子が何をするのかを説明できますか?また、そのような特別な演算子の事前定義されたリストとそれらが何をするのかをどこで見つけることができますか?
mysql - Prolog ODBC インターフェイスの使用
プロローグを勉強中です。私には先に仕事があります。Prolog ODBC INterface を使用して、mysql や MSSQL などのデータベースにデータを挿入する必要があります。私はいくつかの例の述語(SWI-PROLOG)があることを知っています
これらの述語を正確に使用する方法がわかりません。実際の例を示します。プロローグからMySSQLやMSSQLなどのデータベースにデータを挿入するためにこれらを正確に使用する方法を教えてください。ProLOGで同じことを達成するための正確な要件を教えてください。
どんな助けや情報も大歓迎です。
ありがとうございました。