Prolog 现在就学习序言吧

Prolog 现在就学习序言吧,prolog,predicate,Prolog,Predicate,我指的是这本书的一部分, happy谓词是使用单个子句(事实)定义的。这个 listensToMusic和playsAirGuitar谓词均已定义 使用两个子句(在这两种情况下,都使用两条规则) 我理解第一部分,它说happy谓词是使用单个子句(事实)定义的。但我不明白下一部分说的是listensToMusic 和playsAirGuitar谓词分别使用两个子句定义 谢谢我认为这本书在哪些条款是事实和规则方面有点不一致或混乱: 知识库中包含的事实和规则称为子句。 因此KB2包含五个子句,即三条

我指的是这本书的一部分,

happy
谓词是使用单个子句(事实)定义的。这个
listensToMusic
playsAirGuitar
谓词均已定义 使用两个子句(在这两种情况下,都使用两条规则)

我理解第一部分,它说
happy
谓词是使用单个子句(事实)定义的。但我不明白下一部分说的是
listensToMusic
playsAirGuitar
谓词分别使用两个子句定义


谢谢

我认为这本书在哪些条款是事实和规则方面有点不一致或混乱:

知识库中包含的事实和规则称为子句。 因此KB2包含五个子句,即三条规则和两个事实 看待KB2的另一种方式是说它由三部分组成 谓词(或过程)。这三个谓词是:

listensToMusic
happy
playsAirGuitar
happy谓词是使用单个子句(a fact)定义的。这个 listensToMusic和playsAirGuitar谓词都是使用 两个子句(在这两种情况下,两条规则)

我认为括号“(在这两种情况下,都有两条规则)”只是增加了混淆-
listensToMusic(mia)。
是一条空规则,即事实

本文可能试图将序言知识库视为一个整体(一组子句)和一组谓词(视为谓词),
happy
仅包含事实子句,而
listensToMusic
同时包含事实子句和规则子句

如果您发现
listensToMusic/1
由两个子句定义(一个空规则,一个非空规则):

…和
playsAirGuitar/1
由两个子句(两个非空规则)定义:

…我想你会没事的。别担心

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