Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы знаний интелл. систем - Гаврилова.doc
Скачиваний:
340
Добавлен:
12.11.2019
Размер:
3.9 Mб
Скачать

8.3.4. Другие подходы и тенденции

В заключение настоящего параграфа необходимо, хотя бы в общих чертах, рассмотреть усилия World Wide Web Consortium (W3C) по созданию и внедрению средств маркировки Интернет-ресурсов.

До недавнего времени в распоряжении Интернет-авторов для этого почти исключительно использовался уже обсуждавшийся выше язык HTML. Однако с точки зрения семантической разметки Интернет-документов этот язык обладает рядом недостатков, основными среди которых являются следующие [Johnson, 1999]:

• жесткая ориентация на визуализацию;

• единственная «точка зрения» на данные;

• нерасширяемость;

• весьма ограниченные средства спецификации семантической структуры документов.

Справедливости ради следует заметить, что еще в конце 60-х годов в рамках исследований по представлению документов компанией IBM был разработан язык SGML (Standard Generalized Markup Language), который лишен многих из перечисленных недостатков. К середине 80-х годов этот язык стал стандартом для многих промышленных компаний и правительственных учреждений США, но, по мнению специалистов рабочей группы SGML W3C [Bosak, 1997], он слишком сложен для широкого использования Интернет-авторами. Вот почему в рамках W3C, начиная с 1996 года, предпринимаются усилия по разработке средств разметки документов, сравнимых но мощности с SGML, а по простоте использования — с HTML. И среди работ данного направления в первую очередь следует отметить язык XML (extensible Markup Language) [XML, 1998].

В языке XML «сняты» многие ограничения HTML, язык разметки стал существенно мощнее. И одновременно XML-тексты остаются понятными для всех, кто работал с языком HTML. Отличительные свойства XML и в том, что здесь фиксируется стандарт на определение синтаксиса и единообразные средства введения в языки разметки (Markup Language) новых тегов. А это, в свою очередь, позволяет конструировать на основе XML новые языки маркировки Web-документов и, кроме того, обеспечивает возможность различным приложениям (и, в частности, программным агентам) «понимать» и обрабатывать XML-документы.

Каждый XML-документ обладает определенной логической и физической структурой. Физически это композиция элементов, называемых единицами (entities), которые могут быть связаны взаимными ссылками. Логически документ состоит из деклараций, единиц, комментариев, собственно текстов и инструкций обработки, причем каждая конструкция XML маркируется специальными тегами явным образом. Все теги XML — парные, а конструкции могут быть вложены друг в друга, образуя правильно построенное дерево. Так, например, конструкция <ltem Attribute1=«Va!ue1»> </ltern> определяет единицу с именем Item и списком пар атрибут-значение, который в нашем случае представлен единственным атрибутом с именем Attribute"!, имеющим значение «Valuel».

Для иллюстрации возможностей этого языка рассмотрим содержательный пример XML-документа, описывающего домашнюю страницу исследователя Иванова.

<?xml version="1.0"?>

<Homepage>

<Nаme>Домашняя страница Иванова</Namе>

<Person>

<firstName>Ivan</firstName >

<lastName>Ivanov</lastName >

<marriedTo Homepage="http://www.anywhere.ru">

Mariya Ivanova</marriedTo>

<employee Homepage="http://www.ccas; ru">

CCAS of Russia</employee>

<publications>

<book title="First Book"/>

<book title="Second Book"/>

……………………………………………………………

</publications>

</Person>

</Homepage>

Этот XML-документ структурирован существенно лучше, чем был бы аналогичный ему HTML-текст, но пока не имеет «смысла», так как из него не следует, как интерпретируются единицы типа Person, publications, book и т. п. Для решения этого вопроса используется специальная спецификация определения типа документа DTD (document type definition). По сути дела, это грамматика языка разметки, в рамках которой определяются, какие элементы могут присутствовать в документе, какие атрибуты они имеют и как элементы соотносятся друг с другом. Понятно, что для стандарта XML такие спецификации уже разработаны самими авторами языка, но в нашем случае используется специальный его диалект, и потому именно мы должны специфицировать DTD нашего документа. Такая спецификация может быть следующей:

<!ELEMENT Homepage (Name, Person)>

