Язык запросов SPARQL для RDF [перевод рекомендации W3C]

На странице переводов стал доступен перевод рекомендации W3C «Язык запросов SPARQL для RDF».

Таким образом, читатели SHCHERBAK.NET, могут получить доступ к важной подборке переводов нормативных документов W3C, а именно к рекомендациями RDFa, SPARQL, SPARQL PROTOCOL и черновику рекомендации OWL 2.
Read the rest of this entry »

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

Лирическое отступление

AgentOWL – небольшая java библиотека, разработанная для поддержки RDF/OWL моделей для Jade агентов.

Здесь используется описание модели знаний агента(generic agent model), основанная на пяти основных элементах: Resources, Actions, Actors, Context и Events. Поддерживается обмен сообщениями в формате RDF/OWL, включение полученной информации в модель.

Read the rest of this entry »

День рождения Семантического Веба

10 февраля 2004 года Web Ontology Language (OWL) получил статус рекомендации W3C. Эту знаменательную дату многие считают официальным днем рождения Семантического Веба, потому хочу поздравить всех заинтересованных с этим праздником.

5 лет это конечно не много, но это время, за которое Семантический Веб превратился из академической разработки в технологию, применяемую в промышленных кругах. Пусть были времена «падения», когда говорили, что Семантический Веб – это технология, которую практически нереально внедрить в жизнь, ан нет, время берет свое, и практически все «большие» корпорации, начинают в той или иной мере внедрять Семантик Веб у себя, кто выборочными компонентами, а кто и интегрированными решениями.

Ведь уже ни для кого, не секрет, что развитие веб-сервисов и SOA, привлекло инвестиции в область Семантического Веба. А при чем здесь веб-сервисы и SOA спросите Вы, и я отвечу – «веб-сервисы стали отправной точкой для бизнеса в мир Семантического Веба». Они (веб-сервисы) показали эффективность слабосвязных систем, что на фоне финансовой целесообразности использования таких систем привело к росту инвестиций. Далее, все просто – наборы связанных веб-сервисов реорганизованы в слабосвязанные сервисные шины предприятий, целесообразность которых на сегодняшний день проверена ведущими американскими корпорациями».

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

А Семантик Веб в идее может на порядок усилить сервисные шины XML. Ведь простое внедрение RDF в XML через формат RDF/XML обеспечивает уже семантическую интероперабельность таких систем через уже разработанное программное обеспечение Семантического Веба. А это для мира бизнеса открывает качественно новые перспективы :grin:

Как создать приложение Semantic Web?

Ответ на это прост, если не учитывать проблемы, которые я освещал в одном из предыдущим постов.

Cначала давайте определимся, что будем понимать под приложением Semantic Web.

Итак, если приложение построено с использованием таких средств Semantic Web, как XML,  RDF, OWL, SPARQL, то такое приложение будем называть приложением Semantic Web первого типа.

В случае, если приложение реализует идеи Semantic Web, как концепции,  тогда такое приложение назовем приложением Semantic Web второго типа.
Read the rest of this entry »

Google Pagerank SHCHERBAK.NET «немного» увеличился…

Сегодня утром Google Toolbar «сообщил» мне приятную новость -

Google PageRank сайта SHCHERBAK.NET стал равен 5.

{RDF+XSLT} – cтатья с самым высоким Google PageRank (4).

На online сервисах по определению Google Pagerank проверить информацию о повышении PR мне не удалось… но плагин Firefox SeoQuake подтверждает информацию – у shcherbak.net действительно PR стал равным пяти :grin:

В связи с этим, я хочу поблагодарить читателей за проявляемый интерес к сайту SHCHERBAK.NET.

Только благодаря вашему вниманию к SHCHERBAK.NET у меня поддерживается желание развивать этот ресурс по технологиям Semantic Web :)

ReDeFer или как просто получить RDF!

RDF (Resource Description Framework) – это основа документооборота Semantic Web.

ReDeFer – это один из множества проектов по созданию средств преобразования документов различных форматов в RDF.

Наиболее полезными, на мой взгляд, средствами ReDeFer являются:

