Логическое программирование на языке Visual Prolog. Солдатова О.П - 19 стр.

UptoLike

19
для данного предложения. Анонимные переменные не отличаются от
обычных при поиске соответствий, но не принимают значений и не
появляются в ответах. Различные вхождения знака подчеркивания означают
различные анонимные переменные.
Отношения между объектами в Прологе называются фактами. Факт
соответствует фразе Хорна, состоящей из одного положительного литерала.
Фактэто простейшая разновидность предложения
Пролога.
Любой факт имеет соответствующее значение истинности и определяет
отношение между термами.
Факт является простым предикатом, который записывается в виде
функционального терма, состоящего из имени отношения и объектов,
заключенных в круглые скобки, например:
мать( мария, анна).
отец( иван, анна).
Точка, стоящая после предиката, указывает на то, что рассматриваемое
выражение является
фактом.
Вторым типом предложений Пролога является вопрос или цель. Цель
это средство формулировки задачи, которую должна решать программа.
Простой вопрос (цель) синтаксически является разновидностью факта,
например:
Цель: мать (мария, юлия).
В данном случае программе задан вопрос, является ли мария матерью
юлии. Если необходимо задать вопрос, кто является матерью юлии, то
цель
будет иметь следующий вид:
Цель: мать( X, юлия).
Сложные цели представляют собой конъюнкцию простых целей и
имеют следующий вид:
Цель: Q
1
, Q
2
,…,Q
n
, где запятая обозначает операцию конъюнкции, а Q
1
,
Q
2
,…,Q
n
подцели главной цели.
Конъюнкция в Прологе истинна только при истинности всех компонент,
однако, в отличие от логики, в Прологе учитывается порядок оценки
истинности компонент (слева направо).
Пример 15.
Пусть задана семейная БД при помощи перечисления родительских
отношений в виде списка фактов:
мать( мария, анна).
мать(мария, юлия).
мать( анна, петр).
отец(
иван, анна).
отец( иван, юлия).
Тогда вопрос, является ли иван дедом петра, можно задать в виде
следующей цели:
Цель: отец( иван, X), мать(X, петр).