APP下载

关系模型向RDF(S)模型转换研究

2017-10-12杨王黎郑雪芸袁满东北石油大学计算机与信息技术学院大庆163318

微型电脑应用 2017年9期
关键词:关系数据库关联语义

杨王黎, 郑雪芸, 袁满(东北石油大学 计算机与信息技术学院,大庆 163318)

关系模型向RDF(S)模型转换研究

杨王黎, 郑雪芸, 袁满
(东北石油大学 计算机与信息技术学院,大庆 163318)

随着语义Web的发展,各个领域为实现数据共享将其数据发布成关联数据,然而,目前各个领域的数据基本上被存储在关系数据库中。为了使文档网络能更好地向数据网络转变,并将存储在关系数据库中的数据转换成赋有语义的资源描述框架及其模式(称为RDF(S)),在分析关系模型与RDF(S)模型组成的基础上,分别给出了它们形式化的定义;同时根据这两个形式化的定义,又提出了关系模型向RDF(S)模型的映射规则。通过对目前典型关系模型发布工具的筛选,选取D2RQ和Ontop工具在映射和SPARQL查询上进行对比分析,按照所定义的规则实现了将关系模型向RDF(S)的映射转换。研究结果表明这两个工具均能较好完成关系模型向RDF(S)转换,并且在SPARQL查询上Ontop效率更高。

关系模型; RDF(S); 关联数据; D2RQ; Ontop

Abstract: With the development of semantic Web, various fields publish data with the form of linked data to realize the sharing of data. However, at present, all kinds of data are stored in the relational database. In order to transform the Web of document to the Web of data, the data stored in the relational database should be converted into a semantic resource description framework and their schema (referred to as RDF (S)). Based on the analysis of the composition of the relational model and the RDF(S) model, their formal definitions are given respectively. At the same time, according to the two formal definitions, the rules of mapping the relational model to the RDF(S) model are proposed. Based on the relation models of the typical publishing tool, D2RQ and Ontop tools were selected and analyzed in the mapping and SPARQL query. According to the defined rules, the RDF (S) mapping conversions are completed. The research results show that the two tools can complete the conversion of relational model to RDF(S), and the Ontop is more efficient in SPARQL query.

Keywords: Relational model; RDF(S); Linked data; D2RQ; Ontop

0 引言

随着Web的发展,信息资源呈爆炸式增长,Web成为了巨大的信息存储仓库。如何自动有效地处理Web海量的信息成为Web科学家需要迫切解决的问题。在此情况下互联网之父Tim Berners-Lee于2000年在XML大会上正式提出了语义Web(Semantic Web)的概念[1]。语义Web是对当前Web的扩展,目的是让Web从以前的文档网络(Web of Document)转向数据网络(Web of Data),让以前只有人能理解的信息变成机器也能理解,也就是说,为信息赋予确定的语义信息。关联数据(Linked data)[2]是实现语义Web的一种最佳手段,通过使用URI和RDF在语义Web中发布、共享、连接各类信息数据,从而使整个Web成为一个通用的信息交换媒介,同时,RDF及其模式RDFS(称为RDF(S))在语义Web中处于核心地位,是实现Web信息共享和数据交换的基础。由于各个领域的数据大部分都被存储在关系数据库(Relational Database,简称RDB)中,并且RDF(S)比RDB有更多的语义性、共享性和推理性[3],因此,如何将这些关系数据库中的数据转换成RDF(S)模型中的数据是需要解决的一个重要问题。

分析关系模型与RDF(S)模型的组成,提出了关系模型向RDF(S)转换的形式化定义及转换规则。由于语义Web的发展,特别是关联数据运动的推动,出现了大量开源软件都可以使关系数据库中的数据转换为具有语义能力的RDF(S)数据,特别是:D2RQ、Ontop、Virtuoso、Drupal等。综合比较,选取了D2RQ和Ontop两个发布工具,从关系模型映射为RDF(S)模型和SPARQL查询的角度进行实验对比,发现这两个工具均能按映射规则完成关系模型向RDF(S)模型的转换,并且在SPARQL查询上Ontop性能更优。

