Развитие технологий Semantic Web: обработка RDF-графов на основе XSLT

 

Источник: http://shcherbak.net/rdf_xslt_tech/

Н.В. Рябова, С.С. Щербак

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

Введение

Стремительное развитие компьютерных информационных технологий привело к тому, что сегодня компьютер, помимо выполнения ставших уже традиционными задач обработки числовой и символьной информации, программирования игр, создания компьютерных презентаций и т.п., приобрел совершенно новую, революционную по своей сути функцию - предоставление постоянного входа, своеобразного «окна» в мировое информационное киберпространство. Технологии World Wide Web (WWW) позволяют объединять в Интернет - пространстве гигантское количество пользователей всех уровней, предоставлять им различного вида сервисы и снабжать информацией (правда, не всегда релевантной запросу или даже вовсе нежелательной, так называемый spam в электронной почте).

На наших глазах WWW пережила уже два этапа развития: вначале предоставляя информацию в виде вручную сгенерированных HTML-страниц, затем появилась возможность генерировать страницы из баз данных, хранящихся на Web-серверах. Однако оба эти этапа были ориентированы на обработку информации человеком-специалистом и читателей – пользователей компьютеров. Чтобы противостоять неуклонному и неуправляемому расширению «всемирной паутины», которая стала угрожающе запутываться, ведущими учеными и разработчиками в области Computer Science был выдвинут лозунг «превратить информационное Интернет-пространство в пространство знаний». Web следующего, третьего поколения, должна обеспечивать машинную обработку информации с учетом ее семантики (machine accessible semantics).

Новую парадигму Web ее создатели и идеологи назвали Semantic Web [1], делая тем самым акцент на требовании эксплицитного представления семантики в Web, понятного для программных агентов. Росту популярности и широкому распространению технологий Semantic Web способствует разработка и внедрение WWW-консорциумом (W3C) ряда инициатив, связанных со стандартизацией синтаксической и семантической разметки электронных документов, особенно технологий XML и RDF, поддерживающих семантическую совместимость. В связи с этим, в данной работе предлагается технология обработки RDF-графов необходимая для получения интуитивно понятных представлений содержимого RDF графов.

The Resource Description Framework (RDF) является языком общего назначения для представления информации в Web [2]. RDF применяется для того, чтобы предоставить информацию о ресурсах в терминах простых свойств и значений этих свойств. Ресурсом может выступать все что угодно, чему можно приписать некоторый URI(Uniform Resource Identifiers), даже то, что потенциально может быть не доступно через Интернет. Идея описания ресурсов в терминах простых свойств, их значений и применения URI для идентификации ресурсов дает возможность представить информацию о ресурсах в RDF как граф узлов и дуг, представляющих ресурсы, их свойства и значения этих свойств [3].

XML/RDF синтаксис RDF

XML/RDF синтаксис позволяет выразить RDF данные c помощью языка расширяемой разметки XML, что отчасти решает проблему интеграции RDF с Интернет - технологиями и дает возможность применять RDF для обмена метаданными в среде Интернет. Кроме того, XML/RDF-синтаксис RDF позволяет применять для обработки RDF-конструкций технологии, которые разрабатываются для XML, такие как XPath [4], XSLT [5] и др.

Согласно [2], RDF-граф, записанный в синтаксисе XML/RDF, представляется в последовательной форме пригодной для машинной обработки. Кроме того, этот синтаксис позволяет различные формы записи одного и того же RDF- графа, различные сокращенные формы записи и т.п.

RDF/RDFS и Semantic Web

Основу Semantic Web[6] составляет модель данных RDF – “объект – атрибут- значение”, что позволяет описывать ресурсы в виде наборов утверждений о свойствах этих ресурсов. Особенность модели данных RDF в том, что все компоненты этой модели идентифицируются с помощью универсальных идентификаторов(URI). Благодаря этой особенности RDF позволяет объединять информацию с различных источников, что может быть весьма полезно для обеспечения совместного использования информации в рамках Web. Терминологическая база, применяемая для описания ресурсов, определяется соответствующей RDF-схемой – иерархией терминов (понятий) предметной области. RDF схемы разрабатываются с помощью языка описания словарей RDF терминов - RDFS [7].

RDF и Protege 2000

Несколько слов о протоколе Open Knowledge Base Connectivity (OKBC)[8]. Этот протокол разработан в Стэнфордском университете для обеспечения единства запросов и создания унифицированного интерфейса для знание-ориентированных систем, основанных на фреймах.

