【发布时间】:2016-12-04 00:40:50
【问题描述】:
我正在阅读Learn Prolog Now!,我对他们对逻辑的使用感到困惑,我希望有人能澄清规则中论点的歧义。
例如,在Chapter 1, knowledge base 4 他们引用以下规则:
loves(vincent,mia).
然后他们提供一个查询:
loves(marsellus,X), woman(X).
然后做出英文声明:
“现在,请记住 , 的意思是“和”,所以这个查询是说:是否有任何个人 X 使得 Marsellus 爱 X 并且 X 是一个女人?” em>
关键字是Marsellus loves X。
这样的措辞让我觉得有一些“逻辑”与论点的安排有关,比如说,
loves(vincent,mia).“逻辑上”是不是真的意味着:
- 文森特喜欢米娅?
但是是假的
- 米娅喜欢文森特?
这就是我最初的想法,但后来在Chapter 3, example 2: Descendant 他们有以下示例:
child(bridget,caroline).
然后是英文语句:“即Caroline是Bridget的孩子”
但如果上面的#1 是真的(文森特爱米娅),那么这不应该被解读为布里奇特是卡罗琳的孩子吗?
或者参数的顺序无关紧要,是您的额外编程决定了参数的逻辑?
【问题讨论】:
-
谓词
r(a,b)表示 (a,b) 处于关系 r:A->B 中。没有更多的暗示。所以一切都取决于你如何定义关系 r。
标签: prolog