135
6.3. Правила записи вопросов
Вопросы в Прологе
служат для записи простых или сложносоставных запросов к базам
знаний или обращений к процедурам и программам. Ответами на запросы к базам данных и зна-
ний могут быть логические значения ДА (истина) или НЕТ (ложь) либо список конкретных дан-
ных, отвечающих запросу.
Общая форма записи сложносоставных вопросов:
сложный вопрос:
? <вопрос>[,<вопрос> ...]
В сложносоставных вопросах составляющие его подвопросы разделяются запятыми. Лю-
бой вопрос в Прологе начинается со знака вопроса «?» и заканчивается знаком «точка с запятой».
Пример сложносоставного вопроса:
? папа (х,у), папа (у,вова);
Простые вопросы имеют следующую форму записи:
простой вопрос:
? <имя>(<арг>[,<арг> ...])
Здесь <имя> - это имя некоторого факта или правила в программе или базе знаний. Коли-
чество аргументов в таком простейшем вопросе должно строго совпадать с количеством аргумен-
тов (параметров) в описаниях соответствующих фактов и правил.
В роли аргументов в вопросах могут указываться как конкретные значения, так и перемен-
ные. Если в вопросе указаны только конкретные значения, то ответом будет логическое значение
ДА или НЕТ. Если же в вопросе указываются переменные, то при положительном ответе допол-
нительным результатом будет вывод конкретных значений переменных, указанных в исходном
вопросе.
В роли переменных в Прологе могут указываться латинские и русские буквы, как строч-
ные, так и прописные: а, b, с, ..., х, у, z; A, В, С, ..., X, Y, Z; а, б, в, ... , э, ю, я; А, Б, В, ..., Э, Ю, Я.
Кроме того, в качестве имен переменных могут употребляться любые слова и словосочета-
ния, заканчивающиеся знаком апострофа ['].
Примеры имен: дед ', х1 ', оценка4 ' и т. п.
Кроме того, в вопросах и правилах на Пролог аргументы могут иметь неопределенные зна-
чения. Для этого вместо конкретных значений или имен переменных в вопросе указывается знак
подчеркивания
_ ].
Пример вопроса с использованием неопределенных значений:
? мама (мать', _ );
Ответом на указанный вопрос будет перечень имен всех матерей, сведения о которых име-
ются в базе знаний.
6.4. Запись правил и процедур
Правила в Прологе используются для описания определений, запросов к базам данных, а
также обращений к другим правилам и процедурам. Примеры записи правил:
родитель (х,у)
мама (х,у);
родитель (х,у)
папа (х,у);
бабушка (x,z)
мама (х,у), родитель (y,z);
дедушка (x,z)
папа (х,у), родитель (y,z);
Общая форма записи правил на Прологе:
правило:
<заголовок> ( <определение>;
|