P(X1, X2,…, Xn)
Здесь P – имя предиката; X1, X2,…, Xn – аргументы предиката.
С содержательной точки зрения предикат задает некое отношение между его аргументами, т.е. формула P(X1, X2,…,Xn) понимается как обозначение того, что “X1, X2,…,Xn находятся между собой в отношении P”. В случае, когда n=1 предикат называется унарным и определяет некоторое свойство. При n=2 предикат называется бинарным и определяет отношение. При n=3 предикат называется тернарным и т.д. В общем случае выражение P(X1, X2,…, Xn) определяет n-арный предикат.
Примерами предикатов в Турбо-Прологе могут служить следующие унарный и бинарный предикаты, определяющие свойство человека (person) быть студентом (student) и родителем (roditel)другого человека:
student(person) roditel(person, person)
Наряду с предикатами в Турбо-Прологе используются также и другие типы выражений, строящиеся на основе предикатов, а именно: факты, правила, цели.
Факты – это простейший вид утверждений, которые используются для констатации того, что объекты из некоторой предметной области обладают какими-либо свойствами, или взаимосвязаны между собой. Факты являются истинными утверждениями. Синтаксически, описание факта в ТурбоПрологе имеет вид:
P(A1[, A2,…,An]).
Здесь P – имя предиката; A1, A2,…,An – имена объектов; [,] – метасимволы, указывающие на необязательность наличие элементов в них заключенных.
Другими словами факт состоит из имени предиката, выражающего некоторое отношение, и заключенных в круглые скобки имен объектов, связанных этим отношением, и отделяемых друг от друга запятыми. В конце факта должна обязательно стоять точка.
Примерами описания фактов в Турбо-Прологе могут служить следующие унарные и бинарные факты:
student (sasha). |
roditel (ana, vera). |
student ("Саша"). |
roditel ("Аня", "Вера"). |
student ("Sasha"). |
roditel ("Ana", "Vera"). |
Эти факты констатируют истинность того, что Саша – студент, а Аня является родителем Веры.
Замечание: в программах на Турбо-Прологе имена отношений и объектов необходимо писать строчными (малыми) буквами латинского алфавита. Имена объектов допускается начинать с заглавной (большой) латинской буквы, однако в этом случае имена должны быть заключены в кавычки.
Правила – это условные утверждения, которые используются для логического вывода новых фактов из некоторой непустой совокупности существующих истинных фактов, связанных между собой отношениями “И”, “ИЛИ”, “НЕ”. При этом новый факт связывается с совокупностью существующих фактов условием if (ЕСЛИ) для констатации того, что новый факт будет истинным только при условии истинности логической совокупности существующих фактов. Синтаксически описание правила в Турбо-Прологе имеет вид:
NF if OF1 s OF2 s … s OFn.
Здесь NF – новый факт, называемый заголовком правила;
OF1, OF2, … ,OFn– совокупность существующих фактов, называемая телом правила; if – знак условной связи между заголовком и телом правила; s – знак логической связки между существующими фактами: либо and (И), либо or (ИЛИ), либо not (НЕ) (связка not ставится перед фактом).
В Турбо-Прологе имеется возможность использовать специальные символы для обозначения логических связок:
“,” (запятая) – вместо and;
“;” (точка с запятой) – вместо or;
“:-” (двоеточие с последующим тире) – вместо if.
Другими словами правило состоит из заголовка (нового факта), который специальным знаком “:-“ отделяется от тела правила, содержащего логическое условие (логическую совокупность существующих фактов), из истинности которого следует истинность нового факта. В конце правила должен обязательно стоять символ точки.
Примером описания правила в Турбо-Прологе может служить следующее правило:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.