Правила записи вопросов

Вопросы в Прологе служат для записи простых или сложносоставных запросов к базам знаний или обращений к процедурам и программам. Ответами на запросы к базам данных и знаний могут быть логические значения ДА (истина) или НЕТ (ложь) либо список конкретных данных, отвечающих запросу.

Общая форма записи сложносоставных вопросов:

 

сложный вопрос:

 

В сложносоставных вопросах составляющие его подвопросы разделяются запятыми. Любой вопрос в Прологе начинается со знака вопроса «?» и заканчивается знаком «точка с запятой». Пример слож-носоставного вопроса:

? папа (х,у), папа (у,вова);

 

Простые вопросы имеют следующую форму записи:

 

простой вопрос:

 

Здесь<имя> — это имя некоторого факта или правила в программе или базе знаний. Количество аргументов в таком простейшем вопросе должно строго совпадать с количеством аргументов (параметров) в описаниях соответствующих фактов и правил.

 

В роли аргументов в вопросах могут указываться как конкретные значения, так и переменные. Если в вопросе указаны только конкретные значения, то ответом будет логическое значение ДА илиНЕТ.Если же в вопросе указываются переменные, то при положительном ответе дополнительным результатом будет вывод конкретных значений переменных, указанных в исходном вопросе.

 

В роли переменных в Прологе могут указываться латинские и русские буквы, как строчные, так и прописные:а, b, с, ..., х, у, z; A, В, С, ..., X, Y, Z; а, б, в, ... , э, ю, я; А, Б, В, ..., Э, Ю, Я.

 

Кроме того, в качестве имен переменных могут употребляться любые слова и словосочетания, заканчивающиеся знаком апострофа ['].

 

Примеры имен: дед ',х1 ',оценка4 'и т. п.

 

Кроме того, в вопросах и правилах на Прологе аргументы могут иметь неопределенные значения. Для этого вместо конкретных значений или имен переменных в вопросе указывается знак подчеркивания [ _ ].

 

Пример вопроса с использованием неопределенных значений:

? мама (мать', _ );

 

Ответом на указанный вопрос будет перечень имен всех матерей, сведения о которых имеются в базе знаний.