XSD2OWL – средство преобразования схем XML в OWL. Причем преобразование в OWL осуществляется из XSD.
Read the rest of this entry »

Что нужно помнить об XML!

Подготовлено по материалам семинара по XML…

Читать здесь :)

Введение в XML

Итак, XML…

XML (eXtensible Markup Language) – это расширяемый язык разметки.

XML – это инструмент для структурирования информации

XML – это инфраструктура для создания Web-базированных информационных систем, т.е. набор программных компонент для создания, обработки структурированных документов и их передачи, посредством, например, протокола HTTP.

XML – это основа для построения современных веб-сервисов.

Основные потребители XML

1. SOA (service-oriented architecture)
2. Semantic Web

SOA использует XML для стандартизации структуры передаваемой информации между сервисами.

Semantic Web использует XML как средство интеграции онтологий и т.п. в существующую инфраструктуру Web.

Развитием XML управляет консорциум WWW (W3C).

Например, список компьютеров в XML можно представить так:

<productList>
<computer model="S3331" price="5000">
<hdd capacity="400">Hitachi</hdd>
<processor>P4</processor>
<motherboard> 865GPE </motherboard>
</computer>
<computer model="S3234" price="4000">
<hdd capacity="120">WD</hdd>
<processor>P4</processor>
<motherboard> 865GPE </motherboard>
</computer>
</productList>

Данные в XML размещаются внутри тегов. Пара “открывающий – закрывающий тег” соответствует элементу данных.

Элементом называется часть документа XML, разграниченная открывающим тегом, таким как <my_element>, и закрывающим тегом, таким как </my_element>.

Документ XML состоит из одного элемента верхнего уровня, называемым корневым элементом и наборов, вложенных в него, элементов и символьных данных.

Символьные данные – это текст внутри элемента.

Атрибутом является свойство элемента, которое предоставляет дополнительную информацию об элементе или о моделируемой сущности элемента.

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

Пространства имен XML – символьная строка, обозначаемая некоторый объект реального мира через URI.

URI (Uniform Resource Identifier) – унифицированный идентификатор ресурса.

В XML вместо URI в основном используется URL (Uniform Resource Locator).

URL – унифицированный локатор ресурсов, позволяющий
Например, пространство имен http://ontolib.com/ с префиксом ns, позволяет создать элемент <ns:computer> __</ns:computer>, который будет использоваться для описания сущности «Компьютер», причем структура моделируем сущности уникальна внутри схемы XML, принятой в ontolib.com.

Применение пространств имен позволяет различать элементы имеющие одинаковые имена.

Так через используемые пространства имен можно отличить элемент <ns:computer> с http://ontolib.com и <ns:computer> из http://shcherbak.net.

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

Например, для структурирования можно использовать простое правило -

элементы XML соответствуют сущностям предметной области, а атрибуты соответствуют характеристикам этих сущностей.

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

<car namе="VM"><engine>V6</engine></car>

Но это не единственный вид связи, который может моделироваться в XML.

XML поддерживает все возможные виды связей, которые могут моделироваться такими языками, как UML, языками ER-моделирования и т.п.

Но для моделирования таких связей, вероятнее всего, вам придется использовать такие технологии как XLink или XPointer.

Кроме того, при создании документов XML необходимо не забывать простые правила формирования XML-документов, а именно,

1. XML- регистрозависим, т.е.в тегах учитывается регистр символов.
2. Элементы XML должны быть правильно вложены друг в друга.
3. В XML должен быть один корневой элемент.
4. Значения атрибутов всегда должны быть заключены в кавычки.

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

Для обработки XML конструкций применяются синтаксические анализаторы.

Например, msxml от Microsoft.

Что нужно помнить при работе с XML?

1. В XML сохраняются пробелы (в отличие от HTML), т.е. если в текстовые описания добавлять лишние пробелы, то они синтаксическим анализатором не удаляются.
2. В XML символы перевода строки CR/LF преобразуются в LF.

Для описания данных в XML используется DTD или схема XML.

DTD (Document Type Definition) задает правила формирования теговой разметки.

Например, для описания компьютеров можно определить следующее DTD:

