我很难弄清楚如何返回与某个人有关的每个人的列表。因此,如果我说亲戚(A,B),A 将是一个人,B 是与该人相关的所有人员的列表。我可以编写任何需要的附加规则来帮助执行此操作。这是我到目前为止所拥有的。
man(joe).
man(tim).
man(milan).
man(matt).
man(eugene).
woman(mary).
woman(emily).
woman(lily).
woman(rosie).
woman(chris).
parent(milan, mary).
parent(tim, milan).
parent(mary, lily).
parent(mary, joe).
parent(mary, matt).
parent(chris, rosie).
parent(eugene, mary).
parent(eugene, chris).
cousins(A, B) :- parent(C, A), parent(D, B), parent(E, C), parent(E, D), not(parent(C, B)), not(parent(D, A)), A \=B.
paternalgrandfather(A, C) :- man(A), man(B), parent(B, C), parent(A, B).
sibling(A, B) :- parent(C, A), parent(C, B), A \= B.
有人可以指导我如何去做吗?谢谢。