Язык XML и Семантическая Сеть

Оригинал: XML and the Semantic Web (pdf)

James Hendler & Bijan Parsia

Пришло время прекратить эти споры — что якобы они не совместимы

За последние пару лет прогресс на пути построения Се­ман­ти­чес­кой Сети уверенно набирает обороты. Все­воз­мож­ные пуб­ли­ка­ции, на­чи­ная от науч­но-по­пу­ляр­ной прес­сы и за­кан­чи­вая извест­ны­ми науч­ны­ми изда­ния­ми, опи­сы­вают захва­ты­ваю­щие воз­мож­нос­ти Семан­ти­чес­кой Сети, бла­го­да­ря ко­то­рым она пре­взой­дёт су­щес­т­вую­щую Сеть. В дан­ной статье мы попро­буем дать пред­став­ле­ние о том, что же такое Семан­ти­чес­кая Сеть, а главное — поста­раем­ся раз­веять рас­про­стра­нён­ный миф о том, что якобы язык XML и Семан­ти­чес­кая Сеть — вещи нес­коль­ко не­сов­мес­ти­мые.

Форматы, основанные на языке XML, становятся преобладающими средствами для разметки данных в Сети. Уже имеются стандартные XML-языки для гипертекста (XHTML), графики (SVG), синдикации [сбора и обобщения информации] (RSS), мультимедиа (SMIL), описания и обнаружения сервисов (WSDL и UDDI), а также много других форматов, не говоря уже о многочисленных, зачастую кустарных [ad hoc], узко специализированных XML-языков. [Здесь и далее ссылки переводчика; ссылки авторов даны ими в виде явного указания URL в тексте статьи.]

Более того, существуют стандартные средства формирования запросов (XPath и XQuery), связывания (XLink и XPointer), а также синтаксического анализа [parse] и программирования (SAX и DOM) под XML-документы. Наконец, можно осуществлять интеграцию с другими XML-форматами достаточно прямолинейно путём включений (используя пространства имён XML) или преобразований (используя XSLT).

Язык XML как механизм обмена

Учитывая эти факты, трудно оспаривать XML как механизм обмена в Сети. Однако модель XML порождается главным образом самими документами; более точно — текстовыми документами с иерархической структурой. Например, правильно составленный XML-документ может иметь элемент , содержащий элементы и . С точки зрения «чистого» XML, у нас нет ничего, кроме основанного на данном документе описания имён и заданного в нём расположения этих элементов: а именно, мы знаем лишь, что элемент содержит элемент , являющийся строкой. Мы вполне можем составить документ, содержащий два элемента . В XML-Схеме для элемента можно достичь большего, задав определённые ограничения на его структуру, например, что этот элемент может содержать несколько элементов , но лишь один элемент . Имея эту схему, валидатор сможет вывести, что подобный элемент , содержащий два элемента , является синтаксически неправильным.

Однако фактически такая схема не позволяет уловить бóльшую часть семантики понятия «адрес». Например, если мы встретим несколько отдельных документов, в которых указаны адреса, совпадающие полностью за исключением почтового индекса, то мы не сможем распознать, основываясь лишь на описанной схеме, что по меньшей мере один из этих индексов является ошибочным. Аналогично, не существует способа задать автоматическое преобразование между двумя очень похожими схемами кодирования адреса (например, если в одной из схем имеется ровно один элемент , содержащий в свою очередь несколько элементов ). Далее, если мы захотим сделать нечто чуть более сложное, например, интегрировать эти элементы с базой данных о нашем персонале, нам придётся во всём полагаться на человека-программиста. Нужно будет, чтобы кто-то установил правильное отображение объектов в различные поля нашей базы данных, причём данное отображение будет чувствительным даже к малейшим изменениям формата наших XML-данных или полей базы данных — не говоря уж о возможности использовать то же отображение в других не связанных с нами системах.

