Правда в том, что есть спор по терминологии Пролога, но я попытаюсь сделать краткий обзор, который, мы надеемся, приведет к некоторым ответам.
Вообще говоря, программа Пролога состоит из объекты и отношения между ними.
Отношения называются предикатами , а объекты называются аргументами предиката. Количество аргументов - это предикат arity .
Описание объектов и их отношений выполняется с помощью кеши . Есть три типа предложений: факты, правила и запросы.
A fact обозначает отношение между объектами. Это соотношение однозначно верно. Синтаксически факт состоит из имени, описывающего отношение, за которым следуют один или несколько разделенных запятыми объектов в скобках и точка. Пример:
male(john).
father_of(adam, cain).
Объединяя факты, мы можем определить новые отношения между объектами. Это делается с помощью правила , которое состоит из двух частей: раздела условий (также называемого телом правила) и заключения (также называемого главой правила). В то время как факты обозначают отношения, которые однозначно истинны, правила обозначают отношения, которые являются истинными, только если выполняются определенные условия. Эти условия также являются отношениями между объектами. Синтаксически глава правила отделяется от тела оператором шеи (:-), который можно прочитать как , если . Условия правила, если их больше одного, разделяются запятыми, которые можно читать как и . Пример:
father_of(X,Y) :-
parent(X,Y),
male(X).
В заключение, правила и факты являются оговорками. Правило имеет форму Head :- Body.
, а факт имеет форму Head.
Предикаты - это отношения, определяемые именем и числом аргументов, и для одного и того же предиката может быть несколько фактов или правил. В конечном итоге:
Father_of / 2 - это предикат с именем Father_of с арностью 2
Father_of (Адам, Каин). - это факт
папа (Адам, Авель). - это еще один факт
Father_of (A, B): - родитель (A, B), мужчина (A). - это правило