В первую очередь необходимо определить факты.

В Прологе отношение между объектами называется фактом (fact). В естественном языке отношение устанавливается в предложении. В логике предикатов, используемой Прологом, отношение соответствует простой фразе (факту), состоящей из имени отношения и объекта или объектов, заключенных в круглые скобки. Как и предложение, факт завершается точкой (.).

Для решения поставленной задачи необходимо определить факты и записать их на языке Visual Prolog:

Ани девочка - girl (Ani)

Все сыновья мальчики - can (boy)

Цветы это красиво – kp (float)

Лене нравятся цветы - like (lina, float)

Том любит маму -

Долли любит сына - love (dolli, can)

Объекты lina и tom и т.д. начинаются со строчной буквы, т. к. они являются идентификаторами, имеют постоянное значение.

Необходимо определить правила

Правила позволяют вам вывести один факт из других фактов. Другими словами, можно сказать, что правило — это заключение, для которого известно, что оно истинно, если одно или несколько других найденных заключений или фактов являются истинными.

Необходимо определить и записать на языке Visual Prolog правила (зависимые отношения):

Лене нравится все что нравится Тому like (lina, A):-like (tom, A)

Здесь использовалась переменная А. Переменные всегда начинаются с заглавной буквы или символа подчеркивания. В Прологе переменные позволяют вам записывать общие факты и правила и задавать общие вопросы.

Символ :- имеет смысл "если", и служит для разделения двух частей правила: заголовка и тела.

Всем девочкам нравятся красивое - like (girl, Kp):-kp(Kp)

Здесь использовалась переменная Kp

После определения предложений необходимо сформулировать цель на языке Пролог

Однократно дав языку Пролог несколько фактов, мы можем задавать вопросы, касающиеся отношений между ними. Это называется запросом (query) системы языка Пролог. Мы можем задавать Прологу такие же вопросы, которые мы могли бы задать вам об этих отношениях. Основываясь на известных, заданных ранее фактах и правилах, вы можете ответить на вопросы об этих отношениях, в точности так же это может сделать Пролог.

Девочкам нравятся цветы?

like (girl,float).

Ответ: yes

Далее в разделе предикатов необходимо описать пользовательские предикаты. Это можно сделать двумя способами

 

1. Присвоить имена объектам фактов и правил в разделе predicates: girl (name) love (name, name) like (name, name) Далее прописать в разделе domainsтипы объектов предикатов: name = (symbol) 2. Прописать в разделе predicates типы объектов предикатов: girl (symbol) love (symbol, symbol) like (symbol, symbol)  

 

Получим следующую программу на языку Пролог: