СРЕДА CLIPS
Санкт-Петербург «БХВ-Петербург»
УДК 681.3.06 ББК 32.813 Ч-25
Книга является одним из первых российских изданий по практической разработке экспертных систем. Подробно рассмотрены вопросы домашинного этапа разработки – извлечения и структурирования знаний, а также технологические аспекты разработки систем, основанных на знаниях. В качестве среды разработки экспертных систем описана среда CLIPS. Книга содержит достаточное количество справочной информации по CLIPS, что позволяет рекомендовать ее даже опытным программистам, которые в своей практической деятельности занимаются разработкой экспертных систем. Для студентов вузов, инженеров по знаниям, программистов, проектировщиков эксепртных систем. Содержание Введение……………………………………………………………………………….. 8
ЧАСТЬ I. ЭКСПЕРТНЫЕ СИСТЕМЫ…………………………………………… 10 Глава 1. Системы, основанные на знаниях....................................................................... 11 1.1. Знания и данные..................................................................................................... 11 1.2. Модели представления знаний.......................................................................... 13 1.2.1. Продукционная модель.............................................................................................. 14 1.2.2. Семантические сети.................................................................................................... 14 1.2.3. Фреймы........................................................................................................................... 15 1.2.4. Формальные логические модели............................................................................. 17 1.3. Вывод на знаниях................................................................................................................... 17 1.3.1. Управление выводом................................................................................................... 19 1.3.2. Методы поиска в глубину и в ширину................................................................... 20 1.4. Работа с нечеткостью............................................................................................................ 21 1.4.1. Основы теории нечетких множеств......................................................................... 21 1.4.2. Операции с нечеткими знаниями............................................................................. 23 1.5. Архитектура и особенности экспертных систем........................................................... 24 1.6. Классификация экспертных систем.................................................................................. 28 1.6.1. Классификация по решаемой задаче..................................................................... 28 1.6.2. Классификация по связи с реальным временем................................................... 30 1.6.3. Классификация по типу ЭВМ................................................................................... 30 1.6.4. Классификация по степени интеграции с другими программами.................. 30 1.7. Разработка экспертных систем.......................................................................................... 30 1.7.1. Выбор подходящей проблемы................................................................................. 31 1.7.2. Разработка прототипа................................................................................................ 32 Идентификация проблемы........................................................................................ 33 Извлечение знаний...................................................................................................... 33 Структурирование или концептуализация знаний............................................ 34 Формализация знаний................................................................................................ 34 Программная реализация.......................................................................................... 34 Тестирование................................................................................................................ 35 1.7.3. Развитие прототипа до промышленной ЭС......................................................... 35 1.7.4. Оценка системы............................................................................................................ 36 1.7.5. Стыковка системы....................................................................................................... 36 1.7.6. Поддержка системы.................................................................................................... 37 1.8. Человеческий фактор при разработке ЭС....................................................................... 37 1.8.1. Пользователь................................................................................................................ 38 1.8.2. Эксперт........................................................................................................................... 38 1.8.3. Программист................................................................................................................. 39 1.8.4. Инженер по знаниям................................................................................................... 39 Глава 2. Введение в инженерию знаний............................................................................. 41 2.1. Определение и структура инженерии знаний................................................................ 41 2.1.1. Поле знаний................................................................................................................... 41 2.1.2. "Пирамида" знаний...................................................................................................... 44 2.2. Стратегии получения знаний..................................................................................... 44 2.3. Теоретико-методические аспекты извлечения и структурирования знаний 47 2.3.1. Психологический аспект............................................................................................ 47 Контактный слой......................................................................................................... 49 Процедурный слой...................................................................................................... 49 Когнитивный слой....................................................................................................... 51 2.3.2. Лингвистический аспект............................................................................................ 52 "Общий код"................................................................................................................... 53 Понятийная структура............................................................................................... 55 Словарь пользователя................................................................................................ 56 2.3.3. Гносеологический аспект.......................................................................................... 56 Внутренняя согласованность................................................................................... 57 Системность.................................................................................................................. 57 Объективность.............................................................................................................. 57 Историзм........................................................................................................................ 57 Методология процесса получения нового знания............................................. 58 2.4. Методы практического извлечения знаний.................................................................... 60 2.5. Практикум по инженерии знаний....................................................................................... 62 2.5.1. Текстологические методы......................................................................................... 62 Понимание текста....................................................................................................... 63 Смысловая структура текста................................................................................. 64 Алгоритм извлечения знаний из текста............................................................... 65 2.5.2. Коммуникативные методы...................................................................................... 65 Пассивные методы.................................................................................................... 65 Активные индивидуальные методы..................................................................... 68 Активные групповые методы................................................................................. 71 Экспертные игры....................................................................................................... 73 2.6. Методы структурирования и формализации.............................................................. 76 2.6.1. Теоретические предпосылки.................................................................................. 76 2.6.2. Объектно-структурный подход (ОСП)................................................................. 78 Стратификация знаний............................................................................................ 79 Алгоритм ОСА (объектно-структурного анализа)........................................... 80 2.6.3. Практические методы структурирования........................................................... 81 Алгоритм для "чайников"........................................................................................ 81 Методы выявления объектов, понятий и их атрибутов.................................. 82 Методы выявления связей между понятиями.................................................... 84 Методы выделения метапонятий и детализация понятий (пирамида знаний).................................................................................................... 84 Методы определения отношений......................................................................... 85 Визуальное структурирование............................................................................. 85 ЧАСТЬ II. ОБЩИЕ ПОНЯТИЯ............................................................................................. 88 Глава 3. Что такое CLIPS?...................................................................................................... 89 3.1. История создания CLIPS..................................................................................................... 89 3.2. Работа с CLIPS...................................................................................................................... 91 3.3. Синтаксис определений...................................................................................................... 93 Глава 4. Обзор возможностей CLIPS................................................................................... 95 4.1. Основные элементы языка.................................................................................................. 95 4.1.1. Типы данных................................................................................................................ 95 4.1.2. Функции......................................................................................................................... 97 4.1.3. Конструкторы.............................................................................................................. 98 4.2. Абстракции данных............................................................................................................. 98 4.2.1. Факты............................................................................................................................. 98 Упорядоченные факты.............................................................................................. 99 Неупорядоченные факты......................................................................................... 99 Инициализация фактов............................................................................................. 100 4.2.2. Объекты......................................................................................................................... 100 Инициализация объектов......................................................................................... 101 4.2.3. Глобальные переменные.......................................................................................... 101 4.3. Представление знаний......................................................................................................... 101 4.3.1. Эвристические знания............................................................................................... 102 4.3.2. Процедурные знания................................................................................................. 102 Функции......................................................................................................................... 102 Родовые функции........................................................................................................ 103 Обработчики сообщений......................................................................................... 103 Модули.......................................................................................................................... 103 4.4. Объектно-ориентированные возможности CLIPS....................................................... 103 4.4.1. Отличия COOL от других объектно-ориентированных языков.................... 103 4.4.2. Основные возможности ООП................................................................................... 104 4.4.3. Запросы и наборы объектов.................................................................................... 104 ЧАСТЬ III. ОСНОВНЫЕ КОНСТРУКЦИИ CLIPS........................................................ 105 Глава 5. Факты............................................................................................................................ 106 5.1. Факты в CLIPS....................................................................................................................... 106 5.2. Работа с фактами.................................................................................................................. 107 5.2.1. Конструктор deftemplate........................................................................................... 108 5.2.2. Конструктор deffacts.................................................................................................. 113 5.2.3. Функция assert.............................................................................................................. 115 5.2.4. Функция retract............................................................................................................ 117 5.2.5. Функция modify............................................................................................................ 118 5.2.6. Функция duplicate....................................................................................................... 120 5.2.7. Функция assert-string.................................................................................................. 121 5.2.8. Функция fact-existp...................................................................................................... 121 5.2.9. Функции для работы с неупорядоченными фактами........................................ 122 5.2.10. Функции сохранения и загрузки списка фактов.............................................. 124 Глава 6. Правила....................................................................................................................... 126 6.1. Создание правил. Конструктор defrule................................................................. 126 6.2. Основной цикл выполнения правил........................................................................ 129 6.3. Свойства правил.......................................................................................................... 130 6.3.1. Свойство salience....................................................................................................... 130 6.3.2. Свойство auto-focus................................................................................................... 130 6.4. Стратегия разрешения конфликтов................................................................................. 131 6.4.1. Стратегия глубины................................................................................................... 131 6.4.2. Стратегия ширины.................................................................................................... 131 6.4.3. Стратегия упрощения.............................................................................................. 131 6.4.4. Стратегия усложнения............................................................................................. 132 6.4.5. Стратегия LEX............................................................................................................ 132 6.4.6. Стратегия МЕА.......................................................................................................... 133 6.4.7. Случайная стратегия................................................................................................ 133 6.5. Синтаксис LHS правила..................................................................................................... 133 6.5.1. Образец (pattern СЕ).................................................................................................. 134 Символьные ограничения........................................................................................ 135 Групповые символы для простых и составных полей.................................... 136 Переменные, связанные с простыми и составными полями.......................... 138 Связывающие ограничения..................................................................................... 140 Предикатные ограничения...................................................................................... 141 Ограничения, возвращающие значения.............................................................. 142 Сопоставление образцов с объектами................................................................. 142 Адрес образца............................................................................................................. 143 6.5.2. Условный элемент test.............................................................................................. 144 6.5.3. Условный элемент or................................................................................................. 145 6.5.4. Условный элемент and.............................................................................................. 145 6.5.5. Условный элемент not............................................................................................... 146 6.5.6. Условный элемент exists........................................................................................... 148 6.5.7. Условный элемент forall.......................................................................................... 149 6.5.8. Условный элемент logical........................................................................................ 150 6.5.9. Автоматическое добавление и перегруппировка условных элементов..... 152 Безусловные правила............................................................................................... 153 Использование элементов test и not перед and................................................. 153 Использование элемента not перед test............................................................... 154 Использование элемента not перед or................................................................. 154 Замечания об автоматическом добавлении и перегруппировке условных элементов................................................................................................. 155 6.6. Команды и функции для работы с правилами............................................................ 155 6.6.1. Просмотр и удаление существующих правил.................................................. 155 6.6.2. Сохранение правил.................................................................................................. 157 6.6.3. Запуск и остановка программы............................................................................. 158 6.6.4. Просмотр плана решения задачи......................................................................... 160 6.6.5. Просмотр данных, способных активировать правило................................... 132 Глава 7. Глобальные переменные...................................................................................... 164 7.1. Конструктор defglobal и функции для работы с глобальными переменными... 164
Глава 8. Функции...................................................................................................................... 169 8.1. Конструктор deffunction и способы работы с внешними функциями................... 169 Глава 9. Разработка экспертной системы AutoExpert................................................. 173 9.1. Исходные данные................................................................................................................. 173 9.2. Сущности................................................................................................................................ 174 9.3. Сбор информации................................................................................................................ 175 9.4. Диагностические правила................................................................................................. 176 9.5. Последние штрихи............................................................................................................... 179 9.6. Листинг программы............................................................................................................. 180 9.7. Запуск программы............................................................................................................... 186 ЧАСТЬ IV. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ CLIPS................................... 190 Глава 10. Родовые функции.................................................................................................. 191 10.1. Замечание относительно термина "метод"................................................................. 191 10.2. Рекомендации по использованию родовых функций............................................... 191 10.3. Создание родовой функции............................................................................................. 192 10.3.1. Заголовок родовой функции............................................................................... 193 10.3.2. Индексы методов................................................................................................... 193 10.3.3. Ограничения параметров метода..................................................................... 193 10.3.4. Групповой параметр............................................................................................ 194 10.4. Родовое связывание........................................................................................................... 195 10.4.1. Применимость методов........................................................................................ 195 10.4.2. Приоритет методов............................................................................................... 196 10.4.3. Скрытые методы.................................................................................................... 198 10.4.4. Ошибки выполнения метода............................................................................... 198 10.4.5. Значение, возвращаемое родовой функцией................................................. 198 10.5. Визуальные инструменты для работы с родовыми функциями............................ 199 Глава 11. Объектно-ориентированный язык CLIPS................................................... 203 11.1. Предопределенные системные классы........................................................................ 203 11.2. Конструктор defclass......................................................................................................... 204 11.2.1. Множественное наследование.......................................................................... 205 11.2.2. Абстрактные и конкретные классы.................................................................. 207 11.2.3. Активные и неактивные классы......................................................................... 208 11.2.4. Слоты класса.......................................................................................................... 209 Тип слота................................................................................................................. 209 Грани значений по умолчанию......................................................................... 209 Грань хранения...................................................................................................... 211 Грани доступа........................................................................................................ 212 Грань распространения при наследовании.................................................. 213 Грань источника................................................................................................... 214 Грань активности при сопоставлении образцов......................................... 215 Грань видимости................................................................................................... 216 Грань акцессоров.................................................................................................. 216 Грань переопределения сообщений................................................................ 218 Грань ограничений............................................................................................... 219 Объявление обработчиков сообщений........................................................... 219 11.3. Конструктор defmessage-handler................................................................................... 220 11.3.1. Параметры обработчиков сообщений............................................................ 222 11.3.2. Действия обработчиков сообщений................................................................. 223 11.3.3. Системные обработчики сообщений............................................................... 225 Инициализация объекта...................................................................................... 226 Удаление объекта................................................................................................. 227 Отображение объекта.......................................................................................... 227 Изменение объекта................................................................................................ 228 Копирование объекта.......................................................................................... 228 11.4. Диспетчеризация сообщений.......................................................................................... 229 11.5. Работа с объектами........................................................................................................... 230 11.5.1. Создание объекта.................................................................................................. 231 Конструктор definstances.................................................................................... 232 11.5.2. Переинициализация существующих объектов.............................................. 234 11.5.3. Чтение значений слотов....................................................................................... 235 11.5.4. Установка значений слотов................................................................................ 236 11.5.5. Удаление объектов................................................................................................ 237 11.5.6. Задержка сопоставления образцов при работе с объектами.................... 238 11.5.7. Изменение объектов............................................................................................... 238 11.5.8. Дублирование объектов....................................................................................... 239 11.6. Наборы объектов................................................................................................................ 240 11.6.1. Определение набора объектов.......................................................................... 241 11.6.2. Создание набора объектов................................................................................. 242 11.6.3. Определение запроса........................................................................................... 243 11.6.4. Определение действий......................................................................................... 243 11.6.5. Функции-запросы.................................................................................................. 244 Глава 12. Модули....................................................................................................................... 248 12.1. Создание модулей............................................................................................................. 248 12.2. Определения модулей в конструкторах...................................................................... 249 12.3. Использование модулей в командах и функциях...................................................... 250 12.4. Импорт и экспорт конструкций...................................................................................... 251 12.5. Импорт и экспорт фактов и объектов........................................................................... 253 12.6. Модули и выполнение правил........................................................................................ 254 Глава 13. Ограничения........................................................................................................... 255 13.1. Атрибут типа....................................................................................................................... 255 13.2. Константный атрибут....................................................................................................... 256 13.3. Атрибут диапазона............................................................................................................ 256 13.4. Атрибут мощности............................................................................................................. 257 13.5. Получение значений по умолчанию с помощью атрибутов ограничений........ 257 13.6. Примеры нарушения ограничений................................................................................ 258 Глава 14. Разработка экспертной системы CIOS.......................................................... 261 14.1. Постановка задачи............................................................................................................ 261 14.2. Алгоритм решения задачи............................................................................................... 264 14.3. Представление логических элементов......................................................................... 264 14.4. Связь логических элементов........................................................................................... 269 14.5. Дополнительные функции и переменные.................................................................... 270 14.6. Реализация правил экспертной системы..................................................................... 271 14.7. Листинг программы........................................................................................................... 273 14.8. Тестирование системы...................................................................................................... 280 14.9. Запуск программы............................................................................................................. 283 ЧАСТЬ V. ФУНКЦИИ И КОМАНДЫ CLIPS................................................................... 287 Глава 15. Основные функции CLIPS................................................................................. 288 15.1. Логические функции.......................................................................................................... 288 15.2. Математические функции................................................................................................ 291 15.3. Функции работы со строками......................................................................................... 295 15.4. Функции работы с составными величинами.............................................................. 301 15.5. Функции ввода/вывода..................................................................................................... 307 15.6. Процедурные функции...................................................................................................... 311 15.7. Работа с родовыми функциями...................................................................................... 318 15.8. Объектно-ориентированные функции.......................................................................... 322 15.9. Вспомогательные функции.............................................................................................. 334 Глава 16. Основные команды CLIPS................................................................................. 336 16.1. Управление интерактивной средой.............................................................................. 336 16.2. Работа с конструкторами deftemplate.......................................................................... 340 16.3. Работа с фактами............................................................................................................... 342 16.4. Работа с конструкторами deffacts................................................................................. 343 16.5. Работа с правилами.......................................................................................................... 344 16.6. Работа с планом решения задачи.................................................................................. 346 16.7. Работа с глобальными переменными........................................................................... 349 16.8. Работа с конструкторами deffunction.......................................................................... 350 16.9. Работа с родовыми функциями...................................................................................... 351 16.10. Работа с классами и объектами................................................................................... 353 16.11. Работа с конструкторами defmodule.......................................................................... 360 16.12. Профилирование и отладка.......................................................................................... 361 16.13. Управление памятью...................................................................................................... 365 ЧАСТЬ VI. ПРИЛОЖЕНИЯ.................................................................................................. 367 Приложение 1. Основные БНФ-определения................................................................. 368 Приложение 2. Список основных сообщений об ошибках системы CLIPS....... 376 Приложение 3. Список основных предупреждений системы CLIPS..................... 384 Приложение 4. Зарезервированные имена CLIPS........................................................ 385 Приложение 5. Глоссарий...................................................................................................... 389
|