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

Программа на языке Пролог состоит из множества фраз и ее можно рассматривать как сеть отношений, существующих между термами. Терм обозначает некоторую сущность, принадлежащую миру. Фраза – это либо факт, либо правило. Факт – это утверждение о том, что соблюдается некоторое конкретное отношение.

Пример 1: знает (оля, витя).

Данный факт состоит из имени предиката знает и списка термов, заключенного в скобки.

Одним из видов термов являются атомы. Атом – это константа, которая обычно записывается в виде некоторого слова, начинающегося с маленькой буквы. Термы “оля” и “витя” являются атомами.

Предикат может обладать произвольным количеством аргументов.

Пример 2.

Нижеследующий факт показывает, что БГТУ расположен по адресу ул. Костюкова 48.

расположение(бгту, костюкова, 48).

Простейшая Пролог-программа − это множество фактов, которое неформально называют базой данных.

Пример 3.

Данная база данных состоит из фактов “знает”:

знает(оля, витя).

знает(коля, света).

знает(коля, витя).

Ввод программы

Пролог-программу можно ввести в компьютер одним из двух способов: 1) при помощи текстового редактора создается файл с программой, которая затем загружается интерпретатором Пролога; 2) программа вводится во время сеанса работы с интерпретатором Пролога.

Непосредственный ввод программы будет происходить так:

Пример 4.

?- consult(user).

знает(оля, витя).

знает(коля, света).

знает(коля, витя).

quit.

?-

Ввод команды consult (user), что в переводе на русский язык означает “ просмотр (пользователь) ”, переключает интерпретатор в режим ввода программы. Ввод команды quit возвращает интерпретатор обратно в командный режим, о чем свидетельствует появление сообщения подсказки “?− “.

Запросы к базе данных

Простой запрос состоит из имени предиката, за которым располагается список аргументов. (Синонимом слова запрос является слово цель.)

Если база данных “ знает ” просмотрена интерпретатором, то можно написать, например, такой запрос к ней:

? − знает (оля, витя).

Это означает вопрос: “ Знает ли Оля Витю? ”. Интерпретатор найдет соответствующий факт в базе данных и ответит:

yes.


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



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