- •Классическая теория моделей первого порядка
- •7. Лисп. Решение интеллектуальных задач
- •8. Язык программирования Пролог. Назначение, применение
- •11. Пролог. Файлы, Базы данных, Базы знаний
- •1. Загрузка файла бд в оперативную память:
- •2. Сохранение фактов бд в внешнем файле:
- •13. Модели представление знаний в Лиспе.
- •14. Модели представление знаний на Прологе.
- •Эквивалентность типов.
- •Эпистемология прагматизма
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), не поддерживает изменение правил в ходе выполнения программы и, строго говоря, не обеспечивает работу с базами знаний. Однако, ограничиваясь статическими правилами, можно говорить об организации базы знаний с использованием Турбо-Пролога. Для работы в БД в Турбо-Прологе существуют следующие предикаты: