8.5.
PROLOG и MBASE
Ранее мы уже
видели, что фразу, содержащую предположение, можно представить с помощью исчисления
предикатов первого порядка. Фраза
"Если
философ выиграет у кого-нибудь в забеге, то этот человек будет им восхищен"
в формализме предикатов приобретет вид формулы
(любой
A) (любой Y)(PHILOSOPHER(X)^BEATS(X, Y)ADMJRE(Y,
X)).
Эту формулу
можно представить в конъюнктивной нормальной форме следующим образом:
{ADMIRE(Y,
X), -ВЕАТS(Х, Y), ->PHILOSOPHER(X)}.
Также было
показано, что если записать это выражение таким образом, чтобы слева от оператора
":-" стоял единственный позитивный литерал, а справа — негативные
литералы, то получится выражение, представляющее фразу Хорна в синтаксисе языка
логического программирования PROLOG:
admire (Y, X) :- philosopher ( X) , beats (X,Y).
Ниже мы рассмотрим, как организовать управление применением таких правил.