谁有一个兄弟谁是大爸爸?

时间:2015-12-09 20:01:10

标签: prolog

我正在试图查询谁有一个爷爷,但是无法弄清楚,我知道它很简单,但它让我有些困惑。

我在这里有一些基本的事实:

parent(queenmother,elisabeth). parent(elisabeth,charles).
parent(elisabeth,andrew). parent(elisabeth,anne).
parent(elisabeth,edward). parent(diana,william).
parent(diana,harry). parent(sarah,beatrice).
parent(anne,peter). parent(anne,zara).
parent(george,elisabeth). parent(philip,charles).
parent(philip,andrew). parent(philip,edward)...

我有一些断言可以确定女性的男性:

the_royal_males(charles). the_royal_males(andrew).
the_royal_males(edward). the_royal_males(william).
the_royal_males(philip). the_royal_males(phillip).
the_royal_males(georgejun). the_royal_males(harry).

并确定祖先,兄弟,兄弟姐妹。

ancestor(X,Y):- parent(X,Y).
ancestor(X,Y):- parent(X,Z), ancestor(Z,Y).

sibling(X,Y):- parent(Z,X), parent(Z,Y), X \= Y.

brother(X,Y):- sibling(X,Y), sibling(Y,X), the_royal_males(Y), X \= Y.

我一直在尝试的查询,例如

brother(X,_), ancestor(X,_)

没有给出预期的结果。任何帮助/指导都会很棒。谢谢!

0 个答案:

没有答案