<!ELEMENT Name (#PCDATA)>

<!ELEMENT Person (firstName, lastName, marriedTo?,

employee?, publications?, Homepage?)>

<!ATTLIST Person Homepage xml:link CDATA>

<!ELEMENT firstName (#PCDATA)>

<!ELEMENT lastName (#PCDATA)>

<!ELEMENT marriedTo (Person)>

<!ELEMENT employee (organization)>

<!ATTLIST organization Homepage xml:link CDATA>

<!ELEMENT publications (book*, paper*, report*)>

<!ATTLIST book title COATA «REQUIRED, coauthor Person,

publisher CDATA, year CDATA)>

<!ELEMENT paper (title, coauthor*, journal, year, vol?,

number?)>

<!ELEMENT report (title, coauthor*, organization, year)>

………………………………………………………………

Как следует из приведенного описания, в DTD специфицировано «сведение» конструкций нашего XML-документа к стандартным XML-конструкциям, понимаемым броузерами нового поколения.

В настоящее время уже разработаны DTD для различных предметных областей, и каждая такая спецификация, по сути дела, определяет новый язык разметки. Известным примером развития DTD для спецификации общих ресурсов является RDF (Resource Description Framework) [RDF, 1999], разрабатываемый W3C. Этот формат может использоваться для добавления в документы метаинформации, которая, в частности, может быть представлением семантики документа.

Использование собственных диалектов XML является важным шагом на пути формирования пространств знаний в сети Интернет. Но, по сути дела, это лишь первый шаг в этом направлении. Действительно, какие средства дает язык XML для представления знаний? Очевидно, что это, в первую очередь, средства спецификации декларативной компоненты развитых систем представления знаний. И то в ограниченном объеме. Каким же образом авторы этого языка и его расширений предполагают подключение процедур обработки XML-конструкций? На сегодняшний день в предложениях W3C явно прослеживается лишь одна идея: поскольку XML-документы не что иное, как портабельные данные, а язык Java имеет портабельный код, следует их использовать совместно. Для этого предлагаются специальные интерфейсы, например SAX (Simple API for XML), которые уже сейчас могут поддерживать многие Java-анализаторы. Основная идея здесь достаточно проста — анализатор просматривает узлы дерева документа из XML-файла и вызывает соответствующие методы, определенные пользователем. Для того чтобы этот механизм работал, программист должен создать класс, реализующий соответствующий интерфейс. Методы этого класса будут вызываться всякий раз, когда на входе распознавателя появляется нужная конструкция (тег, входная строка и т.п.). Собственно обработка информации при этом целиком в руках программиста, а среда лишь поддерживает общее функционирование и обработку исключительных ситуаций.

Такой подход имеет много общего и с подходом Ontobroker, и с подходом SHOE. Авторы обоих этих проектов активно приветствуют усилия W3C, но вместе с тем отмечают, что в предложениях соответствующих рабочих групп еще много недостатков. В первую очередь — это отсутствие стандартов на интеллектуальную обработку XML-конструкций, сравнительно небольшой практический опыт семантической разметки Интернет-документов и достаточно ограниченные средства логической обработки, используемые при этом.

Вот почему, как показывает анализ литературы и Интернет-ресурсов по данной тематике, в настоящее время:

• эффективная обработка информации на Web связывается, в первую очередь, с использованием ИИ-технологий;

• основные подходы в этой области ориентированы на решение проблемы извлечения из Web-ресурсов эксплицитных знаний на основе семантического маркирования таких ресурсов;

• во всех исследовательских и многих коммерческих проектах данного направления активно используются (или, по крайней мере, декларируется использование) агентно-ориентированные вычисления и технологии. Учитывая вышесказанное, в следующей главе обсуждаются мультиагентные системы и системы интеллектуальных агентов.

Интеллектуальные

Интернет-технологии

 Программные агенты и мультиагентные системы

 Проектирование и реализация агентов и мультиагентных систем

 Информационный поиск в среде Интернет

9.1. Программные агенты и мультиагентные

системы

9.1.1. Историческая справка

Проблематика интеллектуальных агентов и мультиагентных систем (MAC) имеет уже почти 40-летнюю историю [Городецкий и др., 1998; Тарасов, 1998] и сформировалась на основе результатов, полученных в рамках работ по распределенному искусственному интеллекту (DAI), распределенному решению задач (DPS) и параллельному искусственному интеллекту (PAI) [Demazeau et al., 1990; Пэранек, 1991; Rasmussen et al., 1991]. Но, пожалуй, лишь в последнее 10-летие она выделилась в самостоятельную область исследований и приложений и все больше претендует на одну из ведущих ролей в рамках интеллектуальных информационных технологий. Спектр работ по данной тематике весьма широк, интегрирует достижения в области компьютерных сетей и открытых систем, искусственного интеллекта и информационных технологий и ряда других исследований, а результаты уже сегодня позволяют говорить о новом качестве получаемых решений.

Понятно, что в рамках данного издания мы не сможем даже обозреть все направления и результаты в области MAC. Поэтому далее сконцентрируемся лишь на тех разделах, которые имеют непосредственное отношение к теме настоящей книги. С учетом сделанных замечаний и с позиций сегодняшнего дня все исследования в этой области можно выделить в две основные фазы: первая охватывает период с 1977 г. но настоящее время, а вторая — с начала 1990 г. по настоящее время.

Работы первого периода концентрировались на исследовании так называемых «смышленых» (smart) агентов, которые были начаты в конце 1970-х годов и продолжаются все 1980-е годы вплоть до наших дней. Первоначально эти работы были сосредоточены на анализе принципов взаимодействия между агентами, на декомпозиции решаемых задач на подзадачи и распределении полученных задач между отдельными агентами, координации и кооперации агентов, разрешении конфликтов путем переговоров и т, п. Цель таких работ — анализ, спецификация, проектирование и реализация систем агентов. На этом же уровне активно велись работы по теории, архитектурам и языкам для программной реализации агентов. Примерно с 1990 г. стало ясно, что программные агенты могут использоваться в широком спектре применений. Однако потенциал агентных технологий, по-видимому, стал в значительной мере осознан не только разработчиками, но и инвесторами после известного отчета консультативной фирмы Ovum [Ovum, 1994], которая предсказала, что сектор рынка длялрограммных агентов в США и Европе вырастет, по крайней мере, до $3,9 billion к 2000 г. в противовес 1995 г., когда он оценивался в $476 million.

В настоящее время множество исследовательских лабораторий, университетов, фирм и промышленных организаций работают в этой области, и список их постоянно расширяется. Он включает мало известные имена и небольшие коллективы, уже признанные исследовательские центры и организации (например, университет Карнеги Мэллон (CMU) и фирма General Magic), а также огромные транснациональные компании (такие как Apple, AT&T, ВТ, Daimler-Benz, DEC, HP, IBM, Lotus, Microsoft, Oracle, Sharp и др.). Областями практического использования агентных технологий являются управление информационными потоками (workflow management) и сетями (network management), управление воздушным движением (air-traffic control), информационный поиск (information retrieval), электронная коммерция (e-commerce), обучение (education), электронные библиотеки (digital libraries) и многие-многие другие приложения.

Существует несколько причин, почему необходимы и полезны программные агенты, MAC и, более общо, агентные технологии. Основная из них в том, что агенты автономны и могут выполняться в фоновом (background) режиме от лица пользователя при решении разных задач, наиболее важными из которых являются сбор информации, ее фильтрация и использование для принятия решений.

Таким образом, основная идея программных агентов — делегирование полномочий. Для того чтобы реализовать эту идею, агент должен иметь возможность взаимодействия со своим владельцем или пользователем для получения соответствующих заданий и возвращения полученных результатов, ориентироваться в среде своего выполнения и принимать решения, необходимые для выполнения поставленных перед ним задач.

К построению агентно-ориентированных систем можно указать два подхода: реализация единственного автономного агента или разработка Тмультиагентной системы. Автономный агент взаимодействует только с пользователем и реализует весь спектр функциональных возможностей, необходимых в рамках агентно-ориентированной программы. В противовес этому MAC являются программно-вычислительными комплексами, где взаимодействуют различные агенты для решения задач, которые трудны или недоступны в силу своей сложности для одного агента. Часто такие мультиагентные системы называют агентствами (agencies), в рамках которых агенты общаются, кооперируются и договариваются между собой для поиска решения поставленной перед ними задачи.

Агентные технологии обычно предполагают использование определенных типологий агентов и их моделей, архитектур MAC и опираются на соответствующие агентные библиотеки и средства поддержки разработки разных типов мульти-агентных систем.