Оцените cтатью!!! |
УДК 519.7:007.52
РАЗВИТИЕ ТЕХНОЛОГИЙ SEMANTIC WEB: ОБРАБОТКА RDF-ГРАФОВ НА ОСНОВЕ XSLT
Н.В. Рябова, С.С. Щербак
Статья посвящена актуальной проблеме повышения эффективности компьютерного анализа информации применительно к технологиям Semantic Web. Рассмотрены вопросы разработки технологии автоматической обработки RDF-графов для получения интуитивно понятных представлений содержимого произвольных RDF-графов.
1. Введение
На наших глазах 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].
Несколько слов о протоколе Open Knowledge Base Connectivity (OKBC)[8]. Этот протокол разработан в Стэндфордском университете для обеспечения единства запросов и создания унифицированного интерфейса для знание-ориентированных систем, основанных на фреймах.
Для обработки XML - документов можно применить различные языки программирования, например, Java с использованием низкоуровневых API, таких как SAX или DOM, но наиболее удобным представляется язык XSLT (eXtensible Stylesheet Language – Transformation, который получил статус рекомендации W3C 16 ноября 1999г.) – Расширяемый язык таблиц стилей для трансформации [5]. Одним из преимуществ этого языка является его схожесть с продукционными правилами и относительная схожесть с инструкциями на естественном языке, а главное этот язык позволяет трансформировать структуру XML документов в другое представление и/или формат. Общая схема трансформации документа представлена на рисунках 1 и 2. Для того чтобы трансформировать документ необходимо правила трансформации XSLT применить к документу. Трансформация выполняется с помощью XSLT-процессора. В результате трансформации XSLT- процессор генерирует необходимое представление исходного документа (сериализация документа).
Рисунок 1. Общая схема преобразования документа с использованием XSLT
Рисунок 2. Сериализация документа в нужном формате.
6. Технология обработки RDF- графов с помощью XSLT
<xsl:apply-templates select=”ns:&rdf_node;”>
<!—тело преобразования –>
<xsl:template>
1. Вывод значения атрибута узла
2. Вывод значений атрибутов дочернего узла
3. Вывод значений атрибута подузла узла, который является дочерним узлом текущего узла
4. Сортировка по значению атрибута
5. Идентификация узлов RDF-графа
Вывод URI конкретного узла
Вывод URI подузлов текущего узла
6. Вывод rdfs-label узла RDF графа
7. Выделение и обработка узла с конкретным значением атрибута
Описание операций с пояснениями к XSLT-шаблонам представлены ниже. Для выполнения XSLT шаблонов представленных в описаниях операций необходимо модифицировать базовый XSLT файл или воспользоваться XSLT-файлами[15].
Процесс преобразования RDF в формат HTML представлен на рис. 4.
Базовый XSLT файл для преобразований RDF – графа
Рисунок 5. Базовый XSLT файл для преобразований RDF – графа.
Вывод значения атрибута узла
Для вывода значения атрибута rdf_attr rdf_node, необходимо воспользоваться следующим шаблонным правилом:
Вывод значений атрибутов дочернего узла
Для вывода значений атрибутов всех подузлов node2 узла node1, необходимо применить следующее шаблонное правило:
Описание шаблона:
Для всех подузлов node2 узла node1, rdf:resource которых содержит ссылку(URI) на конкретный узел node2
<xsl:for-each select =”@rdf:resource”>
создать переменную temp и сохранить в нее значение текущего узла, т.е. значение rdf:resource, содержащее конкретное URI узла node2.
<xsl:variable name=”temp” select=”.”/>
Для всех узлов rdf_instance rdf:about, которых соответствует rdf:resource rdf_node
<xsl:for-each select =”//ns: node2 [@rdf:about=$temp]“>
Вывести значение атрибута(ов)
<xsl:value-of select=”@ns:&rdf_attr”/><br/>
Вывод значений атрибута подузла узла, который является дочерним текущего узла
Для вывода значений атрибута rdf_attr всех подузлов node3 узлов node2, которые является подузлами текущих узлов(node1), необходимо применить следующее шаблонное правило:
Шаблон для обработки узла node3
Сортировка по значению атрибута
Для того чтобы отсортировать узлы node1 по атрибуту rdf_attr, необходимо добавить <xsl:sort select=”@ns:&rdf_attr;”/> в шаблонное правило обработки узлов node1:
Идентификация узлов RDF-графа
Чтобы вывести значение URI узла, необходимо в шаблонном правиле определить переменную и инициализировать ее значением атрибута rdf:about, как показано в примере:
Вывод URI подузлов текущего узла
Чтобы вывести значение rdfs-label узла, необходимо добавить следующую инструкцию в шаблонное правило:
<xsl:value-of select=”@rdfs:label”/><br/>
Выделение и обработка узла с конкретным значением атрибута
1. Разработать RDF-документ с помощью редактора онтологий Protege .
2. Составить файл с описанием требуемого преобразования на XSLT, модифицировав соответствующим образом базовый XSLT файл для преобразований RDF – графа [предлагаемый в работе], или прилагаемые к работе образцы.
3. Изменить кодировку RDF файла, генерируемого Protege-2000 c UTF-8 на windows-1251 для платформы Windows, или с UTF-8 на KOI8-R для Linux, иначе XSLT процессор сгенерирует множество ошибок. Для этого открываем файл с расширением .rdf и изменяем <?xml version=’1.0′ encoding=’UTF-8′?> на <?xml version=’1.0′ encoding=’windows-1251′?> (пример для 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. Любая операционная система, на которой может работать виртуальная машина Java, например, Windows, Linux, FreeBSD.
2. Виртуальная машина Java не ниже версии 1.4.2
3. Java реализация бесплатно-распространяемого XSLT-процессора Saxon версии не ниже 7.8, “умеющего” работать с шаблонами преобразований XSLT версии 2.
9. Достоинства технологии
1. Описание особенностей обработки RDF-графов, которые позволяют применить мощные механизмы XSLT технологии для трансформации RDF –графов.
2. Практическое применение технологии RDF для управления содержимым WEB – сайтов, порталов и др. на основе среды Protege.
3. Время, затрачиваемое на написание RDF-преобразования с помощью описанной технологии, приблизительно равно времени, затрачиваемом на написание XML преобразования.
Основные недостатки обусловлены, прежде всего, тем, что основное предназначение XSLT обработка древовидных структур, поэтому иногда бывает сложно выполнить преобразование графа к нужному виду. Кроме того, технология преобразования RDF –графов не избавляет от таких недостатков XSLT технологии, как:
1. Отсутствие средств, позволяющих производить точные математические вычисления;
2. Повышенная сложность и иногда невозможность реализации сложных трансформаций документов;
Литература
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/~