Я пытаюсь получить простое генеалогическое древо для работы с Prolog, используя максимум 3 факта, но я не могу определить свою сестру как ребенка моих родителей , Вот что я написал:Семейное древо с SWI-Prolog
father(dad,me).
mother(mom,me).
siblings(me,sis).
parents(X,Z):-father(X,Z).
parents(Y,Z):-mother(Y,Z).
child(Z,X):-siblings(Z,Z2),parents(X,Z).
child(Z,Y):-siblings(Z,Z2),parents(Y,Z).
child(Z2,X):-siblings(Z,Z2),parents(X,Z).
child(Z2,Y):-siblings(Z,Z2),parents(Y,Z).
son(Z,X):-siblings(Z,Z2),parents(X,Z).
daughter(Z2,X):-siblings(Z,Z2),parents(X,Z).
brother(Z,Z2):-siblings(Z,Z2).
sister(Z2,Z):-siblings(Z,Z2).
и когда я набираю в father(ZFather,ZChild)
в Прологе, он показывает только me
как ребенок, а не мой sis
. Я знаю, что я не определил его в фактах, но я попытался сделать это в правилах с child(Z2,X)
и child(Z2,Y)
, что означает, что Z2
является моим sis
.
Помощь будет оценена.