ОБЗОРЫ
В начале будет XML
На международной конференции XML-2000 (www.w3.org/2000/Talks/1206-xml2k-tbl/), прошедшей четыре года назад в Вашингтоне, Тим Бернерс-Ли, автор идеи Интернета и председатель WWW-консорциума*1, выдвинул новую концепцию Семантической сети*2 (www.semanticweb.org). Она не предназначена для замены нынешнего Интернета, а представляет собой набор новых технологий, структурирующих и классифицирующих хранимые в Сети данные на основе их смысла*3. Все элементы Семантической сети дополнены формальным описанием своего содержания и могут иметь произвольное число осмысленных связей с другими элементами. Это даст возможность быстро и точно, без какого-либо мусора, находить нужные сведения, причем не обязательно по ключевым словам - достаточно описания желаемого результата на естественном языке. А программы научатся самостоятельно понимать, к какой теме или к какому классу знаний в неком универсальном иерархическом классификаторе Сети относится тот или иной материал или данные на сайте. В результате удастся развернуть глобальную систему автономных агентов, выполняющих множество рутинных, но требующих определенного интеллекта задач по обработке информации без помощи человека. Компьютеры "оживут" и станут в ходе решения логических задач общаться друг с другом на вполне высоком семантическом уровне. Пользователю же достаточно будет выполнять только общее управление такой деятельностью.
_____
*1 В апреле 2004 г. финский Комитет технологических наград тысячелетия присудил Тиму Бернерсу-Ли премию в размере 1 млн. евро - своеобразный аналог Нобелевской премии, только для технических специалистов.
*2 Впервые теория семантических сетей появилась в 50-х годах прошлого века и ориентировалась на задачи машинного перевода. Знания в такой сети представлялись в виде узлов, соединенных дугами, каждая из которых определяла тип отношения. Узлы, в свою очередь, сами могли раскрываться в сети. Впоследствии на основе этой теории в искусственном интеллекте была разработана концепция фреймов.
*3 В Европе ведется схожий проект - Сеть знаний, Knowledge Web (kw.dia.fi.upm.es/ semanticportal/jsp/frames.jsp), только она ориентирована на нужды ИТ в промышленности, науке и образовании, а Семантическая сеть (конечно, поддерживаемая и в Европе, - см. проект SWAD-Europe, www.w3.org/2001/sw/Europe/) больше рассчитана на э-коммерцию и упрощение работы рядовых пользователей Интернета.
Тим Бернерс-Ли описал семь технологических уровней, на которых базируется Семантическая сеть. Самый нижний уровень - это URI (www.w3.org/Addressing/), унифицированный идентификатор, определяющий способ записи адреса произвольного ресурса. А в качестве кодировки выбрана Unicode (www.unicode.org). Далее следуют язык XML (www.w3c.org/XML/) как базовая форма разметки и XML-схемы (www.w3.org/XML/Schema), предназначенные для определения и описания классов XML-документов.
Пять следующих уровней ориентированы на работу с цифровой подписью. Это необходимо, чтобы клиенты Сети - как люди, так и программы - могли определять уровень достоверности доступных данных. В противном случае невозможно будет отличить серьезную информацию от случайного мусора, добавленного в Сеть источником с низким уровнем доверия.
На базе XML будут развертываться средства описания ресурсов Resource Description Framework (RDF, www.w3.org/rdf) и RDF-схемы (www.w3.org/TR/rdf-schema/), объясняющие, как состыковывать XML-данные в сети и строить каталоги и словари понятий. Спецификация RDF задает простые определения и правила описания метаданных, а взаимосвязи между ресурсами сводит к виду объект - атрибут - значение (например: Иванов - читатель - PC Week/RE). Здесь атрибут "читатель" (представленный URI-адресом) объекта "Иванов" (также доступным по URI-адресу) имеет значение "PC Week/RE" (это значение может быть строкой, а может быть и другим объектом, URI-ресурсом).
RDF позволяет выполнять гораздо более эффективный и точный поиск нужных понятий в Сети, чем при использовании HTML/XML, хотя анализ по-прежнему будет проходить в линейном массиве описаний.
Следующий уровень - онтологический: он формализует накопленные знания, определяя и объединяя терминологию различных предметных областей. Чтобы эффективно работать с множеством данных, подготовленных в самых разных областях знания, необходимо учитывать, что одни и те же понятия могут быть представлены разными терминами и на разных жаргонах, а также договориться о способе обработки незнакомых слов. В принципе онтологию можно поддерживать и средствами RDF, но программам сложно работать с RDF-описаниями. Поэтому WWW-консорциум предложил язык Web Ontology Language (OWL; авторам не понравилось звучание аббревиатуры WOL). Он задает способ формального описания смысла документа и терминологии произвольной предметной области, позволяет формировать осмысленные иерархические взаимосвязи между объектами, обобщать и совместно использовать глобальные сведения и т. д.
OWL реализует системы нечеткого поиска в Сети, способные находить нужные ресурсы, в которых не будет ни одного слова из оригинального запроса. Например, вместо атрибута "читатель" у некоторого объекта может присутствовать атрибут "человек, любящий книги". Сформировать смысловую взаимосвязь между такими атрибутами на уровне RDF вряд ли возможно. А вот с помощью OWL программе будет вполне по силам учесть весьма сложные взаимоотношения между человеком и книгой, добраться до иерархии смысловых описаний, найти в ней нужные элементы и самостоятельно подобрать такому атрибуту синонимы.
Кроме того, на уровне OWL реализованы средства защиты от индексирования: не все хотят, чтобы выложенные ими в Сеть ресурсы были доступны поисковым машинам.
Первые четыре уровня Семантической сети (URI, XML, RDF и OWL) ориентированы преимущественно на описание структур данных. Последние же три (системы правил и логического вывода; обмен доказанными фактами; формирование доверия к ресурсу с помощью многоуровневых сертификатов) нацелены на автоматизацию различных сетевых работ с помощью автономных агентов.
С этой целью в OWL встроен ряд возможностей, уже существовавших в языках схожего предназначения, - Ontology Inference Layer (OIL, первоначально создававшийся для онтологического расширения RDF-схем) и DARPA Agent Markup Language (DAML*1, язык общения автономных агентов, предложенный военным научным агентством DARPA для автоматизации сложной интеллектуальной деятельности, управления воздушным движением, датчиками АЭС и т. д.). Одно время даже существовала промежуточная версия OWL под названием DAML+OIL. Она и по сей день не потеряла своей популярности, так как законченная версия OWL появилась только в феврале 2004 г.
_____
*1 DAML допускает общение программ на естественном языке с помощью технологий нечеткой логики, позволяя обрабатывать не только веб-данные и URI-ресурсы, но и менее формализованные сведения. В него также встроены концепция классов, средства стыковки RDF-схем и РСУБД, а расширение DAML-L позволяет развертывать сложные системы на базе правил и встраивать движки логического вывода непосредственно в автономные агенты. К сожалению, в OWL пока реализованы средства поддержки только линейной логики. Вполне возможно, нелинейные функции добавятся WWW-консорциумом в будущем, по мере роста популярности Семантической сети.
Уровни логики и обмена доказательствами реализуются с помощью OWL довольно легко. В этом языке имеются средства, поддерживающие базовые принципы функционирования автономных агентов, которые заключаются в следующем:
- агент не имеет полной информации, необходимой для решения поставленной задачи (в итоге значительно повышается устойчивость системы, так как в ней не существует незаменимых исполнителей);
- обрабатываемые данные распределены по сети;
- вычисления выполняются агентами асинхронно;
- взаимодействие агентов друг с другом и общение с человеком происходит на достаточно высоком семантическом уровне (при этом, в частности, удается обойтись весьма малым сетевым трафиком);
- отсутствует глобальный контроль за деятельностью системы агентов.
Важная особенность систем на базе агентов заключается в том, что чем больше процессоров в нее входит, тем больше на них можно запустить агентов и тем быстрее они найдут решение поставленной задачи. При этом рост суммарной производительности будет близок к линейному (если, конечно, задача допускает распараллеливание).
Агенты будут действовать на верхних уровнях
Идеология подобных систем достаточно давно и хорошо продумана и легко укладывается на существующие компонентные технологии CORBA, EJB, .NET и др. Но создаются агенты прежде всего на Java как наиболее распространенном языке сетевого программирования, к тому же не зависящем от платформы. Для этого, в частности, в Java будут внесены изменения: в рамках программы Java Community Process по модификации этого языка обрабатываются запросы сообщества Java-пользователей JSR-73 (интерфейс с системами анализа данных), JSR-87 (интерфейс с автономными агентами) и JSR-94 (интерфейс с движками логического вывода).
Самый большой из известных открытых проектов по развитию Java-агентов называется Cougaar (cougaar.org/projects/ cougaar/), много лет совершенствовавшийся на деньги DARPA. С его помощью можно создавать масштабные распределенные интеллектуальные комплексы планирования действий, отличающиеся высокой устойчивостью при работе в быстро меняющихся сетевых условиях.
DARPA неоднократно экспериментировало с системами автономных агентов. Самая известная его работа в этой сфере - CoABS (coabs.globalinfotek. com), объединяющая кластеры пользователей (людей и программы) со схожими интересами. Она основана на проекте Массачусетского технологического института Yenta (foner.www.media.mit.edu/people/foner/Yenta/overview.html), ориентированного на использование агентов при решении управляющих, информационных и логических задач.
В 2003 г. DARPA открыло новую пятилетнюю программу в этой области - Perceptive Assistant that Learns (PAL) с бюджетом 29 млн. долл. Специалисты создают интеллектуальные помощники, способные динамически обучаться на собственном опыте общения с человеком и накапливать знания о конкретной предметной области*1. Обладая навыками самонастройки и высокой адаптации, PAL-агенты учатся управлять доступными ресурсами и расставлять приоритеты при выполнении множества задач, а самое главное, при решении проблемы умеют взаимодействовать друг с другом.
_____
*1 Практика показала, что экспертные системы, основанные на заранее собранной информации, в новых условиях функционируют не очень удачно, потому что не умеют эффективно усваивать более актуальные свежие знания.
Среди свободно доступных (и, что немаловажно, постоянно развивающихся) систем для создания OWL/DAML+OIL-онтологий и Java-агентов можно отметить следующие:
· - Protigi-2000 (protege.stanford.edu) - активно совершенствуемый проект Станфордского университета, насчитывающий почти 18 тыс. пользователей. В июле в американском городе Мэриленде пройдет уже 7-я международная конференция по этой системе;
· - JTP (Java Theorem Prover, www.ksl.stanford.edu/software/JTP/ ) - объектно-ориентированная система логического вывода этого же университета;
- AGLET (www.trl.ibm.com/aglets/) - аглеты, или мобильные агенты, самостоятельно перемещающиеся по сети. Созданы научным подразделением корпорации IBM;
- JADE (Java Agent Development Framework, avalon.cselt.it/projects/jade/) - графическая оболочка для проектирования и отладки крупных сетей агентов, созданная научным подразделением итальянской корпорации Telecom Italia Group;
- JESS (Java Expert System Shell, herzberg.ca.sandia.gov/jess/, без исходных текстов) - логический движок на базе правил с собственным языком сценариев, свободно доступный для некоммерческого использования. Это один из самых производительных в своем классе продуктов, созданный в среде построения экспертных систем CLIPS (www.ghg.net/clips/CLIPS.html);
- OAA (Open Agent Architecture, www.openagent.com) - оригинальная архитектура программирования, организующая динамическое взаимодействие программ в гетерогенных сетях для решения одной задачи. Предложена компанией SRI International;
- UBOT (UML-Based Ontology Toolset, ubot.lockheedmartin.com) - средства создания и формальной верификации онтологий с помощью языка моделирования UML. На сайте ведется несколько подпроектов, из которых можно отметить ConsVISor - Пролог-систему обработки онтологий на DAML+OIL.
Когда?
Сегодня на Семантическую сеть работает множество университетов и научных подразделений по всему миру. Они трудятся над созданием стандартных протоколов и технологий, средств программирования, баз данных, агентов, языков описания, интерфейсов взаимодействия с человеком, методов понимания и анализа распределенных знаний. Более-менее работоспособная версия Семантической сети по оптимистичным прогнозам появится уже в следующем году, а по более реалистичным - к 2010-му. О ее приближении свидетельствует публикация WWW-консорциумом в феврале 2004 г. финальных версий двух спецификаций, напрямую связанных с данной концепцией. Это пересмотренная версия RDF (в нее добавлены описания тестов, позволяющие приложениям на разных языках программирования понимать друг друга, а также средства стыковки RDF и XML) и OWL. Теперь они доступны как официальные рекомендации консорциума (неформальные стандарты). Сразу же консорциум открыл вторую часть проекта по развитию Семантической сети. Она ознаменовалась созданием двух новых рабочих групп - по выработке практических руководств по использованию RDF/OWL и по созданию языка запросов к RDF-данным. Уже в июне нынешнего года была опубликована предварительная версия документа с требованиями к такому языку (www.w3.org/TR/rdf-dawg-uc/).
Семантическая сеть на базе RDF/OWL может быстро набрать не меньшую популярность, нежели современная версия Интернета с HTML-сайтами. Эксперты полагают, что это во многом зависит от наличия и доступности инструментальных средств создания семантических онлайновых ресурсов и автоматического переноса существующего контента в новый формат. Интересно, что такой деятельностью активно занимается DARPA, которое готовит системы преобразования HTML-сайтов в RDF/OWL-вид (немало ссылок на такие инструменты можно найти на сайтах www.daml.org и semanticweb.org) и уже отлаживает их в практических проектах на государственных сайтах. Подобные системы агентство обещает сделать открытыми и свободно распространяемыми*1 - как и многое другое, связанное с Семантической сетью.
_____
*1 Проекты по созданию открытого и общедоступного ПО в США нередко проходят под "брендом" спецслужб. Достаточно вспомнить SELinux (www.nsa.gov/selinux) - защищенную версию Linux, развиваемую американским Агентством национальной безопасности. Потенциальные хакеры получают возможность потешить самолюбие, участвуя в общественно полезной деятельности, а силовые структуры делают себе такими проектами бесплатный и прекрасный PR, в том числе на международном уровне.