Средства описания ресурсов RDF

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

Принцип построения отношений между сетевыми ресурсами в спецификации RDF предусматривает наличие трех компонент: объекта, атрибута и значения (аналогичных классической схеме "подлежащее - сказуемое - дополнение"). Каждому элементу данной цепочки (триплета) присваивается идентификатор (URI), с помощью которого при указании одного из звеньев можно автоматически восстановить всю цепочку в целом. Из триплетов языка RDF могут формироваться сети из взаимосвязанных объектов. Поскольку RDF использует URI-идентификаторы для кодирования информации в документе, это обеспечивает то, что каждое понятие будет привязано к единому определению, которое можно найти в Сети.

Базовый строительный блок в RDF - тройка "объект - атрибут - значение" часто записывают в виде A(O,V), где О - объект, А - атрибут со значением V. RDF позволяет менять местами объекты и значения.

Изначально в RDF используется синтаксис языка XML и URI-идентификаторы для указания объектов, понятий, свойств и отношений. Однако существуют и другие формы RDF-описаний, например, в виде наборов троек:

hasName

('http://dwl.visti.net', "Dmitry Lande")

authorOf

('http://dwl.visti.net/', 'ISBN5845907640')

hasPrice

('ISBN5845907640', "$8").

Кроме того, RDF допускает форму представления, в которой любое выражение RDF в триплете может быть объектом или значением, т. е. это позволяет указать, что данный объект имеет определенный тип, к примеру, что "ISBN5845907640" - это rdf:type book, за счет указания на определение book в схеме RDF:

<rdf:Description about="www.book.net/ISBN5845907640">

<rdf:type rdf:resource="http://description.org/schema/#book">

</rdf:Description>

Спецификации RDF обеспечивают поддержку тегов, позволяющих определять практически любые понятия (например, в электронной коммерции можно пользоваться такими тегами, как "Price" и "Invoice", которым приписать значения цены и счета, соответственно).

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

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

Пример RDF XML:

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:contact="http://www.w3.org/2000/05/contact#">

<contact:Company rdf:about="http://www.w3.org/Organization/contact#WebifySolutions">

<contact:name>Webify Solutions</contact:name>

<contact:mailbox rdf:resource="mailto:info@webifysolutions.com"/>

<contact:phone>1-800-4WEBIFY</contact:phone>

</contact:Company>

</rdf:RDF>

Элемент RDF несет информацию о ресурсе, в данном случае это компания http://www.w3.org/Organization/contact#WebifySolutions. Компания может быть идентифицирована по URI http://www.w3.org/Organization/contact#WebifySolutions, ее название - Webify Solutions, ее e-mail - info@webifysolutions.com, а номер телефона - 1-800-4WEBIFY.

Онтологии

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

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

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

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

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

Такая интеллектуальная программа, интерпретирующая онтологии, сможет вывести, например, что если Корнелльский Университет находится в г. Итака, который расположен в штате Нью-Йорк, который, в свою очередь, есть часть США, то адрес этого университета следует писать в американском формате.

Разработка языка описания структурированных онтологий OWL стало в последнее время одним из наиболее важных звеньев работ по Семантическому вебу, проводимых консорциумом W3C. В конце 2001 года для этой цели в составе W3C была учреждена специальная рабочая группа - Web Ontology Working Group. 10 февраля 2004 года WWW- Консорциум присвоил языку OWL статус рекомендованной к реализации технологии. В рамках OWL онтология - это совокупность утверждений, задающих отношения между понятиями и определяющих логические правила для рассуждений о них. Компьютеры могут "понимать" смысл семантических данных на Web-страницах, следуя по гиперссылкам, ведущим на онтологические ресурсы. Онтология может включать описания классов, свойств и их примеры (индивиды).

Формальная семантика OWL описывает, как получить логические выводы на основе онтологий, т. е. получить факты, которые не представлены буквально, а следуют из семантики онтологии. Эти выводы могут базироваться на анализе одного документа или множества документов, распределенных в Сети. Последнее обеспечивается возможностью онтологий быть связанными, включая прямой импорт информации из других онтологий. Чтобы написать онтологию, которая может однозначно интерпретироваться и использоваться программными агентами, задействуются синтаксис и формальная семантика OWL.

На практике создание онтологий начинается с иерархии классов понятий, составляющих предметную область. Фундаментальным таксономическим конструктором для классов является rdfs:subClassOf. Он связывает более частный класс с более общим классом. Если X - подкласс Y, то каждый представитель X - также представитель Y. Отношение rdfs:subClassOf является транзитивным. Если X - подкласс Y, и Y - подкласс Z, то X - подкласс Z. Ниже приведены описания классов и подклассов, заимствованные из рекомендаций W3C и связанные с предметной областью - виноделием.

<owl:Class rdf:ID="Напиток">

<rdfs:subClassOf rdf:resource="#ПродуктПитания" />

...

</owl:Class>

В данном примере Напиток определен как подкласс класса ПродуктПитания. Ниже дано упрощенное определение для класса Вино, которое является Напитком:

<owl:Class rdf:ID="Вино">

<rdfs:subClassOf rdf:resource="Напиток"/>

<rdfs:label xml:lang="en">wine</rdfs:label>

<rdfs:label xml:lang="ru">вино</rdfs:label>

<rdfs:label xml:lang="fr">vin</rdfs:label>

...

</owl:Class>

Конкретный объект в OWL принято называть индивидом. В примере ВиноградКабернеСовиньон - это индивид, потому что обозначает один конкретный сорт винограда:

<owl:Class rdf:ID="ВинныйВиноград">

<rdfs:subClassOf rdf:resource="&food;Виноград" />

</owl:Class>

<ВинныйВиноград rdf:ID="ВиноградКабернеСовиньон" />

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

<owl:ObjectProperty rdf:ID="сделаноИзВинограда">

<rdfs:domain rdf:resource="#Вино"/>

<rdfs:range rdf:resource="#Виноград"/>

</owl:ObjectProperty>

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

По словам Тима Бернерса-Ли в пресс-релизе W3C, RDF и OWL - это серьезный шаг и весьма мощная база для приложений Семантического веб. Утверждение этих стандартов как рекомендованных W3-консорциумом подоспело вовремя. Сегодня открывается новая фаза Internet как информационного пространства. Эта фаза началась с того момента, когда проект Семантический веб начал свою работу.