PROLOG叔叔关系没有兄弟

时间:2018-04-10 00:19:15

标签: prolog logic

我刚刚开始学习PROLOG,我被赋予了在家谱中创建阿姨/叔叔关系的任务。阿姨可以使用姐妹关系创建,但是,必须在没有它的情况下创建叔叔关系。

目前的谓词是:男性,女性,父母 &安培;到目前为止创建的规则是:父亲,母亲,祖父,祖母,姐姐

这是我到目前为止所拥有的:

sister(Sister,Individual):- 
female(Sister),
parent(X,Sister),
parent(X,Individual), 
Sister \= Individual.

aunt(Aunt, Individual):- sister(Aunt, X), parent(X, Individual).

如何在不使用兄弟的情况下创建叔叔关系?我理解父母(父母(个人))==父母(叔叔),但考虑到我目前的关系,我该怎么说呢?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我不认为自己是Prolog最好的,但我相信这会奏效。请评论任何可能不正确的内容,我会解决它!

我们知道以下内容:

  • 个人的叔叔必须是男性。
  • 叔叔会与父母一起分享父母。

因此,我们可以按如下方式定义规则:

uncle(Uncle, Individual) :- 
    male(Uncle),            % The uncle must be male.
    parent(X, Individual),  % Assume there's some parent of the individual, X.
    parent(Y, Uncle),       % Assume there's some parent of the uncle, Y.
    parent(Y, X).           % Y must be the parent of X.