- •Кафедра Информационных систем и вычислительной техники Национального минерально-сырьевого университета «Горный"
- •Содержание
- •История развития и современное состояние языка prolog
- •Тенденции в истории развития языка Prolog
- •Области применения языка Prolog
- •Современные реализации языка Prolog
- •Поддержка веб-технологий в реализацях Prolog
- •Основы разработки prolog-программ
- •Общие сведения о языке Prolog
- •Понятие факта, правила, запроса и процедуры
- •Механизм сопоставления и поиска с возвратом
- •Основные элементы языка Prolog
- •Среда разработки программ pie и система swi-prolog
- •Основы работы в консоли Prolog
- •Основы работы с программными файлами
- •Справка и помощь в среде swi-Prolog
- •Основы трассировки и отладки в среде pie и swi- Prolog
- •Графические интерфейсы на базе swi-Prolog/xpce
- •Загрузка и запуск программ swi-Prolog'a
- •Использование ярлыков для запуска программ
- •Использование командных и скриптовых сценариев
- •Среда разработки turbo-prolog
- •Структура программы на Turbo Prolog'e
- •Оболочка системы Turbo Prolog
- •Отладка и трассировка программ
- •Работа с простейшими программами в Turbo Prolog'e
- •Работа с графикой в Turbo Prolog'e
- •Среда разработки visual prolog
- •Интегрированная среда разработки
- •Разработка консольного проекта
- •Разработка gui проекта на Visual Prolog'e
- •Prolog — язык логического программирования
- •Системы основанные на знаниях
- •Логические модели и логическое программирование
- •Простейшие конструкции языка предикатов
- •Предикатные формулы
- •Определение правильно построенной формулы
- •Логический вывод
- •6.6.1. Правило резолюции для простых предложений
- •Правило резолюции для сложных предложений
- •Простая резолюция сверху вниз
- •Общая резолюция сверху вниз
- •Унификаторы и примеры унификации
- •Решение задач и извлечение ответа
- •Приложение 1. Запуск Turbo-Prolog в ос Windows 7
- •1. Стандартные предикаты ввода данных.
- •Предикаты преобразования данных
- •Предикаты работы с окнами.
- •Предикаты работы с файлами.
- •Предикаты управления экраном.
- •Предикаты обработки строк.
- •Предикаты работы с графикой.
- •Разные предикаты.
- •Правила вычисление атрибутов экрана.
- •Приложение 3. Пример программы построения дерева синтаксического анализа
- •Интеллектуальные информационные системы prolog - язык разработки интеллектуальных и экспертных систем
Логические модели и логическое программирование
Одним из способов представления знаний в информационных системах является язык математической логики, позволяющий формально описывать понятия предметной области и связи между ними.
В отличие от естественного языка, который очень сложен, язык логики предикатов использует только такие конструкции естественного языка, которые легко формализуются. Логика предикатов - это языковая система, которая оперирует с предложениями на естественном языке в пределах синтаксических правил этого языка. Язык логики предикатов использует слова, которые описывают:
понятия и объекты изучаемой предметной области;
свойства этих объектов и понятий, а также их поведение и отношения
между ними.
В терминах логики предикатов первый тип слов называется термами, а второй тип слов - предикатами. Термы представляют собой средства для обозначения интересующих нас индивидуумов, а предикаты выражают отношения между различными индивидуумами, которые обозначаются с помощью термов.
Логическая модель представляет собой множество предложений, выражающих различные логические свойства именованных отношений.
Логическое программирование - это подход, при котором пользователь описывает предметную область совокупностью предложений в виде логических формул, а кибернетическое устройство, манипулируя этими предложениями, строит необходимый для решения задач вывод.
Простейшие конструкции языка предикатов
Одной из простейших конструкций логики предикатов является терм. Терм - это знак (символ) или комбинация знаков (символов), являющаяся наименьшим значимым элементом языка. К термам относятся константы, переменные и функции. Константы обозначают конкретные объекты реального мира. Переменные используются для обозначения некоторого из возможных объектов реального мира или их совокупности. Обычно их обозначения начинаются с заглавной буквы.
Структуры - представляют собой последовательность разделенных запятыми констант или переменных, которые заключены в круглые скобки и следуют за функциональным символом (функтором). Функторы обозначают операторы, которые после воздействия на объект возвращают некоторое значение. Пример записи структур: сумма (1,2); +(1,2); удвоить (X), а примерами работы с ними и их унификации могут быть:
?- +(2, 3) = 2 + 3. true.
?- +(2, *(5,6)) = + (X, *(5, Y)).
X = 2,
Y = 6.
?- Result is +(2, *(5,6)).
Result = 32 ?
Предикат - это логическая функция, которая выражает отношение между своими аргументами и принимает значение «истина», если это отношение имеется, или «ложь», если оно отсутствует. Заключенная в скобки последовательность из n термов, перед которой стоит предикатный символ, называется n-местным (или n-арным) предикатом, который принимает значения «истина» или «ложь» в соответствии со значением термов, являющимися его аргументами. Примеры записи предикатов:
является ( ласточка, птица ). отец (X, "Петр").
Такого типа предикаты получили название атомарных предикатов и соответствуют наиболее простым предложениям разговорного языка - не-
распространенным предложениям. В обычном человеческом языке из нераспространенных предложений с помощью соединительных союзов, местоимений, и других частей речи строят более сложные конструкции - сложные предложения.