Ещё более удручающим является то, что не существует очевидного способа связать наши данные в с более общими фактами об адресах — например, что каждый адрес задаёт некое местоположение, что на них можно отправлять почту, или же что адреса связаны с конкретными людьми или фирмами. И уж заведомо ни XML-модель, ни XML-Схема не состоянии выразить мысль, что почтовые адреса в некотором роде сходны с номерами факсов, по крайней мере в том смысле, что отправка письма по адресу и факсимильного сообщения по определённому номеру позволяют передать текст послания некоему получателю.

Тогда как в Сети нам крайне важна такого рода семантика. Мы хотим уметь привязывать [connect] адреса, закодированные с помощью языка XML в некотом веб-документе, к конкретным людям, местоположениям, понятиям, письмам, другим документам, базам данных, справочникам, спискам адресатов в электронной записной книжке PDA, календарям, сенсорам, услугам и всевозможным другим ресурсам в Сети. Если всё это сделать правильно, то такие связки [links] позволят автоматически обрабатывать информацию, хранящуюся в различных формах и форматах, с помощью компьютерных программ. Безусловно, язык XML является важной составляющей для решения этих проблем, но маловероятно, что XML-модель данных способна подходящим [feasible] образом представить все эти взаимосвязи и закодированную в них семантику реального мира.

Моделирование связей

Понаблюдав за тем, как работают ссылки в существующей Сети, можно понять, что требуется для их моделирования. Веб-ссылки имеют два ключевых аспекта: во-первых, ресурсы [things] в Сети однозначным образом адресуются [identify] посредством URI (Uniform Resourse Identifiers — Единообразных Идентификаторов Ресурсов). Во-вторых, всякая веб-ссылка имеет следующую трёхчастную структуру:

  • Ресурс, из которого мы ссылаемся (источник ссылки). (В языке XHTML им является файл, содержащий тэг /a/ с атрибутом href.)
  • Соединительный [connecting], или связующий [linking], бит между источником и целевым объектом ссылки.
  • Ресурс, в который мы прибываем по ссылке (цель [target]). (В языке XHTML обычно задаётся посредством URI-идентификатора в значении атрибута href.)

И хотя, разумеется, можно закодировать веб-ссылку в языке XML (например, чем-нибудь вроде /a href="..."/), обратите внимание, как мало общего между веб-ссылками и XML-моделью данных: веб-ссылки используют URI-идентификаторы вместо тэгов или QNames; в отличие от XML, веб-ссылки не задают ни какой бы то ни было внутренней иерархии, ни понятия «одно содержится в другом» [containment], ни какого-либо упорядочения объектов, фигурирующих в ссылках. И на самом деле, совокупрость веб-ссылок совершенно не похожа на дерево Объектной Модели Документа (DOM), а скорее уж очень напоминает RDF-граф (RDF — Resource Description Framework — Система Описания Ресурсов), так что каждая ссылка отвечает некоторому RDF-триплету. Стоит сказать также, что каждая часть RDF-триплета может быть задана, а чаще всего и задаётся, с помощью URI-идентификатора, а также что триплет, несомненно, обладает трёхчастной структурой.

Эти три части триплета, по своей задумке, в точности соответствуют частям, из которых состоят веб-ссылки:

  • Субъект триплета — это то, откуда мы стартуем.
  • Предикат связывает субъект с объектом.
  • Объект отвечает цели [target] веб-ссылки.

И RDF-триплет действительно является представлением веб-ссылок, в котором каждая часть ссылки уже задана в явном виде. Таким образом, совокупность RDF-триплетов — это одно из возможных средств для представления, совместного использования [share] и обработки значительной части структуры Сети как таковой. Стандартизированное представление Сети позволяет нам обогатить семантику не просто информацией, содержащейся в документах Сети, но также и информацией, выражаемой самой структурой Сети. Каждая веб-ссылка сама по себе — это весьма неясное, зачастую неоднозначное и практически всегда не полностью сформулированное [underspecified] утверждение о ресурсах [things], которые она связывает. RDF же позволяет устранить подобного рода неясности и исключить какие-либо неоднозначности. RDF-Схема (RDFS) и недавно появившийся Язык Сетевых Онтологий (Web Ontology Language, OWL, читается [áул] — Прим.перев.) позволяют точно моделировать смысл подобных утверждений-ссылок в виде, пригодном для машинной обработки.

