
- •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 - агент поиска и выбора онтологий
8. Представление данных и знаний в Интернете
□ Язык HTML и представление знаний
□ Онтологии и онтологические системы
□ Системы и средства представления онтологических знаний
8.1. Язык html и представление знаний 8.1.1. Историческая справка
Очевидно, что для представления информации в среде Интернет нужен был язык, который бы был «понимаем» всеми компьютерами в сети и вместе с тем обеспечивал бы достаточные выразительные средства для удобного описания разных типов документов. Таким языком публикаций для WWW и стал HTML (Hyper-Text Markup Language) [WAI, 1999]. Этот язык предоставляет авторам Интернет-публикаций средства:
• представления документов, включающих заголовки, тексты, таблицы, списки, «картинки» и т. п. элементы;
• осуществления навигации по отдельным документам и множеству документов путем использования гиперссылок;
• конструирования диалоговых форм для взаимодействия с удаленными сервисами, доступными в сети, а также:
• включения в документы вычисляемых форм (spread-sheets), видео и звука, равно как и разнообразных приложений.
HTML - «авторский» язык. Первая его версия была разработана Т. Бернерс-Ли (Tim Berners-Lee) из Европейского Центра ядерных исследований (CERN). Активно поддерживался этот язык компанией NCSA, где был реализован один из первых Web-броузеров - Mosaic. Победное шествие HTML по Интернету все 90-е годы объясняется, в первую очередь, взрывным ростом Web и потребностями в единообразном представлении информации. За это время язык претерпел существенные изменения. И уже к середине 90-х годов произошла стандартизация его версий, которая стала курироваться международными организациями.
Версия HTML 2.0 (ноябрь 1995 г.) была разработана под эгидой Internet Engineering Task Force (IETF) для фиксации уже сложившейся практики использования этого языка до 1994 г. включительно [Berners-Lee et al., 1995]. В версиях HTML+ (1993 г.) и HTML 3.0 (1995 г.) описательные возможности языка были существенно расширены. Практика использования новых конструкций усилиями World Wide Web Consortium's (W3C) HTML Working Group была зафиксирована в HTML 3.2 (январь 1997 г.) [Raggett, 1997]. В настоящее время наиболее развитой является версия языка HTML 4.0 [HTML 4, 1998], в которой представлены новые возможности аппаратуры и требования производителей программного обеспечения броузеров, а также пожелания Интернет-авторов.
8.1.2. Html - язык гипертекстовой разметки Интернет-документов
Целью настоящей главы в целом и данного параграфа в частности, безусловно, не является описание языка HTML или изложение приемов создания Интернет-документов с использованием этого языка. Для этого в настоящее время имеется достаточное число книг, пособий и Интернет-сайтов, в том числе и русскоязычных (например, http://www.citforum.ru/). Вместе с тем для обсуждения возможностей HTML по представлению в Интернет знаний, а не данных основные понятия этого языка нам потребуются. Вот почему ниже приводится краткое описание структуры HTML-текстов и некоторых основных конструкций самого языка.
HTML - язык разметки Интернет-документов с помощью специальных конструкций, называемых тегами (tag). Для выделения тегов в HTML-текстах эти конструкции берутся в угловые скобки. Различают теги «открытия» размечаемого фрагмента (они задаются ключевым словом и, быть может, множеством допустимых параметров) и теги его «закрытия» (такие теги суть то же ключевое слово, которому предшествует символ «/»). В отличие от начальных конечные теги параметров не имеют. Некоторые из начальных тегов не имеют парных конечных. Регистр, в котором представлены ключевые слова тегов и их параметров, роли не играет. Пожалуй, этими соглашениями и исчерпываются основные правила, которым следуют все спецификации языка HTML. Отметим лишь, что полное и строгое его описание базируется на специальной системе спецификации языков разметки SGML [Goldfarb, 1991], одним из примеров использования которой и является HTML.
Общая структура HTML-документа может быть представлена следующим форматом:
< ! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>Наименование документа</ TITLE >
<МЕТА name=keywords content="Пpeдcтaвлeниe знаний,
мультиагентные системы">
</HEAD>
<BODY>
Собственно текст документа
</ BODY >
</HTML>
Как следует из приведенного формата, комментарий <!DOCTYPE ...> фиксирует текущее состояние спецификации версии языка HTML. Кроме того, в HTML-документе выделяются две основные структурные единицы - «голова» документа (между тегами <HEAD> и </HEAD>) и его «тело» (между тегами <BODY> и </BODY>).
Один из элементов головы документа - это заголовок - произвольный текст между тегами < TITLE > и </TITLE >. Не менее, а быть может и более важным элементом головы документа является тег <МЕТА...>. В приведенном выше примере этот тег с помощью параметров name и content фиксирует значение первого атрибута как keywords, а второго - как ключевые слова «Представление знаний» и «Мультиагентные системы». Этот и некоторые другие теги типа <МЕТА ... > ориентированы на аннотирование Интернет-документов и, кроме того, существенно облегчают задачу индексирования их, например, с помощью сетевых роботов.
Собственно содержание документа находится в теле. Как правило, оно состоит из последовательности структурных единиц, базисными среди которых являются заголовки разного уровня (текст, заключенный между тегами <Hi> и </Hi>) и параграфы - текст между тегами <Р> и </Р>. По существу, это минимальные средства форматирования Интернет-документов. Естественно, что в HTML, особенно в его последней версии HTML 4.0, такие средства значительно богаче. Здесь и всевозможные выравнивания, и табуляция, и несколько типов списков, и т. д. Но более важными базовыми конструкциями языка HTML, которые, собственно, и дают основание ввести в его название термин «гипертекст», являются якоря (anchors).
Синтаксически эти конструкции представлены тегами <А> и </А> с атрибутами NAME и HREF.
Собственно якорем является конструкция вида
<А МАМЕ="Метка">текст</А>,
которая обеспечивает уникальное (в пределах документа) имя начала определенного фрагмента HTML-текста. При этом текст, заключенный между тегами <А> и </А>, как правило, задает семантически значимое наименование заголовка.
Для ссылок на помеченные таким образом части Интернет-документа используются конструкции
<А HREF="#Meткa">Текст</A> или <А HREF=,,URL">Текст</A>.
Первая из них задает локальную ссылку на часть документа, начинающуюся с указанной метки. Вторая - глобальную ссылку на документ в сети, однозначно идентифицируемый с помощью URL (Unified Resource Locator). По существу, URL - это Интернет-адрес: имя домена, уточненное названием протокола и собственное имя документа, включая путь к нему в пределах данного домена. В качестве примера URL можно привести следующую ссылку вида http://www. anywhere.ru/any what.html.
Использование в Интернет-публикациях ссылок позволяет организовать логическое структурирование информации и обеспечивает удобную и единообразную навигацию как в пределах одного документа, так и в целом по множеству документов, которые, по мнению автора данного HTML-текста, связаны между собой.
Важными конструкциями HTML, особенно в его последней версии, являются также таблицы с богатыми возможностями задания многоуровневых заголовков и формы, с помощью которых в язык введены средства обеспечения диалога с читателями Интернет-документов. Базисными конструкциями форм являются редактируемые текстовые поля, элементы выбора, кнопки и т. п.
Примеры форматов спецификации таблиц и форм приведены ниже.
<TABLE>
<TR>
<TD> Столбец-1, строка-1 </TD>
<TD> Столбец-1, строка-2 </TD>
</TR>
</TABLE>
<FORM METHOD="POST ...>
<P>
Вы можете ввести в поле одну строку:
<INPUT NAME="entry">
</Р>
<Р>
Для обработки результатов ввода нажмите кнопку:
<INPUT TYPE="submit" VALUE="Принять запрос">
</Р>
</FORM>
Заметим, что именно на уровне форм в HTML появились возможности ввода информации в просматриваемый документ и ее обработки с помощью специальных программ, выполняемых на сервере. В последних версиях языка эта идея получила дальнейшее развитие и в настоящее время присоединенные процедуры могут быть подключены к HTML-документу не только в формах, но и в других конструкциях, а их выполнение может осуществляться как на сервере, так и на клиенте.
Следующей важной конструкцией, которая появилась уже в версии языка HTML 2.0, являются кадры (frames). Часто их называют также рамками или фреймами. С использованием кадров стало возможным разделить документ на части и представлять их в отдельных, правда, неперекрывающихся, областях экрана. По существу, с кадрами в язык HTML были введены в ограниченном объеме средства представления информации, характерные для многооконных приложений. Экранная форма с примером структуризации документа с помощью кадров приведена на рис. 8.1.
Рис. 8.1. Использование кадров для структуризации Интернет-документа
На наш взгляд, концепция кадров получила естественное развитие в конструкциях HTML 4.0, названных слоями (layers). Основными достоинствами слоев являются возможность их «привязки» по месту на экране, динамическое «всплывание» и «схлопывание» слоев, а также их перекрытие.
Кроме слоев в HTML 4.0 появились и другие конструкции, расширяющие возможности разметки Интернет-документов, среди которых следует отметить интернационализацию (использование стандарта ISO/IEC: 10646 в качестве базового множества допустимых символов, а также появление специальных тегов, фиксирующих кодировку документа); более четкое разделение между структурой документа и его представлением за счет таблиц стилей (style sheets); скрипты (scripts), поддерживающие, в частности, создание динамических страниц; новый механизм интеграции текстовых и графических ссылок, исполняемый на стороне клиента (client-side image map mechanism) и, безусловно, стандартизацию механизма подключения к HTML-документам базисных медиаобъектов и приложений (embedding generic media objects and applications).
Справедливости ради следует отметить, что интерпретация некоторых конструкций последних версий языка HTML разными броузерами различна. Однако, как представляется, это не принципиальные, а технологические трудности совместимости программных продуктов разных фирм, в первую очередь Microsoft и Netscape.
В целом же можно констатировать, что текущая версия языка HTML является мощным средством разметки Интернет-документов. Но ориентирован этот язык скорее на «разметку визуализации», чем на семантическую разметку, доступную для восприятия не только читателями-людьми, но и программами (в первую очередь, агентами, функционирующими в среде Интернет, которые обсуждаются в следующей главе настоящей книги). И тем не менее некоторые, правда ограниченные, возможности для представления знаний имеются в этом языке и сейчас. Вот почему в следующем подразделе данного параграфа эти вопросы обсуждаются подробнее.