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

Доклады БГУИР

2010 № 2

УДК 004.75

ОТОБРАЖЕНИЕ РЕЛЯЦИОННЫХ ДАННЫХ НА СЕМАНТИЧЕСКУЮ МОДЕЛЬ RDF ПРИ ПОМОЩИ ДИНАМИЧЕСКОГО ПРЕОБРАЗОВАНИЯ ЗАПРОСОВ

Д.С. БОРОДАЕНКО

OOO "Алатис" Мележа 5, к. 2, Минск, 220090, Беларусь

Поступила в редакцию 26 ноября 2009

Описывается алгоритм динамического преобразования RDF-запросов, позволяющий отображать любые реляционные структуры данных на модель RDF и выполнять запросы к комбинации отображенных реляционных данных и произвольных триплетов RDF с производительностью на уровне реляционных систем управления базами данных (СУБД). Выразительные возможности реализованного предложенным алгоритмом языка запросов включают необязательные и отрицательные графовые шаблоны, вложенные шаблоны и логический вывод на правилах для подмножества словарей метаданных RDFS и OWL.

Ключевые слова: модель данных RDF, реляционные СУБД, язык запросов

Введение

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

Среди препятствий на пути массового внедрения RDF в Web наиболее существенные — необходимость переноса уже накопленной информации на модель данных RDF и неудовлетворительная производительность существующих семантических систем при обработке больших объемов RDF-данных. Наиболее актуальным и перспективным подходом к решению обеих проблем считается интеграция RDF и реляционных баз данных [1, 2], позволяющая обеспечить семантический доступ к существующим базам данных и в то же время использующая испытанные технологии реляционных СУБД для повышения эффективности хранения и обработки RDF-данных.

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

Метод адаптации реляционных данных для отображения на модель RDF

Предложенный метод адаптации реляционных данных не накладывает дополнительных ограничений на используемую схему реляционной базы данных сверх ограничений стандарта SQL. Любая таблица в первой нормальной форме может быть отображена для доступа при помощи RDF-запросов на языке Squish [3]. Таким образом, любая существующая база данных может быть адаптирована для доступа через RDF, не теряя при этом обратной совместимости с существующими SQL-запросами.

Метод адаптации включает добавление в базу данных атрибутов, внешних ключей, таблиц и хранимых процедур, необходимых для преобразования запросов RDF и поддержки дополнительных возможностей, предлагаемых разработанной системой, таких как реификация утверждений и логический вывод на правилах для терминов rdfs:subClassOf, rdfs:subPropertyOf и owl:TransitiveProperty языков описания метаданных RDFS [4] и OWL [5].

Следующие изменения схемы базы данных обязательны во всех случаях:

- создать таблицу ресурсов, отображенную на суперкласс rdfs:Resource, с автоматически генерируемым первичным ключом;

- заменить первичные ключи таблиц, отображенных на подклассы класса rdfs:Resource, на внешние ключи, ссылающиеся на таблицу ресурсов (может потребоваться также обновить существующие внешние ключи, чтобы отразить это изменение);

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

Следующие изменения могут потребоваться для поддержки дополнительных возможностей алгоритма преобразования запросов:

- зарегистрировать хранимые процедуры для прочих случаев логического вывода на правилах для rdfs:subClassOf;

- создать таблицу триплетов (необходимо для представления RDF-данных, не отображенных на реляционную схему, и реификации утверждений RDF);

- добавить атрибуты различения подотношений, ссылающиеся на записи в таблице ресурсов, хранящие идентификаторы URIref соответствующих отношений, для каждого атрибута, отображенного на подотношение;

- создать таблицы транзитивных замыканий и зарегистрировать хранимые процедуры логического вывода на правилах для owl:TransitiveProperty.

Алгоритмы частичного логического вывода на уровне хранимых процедур реляционной СУБД

Разработанная система хранения RDF-данных реализует правила логического следования для следующих предикатов RDFS и классов OWL: rdfs:subClassOf, rdfs:subPropertyOf owl:TransitiveProperty. Для минимизации влияния логического вывода на скорость обработки запросов используются хранимые процедуры.

Хранимые процедуры логического вывода на правилах для rdfs:subClassOf вызываются для каждой операции вставки в или удаления из таблицы подкласса. Когда вставляется кортеж без первичного ключа, шаблонный кортеж вставляется в таблицу суперкласса, а полученный при этом первичный ключ подставляется на место первичного ключа таблицы подкласса. Операция удаления распространяется каскадом на все связанные таблицы подклассов и суперклассов.