RDFS является достаточно простым языком для создания сетевых [Web-based] «настраиваемых словарей» [controlled vocabularies] и таксономий. Этот язык позволяет задать несколько RDF-предикатов, с помощью которых можно будет описывать связи между понятиями. Более того, он позволяет определять классы и свойства-отношения между ними, а также в нём имеются механизмы для ограничения области определения [domain] и области значений [range] этих отношений. Например, в RDFS можно создать категории веб-сайтов наподобие Yahoo-классификации, представив их в виде иерархии классов с наборами именованных (иногда наследуемых) свойств. Это позволяет другим сайтам привязывать содержащуюся на них информацию к этим терминам, что даёт более широкие возможности для взаимодействия в сфере B2C- и B2B-приложений, а также других веб-транзакций. [Прим.перев.: B2C (business-to-consumer, бизнес для потребителя) и B2B (business-to-business, бизнес для бизнеса) — типы интернет-ресурсов, ориентированных на осуществление операций и поддержку отношений между компаниями и клиентами (B2C) и между компаниями (B2B) соответственно.]

Язык OWL (Web Ontology Language — Язык Сетевых Онтологий) является дальнейшим обогащением RDFS, которое уже пригодно для создания тезаурусов и моделирования различных предметных областей. OWL базируется на веб-языке DAML+OIL, разработанном совместно Агентством перспективных оборонных исследовательских проектов США (DARPA — Defense Advanced Research Projects Agency) и Программой по Информатизации и Технологиям Евросоюза (EU IST — European Union’s Information Science and Technology program). DAML+OIL стал активно использоваться в правительстве, а в ноябре 2001 года WWW-Консорциумом (W3C) была образована рабочая группа по Сетевым Онтологиям (Web Ontology Working Group), которая усовершенствовала DAML+OIL, что привело к появлению официально рекомендованного Консорциумом языка, получившего название OWL.

Язык OWL расширяет RDFS множеством конструкций для определения отношений между классами, а главное — он позволяет налагать ограничения на свойства (они же предикаты), используемые для связывания элементов (entities). Тем самым OWL даёт возможность пользователям описывать простые модели их предметных областей, пользуясь этими предикатами и наложенными на них ограничениями. Детальное обсуждение этого языка выходит за рамки данной статьи (подробнее с ним можно ознакомиться по адресу www.w3.org/2001/sw/WebOnt), однако, имея уже OWL в арсенале, полезно ещё раз вернуться к нашему примеру с адресами, чтобы прояснить некоторые моменты.

XML и OWL

В языке XML можно было выразить лишь, что в нашем документе присутствует поле , имеющее в качестве подполей названия улицы, города, штата и почтового индекса. В языке же OWL мы можем уже явно назвать эти объекты классами и свойствами, а также наложить ограничения на то, как правильно сочетать их друг с другом или с объектами, заданными в других документах. Так например, мы можем сформулировать требование, что все города [США] расположены в каких-то штатах, и кроме того, что каждый город расположен в одном и только в одном штате. Можно будет указать, что американский адрес является разновидностью международного адреса, в котором поле «штат» ограничено множеством значений {Alabama, Maine, New York, и т.д.}, что у данных адресов имеется почтовый индекс, состоящий из 5 или 9 цифр. Можно также добавить сюда информацию о том, что в общем случае международный адрес содержит обозначение страны [country code], причём для американских адресов оно всегда имеет значение USA, а также описать множество других подобных фактов. (Такого рода описание в формальном языке взаимоотношений между понятиями называется онтологией, откуда и происходит название OWL — язык онтологий).