1 RDF与RDF(S)模型及关系

1.1 RDF(S)简介

在Web应用环境中,各个领域都有大量的分布信息资源,即使在一个领域内部,这些数据信息也是相对独立地构建的,它们缺乏统一的语义描述,导致无法快速精准的查询。通过对这些数据赋予形式化理解的语义,可以提高信息在查询当中的准确性。

W3C为万维网提出了一种元数据模型RDF(Resource Description Framework)及RDF模式(RDF Schema,简称RDFS)[4],不仅能在Web中描述任何信息,而且为这些信息赋予确定的语义。同时,通过RDFS还可以描述概念实体和实体之间的关系。总之,RDF(S)提供了领域及领域外部环境中对信息资源的一种统一的语义描述方式。采用RDF(S)来描述数据信息,可以为它们赋予确定的语义,从而实现更准确的信息获取。

1.2 RDFS模型与RDF的关系

RDF是一种通用语言,它允许用户使用它们自己的词汇表来描述资源。RDF既不假设与任何特定应用领域有关,也不定义任何领域的语义[5]。为了指明语义,开发者需要通过RDFS中定义的一组基本的领域无关的结构来定义其词汇表的含义。RDFS实际上是一种轻量级的本体语言。它提供一组具有固定含义的建模元语。RDFS的核心概念包括类、子类关系、属性、子属性关系及定义域和值域,学生学位相关信息的RDF及RDFS模型。其中,虚线以上的实心圆圈表示属性、空心圆圈表示类,虚线以下的方框和圆圈表示实例,如图1所示。

图1 RDF与RDFS模型

首先描述“事物”——图1中的学生,以及特定的年龄age,这些在RDF中可以完成。其次描述个体对象(individual object,资源),这种情况描述的是类(class),定义了对象的类型STUDEN、PERSON和DIPLOMA。一个类可以被理解为一个元素集合。属于一个类的个体对象为该类的实例(instance),RDF提供了一种通过使用一个特殊属性rdf:type来定义实例和类之间的联系方式。但很多情况下,用户希望能够自定义一些词汇,然后用这些词汇来描述资源。总的说来,RDFS就是需要定义一些类和特性,比如定义Person类来描述人,定义STUDENT类来描述学生,定义DIPLOMA特性来描述学位等。RDF本身并不能定义这些类和特性,它们需要用RDF的描述语言RDFS来定义。通过创建这样的语义定义,RDFS是一种定义特定领域语义的语言。换句话说,RDFS是一种轻量级本体语言。

2 关系模型到RDF(S)数据模型映射

2.1 关系模型与RDF(S)模型的组成

关系模型作为源头数据模型,RDF(S)作为转换的目标数据模型,其中关系模型由表、字段和值组成,关系模型中,无论是实体还是实体之间的关系均由关系来表示,即二维表表示。每个表都由行和列组成,表的每一行为字段的取值,每一列为一个属性。RDF(S)数据模型是由三元组(资源、属性、属性值)组成的具有层次的数据模型[6],其实质也是一种二维关系的表达,这类似与关系模式,这是因为它们都是由实体、属性和关系构成,都能以二维关系来表示模型,并且它们都建立在概念和关系之上,所以两者可以实现映射,并实现转换。

2.2 模型的形式化定义与映射规则

下面给出关系模型与RDF(S)模型之间的对应关系。为了方便对关系数据库到的映射规则进行描述,本节将分别给出关系模型、RDF的形式化定义。

定义1将关系模型抽取出通用概念,并形式化为一个三元组R,定义如下:

R=

其中,T表示表(Table),其中包括实体表和关系表;F表示字段(Field),字段又有外键和非外键之分,其中外键用来描述两个实体表之间的关联关系,非外键属性则用来描述实体自身的特点;V表示关系数据库中的字段的值(Value)。

