2012-02-07 12 views

答えて

3

構文上、ほとんど同じです。 「p(1).」は、どこに配置するかによって、ルールまたはクエリのいずれかになります。

意味的には、そうではありません。
"p(1)."は原則としてPrologに "p(1)が本当である"と伝えます。
"p(1)."クエリとしてプロローグは "p(1)本当ですか?"

0

クエリは、証明することを求めているステートメントです(これを実行する過程で変数をインスタンス化することができます。これはサーバーを "出力"として使用できます)。その証拠を開発するために使用される「プログラム」がルールで構成されています。それはPrologのプログラムに表示される

2

ルールは

foo(X) :- bar(X), baz(X). 

などの定義です。

クエリは、上記のような定義の右側にあります。つまり、(bar(X), baz(X))です。プログラムを実行するにはプロローグインタプリタのプロンプトで入力するものです。

+0

私たちはインタプリタで同じことを質問していませんか? 'foo(X)'のように? – n00b

+0

これは、相談(つまり、[ユーザ])とプロンプトとの区別です。クエリ・プロンプトは述語の本体と同じように動作します。そのため、ファクトと述語をデータベースに追加するためにファイルを参照する必要があります。 –

0

あなたの直感は正しいです:彼らはどちらもホーン句のバリエーションです。ホーン句の基本的な構造は次のとおりです:

head(...) :- body. 

身体のない頭部がある場合、あなたは事実を持っています。両方をお持ちの場合は、述語があります。あなたが身体だけを持っているなら、あなたには質問があります。

+1

いいえ、両方の場合、ルールがあります。述語定義は一連の規則です。 –

関連する問題