Помимо этого онтологии позволяют устанавливать более точные связи с другими документами и ресурсами, основываясь на совместном использовании понятийных терминов, даже в случае, если имеется лишь частичное соответствие терминов (в этом ключевое отличие от XML-подхода). Ввиду этого нашу базу знаний об адресах можно связать с другими системами терминов — зная, например, что адреса суть имена неких местоположений [location], мы можем связать наши знания об адресах с другими веб-ресурсами, так или иначе имеющими дело с описаниями местоположений. Ими могут быть базы данных или веб-сервисы, подав которым на вход некий адрес, можно получить на выходе местонахождение ближайшего аэропорта (ещё одна разновидность местоположений) или прогноз погоды для города, в котором находится данный адрес, или же другие территориально-зависимые данные. Метаданные также можно использовать для привязки к онтологиям какой-либо нетекстовой информации, например, что на некой фотографии изображён дом, расположенный по определённому адресу, или же что действие, описанное в каком-либо видео-материале, происходит в определённом штате (позволяя Вам сравнить это местонахождение с Вашим и понять, могли ли происходить описанные там события, исходя из расположения других участвующих в действии объектов и ограничений относительно них).


На рисунке изображён пример привязки некоторого веб-сайта к онтологической информации. В этом примере, взятом из презентации по OWL, представленной на W3C-сессии Конференции по Всемирной Компьютерной Сети в мае 2002 г., информация об основном докладчике связывается с информацией о событиях, фотографиях и других людях.

Наш пример с адресами — чрезвычайно упрощён, и тем не менее уже видно гигантское число возможных его применений. Переформулировка неявной семантики, заложенной в XML DTD и в схемы, в терминах явно выраженных в RDFS и OWL отношений, позволит легко реализовать широкий спектр новых приложений, по большей части произрастающих из установления связей между веб-ресурсами. В сфере бизнеса подобного рода привязку к моделям можно будет применить к задачам хранения данных SEC [Security Exchange Commission — Комиссия по ценным бумагам], обслуживания баз данных о сети поставщиков [supply-chain], написания и публикации WSDL-описаний различных бизнес-услуг и к практически неограниченному переченю других приложений, что воплотит идею интеграции предприятий на общетевом [Web-wide] уровне. Текущие исследования в области Семантической Сети посвящены проблемам использования и расширения языков, основанных на RDF, для выражения таких понятий, как достоверность [trust] и авторизация, для автоматического обраружения и композиции веб-сервисов, а также проблемам разработки новых языков, которые позволят реализовать потенциал революционных возможностей Семантической Сети.

Семантическая Сеть строится на моделях, основанных на DRF-представлении веб-ссылок. Однако, для достижения максимального эффекта чрезвычайно важно связать эти тщательно продуманные модели, появившиеся благодаря Семантической Сети, с инструментами обработки документов и обмена данными путём распространения XML-технологий. Если бы XML- и RDF-технологии оказались несовместимыми, как некоторые полагают, то всё выше сказанное выглядело бы блефом [shame]. Но в действительности всё обстоит гораздо лучше. Хотя в основе их лежат несколько разные модели, нормативным форматом обмена RDF-, RDFS- и OWL-документами является именно XML. Таким образом, те, кто мыслят XML-категориями, могут смотреть на RDF, RDFS и OWL как на очередную серию языков, с которыми можно работать и управлять, используя стандартные инструменты. Приверженцы [purist] RDF могут увязать модели, порождаемые документами и структурами данных XML и XML-Схемы, с возможностью их совместной обработки [interoperable data]. Те же, кто сосредоточен на сфере веб-сервисов, будут видеть в технологиях SOAP и WSDL, сквозь их XML-содержимое, привычные RDF-модели, выражающие информацию, которую легко найти, связать и распознать.

