В языке Пролог сочетается использование нескольких важных концепций, к числу которых относятся:
1) применение фраз Хорна для представления знаний;
2) дескриптивный стиль программирования;
3) как декларативная, так и процедурная семантика;
4) возможность чередовать программный текст метауровня с текстом объектного уровня.
Как логические фразы Хорна записываются на языке Пролог?
Логическая или, точнее, хорновская логическая программа состоит из набора хорновских фраз, которые в языке Пролог называются фактами и правилами. Структура этих правил и фактов такова, что, с одной стороны, с их помощью довольно естественно описываются многие задачи, а с другой стороны, они допускают простую процедурную интерпретацию. Два этих обстоятельства и позволяют использовать язык фактов и правил в качестве языка программирования.
Фактом называется формула вида
P(t1,...,tn),
где P - предикатный символ, а t1,...,tn - термы, построенные из переменных, констант и функциональных символов. С точки зрения математической логики, факты - это атомарные формулы.
Правилом называется формула вида
A1 Ù ... Ù An Þ A0 (равносильная формула A0ÚØA1Ú...ÚØAn),
где все Ai - атомарные формулы (таким образом, факт - это частный случай правила). В обозначениях Пролога эту формулу принято записывать по-иному:
A0 :- A1,A2,...,An.
Запросом к логической программе называется формула вида
A1Ù...ÙAn,
где все Ai - атомарные формулы, вместе с приглашением Пролога на ввод такой запрос записывается в виде
?- A1,A2,...,An.
Запрос, не содержащий переменных, читается так: верно ли, что A1 и ... и An? Если же в атомарных формулах запроса содержатся переменные X1,...,Xm, то его следует читать иначе: для каких объектов X1,...,Xm верно A1 и ... и An?
Мы будем использовать SWI-prolog (1994, University of Amsterdam).
Основные синтаксические объекты: атомы, константы и переменные. Константы