定义2将RDF(S)模型抽取出通用概念,并形式化为一个三元组S(为了区分关系模型,RDF(S)用S表示),定义如下:

S=

其中,C表示类(Class),用来描述实体;P表示属性(Property),用来描述实体的特性及实体之间的关联关系;I表示实例(Instance),实例作为类的个体,拥有类的属性和属于自己的属性值。

依据上面定义的关系模型与RDF(S)通用概念的形式化定义,给出定义1中的元素和定义2中的元素具体的映射定义。

定义3对于集合R中的元素ri与集合S中的元素sj相对应,用符号记为:f(ri)→sj,其中f表示转换规则。

下面根据定义3,给出关系模型向RDF(S)映射的形式化描述:

定义4(表(Table)映射)定义1的R中表映射成定义2的S中的类,映射过程如下:

∀Tablei∈R;f(Tablei)→Classj; Classj∈S

其中,Tablei表示RDB中的表,Classj表示RDF(S)中的类。

定义5(字段(Field)映射)定义1的R中字段映射成定义2的S中的属性,映射过程如下:

∀Fieldi∈R;f(Fieldi)→Propertyj;

Propertyj∈S

其中,Fieldi表示RDB中的字段,Propertyj表示RDF(S)中的属性。

定义6(元组(Value)映射)定义1的R中值映射成定义2的S中的实例,映射过程如下:

∀Valuei∈R;f(Valuei)→Instancej; Instancej∈S

其中,Valuei表示RDB中所有字段的一组取值,Instancej表示RDF(S)中的实例。

两者之间的这种形式化对应关系使得从关系数据库到数据模型在概念层次上的映射成为可能。根据数据模型与RDF(S)之间基本要素的对应关系,可制定如下的基本映射规则:

一个表(Table)Ri映射为一个概念(Class)Ci;关系Ri的每一个字段(Field)Ai(包括外键)映射为一个属性(Property)Pi;关系Ri的每一个元组映射为一个实例。

3 关联数据发布工具综合对比

目前,主流的关系数据库发布工具数量很多,这些工具可以很容易的将关系数据库中的数据发布为关联数据,通过把关系数据库的数据按照一定的映射规则转换为RDF(S),然后用发布工具进行发布[7-8]。一些工具也提供SPARQL查询RDF数据并支持RDF数据发布。这些工具将发布动态大型实时数据库并映射为RDF(S),并且避免将数据复制到一个专用的RDF三元组存储器中。如何有效的选取发布工具,在这里给出了对这些工具的综合对比与分析。

(1)D2RQ

D2RQ是一个开源的用于访问关系数据库作为虚拟RDF图的工具[9],由德国的柏林自由大学研发。D2RQ可将关系型数据库中的内容快速发布为关联数据,并提供一个通用机制可将关系数据库的表和列进行映射。D2RQ发布工具包括三部分:D2R服务器(D2R Server),D2R引擎(D2RQ Engine)和D2RQ映射语言(D2RQ Mapping)。

D2R Server以RDF视图的形式查询和访问关系数据库中的数据,使RDF和HTML浏览器可以浏览数据库中的内容,并允许使用SPARQL查询语言查询数据,D2R Server是D2RQ工具中重要的一部分。D2RQ Engine的功能是使用可定制的D2RQ Mapping文件,将关系数据库中的数据转换成虚拟的RDF图,它其实并没有真正的把关系数据库中的数据转换为RDF数据,而是在访问关系数据库时将RDF的查询语言SPARQL转换为关系数据库的查询语言SQL,最后将SQL查询结果转换为RDF三元组或SPARQL查询结果[10]。D2RQ Mapping是用来描述本体和关系数据模型之间关系的一种语义映射规则。

(2)OnTOP

Ontop是Apache公司许可下的开源OBDA框架,由意大利波尔扎诺自由大学KRDB研究组设计开发,2010年发布了第一个版本ontop-1.15,到目前为止已经到ontop-1.18.0版本①。类似于D2RQ,Ontop是用于访问关系数据库中数据作为虚拟RDF图的工具。Ontop的核心是SPARQL搜索引擎,支持RDFS和OWL 2 QL机制,通过重写SPARQL查询语言的虚拟RDF图转换为关系数据库的SQL查询,生成有效的SQL查询,非常接近数据库专家编写的SQL查询。

