Можно рассматривать каждое утверждение программы как структуру того или иного вида:
parent(bob,tom) – это структура, и тогда
parent- функтор структуры; bob, tom-компоненты структуры.
Компоненты структуры заключаются в круглые скобки;
разделяются между собой запятыми;
между функтором и левой скобкой нет пробела;
количество компонент структуры определяет ее размерность(арность –arity)
Факты, правила, заголовки правил, цели – все они по синтаксису языка являются просто структурами:
ФАКТ - структура для утверждения;
ЦЕЛЬ – структура для вопроса.
ДВЕ СТРУКТУРЫ СОПОСТАВИМЫ, ЕСЛИ
они имеют один и тот же главный функтор;
одинаковую размерность;
компоненты на одинаковых позициях обеих структур сопоставимы
ДВЕ КОМПОНЕНТЫ СОПОСТАВИМЫ, ЕСЛИ:
обе являются константами и представляют собой одинаковый объект;
одна из них переменная;
обе являются структурами, и эти структуры сопоставимы.
СОПОСТАВЛЕНИЕ - это процесс, на вход которого подаются два терма, и идет проверка соответствия этих термов друг другу. Если термы не сопоставимы, то процесс заканчивается неудачей. Если термы сопоставимы, то процесс заканчивается успешно и в обоих термах происходит конкретизация переменных такими значениями, что оба терма становятся тождественными. Например,
dата(D, C, 2012)
| | |
data(D1, october, Y1)
Одна из конкретизаций, которая делает эти термы идентичными:
D=D1 C=october Y1=2012
Нашли конкретизацию переменных, делающих эти
термы тождественными, и процесс завершился успешно.