Целевые запросы

Программа начинает выполняться, если в нее ввести целевые запросы или целевые утверждения, ответы на которые хочет получить пользователь. Для этого предназначен раздел GOAL (цель). В нем записываются необходимые запросы – третий тип утверждений в программе на Прологе.

Суть выполнения программы состоит в поиске в базе знаний заголовка утверждения, соответствующего запросу. Если такое утверждение (факт) есть, то на экране появляется ответ ” Yes ”(да). Если нет – то на экране появляется отрицательный ответ ” No ”(нет).

Запрос, или целевое утверждение, с помощью предиката описывает отношение (гипотезу), истинность которого для данной предметной области неизвестна и должна быть определена в процессе выполнения программы, в процессе согласования запроса с утверждениями базы знаний. Синтаксис запроса совпадает с синтаксисом предиката.

Простые целевые запросы без переменных

Если целевой запрос состоит из имени предиката, за которым располагается список аргументов, то имеет место простой целевой запрос без переменных. На этот вид запросов Пролог выдает один из ответов: “ Yes”, если запрос является истинным утверждением и может быть выведен из имеющейся в программе информации, или “ No” – в противном случае.

Пример1: ”Миша любит футбол? ”

GOAL: likes(”Миша”, ”футбол”).

Yes

Пример2: ”Маша любит футбол? ”

GOAL: likes(”Маша”, ”футбол”).

No

Простые целевые запросы с переменными

Если целевой запрос состоит из имени предиката, за которым располагается список аргументов, являющихся константами или переменными, то имеет место простой целевой запрос с переменными. Получая такой запрос, Пролог на основании имеющейся в программе информации пытается отыскать такие значения в переменных, чтобы целевой запрос стал истинным утверждением. Если Пролог не может подобрать подходящих значений переменных, то выдается сообщение ”No Solutions”, т.е. ”Нет решений”.

Пример1: ” Какой вид спорта любит Миша?”

GOAL: likes(”Миша”,S).

S=”футбол”

S=”хоккей”

Solutions

Пример2: ” Кто любит волейбол?”

GOAL: likes(X, ” волейбол”).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: