2003 г

Выражение семантики данных. RDF против XML

Владимир Шрайбман, shvb@ngs.ru

При всевозрастающем объеме электронной информации давно и остро стоит задача ее представления в формате, понятном не только человеку, но и интеллектуальной программе. Этот текст является обзорной частью более общей работы, возникшей в результате моего интереса к технологии RDF. Возможно, он будет интересен и полезен кому-нибудь еще.

Проблема описания семантики и границы XML

Несколько лет назад World Wide Web Консорциумом был разработан язык XML, предоставляющий стандарт структурирования и разметки произвольной информации. По мнению многих специалистов появление XML стало своего рода революцией в сфере Web-программирования. Разработчики получили простое средство для хранения данных в понятном для человека и легко читаемом формате, где разметка говорит сама за себя. Появилась возможность отделить информационное наполнение Интернет-страниц от их визуального представления.

Наиболее важной заслугой XML видится то, что программы различных производителей получили возможность “разговаривать” на одном языке. Взамен многочисленных разрозненных способов представления данных появился один универсальный синтаксис, который лег в основу передачи информации между программами, работающими в различных точках Интернета.

Универсальный синтаксис открыл дорогу появлению ряда важных сопутствующих XML технологий. Это языки XSL и XPath, предназначенные для работы с древовидной структурой документов; XML Schema – стандарт описания конкретных языков разметки, использующий синтаксис XML; XLink и XPointer – средства связи распределенных блоков информации в один общий документ; XQuery – язык запросов к размеченным данным и другие технологии.

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

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

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

Данное утверждение требует более детального объяснения.

Практически параллельно с работами по стандартизации XML основатель WWW Консорциума Тим Бернерс-Ли сформулировал новое понятие – Semantic Web – то, каким он видит будущее глобальной сети, и инициировал исследования в этом направлении. В основе предполагаемого им будущего лежит способность машин не только читать, но и понимать содержание Интернет-ресурсов, причем достигнуть этого, по мнению Бернерса-Ли, мы должны не через создание программ искусственного интеллекта, моделирующих деятельность человека, а через использование средств выражения семантики данных и их связей [1].

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

Здесь можно привести следующий пример. Предположим, что в одной точке глобальной сети размещены данные о какой-то компании и ее сотрудниках, в другой точке – информация о людях, в третьей – об адресах. Очевидно, что компании, люди и адреса принадлежат к отдельным, относительно независимым областям знаний. С другой стороны в непрерывном информационном поле программа должна без особого труда суметь сопоставить сотрудников и людей, адреса этих людей и предметную область адресов как таковых.

Итак, если синтаксическая интероперабельность неразрывно связана с синтаксическим анализом данных, то семантическая требует анализа самой информации, связи ее с мировым информационным полем, установления соответствия терминов и словарей одной предметной области элементам другой [2].

XML не может стать средством, обеспечивающим связь различных данных по ряду причин.

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

XML оказывается слишком гибким средством описания данных и позволяет одну и ту же информацию разметить совершенно различными способами. В качестве иллюстрации сказанного можно представить несколько различных записей утверждения о том, что автомобиль имеет красный цвет:

<car color="red"/>
<car><color>red</color></car>
<car color="#cc"/><color id="cc" shade="red"/>

Данный факт может быть выражен и другими способами, а в том случае, когда имеется уже несколько упорядоченных отношений, вариантов кодирования еще больше [3].

С указанной проблемой можно было бы попытаться справиться одним из двух способов: либо всем заинтересованным сторонам договориться об используемом формате описания, либо прибегать к преобразованию одной грамматики в другую [2]. Однако, очевидно, что первый из этих способов не реален, поскольку заинтересованных сторон, как правило, много и состав их регулярно меняется, а второй способ крайне громоздок, и оба они по-прежнему не решают проблему выделения семантической единицы предметной области. Поэтому приходится признавать, что для эффективного представления фактов необходимо вводить некие ограничения на уровне самого языка.

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

И последняя причина заключается в том, что разметка, допускающая смесь из текста и вложенных элементов, сложна для вычленения данных и установления связи между ними. Эта сложность возникает, если необходимо отразить, что объект имеет некоторое свойство, а его значение в свою очередь представлено не значением простого типа и не вложенным поддеревом, а смешанной разметкой (“mixed content” в терминологии XML Schema) [4].

Подводя итог сказанному, следует отметить, что для Интернета будущего, в котором программы смогут автоматически анализировать содержание ресурсов, необходимо новое средство выражения семантики данных, а не только их записи.

Resource Description Framework

Технология описания ресурсов – Resource Description Framework (RDF) – является тем самым средством, на которое WWW Консорциум возлагает надежды на решение указанных задач, связанных с описанием семантики.

Несмотря на то, что RDF получил статус рекомендации еще в феврале 1999 года, он по-прежнему не обрел широкого распространения. Причин этому несколько. С одной стороны в отличие от языка XML RDF не сразу получил широкую программную поддержку. С другой – RDF не имел такой первоочередной нацеленности на электронную коммерцию и до сих пор остается преимущественно в области интересов исследователей. Третья причина видится в том, что текущий синтаксис RDF вызывает многочисленные споры и нарекания со стороны потенциальных пользователей данной технологии. По их мнению предложенные формы записи сложны и громозди, что делает описание ресурсов не слишком удобным для применения [3, 5].

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

Модель данных RDF и вопросы сериализации

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

В настоящее время RDF допускает две различные нотации, основанные на XML. Также существует несколько других способов сериализации, не связанных с последним, но поддержанных производителями. Базирование на XML с самого начала разработки считалась необходимым, поскольку давало разработчикам возможность воспользоваться всеми его преимуществами, включая сопутствующие технологии и стандартные средства для работы с ними.

После того как программа-парсер прочитала RDF-описание и построила по нему внутренне представление, до определенной степени напоминающее объектную модель документа для XML, вся дальнейшая программная работа с описанием ведется на уровне модели данных и абсолютно не зависит от изначально используемого языка сериализации. Два документа считаются эквивалентными, если совпадают их представления в виде модели, поэтому в случае использования RDF не может возникнуть проблема неоднозначного описания одного и того же факта, как это могло случиться при работе с XML [6, 7].

Для более точного понимания связи RDF с XML и другими языками сериализации можно привести следующую аналогию. Знание, присутствующее в голове человека, ни коим образом не зависит от способа его передачи другим людям. Например, его можно было бы выразить при помощи английского языка, а можно и по-русски. В этой абстракции RDF-модель данных эквивалентна знанию, а XML – английскому языку, который, хотя и является всего лишь одним из возможных способов представления, но имеет статус международного средства общения. Две существующие XML-нотации в этом случае можно сравнить с различными диалектами одного языка.

Принципы построения модели

Базовый строительный блок модели данных – утверждение, представляющее собой тройку: ресурс, именованное свойство и его значение. В терминологии RDF эти три части утверждения называются соответственно: субъект, предикат и объект [6].

Ресурсом называют все, что описывается средствами RDF. Это может быть обыкновенная Web-страница или какая-то ее часть, например, отдельный элемент HTML или XML разметки, являющийся частью описываемого документа. Также ресурсом может быть целая коллекция страниц, такая как отдельно взятый Web-сайт. И, наконец, в качестве ресурса может выступать нечто, не являющееся доступным непосредственно через Интернет, например, произвольный предмет из мира вещей. Одним словом, все, чему можно приписать некоторый URI (универсальный идентификатор) или URI с добавлением внутреннего имени объекта (имени якоря в HTML) может стать ресурсом и быть описано при помощи RDF.

Под свойством следует понимать некий аспект, характеристику, атрибут или отношение, используемое для описания ресурса. Каждое свойство имеет свой специфический смысл, допустимые значения, тип ресурсов, к которым оно может быть применено, а также отношения с другими свойствами.

Для обеспечения уникальности имен свойства подобно названиям элементов в XML придерживаются концепции пространства имен. Это означает, что не существует атрибута “цвет” как такового, а существует “цвет” в каком-то уникальном пространстве. В другом пространстве может существовать свое одноименное свойство. Таким образом, имя характеристики представляет собой URI, что делает ее потенциальным объектом для описания при помощи RDF отдельно от характеризуемого ресурса и имеющегося значения. То есть каждое свойство в RDF само является ресурсом и может иметь свои собственные атрибуты.

Одним из общезначимых свойств является “type”, относящееся к пространству имен, задаваемому непосредственно спецификацией RDF. Оно позволяет указать класс описываемого ресурса. Это может быть автомобиль, человек, книга и так далее, а может быть некоторая последовательность объектов (для выражения данного факта существует специальное значение “Seq”, также принадлежащее к пространству имен RDF).

Согласно спецификации, значение свойства может иметь один из двух типов. Первый – это ресурс, задаваемый некоторым URI. Второй тип – литерал – есть некоторое текстовое значение характеристики. Впрочем, литерал может выражать собой значение любого примитивного типа данных, присутствующего в XML. Его тест также может содержать в себе некую разметку, например, XML, но отличительной особенностью такой разметки является то, что она не обрабатывается RDF-процессором и воспринимается как обычная строка.

Тот факт, что значением свойства может быть некоторый ресурс, превращает модель данных из дерева, которым является XML-разметка, в ориентированный граф. Вершинами этого графа являются субъекты и объекты, а дугами – именованные свойства. Поскольку свойство в свою очередь может быть субъектом некоторого утверждения, графы могут быть как линейными, так и вложенными, например, мы можем выражать сомнение или согласие с каким-либо утверждением или указывать источник получения сведений [2, 6].

В качестве простой иллюстрации RDF-документа можно привести описание парка, состоящего из двух автомобилей, для каждого из которых указан год выпуска:

<rdf:RDF  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dat="http://description.org/dates#"  xmlns:foo="http://foo.org/car-park#">
  <rdf:Description  rdf:about="http://foo.org/car-park">
    <foo:car  rdf:resource="http://foo.org/car-park/01" 
      rdf:type="http://description.org/vehicles#car"  dat:year="1999"/>
    <foo:car  rdf:resource="http://foo.org/car-park/02" 
      rdf:type="http://description.org/vehicles#car"  dat:year="2001"/>
  </rdf:Description>
</rdf:RDF>

Этому описанию соответствует модель данных, которая представляется следующим графом (при графическом изображении RDF ресурсы принято рисовать овалами, а литералы – прямоугольниками):

Рисунок

Использование RDF

Выше были введены базовые понятия RDF и объяснено устройство модели данных. Фактически, содержательная часть технологии этим и исчерпывается, поскольку в задачу RDF входило лишь предоставление простой базовой модели для описания отношения ресурсов в терминах именованных свойств и их значений, а также некоторого синтаксиса, который мог бы использоваться различными сторонами для обмена данными. В рекомендации ничего не говорится о том, какие свойства могут быть у конкретных объектов и каковы их допустимые значения, подобно тому, как в спецификации XML определяются лишь правила разметки данных, но не конкретный язык для выделенной предметной области. Исключением здесь являются лишь несколько универсальных характеристик, таких как упомянутое выше свойство “type”, принадлежащих непосредственно пространству имен RDF.

Модель данных сама по себе всего лишь скелет. Для того чтобы описание обрело некий смысл, необходимо воспользоваться словарями, которые задаются при помощи дополнительной технологии – RDF Schema, играющей для RDF такую же роль, что и схема для XML (причем выражения схемы RDF также являются корректными выражениями RDF, как и выражения схемы XML – корректные выражения XML).

Под словарем следует понимать совокупность ресурсов, использующихся для описания свойств других ресурсов; классов ресурсов, которые могут быть описаны при помощи заданных свойств; и ограничения, налагаемые на их значения или наборы допустимых значений. При этом классы могут состоять в отношении “подкласс” и аналогично свойства могут быть связаны отношением “подсвойство” [2, 8].

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

Реальное значение RDF невозможно оценить, пока он используется для внутренних целей отдельно взятого приложения. Польза от внедрения RDF будет тогда, когда он станет средством межпрограммного взаимодействия, обмена данными, когда машины получат способность комбинировать информацию, полученную из различных источников, тем самым, получая какую-то новую информацию. Чем больше приложений в Интернете смогут работать с данными, тем выше станет их ценность [1, 7].

Одним из наиболее ярких примеров существующего общеизвестного словаря является Dublin Core – набор атрибутов для метаописания ресурсов с целью каталогизации. Dublin Core предоставляет пятнадцать характеристик, семантика которых была согласована интернациональной междисциплинарной группой, состоящей из специалистов в области библиотечного дела, информатики, представителей музейного сообщества и других сторон [9].

Эти характеристики, описывающие содержимое документов (или других объектов, например, рисунков), версию, формат, язык и так далее, а также права на интеллектуальную собственность, были разработаны независимо от RDF. Тем не менее, одной из целей создания технологии описания ресурсов было получение средства для указания метаданных, и информационная модель RDF прекрасно подходит для описания ресурсов при помощи атрибутов Dublin Core. Более того, авторы ряда статей рассматривают RDF исключительно в этом качестве, даже не упоминая о других возможностях применения данной технологии.

В то же время RDF прекрасно подходит и для представления самих данных, их структуры и связей. Таким образом, при применении специально разработанных RDF-схем (в качестве средства описания онтологии предметной области) технология может быть использована для выражения информации, относящейся к некоторым разделам знаний, понятным для различных приложений Интернета образом.

Литература

  1. Tim Berners-Lee – "Semantic Web Road map", Сентябрь 1998;
  2. http://www.w3.org/DesignIssues/Semantic.html

  3. Стин Декер, Сергей Мельник, Франк ван Хермелен, и др. – "Semantic Web: роли XML и RDF", "Открытые системы", Сентябрь 2001;
  4. http://osp.admin.tomsk.ru/os/2001/09/041.htm

  5. Edd Dumbill – "The role played by XML in the next-generation Web", Сентябрь 2000;
  6. http://webservices.xml.com/pub/a/ws/2000/09/06/distributed.html

  7. Tim Bray – "What is RDF?", Январь 2001;
  8. http://www.xml.com/pub/a/2001/01/24/rdf.html

  9. Edd Dumbill – "Putting RDF to Work", Август 2000;
  10. http://www.xml.com/pub/a/2000/08/09/rdfdb/index.html

  11. Ora Lassila, Ralph Swick – "Resource Description Framework (RDF) Model and Syntax Specification", W3C Recommendation, Февраль 1999;
  12. http://www.w3.org/TR/1999/REC-rdf-syntax-19990222

  13. Graham Klyne, Jeremy Carroll – "Resource Description Framework (RDF): Concepts and Abstract Data Model", W3C Working Draft, Август 2002;
  14. http://www.w3.org/TR/2002/WD-rdf-concepts-20020829

  15. Dan Brickley, R.V. Guha – "RDF Vocabulary Description Language 1.0: RDF Schema", W3C Working Draft, Ноябрь 2002;
  16. http://www.w3.org/TR/2002/WD-rdf-schema-20021112

  17. Diane Hillmann – "Using Dublin Core", Апрель 2001;

    http://dublincore.org/documents/usageguide