Опубликован: 12.02.2014 | Уровень: для всех | Доступ: платный
Лекция 1:

Определение отношений в программе

Лекция 1: 123456 || Лекция 2 >

1.3. Приложение Prolog Inference Engine

Приложение Prolog Inference Engine (PIE) входит в собрание примеров Visual Prolog Examples, которые поставляются вместе с системой Visual Prolog (). Оно представляет собой интерпретатор реализации языка Пролог, синтаксис которой близок к реализации Эдинбургского Пролога. Для запуска приложения необходимо открыть проект в среде разработки Visual Prolog. Для этого нужно запустить файл vip.exe, выбрать команду меню Project > Open, нажать кнопку Browse… окна Visual Prolog Environment (рис. 1.1) и открыть файл Visual rolog Examples\pie\pie.vipprj. После этого следует выбрать команду меню Build > Execute (см. замечание в конце главы). В дальнейшем можно сразу запускать Exe-файл приложения PIE.

 Среда разработки Visual Prolog. Окно Visual Prolog Environment

увеличить изображение
Рис. 1.1. Среда разработки Visual Prolog. Окно Visual Prolog Environment

Информация об открываемых (и вновь созданных) проектах отображается в окне Visual Prolog Environment. Открывать проекты повторно можно прямо из списка проектов.

В следующей программе определяются предикаты летает/1, животное/1 и птица/1.

летает("синица").            % факты 
летает("лебедь").
летает("аэроплан").

животное("лебедь").
животное("синица").
животное("тигр").

птица("пингвин").
птица("страус").
птица(X):- животное(X), летает(X).      % правило

?- птица(A).              % запрос

Пример 1.1. "Птицы"

Упражнение 1.

  1. Какие элементы принадлежат отношению "птица", определенному в программе "Птицы" (см. листинг 1.1)?
  2. Запустите приложение PIE, поместите в него программу "Птицы" и найдите ответ на запрос к программе. Для этого откройте новый файл, поместите в него текст программы (факты и правила), сделайте активным окно с программой и выберите команду меню Engine > Reconsult. В окне Dialog введите запрос птица(A).

Поставьте курсор после знака точки и нажмите клавишу Enter (рис. 1.2). Ответ на запрос появится в этом же окне.

Приложение PIE

Рис. 1.2. Приложение PIE

Для имен переменных в PIE следует использовать буквы латинского алфавита, для предикатов и констант можно использовать кириллицу. На языке Visual Prolog можно использовать кириллицу и для имен переменных.

В следующей программе в виде фактов определяются отношения "родитель", "супруг", "мужчина" и "женщина". С их помощью в виде правил определяются отношения "отец" и "мать".

родитель("Иван", "Мария").
родитель("Анна", "Мария").
родитель("Мария", "Павел").
родитель("Мария", "Петр").

супруг("Иван", "Анна").
супруг("Павел", "Юлия").

мужчина("Иван").
мужчина("Павел").
мужчина("Петр").

женщина("Мария").
женщина("Анна").
женщина("Юлия").

отец(F, C):- 
    родитель(F, C),
    мужчина(F).

мать(M, C):-
    родитель(M, C),
    женщина(M).

Пример 1.2. "Родственные отношения"

Упражнение 2.

Запустите в PIE программу "Родственные отношения" (см. листинг 1.2). Задайте следующие вопросы программе:

  1. Частный простой запрос (является ли Иван родителем Петра?):

    родитель("Иван", "Петр").

  2. Общий простой запрос (найти всех мужчин):

    мужчина(M).

  3. Конъюнктивный составной общий запрос (найти сыновей Марии):

    родитель("Мария", S), мужчина(S).

  4. Простой общий запрос с отбором информации при помощи анонимной переменной (кто из женщин замужем?):

    супруг(_, W).

  5. Дизъюнктивный составной общий запрос (найти всех персон):

    мужчина(P); женщина(P).

Найдите ответ на последний вопрос с помощью добавления нового правила в программу, определяющего отношение персона/1, которому принадлежат все мужчины и женщины.

Лекция 1: 123456 || Лекция 2 >
Жаныл Айкын
Жаныл Айкын
Rustam Inatov
Rustam Inatov

Доброго времени суток, подскажите пожалуйста, visual prolog examples, pie, vip7.5 - это все, где я могу скачать? (в смысле) может быть на сайте есть какой-то архив? Увы я не нашел его.

Подскажите, пожалуйста.

С уважением, Рустам.

Айдана Ахметова
Айдана Ахметова
Россия
Дмитрий Куянов
Дмитрий Куянов
Россия, Омск, ОмГТУ