关灯
护眼
字体:

附录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的姐妹。

章节目录