Проект Protege-2000[9] является программной средой для создания и редактирования баз знаний и онтологий. Модель знаний Protege-2000 является OKBC - совместимой, что позволяет ей быть метамоделью над другими моделями знаний. Таким образом, в Protege-2000 применяется один настраиваемый интерфейс для обработки языков семантической разметки. Одним из таких языков является RDF. Что делает Protege-2000 привлекательной средой разработки RDF описаний документов, тем более что при необходимости Protege-2000 позволяет перевести все существующие наработки в Protege-2000 на другие языки семантической разметки, например, OWL. С различиями в моделях знаний, применяемых в Protege-2000 и модели RDF, можно познакомиться здесь[10]. Следует отметить, что реализация стандарта RDF в Protege-2000 не поддерживает некоторых конструкций RDF[11]. Кроме того, форма записи RDF- конструкций, генерируемых средой Protege-2000, является более предсказуемой, в отличие от разнообразных форм записи одних и тех же RDF-конструкций, сокращенных форм, которые можно построить с помощью обычного текстового редактора, что делает среду Protege-2000 привлекательной для разработчиков решений, связанных с обработкой онтологий. Предлагаемая технология обработки RDF графов ориентирована в большей степени на обработку графовых конструкций Protege-реализации стандарта RDF.

Технология XSLT

Для обработки XML - документов можно применить различные языки программирования, например, Java с использованием низкоуровневых API, таких как SAX или DOM, но наиболее удобным представляется язык XSLT (eXtensible Stylesheet Language – Transformation, который получил статус рекомендации W3C 16 ноября 1999г.) – Расширяемый язык таблиц стилей для трансформации [5]. Одним из преимуществ этого языка является его схожесть с продукционными правилами и относительная схожесть с инструкциями на естественном языке, а главное этот язык позволяет трансформировать структуру XML документов в другое представление и/или формат. Общая схема трансформации документа представлена на рисунках 1 и 2. Для того чтобы трансформировать документ необходимо правила трансформации XSLT применить к документу. Трансформация выполняется с помощью XSLT-процессора. В результате трансформации XSLT- процессор генерирует необходимое представление исходного документа (сериализация документа).

Технология обработки RDF- графов с помощью XSLT

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

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

Документ RDF представляет собой выраженные в последовательной форме иерархии классов, экземпляров классов, атрибутов. Каждый объект (экземпляр класса) иерархии содержит уникальный идентификатор(URI), который служит для идентификации объекта в иерархии объектов. В терминах RDF свойство объекта rdf:about содержит уникальный идентификатор этого объекта. Кроме того, объединение объектов в иерархию происходит тоже с использованием URI.

В терминах RDF атрибут rdf:resource с URI объекта указывает, с каким объектом имеет связь объект, содержащий данный атрибут rdf:resource. Объединение множества объектов иерархии классов с помощью URI образует RDF – граф. Последовательная форма записи RDF - графа подразумевает последовательное описание экземпляров классов в синтаксисе RDF с указанием URI этого экземпляра и, в случае наличия, списка URI взаимосвязанных объектов. На рис. 3 изображен RDF – граф в последовательной форме с комментариями.

Рисунок 3 – Последовательная форма представления RDF-графа

Учитывая то, что для обработки RDF-графов выбрана технология XSLT, а базовым строительным блоком этой технологии являются таблицы стилей с шаблонами преобразования, описывающие конкретное преобразования древовидной структуры в виде правил обработки узлов, наборов узлов этой структуры, адаптируем стандартное для обработки XML-документов описание таблицы стилей для обработки доументов RDF. Для этого XSLT-шаблон необходимо привести к виду, как представлено ниже в разделе “Базовый XSLT файл для преобразований RDF – графа”. Комментарии к XSLT – инструкциям добавлены только в описательных целях, их не нужно переносить в реальные файлы обработки RDF – графов. Далее необходимо определить точку входа в RDF граф, т.е. имя класса, экземпляры которого будут обрабатываться, и представление которого необходимо получить. Имя класса можно задать, определив соответствующую сущность, например, таким образом . Потом необходимо описать преобразование в соответствующем rdf_node шаблоне, например, так:

<xsl:apply-templates select="ns:&rdf_node;">
<!—тело преобразования -->
<xsl:template>

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

1. Вывод значения атрибута узла
2. Вывод значений атрибутов дочернего узла
3. Вывод значений атрибута подузла узла, который является дочерним узлом текущего узла
4. Сортировка по значению атрибута
5. Идентификация узлов RDF-графа

