Международная научная конференция, КПИ, Киев, 2012 г. 141 УДК 004.8 Построение отображения между реляционными базами данных и онтологиями Татариков А.О., к.т.н. Терновой М.Ю., Штогрина Е.С. Национальный технический университет Украины «КПИ», г. Киев [email protected], [email protected], [email protected] В работе рассмотрено построение отображения между реляционной базой данных (РБД) и онтологией. В результате применения данного отображения данные из РБД записываются в виде RDF триплетов. Предложенный подход позволяет применять технологии Semantic Web к информации, которая хранится в РБД. Введение В информационно-телекоммуникационной среде современных организаций функционируют специализированные информационные системы, ориентированные на решение определенных задач. Как правило, эти системы поставляются или создаются различными компаниями, что обуславливает различие в средствах хранения и представления информации, в том числе различие используемой терминологической базы. Это, в свою очередь, является одной из основных причин затрудняющих интеграцию данных как в процессе предоставления их конечному пользователю, так и при использовании другими системами. Решением указанной проблемы может стать предоставление обобщенного описания предметной области, отражающего ее семантику, а также построение отображения между указанным описанием и реляционными базами данных, которые, как правило, используются в качестве хранилищ данных в современных информационных системах. В качестве обобщенного описания предметной области целесообразно использовать онтологии, представляющие собой словарь терминов некоторой предметной области и множество связей, установленных между этими терминами [1, 2]. На сегодняшний день существуют различные подходы и методы, позволяющие строить отображения между РБД и онтологиями [3-9]. В данной работе предлагается модификация подхода к построению отображений между онтологиями и реляционными базами данных, описанного в работе [9], который позволяет представить данные из 142 Интеллектуальный анализ информации ИАИ-2012. Онтологический инжениринг реляционной базы данных в виде RDF триплетов, что продемонстрировано на примере биллинговой системы. Основная часть Отображение между РБД и онтологией это правила, в соответствии с которыми возможно представить данные из РБД в терминах онтологии. Для хранения отображения, т.е. правил описывающих соответствия между составляющими частями РБД и онтологии, предлагается использовать базу метаданных (БМД), схема которой описана в работе [9]. Построение отображения заключается в заполнении БМД. Для этого необходимо определить соответствия, во-первых между таблицами РБД и классами онтологии, во-вторых между столбцами таблиц РБД и Datatype свойствами классов онтологии, и в третьих между связями между таблицами РБД и Object свойствами классов онтологии. Результатом отображения будут RDF триплеты, сформированные на основании данных из РБД. RDF триплет, это граф у которого есть два узла (субъект и объект) и одно ребро (предикат) [10]. База метаданных состоит из набора таблиц, предназначение которых описано ниже. В БМД кроме собственно отображения хранится также описание онтологии и структуры РБД информационной системы. Информация об онтологии содержится в таблицах Ontology, OWL_Class, OWL_Datatype_Property и OWL_Object_Property. В таблице Ontology хранится информация о расположении онтологии. В таблицах OWL_Class, OWL_Datatype_Property и OWL_Object_Property хранится информация о классах онтологии, Datatype свойствах и Object свойствах классов онтологии соответственно. Структура РБД информационной системы отражена в БМД следующим образом. Названия всех таблиц базы данных информационной системы хранятся в таблице БМД Class2Table. А описание неключевых столбцов этих таблиц РБД и связей между ними хранится вместе с информацией об их соответствии с Datatype свойствами и Object свойствами классов онтологии в таблицах Object_Property_Map, Datatype_Property_Map. Информация об отображении также хранится в таблице БМД Class_Map, которая содержит описания соответствий между OWL классами онтологии и таблицами РБД. Процесс формирования результата отображения, RDF триплетов, можно условно разделить на два этапа. Первый состоит в формировании SQL запросов к базе метаданных. Результаты этих запросов будут содержать информацию необходимую для дальнейшего формирования SQL запросов к РБД информационной системы. В результате выполнения 143 Международная научная конференция, КПИ, Киев, 2012 г. составленных таким образом SQL запросов будут сформированы три вида RDF триплетов описанных ниже. Чтобы получить результат отображения, который содержит всю информацию, представленную в РБД, необходимо выполнить три типа запросов. Запросы первого типа в качестве результата возвращают RDF триплеты, которые определяют экземпляры классов онтологии. Для того чтобы указать, что ресурс является экземпляром класса, используется свойство «rdf:type». Запросы второго типа осуществляют формирование RDF триплетов, которые описывают какие значения принимают Datatype свойства экземпляров классов онтологии, сформированных первым типом запросов. Аналогично второму типу запросов, RDF триплеты, которые являются результатом запросов третьего типа, описывают значения Object свойств экземпляров классов онтологии, сформированных первым типом запросов. На основе онтологии биллинга и части РБД (см. табл. 1 и табл. 2) биллинговой системы Asterisk2Billing [11] рассмотрим процесс формирования RDF триплетов, которые определяют экземпляры классов онтологии. Для демонстрации данного типа запросов необходимо использовать содержимое таблиц БМД Ontology, Class2Table, OWL_Class и Class_Map. Исходные тестовые данные для этих таблиц приведены в табл. 3, табл. 4, табл. 5, табл. 6 соответственно. Таблица 2. Таблица user_call РБД биллинговой системы user_call_id 101 102 user_id start_time 12:30 11.10.11 23:10 24.09.11 1 2 stop_time 12:35 11.10.11 23:40 24.09.11 session_bill 10 60 Таблица 3. Таблица user РБД биллинговой системы user_id 1 2 userlogin Fein Logitech name Alexey Tatarikov Ivan Pupkin tariff Unlim-1024 Unlim-2048 Таблица 4. Таблица БМД Ontology Ontology_ID … 2 … Xml_Base … its.kpi.ua\Billing … Таблица 5. Таблица БМД Class2Table Class2Table_ID … 5 7 … Table_Name … user_call User … 144 Интеллектуальный анализ информации ИАИ-2012. Онтологический инжениринг Таблица 6. Таблица БМД OWL_Class OWL_Class_ID … 11 12 13 14 15 … Ontology_ID … 2 2 2 2 2 … RDF_C_ID … Card Call Payments Invoice Receipt … Таблица 7. Таблица БМД Class_Map Class_Map_ OWL_ ID Class_ ID Class2Table_ Generate_Ins Istance_URI Filter_Expr ID tances _Prefix ID_Column_ Expr … 12 14 … … 7 5 … … user_id user_call_id … … 11 12 … … 1 1 … … User User_Call … … NULL NULL … Ниже приведен SQL запрос к БМД, который формирует основу для дальнейшей постановки SQL запросов к РБД информационной системы: SELECT Xml_Base, Instance_URI_Prefix, Table_Name, ID_Column_Expr, RDF_C_ID FROM dbo.Class_Map Inner Join dbo.Class2Table On dbo.Class2Table.Class2Table_ID = dbo.Class_Map.Class2Table_ID Inner Join dbo.OWL_Class On dbo.OWL_Class.OWL_Class_ID = dbo.Class_Map.OWL_Class_ID Inner Join dbo.Ontology On dbo.Ontology.Ontology_ID = dbo.OWL_Class.Ontology_ID WHERE dbo.Ontology.Ontology_ID = 2 and dbo.Class_Map.Generate_Instances = 1 Результат данного запроса представляет собой временную таблицу TempTriplets и приведен в табл. 7. Данный запрос является выборкой из естественного соединения четырех таблиц: Class_Map, Class2Table, OWL_Class и Ontology. Где Xml_Base – это столбец таблицы Ontology, представляющий собой адрес ресурса, на котором хранится онтология. Instance_URI_Prefix – столбец таблицы Class_Map, значения которого будут необходимы для формирования уникальных идентификаторов RDF триплетов. Столбец ID_Column_Expr таблицы Class_Map содержит название ключей для таблиц РБД информационной системы. Table_Name – столбец таблицы Class2Table, хранит названия таблиц РБД. RDF_C_ID - это столбец таблицы OWL_Class, содержит информацию о названиях классов онтологии. Generate_Instances – столбец таблицы Class_Map, показывает, необходимость создания экземпляров класса. 145 Международная научная конференция, КПИ, Киев, 2012 г. Таблица 8. Таблица TempTriplets Результат SQL запроса к БДМ Xml_Base … its.kpi.ua\Billing its.kpi.ua\Billing … Instance_URI_Prefix … User User_Call … Table_Name … User user_call … ID_Column_Expr … user_id user_call_id … RDF_C_ID … Card Call … На следующем шаге формируются SQL запросы к РБД информационной системы. Эти запросы строятся на основании данных из временной таблицы TempTriplets (табл. 7). Каркас SQL запроса к реляционной БД приведен ниже: SELECT @Xml_Base + '#' + @Instance_URI_Prefix + @ID_Column_Expr as 'Subject' , 'rdf:type' as 'Predicate', @Xml_Base + '#' + @RDF_C_ID as 'Object' FROM @Table_Name Вместо параметров @Xml_Base, @Instance_URI_Prefix, @ID_Column_Expr, @RDF_C_ID, @Table_Name подставляются значения из временной таблицы TempTriplets. При подстановке вместо параметров соответствующих значений один из запросов будет иметь вид: SELECT ‘its.kpi.ua\Billing’ + ’#’ + ‘User’ + user_id as 'Subject' , 'rdf:type' as 'Predicate', ‘its.kpi.ua’ + '#' + ‘Card’ as 'Object' FROM user RDF триплеты, которые генерируются в результате выполнения приведенных выше запросов, а также RDF триплеты, генерируемые вторым и третьим типом запросов, показаны в табл. 8. Таблица 9. RDF триплеты, полученные на основе данных из РБД Вид триплета … Субъект … its.kpi.ua\Billing #User_Call1 its.kpi.ua\Billing Триплеты - экземпляры #User_Call2 классов онтологии its.kpi.ua\Billing #User1 its.kpi.ua\Billing #User2 … Триплеты – its.kpi.ua\Billing #User1 определяющие its.kpi.ua\Billing #User1 значения Datatype its.kpi.ua\Billing #User2 свойств классов … онтологии Триплеты – its.kpi.ua\Billing #User1 определяющие its.kpi.ua\Billing #User2 значения Object свойств … классов онтологии Предикат … rdf:type Объект … its.kpi.ua\Billing #Call rdf:type its.kpi.ua\Billing #Call rdf:type rdf:type … its.kpi.ua#userLogin its.kpi.ua#userName its.kpi.ua#userLogin … its.kpi.ua\Billing #Card its.kpi.ua\Billing #Card … Fein Alexey Tatarikov Logitech … its.kpi.ua#haveCall its.kpi.ua#haveCall its.kpi.ua\Billing #User_Call1 its.kpi.ua\Billing #User_Call2 … … 146 Интеллектуальный анализ информации ИАИ-2012. Онтологический инжениринг Например, строки в табл. 8, выделенные серым цветом, трактуются данным образом: существует экземпляр класса its.kpi.ua\Billing #Card, в качестве названия которого выбран уникальный идентификатор (URI) равный its.kpi.ua\Billing#User1; значение Datatype свойства its.kpi.ua#userLogin для экземпляра its.kpi.ua\Billing#User1 равно «Fein»; значение Object свойства its.kpi.ua#haveCall отображает связь между двумя экземплярами its.kpi.ua\Billing#UserCall1 и its.kpi.ua\Billing#User1. Полученная совокупность триплетов описывает данные, которые хранятся в РБД информационной системы. Эта совокупность триплетов может быть записана в любом из существующих форматов для записи RDF, таких как RDF/XML, RDF/JSON, N3, Turtle, N-Triples, что в свою очередь позволит обрабатывать эти данные программным средствам ориентированными на работу с RDF. Выводы В работе рассмотрен подход к построению отображения между реляционной БД и онтологией, в котором в качестве связующего звена между РБД и онтологией используется база мета данных. Предложены SQL запросы, которые позволяют получить результат отображения, а именно совокупность RDF триплетов, определяющих экземпляры классов онтологии исходя из данных, хранимых в РБД. Результат применения данного подхода может быть использован в совокупности с существующими технологиями Semantic Web, а также послужить основой для интеграции гетерогенных реляционных баз данных. Литература 1. Кудрявцев Д. Технологии применения онтологий. [Электронный ресурс] - Электрон. текстовые данные. – Режим доступа: http://bigc.ru/theory/km/onto_technologies.php . Дата обращения: 19.01.2012. 2. Голиков Н.В. Применение онтологий. [Электронный ресурс] - Электрон. текстовые данные. – Режим доступа: http://bigc.ru/theory/km/onto_technologies.php . Дата обращения: 18.01.2012. 3. W3C RDB2RDF Incubator Group. A Survey of Current Approaches for Mapping of Relational Databases to RDF. [Электронный ресурс] - Электрон. текстовые данные. – Режим доступа: Международная научная конференция, КПИ, Киев, 2012 г. 147 http://www.w3.org/2005/Incubator/rdb2rdf/RDB2RDF_SurveyReport.pdf . Дата обращения: 01.03.2012. 4. The D2RQ Mapping Language [Электронный ресурс] - Электрон. текстовые данные. – Режим доступа:http://d2rq.org/d2rq-language . Дата обращения: 06.03.2012. 5. Barrasa J. R2O, an Extensible and Semantically Based Database to-ontology Mapping Language / J. Barrasa, O. Corcho, A. Gómez-Pérez // [Электронный ресурс]. – Электрон. текстовые данные. – [Мадрид, Испания] – Режим доступа: http://www.cs.man.ac.uk/~ocorcho/documents/SWDB2004_BarrasaEtAl.pdf . Дата обращения: 12.02.2012. 6. Enabling Semantic Access to Enterprise RDB Data (Position Paper for W3C workshop on RDF Access to Relational Databases). [Электронный ресурс] - Электрон. текстовые данные. – [Сиэтл, США] - Режим доступа: http://www.w3.org/2007/03/RdfRDB/papers/yuan.html . Дата обращения: 08.03.2012. 7. OpenLink Virtuoso Platform. Automated Generation of RDF Views over Relational Data Sources. [Электронный ресурс] - Электрон. текстовые данные. – Режим доступа: http://docs.openlinksw.com/virtuoso/rdfrdfviewgnr.html . Дата обращения: 14.10.2011. 8. Comparison of rdb-to-rdf mapping languages. [Электронный ресурс] – Электрон. текстовые данные. – [Цюрих, Швейцария] – Режим доступа: http://www.ifi.uzh.ch/pax/uploads/pdf/publication/ 1830/paper.pdf . Дата обращения: 22.02.2012. 9. Guntars Bumans, Mapping between Relational Databases and OWL Ontologies: an Example / Bumans Guntars // Scientific Papers, University Of Latvia - Computer Science and information technologies, Vol. 756 (2010), pp. 99-117. 10. Resource Description Framework (RDF): Concepts and Abstract Syntax [Электронный ресурс] - Электрон. текстовые данные.– Режим доступа: http://www.w3.org/TR/rdf-concepts/ . Дата обращения: 05.03.2012. 11. A2Billing [Электронный ресурс] - Электрон. текстовые данные.– Режим доступа: http://www.asterisk2billing.org/ . Дата обращения: 01.02.2012.