
- •1. Введение в интеллектуальные системы.................................................................7
- •2. Разработка систем, основанных на знаниях ........................................................36
- •3. Теоретические аспекты инженерии знаний..........................................................55
- •4. Технологии инженерии знаний.............................................................................. 95
- •5. Новые тенденции и прикладные аспекты
- •6. Программный инструментарий разработки систем, основанных на знаниях............................................................................................................................194
- •7. Пример разработки системы, основанной на знаниях ................................….226
- •8. Представление данных и знаний в Интернете...................................................257
- •9. Интеллектуальные Интернет-технологии..........................................................300
- •1. Введение в интеллектуальные системы
- •1.1. Краткая история искусственного интеллекта
- •1.1.1. Предыстория
- •1.1.2. Зарождение нейрокибернетики
- •1.1.3. От кибернетики «черного ящика» к ии
- •1.1.4. История искусственного интеллекта в России
- •1.2. Основные направления исследований в области искусственного интеллекта
- •1.2.1. Представление знаний и разработка систем, основанных на знаниях (knowledge-based systems)
- •1.2.2. Программное обеспечение систем ии (software engineering for Al)
- •1.2.3. Разработка естественно-языковых интерфейсов и машинный перевод (natural language processing)
- •1.2.4. Интеллектуальные роботы (robotics)
- •1.2.5. Обучение и самообучение (machine learning)
- •1.2.6. Распознавание образов (pattern recognition)
- •1.2.7. Новые архитектуры компьютеров (new hardware platforms and architectures)
- •1.2.8. Игры и машинное творчество
- •1.2.9. Другие направления
- •1.3. Представление знаний и вывод на знаниях
- •1.3.1. Данные и знания
- •1.3.2. Модели представления знаний
- •1.3.3. Вывод на знаниях
- •1.4. Нечеткие знания
- •1.4.1. Основы теории нечетких множеств
- •123456789 10 Рис. 1.7. Формирование нечетких множеств
- •1.4.2. Операции с нечеткими знаниями
- •1.5. Прикладные интеллектуальные системы
- •2. Разработка систем, основанных на знаниях
- •2.1. Введение в экспертные системы. Определение и структура
- •2.2. Классификация систем, основанных на знаниях
- •2.2.1. Классификация по решаемой задаче
- •2.2.2. Классификация по связи с реальным временем
- •2.2.3. Классификация по типу эвм
- •2.2.4. Классификация по степени интеграции с другими программами
- •2.3. Коллектив разработчиков
- •2.4. Технология проектирования и разработки
- •2.4.1. Проблемы разработки промышленных эс
- •2.4.2. Выбор подходящей проблемы
- •2.4.3. Технология быстрого прототипирования
- •2.4.4. Развитие прототипа до промышленной эс
- •2.4.5. Оценка системы
- •2.4.6. Стыковка системы
- •2.4.7. Поддержка системы
- •3. Теоретические аспекты инженерии знаний
- •3.1. Поле знаний
- •3.1.1. О языке описания поля знаний
- •3.1.2. Семиотическая модель поля знаний
- •3.1.3. «Пирамида» знаний
- •3.2. Стратегии получения знаний
- •3.3. Теоретические аспекты извлечения знаний
- •3.3.1. Психологический аспект
- •3.3.2. Лингвистический аспект
- •3.3.3. Гносеологический аспект извлечения знаний
- •3.4. Теоретические аспекты структурирования знаний
- •3.4.1. Историческая справка
- •3.4.2. Иерархический подход
- •3.4.3. Традиционные методологии структурирования
- •3.4.4. Объектно-структурный подход (осп)
- •4. Технологии инженерии знаний
- •4.1. Классификация методов практического извлечения знаний
- •4.2. Коммуникативные методы
- •4.2.1. Пассивные методы
- •4.2.2. Активные индивидуальные методы
- •4.2.3. Активные групповые методы
- •4.3. Текстологические методы
- •4.4. Простейшие методы структурирования
- •4.4.1. Алгоритм для «чайников»
- •4.4.2. Специальные методы структурирования
- •4.5. Состояние и перспективы автоматизированного приобретения знаний
- •4.5.1. Эволюция систем приобретения знаний
- •4.5.2. Современное состояние
- •4.6. Примеры методов и систем приобретения знаний
- •4.6.1. Автоматизированное структурированное интервью
- •4.6.2. Имитация консультаций
- •4.6.3. Интегрированные среды приобретения знаний
- •4.6.4. Приобретение знаний из текстов
- •5. Новые тенденции и прикладные аспекты инженерии знаний
- •5.1. Латентные структуры знаний и психосемантика
- •5.1.1. Семантические пространства
- •5.1.2. Методы многомерного шкалирования
- •5.1.3. Использование метафор для выявления «скрытых» структур знаний
- •5.2. Метод репертуарных решеток
- •5.2.1. Основные понятия
- •5.2.2. Методы выявления конструктов Метод минимального контекста
- •5.2.3. Анализ репертуарных решеток
- •5.2.4. Автоматизированные методы
- •5.3. Управление знаниями
- •5.3.1. Что такое «управление знаниями»
- •5.3.2. Управление знаниям и корпоративная память
- •5.3.3. Системы omis
- •5.3.4. Особенности разработки omis
- •5.4. Визуальное проектирование баз знаний как инструмент познания
- •5.4.1. От понятийных карт к семантическим сетям
- •5.4.2. База знаний как познавательный инструмент
- •5.5. Проектирование гипермедиа бд и адаптивных обучающих систем
- •5.5.1. Гипертекстовые системы
- •5.5.2. От мультимедиа к гипермедиа
- •5.5.3. На пути к адаптивным обучающим системам
- •6. Программный инструментарий разработки систем, основанных на знаниях
- •6.1. Технологии разработки программного обеспечения - цели, принципы, парадигмы
- •6.1.1. Основные понятия процесса разработки программного обеспечения (по)
- •6.1.2. Модели процесса разработки по
- •6.1.3. Инструментальные средства поддержки разработки систем по
- •6.2. Методологии создания и модели
- •6.3. Языки программирования для ии и языки представления знаний
- •6.4. Инструментальные пакеты для ии
- •6.5. WorkBench-системы
- •7. Пример разработки системы, основанной на знаниях
- •7.1. Продукционно-фреймовый япз pilot/2
- •7.1.1. Структура пилот-программ и управление выводом
- •7.1.2. Декларативное представление данных и знаний
- •7.1.3. Процедурные средства языка
- •7.2. Психодиагностика – пример предметной области для построения экспертных систем
- •7.2.1. Особенности предметной области
- •7.2.2. Батарея психодиагностических эс «Ориентир»
- •7.3. Разработка и реализация
- •7.3.1. Архитектура системы и ее база знаний
- •7.3.2. Общение с пользователем и опрос испытуемых
- •7.3.3. Вывод портретов и генерация их текстовых представлений
- •7.3.4. Помощь и объяснения в эс «Cattell»
- •8. Представление данных и знаний в Интернете
- •8.1. Язык html и представление знаний 8.1.1. Историческая справка
- •8.1.2. Html - язык гипертекстовой разметки Интернет-документов
- •8.1.3. Возможности представления знаний на базе языка html
- •8.2. Онтологии и онтологические системы
- •8.2.1. Основные определения
- •8.2.2. Модели онтологии и онтологической системы
- •8.2.3. Методологии создания и «жизненный цикл» онтологий
- •8.2.4. Примеры онтологий
- •8.3. Системы и средства представления онтологических знаний
- •8.3.1. Основные подходы
- •8.3.2. Инициатива (ка)2 и инструментарий Ontobroker
- •Средства спецификации онтологий в проекте Ontobroker
- •Формализм запросов
- •Формализм представления и машина вывода
- •Аннотация Web-страниц онтологической информацией
- •8.3.3. Проект shoe - спецификация онтологий и инструментарий Общая характеристика проекта
- •Спецификации онтологий и инструментарий shoe
- •Формализм представления и машина вывода
- •Аннотация Web-документов на базе онтологии
- •Формализм запросов
- •8.3.4. Другие подходы и тенденции
- •9. Интеллектуальные Интернет-технологии
- •9.1. Программные агенты и мультиагентные системы
- •9.1.1. Историческая справка
- •9.1.2. Основные понятия
- •9.2. Проектирование и реализация агентов и мультиагентных систем
- •9.2.1. Общие вопросы проектирования агентов и mac
- •9.2.2. Инструментарий AgentBuilder
- •9.2.3. Система Bee-gent
- •9.3. Информационный поиск в среде Интернет
- •9.3.1. Машины поиска
- •9.3.2. Неспециализированные и специализированные поисковые агенты
- •9.3.3. Системы интеллектуальных поисковых агентов
- •Autonomy и Web compass - системы интеллектуального поиска и обработки информации
- •Проект системы marri
- •Прототип системы OntoSeek
- •(Onto)2 - агент поиска и выбора онтологий
Прототип системы OntoSeek
Разработка и реализация прототипа системы «содержательного» доступа к WWW-ресурсам OntoSeek - результат 2-летней работы, выполненной в кооперации Corinto (Consorzio di Ricerca Nazionale Tecnologia Oggetti - National Research Consortium for Object Technology) и Ladseb-CNR (National Research Council - Institute of Systems Science and Biomedical Engineering), как части проекта по поиску и повторному использованию программных компонентов [Guarino, et al., 1999].
Система OntoSeek разработана для содержательного извлечения информации из доступных в режиме on-line «желтых» страниц (yellow pages) и каталогов. В рамках системы совместно используются механизмы поиска по содержанию, управляемые соответствующей онтологией (ontology-driven content-matching mechanism), и достаточно мощный формализм представления.
При создании OntoSeek были приняты следующие проектные решения:
• использование ограниченного числа ЕЯ-терминов для точного описания ресурсов на фазе кодирования;
• полная «терминологическая свобода» в запросах за счет управляемого онтологией семантического отображения их на описания ресурсов;
• интерактивное ассистирование пользователю в процессе формулировки запроса, его обобщения и/или конкретизации, а также приняты во внимание:
♦ текущее состояние исследований в области Интернет-архитектур;
♦ необходимость достижения высокой точности и приемлемой эффективности на больших массивах данных;
♦ важность хорошей масштабируемости и портабельности принимаемых решений.
Система работает как с гомогенными, так и с гетерогенными каталогами продуктов. Понятно, что второй вариант сложнее. Поэтому в системе OntoSeek для представления запросов и описания ресурсов используется модификация простых концептуальных графов Дж. Совы [Sowa, 1984], которые обладают существенно более мощными выразительными возможностями и гибкостью по сравнению с обычно используемыми списками типа «атрибут-значение». Для концептуальных графов проблема контекстного отождествления редуцируется до управляемого онтологией поиска в графе. При этом узлы и дуги сопоставимы, если онтология «показывает», что между ними существует заданное отношение. Вместе с тем, поскольку система базируется на использовании лингвистической онтологии, узлы концептуального графа должны быть привязаны к соответствующим лексическим единицам, причем для этого должны выполняться определенные семантические ограничения.
На этапе планирования проекта вместо разработки собственной лингвистической онтологии были проанализированы доступные Интернет-ресурсы и выбрана онтология Sensus [Knight et al., 1994], которая обладает простой таксономической структурой, имеет объем около 50 000 узлов, в основном выделенных из тезауруса WordNet [Beckwith et al., 1990], а также доступна для исследовательских целей в свободном режиме.
Функциональная структура системы OntoSeek представлена на рис. 9.10.
На фазе кодирования описание ресурсов конвертируется в концептуальный граф. Для этого «поверхностные» узлы и дуги, отмеченные пользователем, с помощью лексического интерфейса трансформируются в смыслы, заданные в словаре. Таким образом, «граф слов» транслируется в «граф смыслов», причем каждому понятию последнего сопоставляется соответствующий узел онтологии. После семантической валидации концептуального графа на основе использования онтологии он запоминается в БД.
Рис. 9.10. Функциональная структура системы OntoSeek
Наиболее интересным моментом этапа кодирования ресурсов в системе OntoSeek является формализм представления помеченных концептуальных графов (ПКГ), который базируется на том, что заданы словари существительных и глаголов, а собственно ПКГ определяется как связный ориентированный граф, удовлетворяющий следующим синтаксическим ограничениям:
• Дуги могут быть помечены только существительными из словаря (любой граф, содержащий дугу, помеченную транзитивной конструкцией вида [<URLl>man] → (love) → [women], может быть конвертирован в базисный ПКГ вида [<URLl>man] ← (agent) ← [love] → (patient) → [women]).
• В общем случае узлы помечаются строками вида concept [instance], где concept существительное или глагол из словаря, а необязательная ссылка: instance - управляющий идентификатор.
• Для каждого графа существует в точности один узел, называемый «головой». Этот узел маркируется URL в угловых скобках, идентифицирующим файл описания ресурса, который описывает данный граф, и маркерной строки, представляющей понятие онтологии.
Понятно, что прежде, чем использовать этот граф, должна быть устранена полисемия, что может позволить однозначно отразить существующие метки в понятия онтологии. После выполнения этой процедуры семантическая интерпретация ПКГ происходит следующим образом:
• каждый узел, помеченный «словом» А, представляет класс экземпляров соответствующего концепта. При наличии в описании идентификатора экземпляра узел определяет синглетон, содержащий этот экземпляр. Если А - глагол, узел фиксирует его номинализацию (например, узел с пометкой «love» определяет класс событий «любить»);
• каждая дуга с пометкой С из узла А в узел В определяет соответствующее непустое отношение;
• в целом граф с «головой» А и URL U определяют класс экземпляров А, описываемых ресурсом, помеченным U.
Процесс поиска осуществляется следующим образом. Пользователь представляет свой запрос тоже в виде концептуального графа, который после устранения лексической неоднозначности и семантической валидации передается компоненте отождествления, работающей с БД. Здесь ищутся графы, удовлетворяющие запросу и ограничениям, заданным в онтологии, после чего ответ представляется пользователю в виде HTML-отчета.
Семантика графа запроса и процедура его построения аналогичны рассмотренной выше процедуре кодирования ресурсов, но имеет следующие отличия:
• на месте URL может быть задана переменная;
• переменными может быть помечено произвольное число узлов.
Так, например, запрос вида [<Х> саr] → (part) → [radio] вернет множество URL на документы, описывающие автомобили с радиоприемниками в качестве части, а запрос вида [саr] → (part) → [<Х> radio] - множество URL на документы, описывающие радиоприемник как часть автомобиля. И более того, композиция этих запросов вида [<Х> саr] → (part) → [<Y> radio] может быть использована для получения документов обоих типов.
Таким образом, предполагается, что граф запроса Q отождествляется с графом описания ресурса R, если:
• Q изоморфен подграфу графа R;
• пометки графа R соответствуют пометкам графа Q;
• «голова» графа R соответствует узлу, помеченному переменной в графе Q.
Последнее условие необходимо, если мы хотим «сосредоточиться» на ресурсах, соответствующих запросу в точности.
Реализация системы OntoSeek выполнена в парадигме «клиент-сервер». Архитектурным ядром ее является сервер онтологий, обеспечивающий для приложений интерфейсы доступа и/или манипулирования данными модели онтологии, а также поддержки БД концептуальных графов. Заметим, что последняя может строиться и пополняться не только в интерактивном режиме, но и за счет скомпилированных описаний ПКГ, представленных на языке XML. Компонента БД в системе OntoSeek выделена в отдельный блок, что позволяет легко заменить при необходимости используемую СУБД.
Проект начался зимой 1996 г. - на заре эры языка Java. Поэтому прототип был реализован на языке C++. В настоящее время авторы предполагают провести реинжиниринг системы на основе использования новейших Интернет-технологий.
Таким образом, использование онтологий для интеллектуальной работы с Интернет-ресурсами является в настоящее время «горячей» точкой исследований и практических применений.
Специалистам в этой области хорошо известны Интернет-сайты организаций и проектов, связанных с созданием и использованием онтологий, но даже у них при выборе онтологии, «подходящей» для конкретного приложения, возникают определенные проблемы. Основные из них: отсутствие стандартного набора свойств, характеризующих онтологию с точки зрения ее пользователя; уникальность логической структуры представления релевантной информации на каждом «онтологическом» сайте; высокая трудоемкость поиска подходящей онтологии.
Учитывая вышесказанное, в заключение данного параграфа рассмотрим пример интеллектуального агента, который демонстрирует онтологический подход к поиску на Web и выбору для использования собственно онтологий.