没有兄弟事实的叔叔或阿姨

时间:2014-05-11 09:08:55

标签: prolog

我想知道如何在不使用sibling事实进行序言的情况下,如何在家谱中呼叫侄女或侄女。我无法通过直接打电话给叔叔来找到办法。

例如:

parent(elli, lisa).
parent(kelly, lisa).

parent(ben, claire).
parent(lisa, claire).

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

由于艾莉或凯莉是本人的侄女,我有一个规则,当被grandparent(X, claire).召唤时,将给予艾莉和凯莉作为claire的孙子。我如何制定一个规则,以便能够致电niece(ben, X).,以便它列出所有本侄女。我只能通过父事实找出一种方法来做到这一点,这样做的唯一方法就是包含一个兄弟事实,但有没有办法在没有兄弟事实的情况下做到这一点?

我对prolog很新,就像一周前一样,所以如果我不太了解它,请原谅我。

1 个答案:

答案 0 :(得分:1)

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

uncle(X, Y) :- brother(X, Z), parent(Y, Z).