Я только изучаю PROLOG, и мне сложно понять, почему запросы, которые я выполняю, заканчиваются «да / нет». Вот моя КБ:
male(albert).
male(bob).
male(bill).
male(carl).
male(charlie).
male(dan).
male(edward).
female(alice).
female(betsy).
female(diana).
parent(albert, bob).
parent(albert, betsy).
parent(albert, bill).
parent(alice, bob).
parent(alice, betsy).
parent(alice, bill).
parent(bob, carl).
parent(bob, Charlie).
Затем я выполняю следующий запрос:
?-female(X).
который возвращает:
X = alice ? ;
X = betsy ? ;
X = diana
yes
Когда я спрашиваю:
?-parent(X, bob).
Я вернулся:
X = albert ?;
X = alice ?;
no
Почему один дает ответ «да», а другой - «нет»?
?
после решения, это означает, что у него есть больше вариантов для изучения, которые могут или не могут быть успешными. Если вы нажмете;
, Prolog попытается выбрать вариант и, если он не найдет дополнительных решений, откажется. Если вы не получаете приглашение?
, это означает, что точки выбора не было, и Prolog просто отвечает «да». - person lurker   schedule 14.04.2018