Основы проектирования систем искусственного интеллекта

       

ВВОД программ


Введение списка утверждений в Пролог-систему осуществляется с помощью встроенного предиката consult. Аргументом предиката consult является атом, который обычно интерпретируется системой как имя файла, содержащего текст программы на Прологе. Файл от­крывается, и его содержимое записывается в базу данных. Если в файле встречаются управляющие команды, они сразу же выполня­ются. Возможен случай, когда файл не содержит ничего, кроме уп­равляющих команд для загрузки других файлов. Для ввода утверж­дений с терминала в большинстве реализации Пролога имеется спе­циальный атом, обычно user. С его помощью утверждения записыва­ются в базу данных, а управляющие команды выполняются немед­ленно.

Помимо предиката consult, в Прологе существует предикат reconsult. Он работает аналогичным образом. Но перед добавлени­ем утверждений к базе данных из нее автоматически удаляются те утверждения, головные цели которых сопоставимы с целями, со­держащимися в файле перезагрузки. Такой механизм позволяет вводить изменения в базу данных. В Прологе имеются и другие методы добавления и удаления утверждений из базы данных. Не­которые реализации языка поддерживают модульную структуру, позволяющую разрабатывать модульные программы.

В заключение раздела дадим формальное определение синтакси­са Пролога, используя форму записи Бэкуса-Наура, иногда называе­мую бэкусовской нормальной формой (БНФ).

запрос ::- голова утверждения

правило ::– голова утверждения :- хвост утверждения

факт ::- голова утверждения

голова утверждения ::-атом | структура

хвост утверждения ::- атом структура,

термы ::-терм [,термы]

терм ::- число | переменная | атом | структура

структура ::-атом (термы)

Данное определение синтаксиса не включает операторную, спи­сковую и строковую формы записи. Полное определение дано в при­ложении А. Однако, любая программа на Прологе может быть напи­сана с использованием вышеприведенного синтаксиса. Специальные формы только упрощают понимание программы. Как мы видим, син­таксис Пролога не требует пространного объяснения. Но для написа­ния хороших программ необходимо глубокое понимание языка.



Содержание раздела