(3)Virtuoso Universal Server

Virtuoso Universal Server[11](简称Virtuoso)是企业级的多模型数据服务器,由Openlink公司开发,提供了更多的一体化解决方案:数据管理、数据访问和数据集成等。作为一个相对成熟的语义数据库,其支持关联数据的发布及应用,既能组织数据也能将数据进行发布。作为一个高性能的对象关系数据库服务器,Virtuoso也提供SQL编译器,强大的存储能力,支持当前主流数据访问接口(如ODBC,JDBC,ADO.NET和OLE/DB)。Virtuoso另外一个重要的特性是可充当关联数据服务器,支持使用SPARQL语言进行RDF数据的高效查询,也可对关联数据进行分布浏览和导航[12]。DBpedia知识库的SPARQL端点,就是由Virtuoso提供的。Virtuoso不是免费的,但也有一个开源版本,只是其中不包括虚拟数据库引擎和数据复制功能,目前Virtuoso的最新版本为7.x②。

(4)Drupal

Drupal③是由Dries Buytaert创建,使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架共同构成[13]。Drupal对关联数据的支持主要涵盖模块化的设计思想,由于其各种功能均以模块化的形式设计开发,并以插件形式来管理。主要提供:(1)RDF、ARC2模块:将内容进行RDF的转换;(2)RDF CCK、evoc模块:将内容模型向领域本体转换;(4)RDF Proxy模块:可从其它站点自动抓取关联数据;(3)RDF SPARQL Endpoint模块:为RDF提供查询接口[14]。截至目前,Drupal更新模块超过31000个,很多著名政府机构、高等学府、技术社区、商业公司等都采用Drupal进行网站搭建,如表1所示。

通过表1对比可见,这些工具都可将关系数据库中的内容转换成RDF(S)数据格式,并且大部分支持SPARQL查询数据。但有些发布工具还是有一些局限性,如Virtuoso Universal Server目前只提供Linux的开源版本、Triplify不支持SPARQL访问与查询、OAI2lod Server无法支持多个数据集同时查询、Drupal依赖于自身的内容模型。对比发现D2RQ和Ontop有明显的优势,它们支持任何关系数据库的数据转换、通用性强,支持灵活的映射配置文件,并提供一个标准的转换方式生成一个虚拟的RDF(S),确保数据库的内容更新便捷,所以下节选取D2RQ、Ontop进行实验对比。

4 D2RQ和Ontop工具关系数据映射及查询分析对比

D2RQ和Ontop,都能将关系数据库中的数据转换为RDF(S),并发布为关联数据,这两个工具在映射方面不仅快捷,而且都带有SPARQL查询端点,本节从映射方式和SPARQL查询方面进行分析对比。

实验选用MySql数据库作为数据源,样本数据集包含了582087条(相当于超过200万三元组)关于医疗的文献记录,实现从数据库中的数据到RDF(S)的语义自动映射。具体实施步骤分为两大部分:第一部分是映射,即将关系型数据库的数据按照转换规则转换为虚拟RDF图数据;第二步是建立SPARQL端点访问RDF(S)。

表1 关联数据发布工具比较

4.1 D2RQ

(1)映射

D2RQ映射语言是D2RQ工具的一个重要组成部分,它作为一种陈述性语言,用于映射关系数据库模式和RDF或OWL本体模式。将关系型数据库的数据转换为虚拟的RDF(S)数据进行访问,分为两个步骤,第一步是自动生成Mapping文件,第二步是使用可定制的Mapping文件对关系型数据进行转换与访问[15]。运用映射语言编写的映射文件是D2R实现语义模式映射的核心,语义模式映射机制,如图2所示。

图2 D2R的语义模式映射机制

