
- •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 - агент поиска и выбора онтологий
3.3.2. Лингвистический аспект
Лингвистический (А2) аспект касается исследований языковых проблем, так как язык - это основное средство общения в процессе извлечения знаний. Сразу же следует оговорить, что поскольку тема данной книги ограничена изложением теории и технологии инженерии знаний, то область разработки естественно-языковых интерфейсов и весь спектр проблем, связанных с ней - лексических, синтаксических, семантических, прагматических и т. д. [Виноград, 1976; Мальковский, 1985; Попов, 1982], - не рассматривается.
В инженерии знаний можно выделить три слоя лингвистических проблем (рис. 3.11):
А2 = {S21, S22, S23} - {«общий код», понятийная структура, словарь пользователя}.
Рис. 3.11. Лингвистический аспект извлечения знаний
«Общий код» (S21)
«Общий код» решает проблему языковых ножниц между профессиональной терминологией эксперта и обыденной литературной речью инженера по знаниям и включает следующие компоненты:
S21 = {s21_i} = {общенаучная терминология; специальные понятия из профессиональной литературы; элементы бытового языка; неологизмы, сформированные за время совместной работы; профессиональный жаргон и др.}.
Детализация схемы общения (см. рис. 3.8) на рис. 3.11 позволяет представить средства общения как два потока [Горелов, 1987], в которых нас интересуют компоненты V1 и V2 - языки, на которых говорят аналитик и эксперт (V1', V2' - невербальные компоненты). Различие языков V1 и V2 и обусловливает «языковый барьер» или «языковые ножницы» в общении инженера по знаниям и эксперта.
Эти два языка являются отражением «внутренней речи» эксперта и аналитика, поскольку большинство психологов и лингвистов считают, что язык - это основное средство мышления наряду с другими знаковыми системами «внутреннего пользования» (универсальный семантический код - УСК [Мартынов, 1977], языки «смысла» [Мельчук, 1974], концептуальные языки [Шенк, 1980] и др.).
Язык аналитика V1 состоит из трех компонентов:
• s21_l — общенаучной терминологии из его «теоретического багажа»;
• s21_2 — терминов предметной области, которые он почерпнул из специальной литературы в период подготовки;
• s21_3 — бытового разговорного языка, которым пользуется аналитик.
Язык эксперта V2 включает:
• s21_l — общенаучную терминологию;
• s21_2 — специальную терминологию, принятую в предметной области;
• s21_3 — бытовой язык;
• s21_4 — неологизмы, созданные экспертом за время работы, то есть его профессиональный жаргон.
Если считать, что бытовой и общенаучный языки у двух участников общения примерно совпадают (хотя реально объем второго компонента у эксперта существенно больше), то некоторый общий язык или код, который необходимо выработать партнерам для успешного взаимодействия, будет складываться из потоков, представленных на рис. 3 12.
В дальнейшем этот общий код преобразуется в некоторую понятийную (семантическую) сеть, которая является прообразом поля знаний предметной области.
Выработка общего кода начинается с выписыванием аналитиком всех терминов, употребляемых экспертом, и уточнения их смысла. Фактически это составление словаря предметной области. Затем следует группирование терминов и выбор синонимов (слов, означающих одно и то же). Разработка общего кода заканчивается составлением словаря терминов предметной области с предварительной группировкой их по смыслу, то есть по понятийной близости (это уже первый шаг структурирования знаний).
На этом этапе аналитик должен с большим вниманием отнестись ко всем специальным терминам, пытаясь максимально вникнуть в суть решаемых проблем и терминологию. Освоение аналитиком языка предметной области - первый рубеж на подступах к созданию адекватной базы знаний.
Рис. 3.12. Структура общего кода
Рисунок 3.12 дает представление о процессе неоднозначности интерпретации терминов двумя специалистами. В семиотике, науке о знаковых системах, проблема интерпретации является одной из центральных. Интерпретация связывает «знак» и «означаемый предмет». Только в интерпретации знак получает смысл. Так, на рис. 3.13 слова «прибор X» для эксперта означает некоторую конкретную схему, которая соответствует схеме оригинала прибора, а в голове начинающего аналитика слова «прибор X» вызывают пустой образ или некоторый черный ящик с ручками.
Знак
Рис. 3.13. Неоднозначность интерпретации
Внимание к лингвистическому аспекту проблемы извлечения знаний способствует сближению образа 1 с образом 2 и интерпретации I1с интерпретацией I2, а слова «прибор X» перейдут в действительно «общий» код.
Таким образом, слой S21 включает изучение и управление процессом разработки специального промежуточного языка, необходимого для взаимодействия инженера по знаниям и эксперта.
Понятийная структура (S22)
Проблемы формирования понятийной структуры представляют следующий слой S22 лингвистического аспекта проблемы извлечения знаний. Особенности формирования понятийной структуры обусловлены установленным постулатом когнитивной психологии о взаимосвязи понятий в памяти человека и наличии семантической сети, объединяющей отдельные термины во фрагменты, фрагменты в сценарии и т. д. Построение иерархической сети понятий, так называемой «пирамиды знаний», - важнейшее звено в проектировании интеллектуальных систем.
Большинство специалистов по искусственному интеллекту и когнитивной психологии считают, что основная особенность естественного интеллекта и памяти в частности - это связанность всех понятий в некоторую сеть. Поэтому для разработки базы знаний и нужен не словарь, а «энциклопедия» [Шенк, Бирнбаум, Мей, 1989], в которой все термины объяснены в словарных статьях со ссылками на другие термины.
Таким образом, лингвистическая работа инженера по знаниям на данном слое проблем заключается в построении таких связанных фрагментов с помощью «сшивания» терминов. Фактически эта работа является подготовкой к этапу концептуализации, где это «шитье» (по Шенку - КОП, концептуальная организация памяти [Шенк, Хантер, 1987]) приобретает некоторый законченный вид.
При тщательный работе аналитика и эксперта в понятийных структурах начинает просматриваться иерархия понятий, подробно о которой будет говориться в параграфах 4.4. и 8.2. Такие структуры имеют важнейшее гносеологическое и дидактическое значение и последнее время для них используется специальный термин - онтологии. Следует заметить, что эта иерархическая организация хорошо согласуется с теорией универсального предметного кода (УПК) [Горелов, 1987; Жинкин, 1982], согласно которой при мышлении используются не языковые конструкции, а их коды в форме некоторых абстракций, что, в общем, согласуется с результатами когнитивной психологии [Величковский, 1982].
Иерархия абстракций - это глобальная схема, которая может быть положена в основу концептуального анализа структуры знаний любой предметной области. Лингвистический эквивалент иерархии - иерархия понятий, которую необходимо построить в понятийной структуре, формируемой инженером по знаниям (рис. 3.14).
Следует подчеркнуть, что работа по составлению словаря и понятийной структуры требует лингвистического «чутья», легкости манипулирования терминами и богатого словарного запаса инженера по знаниям, так как зачастую аналитик вынужден самостоятельно разрабатывать словарь признаков. Чем богаче и выразительнее получается общий код, тем более полнее база знаний.
Рис. 3.14. Пример иерархии
Аналитик вынужден все время помнить о трудности передачи образов и представлений в вербальной форме. Полезными тут оказываются свойства многозначности слов естественного языка. Часто инженеру по знаниям приходится подсказывать слова и выражения эксперту, и такие новые лексические конструкции оказываются полезными.
Способность к словесной интерпретации зависит и от пола аналитика (параметр s1_1). Установлено, что традиционно женщины придают большую значимость невербальным компонентам общения, а в вербальных имеют более обширный алфавит признаков. И вообще, существуют половые различия восприятия не только в бытовой сфере, что очевидно, но и в профессиональной. Следовательно, у эксперта-мужчины и у эксперта-женщины могут существенно отличаться алфавиты для вербализации признаков воспринимаемых объектов.
Словарь пользователя (S23)
Лингвистические результаты, соотнесенные к слоям общего кода и понятийной структуры, направлены на создание адекватной базы знаний. Однако часто профессиональный уровень конечного пользователя не позволяет ему применить специальный язык предметной области в полном объеме.
Неожиданными для начинающих разработчиков являются проблемы формирования отдельного словаря для создания дружественного интерфейса с пользователем ЭС, исследуемые в слое S23. Необходимы специальные приемы, увеличивающие «прозрачность» и доступность системы. Для разработки пользовательского интерфейса требуется дополнительная доработка словаря общего кода с поправкой на доступность и «прозрачность» системы.
Так, при разработке экспертной системы по психодиагностике АВТАНТЕСТ [Гаврилова, 1984] пришлось разработать два словаря терминов - один для психологов-профессионалов, второй - для неспециалистов (испытуемых). Поскольку результат психодиагностического тестирования всегда интересен испытуемому, ему выдается листинг с психологическим заключением на общелитературном языке без употребления специальных терминов. Интересно, что при внедрении системы использовался в основном этот второй словарь; даже профессиональные психологи предпочитали получать тексты на обыденном языке.