Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экз языки.docx
Скачиваний:
20
Добавлен:
20.09.2019
Размер:
67.44 Кб
Скачать

8. Язык программирования Пролог. Назначение, применение

Пролог (фр. Programmation en Logique) — язык и система логического программирования;

• Основан на языке предикатов математической логики дизъюнктов (клауз) Хорна, представляющей собой подмножество логики предикатов первого порядка (при этом оно одинаково широко с ней по сфере охвата);

• Реализует декларативную семантику, а также процедурную;

• Использует некие процедуры и алгоритмы, например, автоматический решатель задач;

• Стандартизован ISO/IEC JTC1/SC22/WG17.

Сферы применения

• Реляционные базы данных, особенно полезен для создания интерфейсов к БД. На Прологе реализованы QBE, SQL, реляционная алгебра, язык, похожий на Visicalc;

• Программная инженерия – логическая спецификация системыможет быть непосредственно преобразована в логическую программу;

• Естественные языки – грамматический разбор и установление корректности выражений. Формализм Definite Clause Grammar

– DCG, реализован в системе CHAT-80 (Перейра). Формализмы грамматик унификации GPSG, HPSG, LFG, PATR-II, FUG;

• Представление знаний – большинство систем;

• Экспертные системы для ряда сфер, включая решение уравнений, медицину, принятие решений, синтез микропрограмм и многие другие.

Prolog был создан в 1972 с целью сочетать использование логики с представлением знаний. С тех пор у него появился ряд диалектов, расширяющих основу языка различными возможностями.

 Он используется в системах обработки естественных языков, исследованиях искусственного интеллекта, экспертных системах, онтологиях и других предметных областях, для которых естественно использование логической парадигмы.

Как реализация принципов логического программирования язык PROLOG вносит интересный и существенный вклад в решение задач искусственного интеллекта. Наиболее важное значение имеет декларативная семантика (declarative semantics) - средство прямого выражения взаимосвязей в задачах искусственного интеллекта, а также встро­енные средства унификации и некоторые приемы проверки соответствия и поиска. В этой главе будут затронуты многие важные вопросы логического программирования и организации языка PROLOG.

11. Пролог. Файлы, Базы данных, Базы знаний

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

База данных (БД) - это совокупность взаимносвязанных данных, использование которых осуществляется при помощи системы управления базами данных (СУБД).

БЗ - это совокупность знаний, относящихся к отдельной предметной области и представленных формально таким образом, чтобы на их основе можно было строить рассуждения.

Файл базы данных представляет собой набор связанных между собой записей

Базы знаний и базы данных в Турбо-Прологе Турбо-Пролог (ТП) позволяет работать с БД и БЗ. База данных в ТП понимается как совокупность файлов. Факты, расположенные в разделе clauses непосредственно в теле программы, образуют внутреннюю (в терминологии ТП - статическую) базу данных. Информация в этой области не может изменяться в процессе выполнения программы. Факты, описанные предикатами из области database, образуют внешнюю (по отношению к телу программы) базу данных, которая в ТП называется динамической. Турбо-Пролог обеспечивает работу с БД, находящимися в файлах на внешних носителях. Для взаимодействия с такими данными ТП имеет ряд стандартных предикатов для чтения и сохранения БД в файле, для добавления и удаления фактов БД и т.д. Динамическое формирование правил в ТП не предусмотрено. ТП работает с БД, находящимися в оперативной памяти. Такие БД называются резидентными. Совокупность правил (разделы predicates и clauses) может быть вынесена в отдельный файл, которому присвоим расширение RUL. Совместно с DBA-файлами, RUL-файлы будут образовывать базу знаний Пролог-программы. Используемая версия языка Пролог (Turbo Prolog version 2.0), не поддерживает изменение правил в ходе выполнения программы и, строго говоря, не обеспечивает работу с базами знаний. Однако, ограничиваясь статическими правилами, можно говорить об организации базы знаний с использованием Турбо-Пролога. Для работы в БД в Турбо-Прологе существуют следующие предикаты: