2

私が参照している本の一部はここにあります、 http://cs.union.edu/~striegnk/learn-prolog-now/html/node4.html

listensToMusic(mia).
happy(yolanda).
playsAirGuitar(mia)  :- listensToMusic(mia).
playsAirGuitar(yolanda) :- listensToMusic(yolanda).
listensToMusic(yolanda):- happy(yolanda).

happy述語は、単一の節(ファクト)を使用して定義されます。listensToMusic述語と述語はそれぞれ2つの playsAirGuitar節(どちらの場合も2つのルール)を使用して定義されます。

happy述語が単一の節(ファクト)を使用して定義されていると書かれている最初の部分を理解しています。listensToMusic しかし、それが言う次の部分を理解していません playsAirGuitar。述語はそれぞれ2つの句を使用して定義されています。

ありがとう

4

1 に答える 1

1

この本は、どの条項が事実規則であるかについて、少し一貫性がないか、混乱していると思います。

知識ベースに含まれる事実と規則は、節と呼ばれます。したがって、KB2には5つの句、つまり3つのルールと2つのファクトが含まれています。 KB2の別の見方は、KB2が3つの述語(またはプロシージャー)で構成されていると言うことです。3つの述語は次のとおりです。

listensToMusic
happy
playsAirGuitar

幸せな述語は、単一の節(ファクト)を使用して定義されます。listensToMusic述語とplaysAirGuitar述語は、それぞれ2つの句(どちらの場合も2つのルール)を使用して定義されます。

括弧「 (どちらの場合も、2つのルール)」は混乱を追加しているだけだと思います-listensToMusic(mia).空のルール、つまり事実です。

テキストは、Prologナレッジベース全体(一連の節)と一連の述語(述語として見られる)を見るときの違いを確立しようとしている可能性がありますが、事実と規則の両方の節がありますhappylistensToMusic

それを取得した場合listensToMusic/1、2つの句(1つは空のルール、もう1つは空ではない)で定義されます。

listensToMusic(mia).
listensToMusic(yolanda):- happy(yolanda).

...そしてplaysAirGuitar/12つの節(2つの空でないルール)で定義されています:

playsAirGuitar(mia)  :- listensToMusic(mia).
playsAirGuitar(yolanda) :- listensToMusic(yolanda).

...大丈夫だと思います。心配しないで!

于 2012-09-23T06:16:17.693 に答える