关灯
护眼
字体:大中小
附录B 理解PROLOG(第1页)
附录B理解PROLOG
假设我们想要一个解释家庭关系的系统,我们将了解一个简单的PROLOG程序如何捕获有关家庭关系的知识。假设我们用“female(X)”来表示X是女性,我们用“parents(X,M,F)”表示X的双亲为M和F,其中M为父亲,F为母亲。然后你就可以编写如下PROLOG规则:
sister_of(X,Y):-female(X),parents(X,M,F),parents(Y,M,F)。
以上规则表述的是“X是Y的姐妹”,如果以下规则成立:
1。X是女性。
2。X的父亲是M,母亲是F。
3。Y的父亲是M,母亲是F。
如果你不熟悉逻辑推理,这听起来似乎是用相当复杂的方式在表述某人是某人的姐妹。但基本上,它表述的意思是,如果X是女性,X和Y有相同的父母,则X是Y的姐妹。
我们可以给PROLOG程序增加一些新的事实:
female(janine)。
&s(janine,wayne,yvonne)。
&s(david,wayne,yvonne)。
鉴于这些事实,如果我们让PROLOG去证明Janine是David的姐妹,证明成立。本例中的相关目标是:
sister_of(david,janine)
当提出这个目标时,PROLOG就会回答“是”,表示它能够证明Janine是David的姐妹。