семейное древо в SWI PROLOG

#prolog

#пролог

Вопрос:

существует какая-то ошибка с правилами бабушки, двоюродного брата, брата, дяди я перепробовал так много правил, но все равно не смог найти правильное, оно возвращает false , пожалуйста, helpppppppppp

 /*rules*/
male(james).
male(charles).
male(william).
female(megan).
male(george).
female(catherine).
female(diana).
female(elizabith).
parent(james, charles).
parent(james, elizabeth).
parent(charles, catherine).
parent(charles, william).
parent(charles, megan).
parent(elizabeth, diana).
parent(diana, george).

/*rules*/
father(X, Y) :-  parent(X,Y), male(X).
mother(X, Y) :- parent(X,Y), female(X).
child(Y, X) :- parent(X, Y).
grandparent(X, Y) :- parent(X, Z), parent(Z, Y).
grandpa(X, Y) :- grandparent(X, Y), male(X).
grandma(X, Y) :- grandparent(X, Y), female(X).
brother(X, Y) :- male(X), parent(X, Z), parent(Y, Z), X = Y.

uncle(X, Y) :- brother(X, Z), parent(Y, Z).
grandchild(X, Y) :- grandparent(Y, X).
        grandson(X, Y) :- grandchild(X, Y), male(X).
        granddaughter(X, Y) :- grandchild(X, Y), female(X).
siblings(B,G) :- parent(P,B), parent(P,G), B=G.
cousins(X,Y) :- parent(A,X), parent(B,Y), siblings(A,B), X=Y.
  

Ответ №1:

Найдено: женщина (Элизабет). элизабет неправильно написана !

С этим исправлением ваш код должен работать как обычно. Я ответил на ваш запрос о помощи?