Вопросы

Лабораторная работа № 1.

Программирование простой базы данных.

ОБЩИЙ ОБЗОР ЯЗЫКА ПРОЛОГ

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

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

· объявления некоторых фактов об объектах и отношениях между ними,

· определения некоторых правил об объектах и отношениях между ними и

· формулировки вопросов об объектах и отношениях между ними.

Факты

Факты – основной элемент программы на Прологе. Рассмотрим понятие факта на примере родственных отношений олимпийских богов.

Предположим, мы хотим сообщить Прологу факт: «Зевс является отцом Аполлона». Этот факт включает в себя два объекта, обозначенных именами «Зевс» и «Аполлон», и отношение «отец». В языке Пролог используется стандартная форма записи фактов:

отец(зевс, аполлон).

Важно соблюдать следующие правила:

· Имена всех отношений и объектов должны начинаться с строчной буквы. Например, отец, зевс, аполлон.

· Сначала записывается имя отношения. Затем через запятую записываются имена объектов, а весь список имен объектов записывается в круглые скобки.

· Каждый факт заканчивается точкой.

Определяя с помощью фактов отношения между объектами, необходимо учитывать, в каком порядке перечисляются имена объектов внутри круглых скобок. Этот порядок может быть произвольным, но выбрав один раз какой-то определенный порядок нужно везде следовать ему. Например, в приведенном выше факте мы поставили на первое место в списке объектов «того, кто является отцом», а объект «который является ребенком» стоит во второй позиции. Таким образом, факт отец (зевс, аполлон) не одно и то же, что отец(аполлон, зевс). В соответствии с принятой нами (хотя и произвольным образом) договоренностью первый факт говорит, о том, что Зевс является отцом Аполлона, а второй факт говорит, что Аполлон является отцом Зевса (В данном случае возникает противоречие).

Вопросы

Имея некоторую совокупность фактом можно обращаться к Прологу с вопросами о них. В прологе вопрос записывается почти также как и факт, за исключением того, что он записывается после определенного символа, обозначающего предложение сделать ввод вопроса (В разных реализациях это организовано по-разному). Например, знак вопроса и следующее за ним тире. Например:

?- отец (зевс, аполлон).

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


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



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