問題タブ [swi-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.
macos - OSX Lion の SWI-prolog に開発ツール (plld など) をインストールする方法
SWI-prolog と C を相互に通信させようとしています。C ではるかに高速/単純な動的プログラミングの問題がいくつかあり、それらをプロローグから呼び出せるようにしたいと考えています。
SWi のマニュアルでは、http://www.swi-prolog.org/pldoc/doc_for?object=section%282,%279.2%27,swi%28%27/doc/Manual/foreignlink でこれを行う方法の詳細が説明されています。 html%27%29%29ですが、plld を使用してプログラムをリンク/ロードする必要があります。
マシンに X-Code をインストールし、SWI を再インストールしましたが、plld プログラムが見つかりません。mac-ports から swi-prolog-devel をインストールしようとしましたが、失敗します。.pkg からの SWI が既にインストールされており、それらが競合しているため、失敗したと思います。
1. SWI の開発者ツールをインストールする方法を知っている人はいますか? または 2. MacPorts を使用して再インストールできるように、Web サイトの pkg から SWI バージョンをアンインストールしますか?
prolog - Prolog XPCE ダイアログが選択リストを返す
私はそれを解決する方法の手がかりを見つけることができない Prolog に関する別の問題を抱えています。
ここに私のコードがあります
別の機能を開始するには、両方のサイクルを選択する必要があります。しかし、プロローグはパッキング操作を開くことができません。
ダイアログで Q=[first selection,second selection] が返された場合、問題は解決されています。
あなたが私を助けてくれることを願っています。私はこれについて非常にイライラしています...
forms - SWI-Prolog CGI cgi_get_form(Arguments) Web 非表示フォーム
SWI-Prolog の CGI ライブラリで input type="hidden" フォームを渡す際に問題があります。具体的には、次のことを行います。
<form id="frmCGIPrologIni" name="frmCGIPrologIni" method="post" action="http://localhost/cgi-bin/x.pl"> <p><input type="hidden" name="initial" value="ini" /> <input class="submit" type="submit" value="Start" /> </p></form>
プログラム x.pl が呼び出すとき、cgi_get_form(Arguments)
引数は Name(Value) 用語のリスト、つまり [Name, Value] である必要があるため、[initial(ini)] である必要があります。
しかし、これを使用すると、エラー: =../2: 引数が十分にインスタンス化されていません
write(Arguments) を使用して手動で印刷しようとしましたが、得られるものは:_L160
で、最初の要素の印刷は:_G472
で、 write_canonical(Arguments) は次を返します:'.'(_,_)
チェックのためだけに method="get" も使用してみましたが、URI が正しく出力されるhttp://localhost/cgi-bin/x.pl?initial=ini
ので、送信の問題ではなく、cgi_get_form(Arguments) での処理の問題だと思います。
「http://localhost/cgi-bin/x.pl」を初めて実行するときは、次のようにします。
問題は2回目。今回は同じプログラムを呼び出して引数があるため、メッセージは出力されません。ここまではすべて問題ありません。その後、true を通過して続行します。そこで、前に説明した結果 ( ) を使用して (引数) を書き込もうとします_L160
。結果は、フォームから渡されたデータである必要があります。
問題は何ですか?
macos - OSXLionでswipl-ldを使用してコンパイルするときにシンボル「_main」がありません
Prolog外部関数インターフェースから呼び出されるCプログラムをコンパイルしようとしています。私はいくつかの動的計画法を行っていますが、これはPrologでは正確に効率的ではありません。ただし、ファイルをコンパイルしようとすると、次のエラーが発生します。
Cファイルは、ここにある単なる例です。
これを修正する方法があるかどうか誰かが知っていますか?
python - SWI-Prolog セマンティック Web ライブラリと Python インターフェイス
Prolog を使用して RDF トリプルを照会する Python Web アプリケーションを作成したいと考えています。Python と SWI-Prolog のインターフェイスとしてpyswipを見つけました。現在、SWI-Prolog の RDF 機能を調べています。誰かが以前にこれを試したことがあるかどうか疑問に思っています-そして誰かが持っている場合: あなたのセットアップはどのように見えましたか? pyswip を SWI-Prolog セマンティック Web ライブラリで動作させるにはどうすればよいですか? または、これを簡単にする別の Python-Prolog インターフェースはありますか?
編集:
私は実際にこれに対する本当に素晴らしい解決策を見つけました。以前、RDF データに対して Prolog クエリを実行するために AllegroGraph 3.3 Python API を使用したことがありますが、Allegro Common Lisp に対する Prolog 拡張機能には、数値比較演算子などがないため、不足していると思いました。それ以来、私は AllegroGraph 4.6 を試してみましたが、彼らの Prolog 拡張機能に欠けているものはすべて、lisp
エスケープ ファンクターを使用して Allegro Common Lisp 式を記述し、実行する必要があること以外の処理を行うことができるという事実によって補われていることがわかりました。 Prolog 拡張機能によって提供されます。私が AllegroGraph 3.3 Python API を使用したときには、何らかの理由でこのファンクターが定義されていませんでしたが、明らかに Allegro の開発者はそれ以来長い道のりを歩んできました。
これは、Prolog を使用して RDF データをクエリする Python Web アプリを構築したい人におすすめです。超高速で超強力です。
prolog - プロローグは、term_to_atom を使用するためにアトムから文字スペースを削除します
私のプログラムのある時点で、以前はアトムでもあったものによって形成されたアトムがあり、後で問題なく使用できるように、その中の文字スペースを削除したいと考えています。
term_to_atom(Result, 'second2(second2),region(ºMediterranean Sea),months(no_value),third3(third3),recog(ºNew Type),distance(no_value)').
そしてこれを入手
Result = (second2(second2), region(ºMediterraneanSea), months(no_value), third3(third3), recog(ºNewType), distance(no_value))
またはオリジナルも機能します
Result = (second2(second2), region(ºMediterranean Sea), months(no_value), third3(third3), recog(ºNew Type), distance(no_value))
これらの文字スペースを削除しないと、term_to_atom
文句を言うからです。どうすれば解決できますか?
performance - Prolog で節の最適な順序付けのために統計を収集するライブラリ/手法はありますか?
文字列が特定のパターンに一致するかどうかを確認する必要があるプログラムを作成しています。今のところ、20 を優に超える異なる定義を持つルールに一致するパターン (S) として、これを Prolog に実装しています。
パターン チェック述語を使用して、すべてのバイナリ文字列を特定の長さまで実行することになります。プログラムはかなり遅いです (Prolog はよくあることですが)。非常に多くの異なる定義があるため、理想的には、最も一致するものを順序付けの最初に並べ、Prolog によって最初に一致するように並べ替えたいと考えています。できる限り。
現在、SWI Prolog を使用していますが、SICStus にアクセスできるので、SICStus または無料で入手できる Prolog インタープリターを使用したいと考えています。
file - Swi Prolog、ソース ファイルのアンロード
すでに参照されているソース ファイルをプロローグの知識データベースから削除する組み込みの述語または簡単な方法はありますか? リファレンスマニュアルを調べましたが、それができるものは見つかりませんでした。
prolog - 手動でuse_moduleを使用する必要がないように、Prologソースファイルを設計してロードするにはどうすればよいですか?
ソースファイルopenpage.plがあり、use_module/1を呼び出してSWI-Prologのhttp_open/3を「インポート」します。
それは文句なしにロードされます。ただし、できる限り試してみてください。ルールを実行することはできません。
したがって、次のセッションでは、ソースファイルをロードする前にuse_module / 1を呼び出しますが、すべて問題ありません。
自分のコードをロードする前にモジュールをロードするこの手動の手順を必要としないように、ファイルをセットアップして実行するにはどうすればよいですか?
prolog - prolog/swiprolog で別のプログラムを開始する
プロローグ コードを使用して、Firefox またはその他のブラウザーを開きたいと考えています。しかし、どうすればそれを実現できますか。
具体的には、プロローグのようなコメントが必要です
open_url_in_Browser X.
X は URL です。