Логический вывод для rdfs:subPropertyOf выполняется во время преобразования запроса, и опирается на хранимую процедуру, возвращающую значение атрибута в случае, если атрибут различения подотношения установлен, и пустое значение NULL в противном случае. Логический вывод для owl:TransitiveProperty использует отдельную таблицу транзитивного замыкания для каждого атрибута, отображенного на транзитивное отношение. Таблицы транзитивных замыканий поддерживаются хранимыми процедурами, вызываемыми для каждой операции вставки, обновления и удаления, в которой вовлечены соответствующие атрибуты.

Входными данными для разработанного автором алгоритма обновления транзитивного замыкания являются:

- направленный помеченный граф G — (N, Aj, где N — множество вершин, представляющих RDF-ресурсы, А — множество дуг a = (s,p,oj, представляющих триплеты

RDF-утверждений;

- транзитивное отношение т;

-подграф Gx с G, такой что at = (s,p,o}OGt Ы at OG\Hp = t ;

- граф GT+, содержащий транзитивное замыкание GT ;

-операция обновления сое insert,update,delete и ее параметры ааШ = (soi,T,oakl. «„еи =(Л;,.х.^и )-такис чт0 (К = GT\ aold и axw .

Алгоритм преобразует GT+ в транзитивное замыкание G'. Предполагается, что граф Gx

не содержит и не должен содержать циклов. Более подробно алгоритм обновления транзитивного замыкания рассмотрен в [6].

Алгоритм преобразования графового шаблона RDF-запроса в запрос SQL

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

- набор отображений М = (Mrel ,Mattr ,МшЪ ,Mtram >, где Mrel : Р R. Mattr :Р^Ф, Msub •' Р —> S , Mtram : Р —» 7 : Р — множество отображенных отношений RDF, R — множество реляционных таблиц; Ф — множество реляционных атрибутов; S а Р — подмножество отношений RDF, для которых заданы под отношения; / с R — множество транзитивных замыканий;

- графовый шаблон = nodes, arcs) - П U N U Q, где П, N и Q — основной, отрицательный и необязательный графовые шаблоны соответственно, такие что П, N и Q не имеют общих дуг, и при этом П, П N и П и Q образуют связные графы;

- глобальное условие фильтрации Fg g F и локальные условия Fc : ^arcs —> F, где F

— множество всех условий над литералами, выразимых в синтаксисе языка запросов Squish.

Результатом алгоритма является выражение реляционного соединения F и условие W, готовые для включения в разделы FROM и WHERE запроса на языке SQL соответственно.

Помимо вышеуказанных входных данных и результатов, в описании алгоритма также используются следующие обозначения: id(г) — первичный ключ таблицы /" е R: р(п) —

значение Resource) для фиксированной (не являющейся переменной) вершины п е nodes,

если такое значение известно во время трансляции запроса.

Алгоритм преобразования разделен на следующие шаги.

1. Пометить каждый связный компонент П, N и Q разными цветами К. такими что Кп-Ц^-Ж, KN-.Nnodes^ К, Kn:Qnodes^K, К(п) = Ki, (п) и К., (п) и К<л(п) . Используется двухпроходный алгоритм разметки связных компонентов [7], модифицированный для исключения вершин, присутствующих в П, из списков соседей, используемых при разметке N и Q . Данная модификация гарантирует, что части N и Q, связанные только через вершину, входящую в П, будут помечены разными цветами.

2. Отобразить каждую дугу с — (s,p,o) е 4Лц.6.л на реляционную модель данных в соответствии с М\ определить отображение : ^arcs х ^ nodes —» Ф такое что M^(c,s) = \d(Mrel(р)), M'°sr(c,o) =Mattr(p); заменить каждую дугу с неотображенным

смежные

в •

У node ' nodes

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

дуги ^lodes ~ ( v, е s, о и определить ее режим связывания

EL,#,Q такой что p„„t/e п = max с Vc eW"mdes , где Pnrc с отражает, который из графовых шаблонов П, N, Q содержит дугу с, а оператор max использует порядок следования П > N > Q.

3. Отобразить каждую вершину в ^ на набор псевдонимов таблиц а е А в соответствии с алгоритмом, описанным на рис. 1. Указанный алгоритм определяет отображение Са : —» А, связывающее каждую дугу в 4J с псевдонимом, и набор отображений

-Л»*>ЛЛ/*г>> -+R, Anode: А —»x¥nodes, ^А-ЧВДП},

F, которые задают таблицу, вершину, режим связывания и условие фильтрации для каждого псевдонима.

node ? Р ? filter *

Afilter А '

1

2

3

4

5

6

7

8 9

10 11 12

13

14

15

16

17

18

19

20

for all п 6 ФпоА .ч do

for all с = {.ч,р,о) G Фдгсз I s = n А Ca(c) = 0 do

if Be' =

then

Ca(c) «- CJc') else

a = max(A) + 1; A A U {a}: Ca{c) <— a j4node(«) «• A/iffc.r(a) 0 if Mtrans(p) = 0 then a) <— MTei(p) Ap{a) <r- 3nod,,{n) else

A-ei

Af3(a) <— A,,.(,(c) end if end if end for end for

for all с С Фпгс,, do

Afm,r{C„(c)) <- Vrp.(c))Ufc(c) end for

Рис. 1. Алгоритм определения псевдонимов таблиц

4. Определить связки В : —» В , где В = { {(а, /') | а е А, / е Ф} }, отображающие

вершины графового шаблона на наборы пар псевдонимов таблиц и атрибутов, таких что (aj) е 5(и) Зс е : С7(с) = а,М%(.с,п) = / .

Преобразовать графовый шаблон 4J в граф реляционного запроса О = (А,./) , где вершины А — определенные выше псевдонимы таблиц, а грани J = {{Ъ1,Ъ2,п)\Ъ1={а1,/1) <ЕВ(п),Ъ2={а2,/2)еВ(п),а1Фа2} — условия реляционного соединения. Связать фиксированные (не являющиеся переменными) вершины графового шаблона со значениями в соответствии с алгоритмом, представленным на рис. 2. Составить список связанных вершин G с: nodes, такой что

«eGе>неi7' v3

Рис. 2. Алгоритм связывания фиксированных вершин

5. Вычислить для графа реляциоиого запроса О упорядоченное связное минимальное покрытие Р деревьями с непересекающимися множествами граней, такое что УР1 е Р

У/ = (Ьл - hj2 - = Фк 1 - h2

Г /7, Ш /7, /7, =Р>иЛ /7, ^Р„ее /> ,

начинающееся с Рх такого что р(,и, /, = П (из определений графа и шага 4 алгоритма следует, что P — единственное такое дерево и что оно покрывает все условия соединения (/>!, Л-,,//) е./ такие что P„olfe w =П). Записать /] в виде корневого внутреннего соединения. Записать остальные деревья из P, имеющие не менее одной грани, в виде подзапросов. Сформировать выражение F как операцию левостороннего внешнего соединения P со всеми подзапросами, а также с псевдонимами таблиц, представляющими вырожденные деревья из Р, состоящие из одной вершины. Для каждого Pi такого что Р(,.ее 1] = N найти связку Ъ = (ci,f) е /' такую что а е Pl r\Pi и добавить в Wусловие (b IS NULL). Для каждой несвязанной вершины nfcG такой что {a,f)eB п лаеР1 добавить в W условие (b IS NOT NULL), если Pnode 11 =П, либо условие (b IS NULL), если Pnoife п = N . Добавить в Wглобальное условие F.

Разработанный алгоритм был реализован в системе хранения RDF-данных Samizdat и показал высокую производительность обработки запросов. На рис. 3 приведен график производительности Samizdat, измеренной по методике BSBM [8], в сравнении с другими системами хранения RDF-данных.

Рис. 3. Производительность обработки RDF-запросов

Заключение

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

MAPPING RELATIONAL DATA TO THE RDF SEMANTIC DATA MODEL USING

ON-DEMAND QUERY TRANSLATION

D.S. BORODAENKO

Abstract

The algorithm for on-demand translation of RDF queries that allows to map any relational data structures to RDF data model and to perform queries over a combination of mapped relational data and arbitrary RDF triples, enabling performance on par with relational databases is presented. The algorithm supports a wide range of query capabilities including optional and negative graph patterns, nested sub-patterns, and inference over a subset of RDFS and OWL metadata vocabularies.

Литература

1. Malhotra, Ashok // W3C RDB2RDF Incubator Group Report. W3C Incubator Group Report. 2009.

2. Auer S, Dietzold S., Lehman J. et al. // WWW 2009, Madrid, Spain, 2009.

3. Miller L., Seaborne A., Reggiori A. // In: Horrocks I., Hendler J. (Eds) ISWC 2002. Springer, Heidelberg, 2002. LNCS Vol. 2342. P. 423-435.

4. BrickleyD., GuhaR.V. // RDF Vocabulary Description Language 1.0: RDF Schema. W3C Recommendation. 2003.

5. Patel-Schneider P.F., Hayes P., Horrocks I. // OWL Web Ontology Language Semantics and Abstract Syntax. W3C Recommendation. 2004.

6. Borodaenko D. // ICIS 2009 Proceedings. Shanghai, 2009.

7. Shapiro L., Stockman G. // Computer Vision. Prentice-Hall, 2002. P. 69-73.

8. Bizer C., SchultzA. // International Journal on Semantic Web and Information Systems (IJSWIS). 2009.Vol. 5, Issue 2.