Разумеется, как это обычно случается, когда несколько коллективов трудятся на частично перекрывающихся участках работы, существуют определённые трения между некоторыми членами RDF-сообщества и XML-общественности. Приверженцы RDF частенько сетуют на излишнюю (для них) запутанность XML. В свою очередь, XML-эксперты весьма недовольны тем, как RDF/XML-сериализация обходится с QNames и пространством XML-имён и трактует некоторые атрибуты и элементы-потомки как эквивалентные. Однако, подобные разногласия отнюдь не новы. На самом деле, они распространены и в самом XML-сообществе: стоит лишь напомнить, что некоторых XML-поклонников просто приводит в бешенство то, что XSLT обращается с QNames как с содержимым атрибутов. Аналогично, RDF-мир имеет массу тёмных и черезчур запутанных мест. Оба семейства языков до сих пор находятся в стадии развития, и кроме того для каждого из них разрабатываются также и не-XML-подобные синтаксисы (вспомним хотя бы Relax-NG, XQuery и XPath).

Лучший из лучших

В двух словах, Семантическая Сеть раскроет перед нами мир новых возможностей и произведёт функциональную революцию. Эти возможности будут нами обретены тем скорее, чем скорее мы прекратим спорить и осознаем, что разрыв между языками, основанными на XML и RDF соответственно, лежит где-то в области мелких технических различий, которые легко загладятся в процессе стандартизации или же устранятся с разработкой инструментов взаимодействия между ними. Возможность сочетать лучшие из этих языков и их разновидностей будет легко дарована нам посредством комбинирования «документов» XML-Сети и установления RDF-связей между ними. Добавьте к этому взаимо­действующие друг с другом веб-сервисы — и картина станет захватывающей. Будущее Сети может стать более восхитительным, чем её прошлое, и объединив наши усилия и подходы, мы сможем быстрее в нём оказаться.

Полезные ссылки

  • Программа «Семантическая Сеть» Консорциума W3C: www.w3.org/2001/sw.
  • Спецификация языка RDF-Схема — черновой вариант: www.w3.org/TR/rdf-schema.
  • «Интеграция приложений в Семантической Сети» (J.Hendler, T.Berners-Lee, and E.Miller; статья об использовании Семантической Сети в бизнес-приложениях): www.w3.org/2002/07/swint.
  • Домашняя страница рабочей группы по Сетевой Онтологии консорциума W3C: www.w3.org/2001/sw/WebOnt.
  • Краткий обзор основных хартеристик [feature synopsis] языков OWL-Lite и OWL — черновой вариант: www.w3.org/TR/owl-features.
  • «Почему RDF-модель отличается от XML-модели» (T.Berners-Lee): www.w3.org/DesignIssues/RDF-XML.html.

Об авторах

Jim Hendler — профессор университета в Мэриленде (Maryland), руководитель исследований в области Семантической Сети и технологий агентов в Мэрилендской Лаборатории Информации и Сетевой Динамики (Maryland Information and Network Dynamics Laboratory). Является членом Американской Ассоциации по искусственному интеллекту. Ранее — ведущий специалист [chief scientist] по информационным системам в Агентстве перспективных оборонных исследовательских проектов США (DARPA) и сопредседатель рабочей группы по Сетевой Онтологии консорциума W3C.

Bijan Parsia — исследователь в области Семантической Сети в Мэрилендской Лаборатории Информации и Сетевой Динамики (Maryland Information and Network Dynamics Laboratory). Научные интересы охватывают: инструменты работы с сетевыми логиками и правилами вывода, Семантические веб-сервисы, fine-grained, reflective annotation systems и trust-focused reasoning.

Перевод: Евгений Золин
Последние изменения: 15.09.104 09:18
Комментарии присылайте на e-mail: ezolin [собака] cs.man.ac.uk
Адрес статьи: http://ezolin.pisem.net/logic/xml_and_sw_rus.html

3 комментария:

hosting.web.hosti комментирует...

хостинг кода хостинг http://hosting.miheeff.ru хостинг кода

Анонимный комментирует...

разработки уроков разработка сайтов http://web-miheeff.ru разработки уроков

Анонимный комментирует...

разработка управленческих решений разработка сайтов http://web-miheeff.ru разработка управленческих решений