РАЗРАБОТКА ПОДСИСТЕМЫ ХРАНЕНИЯ МЕТАДАННЫХ СЕМАНТИЧЕСКОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ
А. А. Зарипов, А. Ф. Тузовский
Институт кибернетики Национального исследовательского Томского политехнического университета, 634034, Томск, Россия
УДК 004.822
Описаны архитектуры и реализации подсистемы, применяющей базовые методы хранения и работы с онтологическими моделями. Предложены интерфейс и структура подсистемы. В качестве сервера для хранения онтологий выбрана система Virtuoso Universal Server. Разработка выполнена на платформе Microsoft .Net 3.5.
Ключевые слова: семантическая паутина, онтология, база знаний, RDF, OWL, SPARQL, SPARUL.
The article describes architecture and implementation of the subsystem to store and work with the ontological models. Proposed a structure and interface subsystems. Virtuoso Universal Server is selected as a server to store the ontology models. Subsystem implemented using Microsoft. Net 3.5.
Key words: Semantic Web, ontology, knowledge base, OWL, RDF, SPARQL, SPARUL.
Введение. В последнее время в сфере разработки информационных систем наблюдается переход от использования реляционных баз данных (БД) к работе с онтологическими базами знаний (ОБЗ). Это обусловлено развитием концепции Semantic Web (семантической паутины), которую в 2001 г. предложил изобретатель Web-сети Т. Бернерс-Ли.
В основе ОБЗ лежит онтология - формализованное, явное описание предметной области. ОБЗ включает классы (понятия) и описание различных взаимосвязей между ними, а также множество экземпляров понятий. В настоящее время для описания онтологий и экземпляров понятий в концепции семантической паутины активно используется язык OWL [1], представляющий собой надстройку над языками RDF/RDFS [2], которые являются базовыми средствами представления знаний в данной концепции. Язык RDF представляет информацию в виде ориентированного размеченного графа. Базовым элементом данных этого языка являются кортежи <субъект, предикат, объект>, называемые триплетами. Набор триплетов и формирует граф.
Описание проблемы. Данная работа является частью научных исследований по использованию концепции Semantic Web в среде корпоративных приложений. Основными особенностям данного подхода являются расширение машинной обработки информации, а именно логический вывод новых знаний и семантический поиск, а также интеграция с существующими хранилищами метаданных, поддерживающими концепцию Linked Data [3]. Данная концепция предполагает создание системы, легко адаптируемой к предметной области организации и позволяющей оптимизировать деятельность организации.
Целью данной работы является разработка подсистемы доступа к данным и хранения данных, с которыми будут работать различные информационные системы. Предполагаемая структура решения показана на рис. 1.
Реализация заявленных функций должна обеспечиваться использованием небольшого набора универсальных действий, с помощью которых можно оперировать знаниями любой организации: просмотр информации об экземплярах (люди, документы, новости, проекты), поиск экземпляров с нужными свойствами и редактирование экземпляров.
Одним из основных элементов, предназначенных для решения поставленной задачи, является язык OWL. Данный язык позволяет описывать классы и отношения между ними, характерные для веб-документов и приложений. Язык OWL, основанный на более ранних языках OIL и DAML+OIL, в настоящее время стал стандартом консорциума всемирной паутины (W3C).
Существуют следующие диалекты OWL:
1. OWL Lite предназначен для пользователей, которые нуждаются прежде всего в классификационной иерархии и простых ограничениях. Например, при том, что данный диалект поддерживает ограничения кардинальности (количества элементов), допускаются только значения кардинальности 0 или 1. Разработчикам программных продуктов проще обеспечить поддержку OWL Lite, чем более выразительных вариантов OWL. В частности, OWL Lite позволяет быстро перенести существующие тезаурусы и другие таксономии. Также OWL Lite имеет меньшую формальную сложность, чем OWL DL.
2. OWL DL предназначен для пользователей, которым необходима максимальная выразительность при сохранении полноты вычислений (все логические заключения, подразумеваемые той или иной онтологией, будут гарантированно вычислимыми) и разрешаемости (все вычисления завершатся за определенное время). OWL DL включает все языковые конструкции OWL, но они могут использоваться только с определенными ограничениями (например, класс может быть подклассом многих классов, но сам не может быть представителем другого класса). Название OWL DL обусловлено его соответствием дескрипционной логике - дисциплине, в которой разработаны логики, составляющие формальную основу OWL.
3. OWL Full предназначен для пользователей, которым нужны максимальная выразительность и синтаксическая свобода RDF без гарантий вычисления. Например, в OWL Full класс может рассматриваться одновременно как собрание индивидов и как один индивид в собственном значении. Маловероятно, что какое-либо программное обеспечение будет способно осуществлять полную поддержку каждой особенности OWL Full [1].
В настоящее время онтологии, загружаемые в ОБЗ, описываются с помощью диалекта OWL DL. Одним из основных ограничений является то, что каждый объект в онтологии может при-
Реляционная СУБД «subsystem» Информационная система
«subsystem» Подсистема доступа к данным
База знаний {ИЛИ} «subsystem» Подсистема хранения данных
Рис. 1. Варианты структуры информационной системы
надлежать только одному из следующих множеств: индивиды (individuals), классы (classes), свойства-значения (data properties), свойства-объекты (object properties), аннотации (annotations). Индивид - это некая сущность, базовый элемент онтологии, класс - множество индивидов, не обязательно именованное. Для классов могут быть определены подклассы, эквивалентные классы и суперклассы. Свойства-значения - это отношения между представителями классов и литералами, в то время как свойства-объекты - это отношения между представителями двух классов. Также для классов, экземпляров и свойств можно добавлять описания, называемые аннотациями, значениями которых может быть литерал либо URI. Аннотации не влияют на логический вывод.
Вторым основным элементом реализации рассматриваемой задачи является язык запросов SPARQL, который используется для представления запросов к разнообразным источникам данных независимо от того, хранятся эти данные непосредственно в RDF или представляются в виде RDF с помощью промежуточного программного обеспечения. SPARQL обладает возможностями формирования запросов к обязательным и необязательным графовым шаблонам вместе с их конъюнкциями и дизъюнкциями. SPARQL также поддерживает тестирование расширенного значения и ограничение запросов с помощью исходного RDF-графа. Результаты запросов SPARQL могут быть представлены в виде результирующих наборов или RDF-графов.
Большая часть запросов SPARQL включает набор шаблонов триплетов, который называется основным графовым шаблоном. Шаблоны триплетов подобны RDF-триплетам, за исключением того, что каждый субъект, предикат и объект может быть переменной. Основной графовый шаблон соответствует подграфу RDF-данных, когда RDF-термины этого подграфа могут быть заменены переменными, а результат является RDF-графом, эквивалентным подграфу.
В приведенном ниже примере представлен SPARQL-запрос, позволяющий определить название книги из заданного графа данных.
Пусть имеется граф, содержащий единственный триплет:
<http://example.org/book1> <http://purl.org/dc/elements/1.1/title> "SPARQL Tutorial".
Запрос состоит из двух частей: условие SELECT задает переменные, которые должны отображаться в результатах запроса, а условие WHERE предоставляет основной графовый шаблон, которому должны соответствовать графовые данные. В данном примере основной графовый шаблон состоит из одного шаблона триплета с единственной переменной ?title на месте объекта:
SELECT ?title WHERE
{<http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title.}.
Если на имеющемся наборе данных выполнить данный запрос, то будет найдено единственное решение:
?title:
"SPARQL Tutorial".
В результате запроса получается последовательность решений с данными, соответствующими графовому шаблону запроса. Запрос может обусловливать получение одного или множества решений либо отсутствие решений.
Каждое решение дает единственный способ связи переменных с RDF-терминами, обеспечивая таким образом соответствие данных шаблону запроса. Результирующий набор предоставляет все возможные решения [4].
Выбор подсистемы хранения данных. Основой разрабатываемой системы должно стать хранилище метаданных. Данное хранилище должно обеспечивать возможность работы с большими объемами данных.
В настоящее время существует несколько продуктов, предназначенных для хранения RDF: Intellidimension Semantics.Server, AllegroGraph RDFStore, BigOWLIM, PelletDB, Virtuoso Universal Server.
С учетом того, что разработка ведется с использованием технологий из стека Microsoft .NET, одним из требований, предъявляемых к хранилищу, является наличие соответствующего API.
После проведения ряда сравнительных тестов в качестве хранилища метаданных была выбрана система Virtuoso Universal Server (VUS), имеющая следующие преимущества [5]:
- наличие бесплатной версии Open-Source Edition (в отличие от платной версии она не поддерживает интеграцию с внешними базами данных (виртуальные базы данных) и репликацию, но в ней используется одинаковый формат файлов базы данных и существует возможность миграции на платную версию);
- заявленная поддержка среды разработки и выполнения Microsoft .NET;
- наличие встроенного web-сервиса, называемого конечной точкой SPARQL (SPARQL Endpoint), реализующего протокол выполнения SPARQL-запросов [6] и поддерживающий стандарт сериализации результатов SPARQL-запросов в формате JSON [7];
- поддержка протокола SPARQL/Update для редактирования триплетов в хранилище [8];
- высокопроизводительная система логического вывода с динамической материализацией, обрабатывающая следующие предикаты: owl:sameAs, owl:equivalentClass, owl: equival entPro-perty, owl:InverseFunctionalProperty, rdfs:subClassOf и rdfs:subPropertyOf (начиная с версии 6.0 поддерживаются также предикаты owl:inverseOf, owl:SymmetricProperty и owl:TransitivePro-perty) [9];
- поддержка хранилищ Quad-based (данные в семантическом хранилище VUS хранятся в виде квадов - кортежей из четырех элементов <граф, субъект, предикат, объект>);
- возможность работы с большими объемами данных (например, под управлением VUS работает одно из хранилищ Linked Open Data объемом более 9 миллионов квадов);
- возможность развертывать VUS на следующих платформах: Windows (32 & 64 Bit), Mac OS X, Linux (32 & 64 Bit), Solaris.
В рамках проводимого исследования подсистема VUS была установлена и настроена на сервере под управлением ОС Windows Server 2008 Standard 64 Bit в соответствии с документацией на официальном сайте разработчика. Доступ к хранилищу организован по HTTP-протоколу с использованием встроенного SPARQL Endpoint.
Разработка подсистемы доступа к данным. В результате анализа требований, предъявляемых к подсистеме, были выделены следующие компоненты:
- CoreBase (описывает интерфейс IQuadStore, с помощью которого будет осуществляться работа с другими компонентами системы);
CoreBase
«interface» IQuadStore
+UploadGraphToStorage(e graph : IGraph) +GetGraphFromStorage(e graphName : string) : IGraph +GetIndividuals(e graphName : string, в className : string) : List<Uri> +...()
IQuadStore O-
«implementation class» VirtuosoStore
-endpoint : SparqlRemoteEndpoint storageSettings : StorageSettings
StorageSettings
1 .
Graph SparqlRemoteEndpoint SparqlResultSet
+Triples : List<Triple> +EndpointUri : string
+MakeSparqlQuery(B query : string) : SparqlResultSet
«interface»
INode
Triple
+Subject : INode +Predicate : INode +Object : INode
1
1
Рис. 2. Классы подсистемы доступа к данным
- CoreConverters (содержит вспомогательные методы, упрощающие построение SPARQL-запросов (задание шаблонов графов и триплетов, работу с URI-объектами) и работу с их результатами (конвертацию различных структур, например, List, Dictionary));
- CoreVirtuoso (содержит класс VirtuosoStore, реализующий интерфейс IQuadStore для доступа к серверу Virtuoso через его SPARQL endpoint).
Кроме того, в подсистеме используется библиотека классов dotNetRDF.dll, содержащая API для работы с RDF-графами и поддерживающая различные хранилища метаданных. В библиотеке определены интерфейсы INode, IGraph, ITripleStore. Библиотека доступна под лицензиями GPL, LGPL или MIT [10].
На рис. 2 показаны основные используемые в подсистеме классы.
В результате проведенного анализа требований, предъявляемых к подсистеме доступа к данным, определен интерфейс IQuadStore, имеющий возможности:
- редактирования информации (загрузка и редактирование информации в ОБЗ с использованием форм запросов, определенных в расширении SPARQL - SPARQL/Update (SPARUL): INSERT, INSERT DATA, DELETE, DELETE DATA, MODIFY, CLEAR) [8];
- получения информации (на данном уровне системы ведется работа с сущностями OWL, а именно с классами, экземплярами классов, объектными и простыми свойствами, а также с сущностями RDF, такими как вершины (ресурсы), триплеты и графы; запросы осуществляются с помощью стандартных форм запросов SPARQL: SELECT либо ASK).
На рис. 3 представлены компоненты подсистемы доступа к данным при использовании ОБЗ на основе Virtuoso Universal Server.
CoreServerTest.dll
] CoreVirtuoso.dll
CoreConverters.dll
dorNetRDF.dll
Ж.
virrtado.dll
Рис. 3. Компоненты подсистемы доступа к данным
Заключение. Разработанная подсистема была использована при реализации следующих проектов: Городской семантический портал (конкурс "Imagine Cup"), Сайт Томского сообщества фонда У.М.Н.И.К. (при финансовой поддержке фонда "Старт"), Инновационная карта региона (конкурс "БИТ-Сибирь"), прототип системы поиска организаций на естественном языке. Несмотря на различие предметных областей данных проектов, адаптации подсистемы для каждой из них не требовалось. Для каждого проекта была разработана и загружена в хранилище формальная модель на языке OWL, а также разработан пользовательский интерфейс с использованием различных современных технологий web-разработки (ASP.NET, Flash).
Список литературы
1. OWL web ontology language overview. [Электрон. ресурс]. http://www.w3.org/TR/owl-features/.
2. Resource description framework. [Электрон. ресурс]. http://www.w3.org/RDF/.
3. Linked Data. [Электрон. ресурс]. http://linkeddata.org.
4. SPARQL query language for RDF. [Электрон. ресурс]. www.w3.org/TR/rdf-sparql-query/.
5. Virtuoso open-source wiki. [Электрон. ресурс]. http://virtuoso.openlinksw.com/dataspace/dav/ wiki/Main.
6. SPARQL protocol for RDF. [Электрон. ресурс]. www.w3.org/TR/rdf-sparql-protocol/.
7. Serializing SPARQL query results in JSON. [Электрон. ресурс]. www.w3.org/TR/rdf-sparql-json-res/.
8. SPARQL Update. A language for updating RDF graphs. [Электрон. ресурс]. www.w3.org/ Submission/SPARQL-Update/.
9. Virtuoso open source edition news provider. [Электрон. ресурс]. http://virtuoso.openlinksw.com/ dataspace/dav/wiki/Main/VOSNews.
10. dotNetRDF open source library. [Электрон. ресурс]. www.dotnetrdf.org.
Зарипов Александр Анатольевич - техник Института кибернетики Томского политехнического университета; e-mail: [email protected]; Тузовский Анатолий Федорович - д-р техн. наук, проф. Института кибернетики Томского политехнического университета; e-mail: [email protected]
Дата поступления - 09.11.11