- •Кафедра Информационных систем и вычислительной техники Национального минерально-сырьевого университета «Горный"
- •Содержание
- •История развития и современное состояние языка 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 - язык разработки интеллектуальных и экспертных систем
6.6.1. Правило резолюции для простых предложений
Наиболее простой метод логического вывода использует только одно правило вывода, называемое резолюцией, которое применяют к логическим формулам вида:
факт: А
отрицание: 1 (А1л ... , Ап)
импликация: А В1л ... , Вт ,
где Ai (i = 1, n) и Bj (j = 1, m) - произвольные предикаты. Рассмотрим наиболее простую из форм резолюции для случая всего лишь двух правильно построенных формул S = { S1 , S2 } вида:
(отрицание): 1 А
(импликация): А В ,
в которых предикат А из S1 совпадает с предикатом А левой части S2. В результате одного шага вывода из S1 и S2 будет получена новая ППФ вида:
s (резольвента): 1 B
На этом шаге вывода правильно построенные формулы S1 и S2 называются родительскими предложениями, а S - резольвентой, которая получается в результате применения резолюции к S1 и S2. Резолюция в этом простейшем случае соответствует правилу вывода modus tollens, которое записывается в виде:
1 A, A B
(*)
1 B
и соответствует следующему умозаключению:
Допуская, что: не А и А если В
Выводим: не В
В еще более простом случае, когда логическая формула S1 представляет собой отрицание, а логическая формула S2 - факт:
ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ 1
PROLOG - ЯЗЫК РАЗРАБОТКИ 1
ИНТЕЛЛЕКТУАЛЬНЫХ И ЭКСПЕРТНЫХ СИСТЕМ 1
Хабаров С.П. 2
СОДЕРЖАНИЕ 3
1. ИСТОРИЯ РАЗВИТИЯ И СОВРЕМЕННОЕ СОСТОЯНИЕ ЯЗЫКА PROLOG 5
1.1. Тенденции в истории развития языка Prolog 5
1.2. Области применения языка Prolog 8
1.3. Современные реализации языка Prolog 11
2. ОСНОВЫ РАЗРАБОТКИ PROLOG-ПРОГРАММ 18
2.1. Общие сведения о языке Prolog 18
2.2. Понятие факта, правила, запроса и процедуры 20
2.3. Механизм сопоставления и поиска с возвратом 21
2.4. Основные элементы языка Prolog 23
3. СРЕДА РАЗРАБОТКИ ПРОГРАММ PIE И СИСТЕМА SWI-PROLOG 27
3.1. Основы работы в консоли Prolog 29
3.2. Основы работы с программными файлами 33
3.3. Справка и помощь в среде SWI-Prolog 41
3.4. Основы трассировки и отладки в среде PIE и SWI- Prolog 44
3.5. Графические интерфейсы на базе SWI-Prolog/XPCE 48
3.6. Загрузка и запуск программ SWI-Prolog'a 55
3.6.1. Использование ярлыков для запуска программ 58
3.6.2. Использование командных и скриптовых сценариев 62
4. СРЕДА РАЗРАБОТКИ TURBO-PROLOG 68
4.1. Структура программы на Turbo Prolog'e 69
Секция domains 71
Секция predicates 73
Секция clauses 74
Секция goal 75
Секция database 76
4.2. Оболочка системы Turbo Prolog 77
Опция меню "Редактировать" (Ред) 79
Опция меню "Выполнить" (Вып) 80
Опция меню "Компилировать" (Компил) 80
Опция меню "Файлы” 80
Опция меню "Установки" (Устан) 81
4.3. Отладка и трассировка программ 81
4.4. Работа с простейшими программами в Turbo Prolog'e 84
Загрузка системы Turbo Prolog, ввод и запуск программ 84
Работа с программой в режиме диалога 85
Трассировка программ в среде системы Turbo Prolog'a 87
Работа с программами, содержащими внутреннюю цель 89
Простейшая программа ввода-вывода данных 91
Компиляция программ. 92
4.5. Работа с графикой в Turbo Prolog'e 94
5. СРЕДА РАЗРАБОТКИ VISUAL PROLOG 97
5.1. Интегрированная среда разработки 97
5.2. Разработка консольного проекта 98
Этап создания проекта 98
Дерево проекта (Project Tree) 100
Этап разработки программного кода проекта 101
Этап компиляции и запуска проекта 104
5.3. Разработка GUI проекта на Visual Prolog'e 106
Создание нового GUI проекта 107
Добавление формы в пустой проект 109
Настройка главного меню проекта 112
Разработка экранной формы 117
Организация вычислительных процедур проекта 119
6. PROLOG — ЯЗЫК ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 121
6.1. Системы основанные на знаниях 121
6.2. Логические модели и логическое программирование 122
6.3. Простейшие конструкции языка предикатов 122
6.4. Предикатные формулы 123
6.5. Определение правильно построенной формулы 125
6.6. Логический вывод 126
6.6.1. Правило резолюции для простых предложений 127
6.6.2. Правило резолюции для сложных предложений 132
6.6.3. Простая резолюция сверху вниз 133
6.6.4. Общая резолюция сверху вниз 133
6.6.5. Унификаторы и примеры унификации 135
6.7. Решение задач и извлечение ответа 135
ПРИЛОЖЕНИЕ 137
Приложение 1. Запуск Turbo-Prolog в ОС Windows 7 137
Запуск DOSBox 138
Подключение русского языка 141
Дополнительные настройки DOSBox 142
Приложение 2. Служебные предикаты Турбо-Пролога 144
2. Предикаты преобразования данных 145
3. Предикаты работы с окнами. 146
4. Предикаты работы с файлами. 146
5. Предикаты управления экраном. 148
6. Предикаты обработки строк. 148
7. Предикаты работы с графикой. 149
8. Разные предикаты. 150
9. Правила вычисление атрибутов экрана. 151
Приложение 3. Пример программы построения дерева синтаксического анализа 153
Запись грамматических правил 153
Реализация грамматических правил на языке Prolog 154
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 158
ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ 159
PROLOG - ЯЗЫК РАЗРАБОТКИ 159
ИНТЕЛЛЕКТУАЛЬНЫХ И ЭКСПЕРТНЫХ СИСТЕМ 159
S : □ ,
которое означает противоречие. Этот шаг вывода может быть записан в следующем виде:
1 A, A |
(**) |
□ |
|
ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ 1
PROLOG - ЯЗЫК РАЗРАБОТКИ 1
ИНТЕЛЛЕКТУАЛЬНЫХ И ЭКСПЕРТНЫХ СИСТЕМ 1
Хабаров С.П. 2
СОДЕРЖАНИЕ 3
1. ИСТОРИЯ РАЗВИТИЯ И СОВРЕМЕННОЕ СОСТОЯНИЕ ЯЗЫКА PROLOG 5
1.1. Тенденции в истории развития языка Prolog 5
1.2. Области применения языка Prolog 8
1.3. Современные реализации языка Prolog 11
2. ОСНОВЫ РАЗРАБОТКИ PROLOG-ПРОГРАММ 18
2.1. Общие сведения о языке Prolog 18
2.2. Понятие факта, правила, запроса и процедуры 20
2.3. Механизм сопоставления и поиска с возвратом 21
2.4. Основные элементы языка Prolog 23
3. СРЕДА РАЗРАБОТКИ ПРОГРАММ PIE И СИСТЕМА SWI-PROLOG 27
3.1. Основы работы в консоли Prolog 29
3.2. Основы работы с программными файлами 33
3.3. Справка и помощь в среде SWI-Prolog 41
3.4. Основы трассировки и отладки в среде PIE и SWI- Prolog 44
3.5. Графические интерфейсы на базе SWI-Prolog/XPCE 48
3.6. Загрузка и запуск программ SWI-Prolog'a 55
3.6.1. Использование ярлыков для запуска программ 58
3.6.2. Использование командных и скриптовых сценариев 62
4. СРЕДА РАЗРАБОТКИ TURBO-PROLOG 68
4.1. Структура программы на Turbo Prolog'e 69
Секция domains 71
Секция predicates 73
Секция clauses 74
Секция goal 75
Секция database 76
4.2. Оболочка системы Turbo Prolog 77
Опция меню "Редактировать" (Ред) 79
Опция меню "Выполнить" (Вып) 80
Опция меню "Компилировать" (Компил) 80
Опция меню "Файлы” 80
Опция меню "Установки" (Устан) 81
4.3. Отладка и трассировка программ 81
4.4. Работа с простейшими программами в Turbo Prolog'e 84
Загрузка системы Turbo Prolog, ввод и запуск программ 84
Работа с программой в режиме диалога 85
Трассировка программ в среде системы Turbo Prolog'a 87
Работа с программами, содержащими внутреннюю цель 89
Простейшая программа ввода-вывода данных 91
Компиляция программ. 92
4.5. Работа с графикой в Turbo Prolog'e 94
5. СРЕДА РАЗРАБОТКИ VISUAL PROLOG 97
5.1. Интегрированная среда разработки 97
5.2. Разработка консольного проекта 98
Этап создания проекта 98
Дерево проекта (Project Tree) 100
Этап разработки программного кода проекта 101
Этап компиляции и запуска проекта 104
5.3. Разработка GUI проекта на Visual Prolog'e 106
Создание нового GUI проекта 107
Добавление формы в пустой проект 109
Настройка главного меню проекта 112
Разработка экранной формы 117
Организация вычислительных процедур проекта 119
6. PROLOG — ЯЗЫК ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 121
6.1. Системы основанные на знаниях 121
6.2. Логические модели и логическое программирование 122
6.3. Простейшие конструкции языка предикатов 122
6.4. Предикатные формулы 123
6.5. Определение правильно построенной формулы 125
6.6. Логический вывод 126
6.6.1. Правило резолюции для простых предложений 127
6.6.2. Правило резолюции для сложных предложений 132
6.6.3. Простая резолюция сверху вниз 133
6.6.4. Общая резолюция сверху вниз 133
6.6.5. Унификаторы и примеры унификации 135
6.7. Решение задач и извлечение ответа 135
ПРИЛОЖЕНИЕ 137
Приложение 1. Запуск Turbo-Prolog в ОС Windows 7 137
Запуск DOSBox 138
Подключение русского языка 141
Дополнительные настройки DOSBox 142
Приложение 2. Служебные предикаты Турбо-Пролога 144
2. Предикаты преобразования данных 145
3. Предикаты работы с окнами. 146
4. Предикаты работы с файлами. 146
5. Предикаты управления экраном. 148
6. Предикаты обработки строк. 148
7. Предикаты работы с графикой. 149
8. Разные предикаты. 150
9. Правила вычисление атрибутов экрана. 151
Приложение 3. Пример программы построения дерева синтаксического анализа 153
Запись грамматических правил 153
Реализация грамматических правил на языке Prolog 154
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 158
ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ 159
PROLOG - ЯЗЫК РАЗРАБОТКИ 159
ИНТЕЛЛЕКТУАЛЬНЫХ И ЭКСПЕРТНЫХ СИСТЕМ 159
Выводим противоречие.