<!ELEMENT productList (product)+ >
<!ELEMENT computer (hdd, processor, morherboard) >
<!ELEMENT hdd (#PCDATA) >
<!ELEMENT processor (#PCDATA) >
<!ELEMENT motherboard (#PCDATA) >

Использование знака «+» возле элемента накладывает на элемент ограничение – этот элемент как минимум раз должен быть определен. Могут также применяться, такие знаки, как «*» и «?». Знак «*» означает, что возможно 0, 1 или более элементов, а «?» означает, что элемент необязателен. Отсутствие знаков возле элементов означает обязательность их определения (т.е. элемент обязательно должен быть).

Атрибуты элементов определяются с помощью конструкции XML <!ATTLIST>.

<!ATTLIST имя_элемента имя_атрибута тип_атрибута значение_по_умолчанию >

В DTD все типы атрибутов основаны на строковом типе данных.

Наиболее распространенные типы атрибута:

CDATA – символьные данные;
ID – уникальный идентификатор;
(value1|value2|) – перечисление возможных значений атрибутов, т.е. возможным значением атрибута будет одно из перечисляемых.

Например, можно определить атрибут model так:

<!ATTLIST computer model CDATA>

DTD к XML можно подключить так:

<!DOCTYPE productList SYSTEM «products.dtd»>

или можно определить конструкции DTD внутри XML документа, например, так

<!DOCTYPE productList
[
<!ELEMENT productList (product)+ >
<!ELEMENT computer (hdd, processor, morherboard) >
<!ELEMENT hdd (#PCDATA) >
<!ELEMENT processor (#PCDATA) >
<!ELEMENT motherboard (#PCDATA) >
]>

Недостатки DTD:

1. Отсутствие типизации узлов.
2. Отсутствие поддержки пространств имён.

Вместо DTD можно использовать XML Schema.

XML Schema поддерживает различные типы данных.

Подключить XMLSchema к XML документу можно так:

<ProductList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="products.xsd">

</ProductList>

Для визуализации содержимого файла XML с помощью CSS можно использовать каскадную таблицу стилей CSS. Подключить ее можно следующим образом:

<?xml-stylesheet type="text/css" href="sheet.css" ?>

Для визуализации содержимого файла XML с помощью XSL можно использовать XSL. Подключить его можно следующим образом:

<?xml-stylesheet type="text/xsl" href="sheet.xsl" ?>

Для обработки XML-конструкций применяются такие технологии как DOM, SAX, XSLT.

Некоторые определения:

XML-документ, имеющий правильный синтаксис, называется правильно сформированным XML-документом.

XML-документ, проверенный и соответствующий DTD (XML SCHEMA) называется допустимым («валидным») XML-документом.

Более подробно об XML можно почитать здесь Школы XML

Обработка RDF-графов с помощью XSLT

Как обрабатывать XML/RDF-синтаксис RDF с помощью XSLT читаем здесь:http://shcherbak.net/rdf_xslt_tech/

УДК 519.7:007.52

РАЗВИТИЕ ТЕХНОЛОГИЙ SEMANTIC WEB: ОБРАБОТКА RDF-ГРАФОВ НА ОСНОВЕ XSLT

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

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

1. Введение

Стремительное развитие компьютерных информационных технологий привело к тому, что сегодня компьютер, помимо выполнения ставших уже традиционными задач обработки числовой и символьной информации, программирования игр, создания компьютерных презентаций и т.п., приобрел совершенно новую, революционную по своей сути функцию – предоставление постоянного входа, своеобразного «окна» в мировое информационное киберпространство. Технологии 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].

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

XML/RDF синтаксис позволяет выразить RDF данные c помощью языка расширяемой разметки XML, что отчасти решает проблему интеграции RDF с Интернет – технологиями и дает возможность применять RDF для обмена метаданными в среде Интернет. Кроме того, XML/RDF-синтаксис RDF позволяет применять для обработки RDF-конструкций технологии, которые разрабатываются для XML, такие как XPath [4], XSLT [5] и др.
Согласно [2], RDF-граф, записанный в синтаксисе XML/RDF, представляется в последовательной форме пригодной для машинной обработки. Кроме того, этот синтаксис позволяет различные формы записи одного и того же RDF- графа, различные сокращенные формы записи и т.п.
3. RDF/RDFS и Semantic Web
Основу Semantic Web[6] составляет модель данных RDF – “объект – атрибут- значение”, что позволяет описывать ресурсы в виде наборов утверждений о свойствах этих ресурсов. Особенность модели данных RDF в том, что все компоненты этой модели идентифицируются с помощью универсальных идентификаторов(URI). Благодаря этой особенности RDF позволяет объединять информацию с различных источников, что может быть весьма полезно для обеспечения совместного использования информации в рамках Web.
Терминологическая база, применяемая для описания ресурсов, определяется соответствующей RDF-схемой – иерархией терминов (понятий) предметной области.
RDF схемы разрабатываются с помощью языка описания словарей RDF терминов – RDFS [7].
4. 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.
5. Технология XSLT

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

Общая  схема преобразования документа с использованием XSLT

Рисунок 1. Общая схема преобразования документа с использованием XSLT

Сериализация RDF-графа

Рисунок 2. Сериализация документа в нужном формате.

6. Технология обработки 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 – граф в последовательной форме с комментариями.

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

Рисунок 3 – Последовательная форма представления RDF-графа
Учитывая то, что для обработки RDF-графов выбрана технология XSLT, а базовым строительным блоком этой технологии являются таблицы стилей с шаблонами преобразования, описывающие конкретное преобразования древовидной структуры в виде правил обработки узлов, наборов узлов этой структуры, адаптируем стандартное для обработки XML-документов описание таблицы стилей для обработки доументов RDF. Для этого XSLT-шаблон необходимо привести к виду, как представлено ниже в разделе “Базовый XSLT файл для преобразований RDF – графа”. Комментарии к XSLT – инструкциям добавлены только в описательных целях, их не нужно переносить в реальные файлы обработки RDF – графов. Далее необходимо определить точку входа в RDF граф, т.е. имя класса, экземпляры которого будут обрабатываться, и представление которого необходимо получить. Имя класса можно задать, определив соответствующую сущность, например, таким образом <!ENTITY rdf_node «Имя класса»>. Потом необходимо описать преобразование в соответствующем 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.

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

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

Базовый XSLT файл для преобразований RDF – графа

Базовый XSLT файл для преобразований RDF – графа

Рисунок 5. Базовый XSLT файл для преобразований RDF – графа.

Вывод значения атрибута узла

Для вывода значения атрибута rdf_attr rdf_node, необходимо воспользоваться следующим шаблонным правилом:

Вывод значения атрибута узла

Замечание. Учитывая то, что данная инструкция применяется внутри цикла по выводу узлов RDF-графа, то более правильно будет говорить, что данная инструкция выводит значения атрибута узлов RDF-графа. Данное замечание применимо ко всем рассматриваем шаблонам.

Вывод значений атрибутов дочернего узла

Для вывода значений атрибутов всех подузлов node2 узла node1, необходимо применить следующее шаблонное правило:

Вывод значений атрибутов всех подузлов 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), необходимо применить следующее шаблонное правило:

Вывод значений атрибута rdf_attr всех подузлов node3 узлов node2

Шаблон для обработки узла node3

Шаблон для обработки узла node3

Сортировка по значению атрибута

Для того чтобы отсортировать узлы node1 по атрибуту rdf_attr, необходимо добавить <xsl:sort select=»@ns:&rdf_attr;»/> в шаблонное правило обработки узлов node1:

Сортировка по значению атрибута

Идентификация узлов RDF-графа

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

Чтобы вывести значение URI узла, необходимо в шаблонном правиле определить переменную и инициализировать ее значением атрибута rdf:about, как показано в примере:

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

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

Чтобы вывести значение URI подузлов, необходимо в шаблонном правиле определить переменную и инициализировать ее значением атрибута rdf:resource, как показано в примере:

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

Вывод rdfs-label узла RDF графа

Чтобы вывести значение rdfs-label узла, необходимо добавить следующую инструкцию в шаблонное правило:

<xsl:value-of select=»@rdfs:label»/><br/>

Выделение и обработка узла с конкретным значением атрибута

Чтобы выделить узел из других по значению некоторого атрибута необходимо применить инструкцию <xsl:if test> во время перебора узлов, т.е. последовательно обрабатывая каждый узел, ищем узел с необходимым значением атрибута:

Выделение и обработка узла с конкретным значением атрибута

7. Алгоритм преобразований 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 и изменяем <?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.
8.Системные требования
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 преобразования.
10. Недостатки технологии

Основные недостатки обусловлены, прежде всего, тем, что основное предназначение XSLT обработка древовидных структур, поэтому иногда бывает сложно выполнить преобразование графа к нужному виду. Кроме того, технология преобразования RDF –графов не избавляет от таких недостатков XSLT технологии, как:

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

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

Щербак С.С.

Протокол OKBC – это прикладной интерфейс программирования для доступа к базам знаний. Этот протокол разработан в Стенфордском университете и является дальнейшим развитием Generic Frame Protocol(GFP).

В рамках OKBC для знание-ориентированных систем разработана унифицированная модель системы представления знаний. Эта модель основана на теории фреймов и использует такие понятия, как «концептуализация классов», «объекты», «слоты», «фасеты», и «наследование» для представления знаний о предметной области, что позволяет создавать различные знание-ориентированные приложения с высоким уровнем интероперабельности (способности к взаимодействию).

Read the rest of this entry »

Применение web-онтологий в задачах дистанционного обучения

Е.А. Жыжырий, С.С. Щербак

В статье рассмотрены проблемы дистанционного образования связанные с организацией эффективного распределенного доступа к учебным ресурсам в Интранет/Интернет – средах и предложено решение на основе онтологического подхода и технологий Semantic Web.

1. Введение

Увеличение объема профессиональных знаний и высокая динамика развития информационных технологий порождает большое количество сетевых образовательных средств и продуктов. в последнее время наибольший интерес представляет Интернет-обучение. Многие учебные заведения занимаются разработкой сетевых образовательных средств, в том числе, дистанционных курсов, ориентированных на использование в Интернет. Основным препятствием в процессе создания интернет-ориентированных дистанционных курсов является недостаточная стандартизация сетевых учебных средств, технологических образовательных систем, отсутствие методик адаптации к международным стандартам в сфере технологий обучающих информационных систем [1].

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

2. Интероперабельные образовательные сетевые системы

Одним из главных требований к образовательным сетевым системам является обеспечение высокого уровня интероперабельности (interoperable), то есть возможности взаимодействия с другими различными системами, что крайне важно при создании распределенных учебных сред в Intranet/Internet сетях. Большинство из них реализует это требование за счет открытости интерфейсов доступа к своим сервисам и/или путем использования единого формата для обмена данными, а именно XML и связанной с ним объектной модели представления документов DOM (Document Object Model), осуществляя, если необходимо, XSL-преобразования. Такой подход позволяет решить задачу синтаксической интероперабельности. К сожаленью, для организации взаимодействия между различными образовательными системами в Интранет/Интернет сетях в большинстве случаев недостаточно обеспечения только синтаксической интероперабельности. Это обусловлено прежде всего, тем что одну и ту же информацию можно синтаксически по-разному представить, и, как следствие может возникнуть естественный барьер между системами. На сегодняшний день практически не существует образовательных систем решающих эту задачу за счет использования единого представления данных предметной области, а именно, используя единый словарь (таксономию) с описаниями используемых данных (онтологию). Именно проблема отсутствия четких семантических определений мешает объединению образовательных систем различных производителей. После составления такого словаря для представления данных предметной области можно с легкостью использовать язык web-онтологий OWL (Ontology Web Language), который является одним из самых последних разработок консорциума W3C в направлении Semantic Web для организации высокого уровня синтаксической и семантической способности приложений к взаимодействию.

3. Web-онтологии в учебном процессе

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

В рамках учебных процессов применение web – онтологий позволит специфицировать основные компоненты учебных дисциплин – лекции, практики, лабораторные работы, используемые учебные материалы, а также обеспечит возможность организации эффективного распределенного доступа к учебным ресурсам, путем создания единой базы знаний, которая будет сочетать в себе множество учебных дисциплин и будет фактически распределенной по сети Интернет, что позволит сделать ее независимой от интерпретации конкретного учебного процесса. Роль обучающих систем в таком случае будет сведена к роли интеллектуальных агентов, которые будут производить выборки из баз знаний в зависимости от контекста обучения (также возможно построения агентов для автоматического дополнения или изменения такой базы знаний новой информацией). Другой немаловажной особенностью такой системы – это возможность строить тестирующие программные системы, которые будут генерировать контрольные задания исходя из семантики описанных онтологий конкретных учебных курсов. Очевидно, что такие системы построения контроля знаний намного превосходят существующие на данный момент тесты, ориентированные на выборку одного из нескольких вариантов ответов.

4. Web – онтология “Учебная дисциплина” – спецификация компонентов учебных дисциплин и материалов

В основу web–онтологии “Учебная дисциплина” были положены основные принципы, используемые для структуризации лекций, практических занятий и т.п. в “обычном” учебном процессе. В соответствии с этими принципами была сформирована структура и выделены основные компоненты учебных курсов (рис.1).

Согласно принципам Semantic Web, процесс создания электронных документов разбивается на две части: 1. Создание web – онтологии документа, содержащей некоторые термины, понятийные структуры и т.п.

2. Визуализация содержимого онтологии, т.е. получение содержимого онтологии в некотором виде и формате.

Таким образом, в web-онтологии определяется смысл используемых понятий, характерных для конкретной дисциплины, т.е. специфицируется объекты предметной области, а с помощью языков трансформаций и форматирования – XSLT и XSL-Fo получается визуальное представление содержимого онтологии в необходимом формате, например HTML, DOC и т.п.

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

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

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

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

В ходе работы над задачею, были выделены основные объекты, представленные на рис. 2. Объекты, представленные на рис. 2 являются базовыми компонентами учебной дисциплины, которые составляют основу нашей онтологии. Фрагмент онтологии учебной дисциплины на языке OWL представлен на рис. 3.

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

В контексте разработки онтологии мы рассматривали учебные материалы как некоторое упорядоченное множество экземпляров объектов предметной области, отобранных по некоторому критерию, визуализация средствами XSLT которых давала возможность получать разнообразные представления информации в различных форматах, например: гипертекстовая страница или набор таких страниц (HTML); документ XML; документ формата PDF.

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

Выводы

В данной статье была разработана web-онтология ”Учебная дисциплина” и предложена технология разработки web – ориентированных учебных ресурсов для поддержки дистанционного образовательного процесса.

Литература
1.http://www.webuniver.ru
2.RDF Premier http://www.w3.org/TR/rdf-primer/
3.Спецификация языка XSLT http://www.w3.org/TR/xslt
4.Проект Semantic Web http://www.w3c.org/sw
5.Спецификация языка RDFS http://www.w3c.org/rdfs
6.Кэй М. XSLT. Справочник программиста. – Пер. с англ. – СПб.: Символ-Плюс, 2002. – 1016 с.: ил.
7.Shelley Powers. Practical RDF.- O’Reilly, 2003.- 350 c.

Рисунки


Структура и основные компоненты учебных курсов

Рис.1. Структура и основные компоненты учебных курсов


Концептуальная схема онтологии Учебная дисциплина

Рис.2. Концептуальная схема онтологии «Учебная дисциплина»

Фрагмент онтологии Учебная дисциплина в среде Protege2000

Рис.3. Фрагмент онтологии «Учебная дисциплина в среде Protege»

Открытие Сайта

Наконец-то у меня нашлось немного времени и открываю свой сайт о технологиях Semantic Web…

C одной стороны в русскоязычном сегменте интернета есть уже один подобный сайт (semanticfind.com), но в последнее время он перестал обновляться… Кроме того стоит еще отметить ресурс semantictools.ru c набором интересных статей и форумом… и конечно же весьма полезный ресурс xmlhack.ru…

Так зачем же создавать еще один подобный ресурс?

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

Во-вторых, мне нужен «сайт-визитка», куда можно было бы зайти и почитать мои статьи.

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