domains
predicates
clauses
man(john)
man(bob)
woman(ann)
% фактов родителя столько, сколько вершин в дереве.
parent(john,bob)
mother(X,Y):-woman(X),parent(X,Y).
sister(X,Y):-woman(X),parent(Z,Y),parent(Z,Y),not(X=Y).
sister2(X,Y):-woman(X,parent(Z1,X),parent(Z1,Y),not(X=Y),paretn(Z2,X),parent(Z2,X),not(Z1=Z2).
hasSister(X):-sister(X,_). % анонимная переменная — просто проверяем значение.
parent(ann,bob)
Goal: hasSister(bob)
ZG9tYWlucwoJcz1zeW1ib2wKcHJlZGljYXRlcwoJbWFuKHMpCgl3b21hbihzKQoJcGFyZW50KHMscykKCW1vdGhlcihzLHMpCglzaXN0ZXIocyxzKQoJaGFzU2lzdGVyKHMpCmNsYXVzZXMKCW1hbihqb2huKQoJbWFuKGJvYikKCXdvbWFuKGFubikKCQoJJSDRhNCw0LrRgtC+0LIg0YDQvtC00LjRgtC10LvRjyDRgdGC0L7Qu9GM0LrQviwg0YHQutC+0LvRjNC60L4g0LLQtdGA0YjQuNC9INCyINC00LXRgNC10LLQtS4KCXBhcmVudChqb2huLGJvYikKCm1vdGhlcihYLFkpOi13b21hbihYKSxwYXJlbnQoWCxZKS4Kc2lzdGVyKFgsWSk6LXdvbWFuKFgpLHBhcmVudChaLFkpLHBhcmVudChaLFkpLG5vdChYPVkpLgpzaXN0ZXIyKFgsWSk6LXdvbWFuKFgscGFyZW50KFoxLFgpLHBhcmVudChaMSxZKSxub3QoWD1ZKSxwYXJldG4oWjIsWCkscGFyZW50KFoyLFgpLG5vdChaMT1aMikuCmhhc1Npc3RlcihYKTotc2lzdGVyKFgsXykuICUg0LDQvdC+0L3QuNC80L3QsNGPINC/0LXRgNC10LzQtdC90L3QsNGPIOKAlCDQv9GA0L7RgdGC0L4g0L/RgNC+0LLQtdGA0Y/QtdC8INC30L3QsNGH0LXQvdC40LUuCgoJcGFyZW50KGFubixib2IpCgpHb2FsOiBoYXNTaXN0ZXIoYm9iKQ==