Потому что у вас нет ничего как знания! Вы используете заглавные буквы в предикате father
. Как вы знаете, столицы используют для переменных. Итак, вам нужно написать что-то вроде следующего:
father(w, c).
father(g, c).
sibling(A, B) :-father(A, F), father(B, F).
Также имейте в виду, что с вашим определением w
равно sibling
из w
(само по себе)! Кроме того, если вы хотите сделать это семантическим образом, вы можете переписать его следующим образом:
father(w, c).
father(g, c).
sibling(A, B) :- A \== B, father(A, F), father(B, F).