Вывод URI конкретного узла
Вывод URI подузлов текущего узла

6. Вывод rdfs-label узла RDF графа
7. Выделение и обработка узла с конкретным значением атрибута

Описание операций с пояснениями к XSLT-шаблонам представлены ниже. Для выполнения XSLT шаблонов представленных в описаниях операций необходимо модифицировать базовый XSLT файл или воспользоваться XSLT-файлами[15]. Процесс преобразования RDF в формат HTML представлен на рис. 4.

Рисунок 4 – Общая схема преобразования RDF -документа с использованием таблиц стилей XSLT.

Алгоритм преобразований RDF - графа с помощью процессора XSLT – Saxon [8]

1. Разработать RDF-документ с помощью редактора онтологий Protege . 2. Составить файл с описанием требуемого преобразования на XSLT, модифицировав соответствующим образом базовый XSLT файл для преобразований RDF – графа [предлагаемый в работе], или прилагаемые к работе образцы. 3. Изменить кодировку RDF файла, генерируемого Protege-2000 c UTF-8 на windows-1251 для платформы Windows, или с UTF-8 на KOI8-R для Linux, иначе XSLT процессор сгенерирует множество ошибок. Для этого открываем файл с расширением .rdf и изменяем на (пример для Windows). 4. Команда для запуска преобразования c помощью процессора XSLT Saxon версии 7.8: java -jar saxon7.jar -o [имя результирующего файла].htm [имя rdf файла].rdf [имя файла с XSLT преобразованием].xsl 5. Пример: java -jar saxon7.jar -o developer.htm PersonalPage.rdf rdf_developer.xsl 6. Примечание: предполагается, что rdf файлы, генерируемые Protege-2000 находятся в рабочей директории процессора XSLT, иначе необходимо указывать полные пути к файлам rdf, xslt.

Достоинства технологии

1. Описание особенностей обработки RDF-графов, которые позволяют применить мощные механизмы XSLT технологии для трансформации RDF –графов. 2. Практическое применение технологии RDF для управления содержимым WEB – сайтов, порталов и др. на основе среды Protege. 3. Время, затрачиваемое на написание RDF-преобразования с помощью описанной технологии, приблизительно равно времени, затрачиваемом на написание XML преобразования.

Недостатки технологии

Основные недостатки обусловлены, прежде всего, тем, что основное предназначение XSLT обработка древовидных структур, поэтому иногда бывает сложно выполнить преобразование графа к нужному виду. Кроме того, технология преобразования RDF –графов не избавляет от таких недостатков XSLT технологии, как: 1. Отсутствие средств, позволяющих производить точные математические вычисления; 2. Повышенная сложность и иногда невозможность реализации сложных трансформаций документов.

Выводы

Предложенная технология преобразований RDF-графов успешно работает с любыми XSLT процессорами, которые совместимы со стандартом XSLT версии 2. Но для выполнения большинства операций над RDF- графами достаточно процессора XSLT версий 1.0, единственно, что функциональность преобразований уменьшиться, за счет отсутствия возможностей характерных для технологии XSLT версии 2. Технология успешно тестировалась c процессором XSLT от Microsoft, поставляемым вместе c msxml, а также с процессором Xalan на платформах Linux и Windows. Кроме того, технология успешно применяется для создания проекта Web-портала ontolib.com

Литература

1. Berners-Lee T. Weaving the Web.- Harper, San Francisco, 1999.
2. RDF/XML Syntax Specification http://www.w3.org/TR/rdf-syntax-grammar
3. RDF Premier http://www.w3.org/TR/rdf-primer/
4. Спецификация языка XPath http://www.w3.org/TR/xpath
5. Спецификация языка XSLT http://www.w3.org/TR/xslt
6. Проект Semantic Web http://www.w3c.org/sw
7. Спецификация языка RDFS http://www.w3c.org/rdfs
8. Open Knowledge Base Connectivity (OKBC) http://www.ai.sri.com/~okbc/
9. Проект Protege http://protege.stanford.edu
10. http://smi-web.stanford.edu/projects/protege/protege-rdf/protege-rdf.html
11. RDF Schema Support in Protege-2000 http://protege.stanford.edu/doc
12. Кэй М. XSLT. Справочник программиста. – Пер. с англ. – СПб.: Символ-Плюс, 2002. – 1016 с.: ил.
13. Валиков А.Н. Технология XSLT. – CПб.: БХВ-Петербург, 2002. – 544 с.: ил.
14. Shelley Powers. Practical RDF.- O'Reilly, 2003.- 350 c.