生成映射文件工具创建一个默认的D2RQ Mapping语言的映射文件,映射文件命名为mapping_file.ttl,访问本地数据库,用户认证命名为root kmbase_rdf,密码为空。从下面的命令行运行生成映射后,映射文件内容,如图3所示。

通过分析现有数据库的关系。D2R提供了生成Mapping文件的执行脚本,也可自己定制映射文件,实验涵盖了所有的映射规则,目的是能够对第2节提出的关系模式向RDF(S)映射的规则进行验证。通过运行该系统,可以自动生成RDF和RDFS两个文件,文档中存放着目标RDF(S)本体中的类、属性及实例。

图3 D2RQ映射文件的内容

(2)SPARQL查询

SPARQL(SPARQL Protocol and RDF Query Language)[16]是由W3C定义的RDF数据查询访问协议,它允许应用程序查询复杂的分布式RDF数据库。SPARQL可进行跨数据源的数据查询,既可以查询本地的RDF数据,也可以通过中间件表示成RDF图。在D2RQ工具中,D2R Server服务器使用可定制的D2RQ映射文件把关系数据库中的内容转换为RDF,然后可以通过SPARQL查询端点浏览和查询RDF。D2R服务器中的SPARQL查询端点,可以查询关系数据库里的数据,如图4所示。

对于简单的查询模式,服务器执行的很顺利,但是,当SPARQL进行特殊查询(如:OPTIONAL,FILTER,和LIMIT)时,就显示了GC使用超过限制的提示,如图5所示查询失败。

图4 D2RQ下简单的SPARQL查询模式

图5 SPARQL的特殊查询FILTER和LIMIT受限

这是因为如果查询数据量过大,服务器就会避免内存过小造成应用不能正常工作所出现的一种保护机制。

4.2 OnTop

(1)映射

Ontop既支持本地Ontop映射语言也支持R2RML[17]。OntopPro是Ontop的一个组成部分,为Protégé 4和Protégé 5提供了一个映射编辑器的平台。OntopPro为本体和数据库创建映射,并制定SPARQL和SQL查询。从关系数据库映射到本地Ontop映射语言,OntopPro既可以在Protégé平台的映射编辑器中手动创建映射文件,编写映射规则,也可以利用Ontop Bootstrap自动生成映射文件。之后在Protégé平台中保存本体,两个文件将保存在硬盘中,一个是映射的OBDA文件,一个是本体的OWL文件。

在Protégé环境下手工创建映射文件,这里写入转换的映射规则。然后利用OntopPro运行,接着连接同一个MYSQL数据库进行验证,用户名为root,密码为空,最后完成所有需要的映射后得到映射文件,如图6所示。

(2)SPARQL查询

Ontop增加了一个Sesame OpenRDF平台,这是一个用于管理Sesame库的web应用程序,创建和管理库,可以用来作为标准的SPARQL端点。在Sesame工作台建立Ontop repository,需要提供两个文件到服务器:一个是OBDA文件,一个是OWL文件。Repository是查询关系数据库的SPARQL端点,可通过服务器上的查询菜单来查询数据库中的内容。Ontop能够高效的执行SPARQL的特殊查询。在Ontop平台中高级的SPARQL查询模式及查询结果,如图7和图8所展示。

图6 Ontop映射文件内容

图7 Ontop的SPARQL端点中高级SPARQL查询模式

图8 高级SPARQL查询模式的查询结果

5 总结

万维网快速发展使得它很快成为一个庞大的知识库,但同时也带来了很多问题,语义网的诞生解决了这些问题。而要实现语义网,即文档网络向数据网络的转变,最重要的是要构建丰富的本体,是信息赋有丰富的语义性,而关系数据库中存储着支撑万维网的大部分数据,同时,RDF(S)作为一种轻量级本体被广泛应用于各个领域。因此,提出了关系模型向RDF(S)模型的转换。主要研究了如何将关系数据库映射为RDF(S),具体给出了形式化的定义,分析了两者形式化对应关系,并针对提出的语义信息设计了从关系数据库到RDF(S)的映射规则,且例举D2RQ和Ontop发布工具,并录入实验数据,验证了映射方法并用RDF的查询语言SPARQL进行查询,对比发现这两种工具都可以很好的按照转换规则把关系模型向RDF(S)转换,但是Ontop在SPARQL特殊查询时效率更高。

[1] Berners-Lee T,Hendler J,Lassila O.The Semantic Web[J].Acientific American,2001,284(5):34-43.

[2] Bizer C,Cyganiak R, Heath T.How to Publish Linked Data on the Web[EB/OL].[2012-10-10].http://www4.wiwiss.fu-berlin.de/bizer/pub/Linked Data Tutorial/relationaldata.

[3] 夏翠娟,金家琴.从关系数据库到关联数据:W3C标准应用探析[J].图书馆杂志,2015(5):85-94.

[4] 佟强.数据库支持的RDF(S)构建与存储方法研究[D].辽宁:东北大学,2015.

[5] RDF 1.1 Concepts and Abstract Syntax.Editors:Graham Klyne,Jeremy JCarroll,Brian McBride[R/OL].(2014-02-25).http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/.2017.

[6] 佟强,张富程,经纬等.RDF在关系数据库中的存储研究[J].东北大学学报(自然科学版),2015(3):346-349.

[7] 刘振,张智雄.RDB-to-RDF的技术方法和工具综述[J].现代图书情报技术,2014(11):17-23.

[8] 夏翠娟.RDB2RDF标准及应用研究[J].现代图书情报技术,2013(4):13-17.

[9] 白海燕,梁冰.利用D2R实现关系数据库与关联数据的语义模式映射[J].现代图书情报技术,2011(Z1):1-7.

[10] 唐艳春.D2R在图书馆书目数据关联服务中的应用分析[J].图书情报工作,2014(14):132-138.

[11] 邹益民,张智雄,钱力等.语义仓储Virtuoso的技术分析和应用[J].图书情报工作,2012(23):97-102.

[12] 濮德敏,任瑞娟,米佳等.关系型本体转换为关联数据技术方案比较研究[J].图书馆理论与实践,2014(12):30-34.

[13] 任瑞娟,濮德敏,王剑宏等.基于Drupal实现多类型学术资源的语义化组织与关联化聚合[J].情报科学,2015(5):63-67.

[14] Melan B.RDF's long lineage in Drupal[OL].[2011-06-02].http://data.agaric.com/node/2642.

[15] 沈志宏,刘筱敏,郭学兵等.关联数据发布流程与关键问题研究——以科技文献、科学数据发布为例[J].中国图书馆学报,2013(2):53-62.

[16] 杜方,陈跃国,杜小勇.RDF数据查询处理技术综述[J].软件学报,2013(6):1222-1242.

[17] 陶俊,孙坦,刘铮.关联数据映射语言:R2R[J].中国图书馆学报,2012(3):100-109.

ResearchontheTransformationfromRelationalModeltoRDF(S)Model

Yang Wangli,Zheng Xueyun,Yuan Man
(College of Computer and Information Technologies, Northeast Petroleum University, Daqing 163318, China)

TG409

A

2017.06.21)

黑龙江省基金项目(12531059)

杨王黎(1966-),女,硕士,教授,研究方向:计算机教育、数据挖掘。 郑雪芸(1992-),女,硕士研究生,研究方向:语义Web,关联数据。 袁 满(1965-),男,教授,研究方向:信息与集成技术、标准化技术、语义Web、数据质量、知识工程以及分布式计算。

1007-757X(2017)09-0003-06

猜你喜欢

关系数据库关联语义
关系数据库在高炉数据采集系统中的应用
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
语言与语义
关系数据库技术在计算机网络设计中的应用
“一带一路”递进,关联民生更紧
奇趣搭配
智趣
“社会”一词的语义流动与新陈代谢
“上”与“下”语义的不对称性及其认知阐释
“吃+NP”的语义生成机制研究