面向大规模rdf数据的高效语义索引的构建方法

文档序号:6625422阅读:198来源:国知局
面向大规模rdf数据的高效语义索引的构建方法
【专利摘要】本发明公开了一种面向大规模RDF数据的高效语义索引的构建方法,包括以下步骤:步骤1.配置开源分布式RDF数据库,作为存储RDF数据的持久化数据库;步骤2.区分RDF数据库中的TBox数据和ABox数据;步骤3.生成TBox数据中的类之间的子父语义关系索引;步骤4.生成TBox数据中的属性之间的子父子父语义关系索引;步骤5.将上述生成的语义关系融入到RDF数据中,包括原本的TBox数据和ABox数据,构成新的M)F数据;步骤6.将生成的新的RDF数据持久化到配置好的RDF数据库中。本发明针对的是大规模RDF数据的查询和推理,最终提供了一种新的构建RDF数据语义关系索引的方案,从而在保证查询效率的同时能够支持较为丰富的离线推理。
【专利说明】面向大规模RDF数据的高效语义索引的构建方法

【技术领域】
[0001] 本发明涉及RDF数据库领域,具体来说,涉及RDF数据库中数据的有效组织以及推 理。

【背景技术】
[0002] 随着Web的发展,从最初的Webl. 0时代步入了当今的Web2. 0时代,并在逐渐进入 一个新的阶段--Web3. 0时代,也即语义Web时代。语义Web的概念由蒂姆?伯纳斯-李 (Tim Berners-Lee)于20世纪90年代提出,主要是为了解决计算机无法理解网络上的文档 的含义这样一个问题。其主要技术点在于,为Web上的资源通过给其标注相应的语义信息 来让计算机进行理解。计算机能够理解网络上的资源,使得人机互通更进一步,从而使整个 Web变成一个更加易用和智能的Web。
[0003] 随着语义Web的发展,对网络资源的语义信息的标准化工作也逐步完成。RDF 就是用来描述网络资源的语义信息的一种标准化方案。RDF(Resource Description Framework),是语义Web的一种标准数据模型,用来构建和表示机器可理解的数据,是典型 的图结构数据。如今RDF数据呈几何量级增长,已经达到百亿级三元组规模。这样大规模 的RDF数据的高效存储和查询工作已经成为语义Web研究的一个重点问题。
[0004] 语义Web中,RDF数据的访问主要分为查询和推理两部分。由于数据本身的特点, RDF数据的查询涉及到图的连接等操作,具有较高的复杂度,因此需要底层强大的索引机制 支持以便进行高效查询。当前RDF数据的索引模型主要有三元组索引,倒排索引和关键字 索引等,支持SPARQL等查询。同时,由于RDF数据包含一定的语义信息,是用来构建机器可 理解的信息的标准,因此可以用推理机对其进行推理查询。通过推理,可以丰富查询的结果 集。但是,通过对RDF数据的相关存储和查询工作的研究发现,RDF数据的查询和推理相关 工作一直都是分开的。针对查询的工作主要围绕优化索引结构、空间代价换取时间代价等 问题展开,
[0005] 针对以上问题,有必要针对RDF数据的有效组织以及在其上的推理进行有效融 合,将RDF中所蕴含的语义信息固化到底层的索引机制中去,这样,即支持通过RDF的索引 结构对RDF数据进行高效的查询之外,还可以通过索引结构携带的语义信息进行推理,从 而支持在查询的时候的推理工作,实现离线推理,极大丰富查询结果。


【发明内容】

[0006] 为了克服上述现有技术存在的问题,本发明提出了一种面向大规模RDF数据的高 效语义索引的构建方法,在现有的RDF三元组高效索引的基础上,通过融入RDFS层的语义 信息,来构建新的支持语义推理的索引结构一语义索引,并持久化到底层数据库中去,从而 支持RDF数据的高效查询以及查询时的离线推理。
[0007] 本发明提出了一种面向大规模RDF数据的高效语义索引的构建方法,该方法包括 以下步骤:
[0008] 步骤1、配置开源分布式RDF数据库,作为存储RDF数据的持久化数据库;
[0009] 步骤2、区分RDF数据库中的TBox数据和ABox数据;
[0010] 步骤3、生成TBox数据中的类之间的子父语义关系索引;
[0011] 步骤4、生成TBox数据中的属性之间的子父子父语义关系索引;针对每一个属性, 其中:对于域,直接用Class的语义关系索引;对于range,贝U是将其中Class的部分的语义 关系索引直接用Class的语义关系索引,而非Class的range则重新进行语义关系索引的 生成;
[0012] 步骤5、将上述生成的语义关系融入到RDF数据中,包括原本的TBox数据和ABox 数据,构成新的RDF数据;
[0013] 步骤6、将生成的新的RDF数据持久化到配置好的RDF数据库中。
[0014] 所述步骤2的生成TBox数据中的类之间的子父语义关系索引中,还具体包含以下 处理:
[0015] 通过广度优先遍历从根类到叶子类的过程,来分别生成其对应的子父语义关系索 引。
[0016] 所述步骤3的生成TBox数据中的属性之间的子父子父语义关系索引中,具体包含 以下处理:
[0017] 通过广度优先遍历从根属性到叶子属性的过程,来分别生成对应语义关系索引。
[0018] 所述步骤5的将上述生成的语义关系融入到RDF数据中,还具体包括以下处理: [0019] 根据RDF数据库中三元组数据S、P、0中的谓词来判断这条三元组的类别,如果 谓词是rdf:type,则表示S是个体,则将其与0的语义关系索引进行绑定;如果谓词是 subClassOf,则表明S和0都是类,则将它们分别和各自的父类语义关系索引绑定;如果谓 词是subProperty,则表明S和0都是属性,则将它们分别和各自的父属性语义索引码绑定; 剩余的谓词则是自定义属性,分别将S、P和0与各自对应的语义关系索引绑定;所谓自定义 属性即数据集中由用户通过继承自根属性(如〇wl:0bjectProperty)而自定义的属性(如 dbpedia:influenced).
[0020] 与现有技术相比,本发明具有以下有益效果:
[0021] 本发明针对的是大规模RDF数据的查询和推理,最终提供了一种新的构建RDF数 据语义关系索引的方案,从而在保证查询效率的同时能够支持较为丰富的离线推理。

【专利附图】

【附图说明】
[0022] 图1是本发明中所用到的数据的示例图;
[0023] 图2是本发明的核心部分,语义索引的结构示例图;
[0024] 图3是本发明的整体架构图,也即流程图。

【具体实施方式】
[0025] 下面结合附图对本发明作进一步详细说明。
[0026] 步骤1、配置开源分布式RDF数据库Bigdata,作为存储RDF数据的持久化数据库;
[0027] 步骤2、区分RDF数据库中的TBox数据和ABox数据,便于进行编码以创建语义索 引;
[0028] 步骤3、根据ORDPath编码规则,对TBox数据中的Class的子父关系进行编码,体 现类之间的子父语义关系;
[0029] 步骤4、根据ORDPath编码规则,对TBox数据中的Property的子父类关系进行编 码,体现属性之间的子父语义关系;
[0030] 步骤5、根据ORDPath编码规则,针对每一个Property的domain进行编码;由于 在RDF数据中,一个Property的domain全是Class,因此针对domain的编码则是直接用到 针对Class的编码;
[0031] 步骤6、根据ORDPath编码规则,针对每一个Property的range进行编码;由于 在RDF数据中,一个Property的range可能是Class,也可能是非Class,则将range中是 Class的部分的编码直接用Class的编码,而非Class的range则重新进行编码;
[0032] 步骤7、将上述的根据ORDPath编码规则生成的语义编码融入到RDF数据中,包括 TBox数据和ABox数据,构成新的RDF数据;
[0033] 步骤8、将生成的新的RDF数据持久化到配置好的RDF数据库Bigdata,在有需要 的情况下可为分布式数据库,以方便用户查询。
[0034] 步骤1中,Bigdata是国外一款开源的分布式RDF数据库软件,其底层利用Sesame 的存储以及查询机制,并自己进行了分布式的扩展,从而更便于大规模RDF数据的分布式 并行处理。其内部提供了多种服务来进行分布式框架的功能,包括数据服务、元数据服务 等,这些服务通过JINI来进行协调管理。同时,其分布式的架构则是通过zooKeeper来实 现。其内部还提供了多种RDF数据的索引机制,包括Term2Id、S、P、0三元组索引等,方便 RDF数据的高效组织和管理。
[0035] 步骤2中提到的TBox是术语集,ABox是断言集。TBox中,主要描述了 Class之间 的关系、Property之间的关系以及Property的domain和range属性。这些关系和属性体 现出了一定的语义信息。这些语义信息也是将来要构建的索引所要支持的推理的基础。
[0036] 步骤3至步骤8是本发明的核心部分。具体实现细节如下:
[0037] 经研究,发现TBox中的Class和Property的层次分别是树状结构而非典型的图 状结构,即可以认为一个类如果有父类,则其只有一个父类;同样的道理,一个属性如果有 父属性,则其只有一个父属性。那么,针对Class构建语义索引的过程就是通过广度优先 遍历从根类到叶子类的过程,来分别生成其对应的ORDPath编码。同理,针对Property,通 过广度优先遍历从根属性到叶子属性的过程,来分别生成对应的ORDPath编码以构成语义 索引。同时,Property还具有domain和range两个域,也要将这两个域的语义信息加入到 Property的语义索引中区。一个Property的domain全部是Class,因而不需要对其进行 编码,在算法1中已经编码完成。而一个Property的Range可能是Class,也可能不是,因 此需要对不是Class的Range进行编码。当Class和Property的语义索引分别被建立起 来之后,将其再融入到RDF数据中去。融入的过程就是,根据RDF三元组数据S、P、0中的谓 词来判断这条三元组的类别,如果谓词是rdf: type,则表示S是个体,则将其与0的语义关 系索引编码进行绑定;如果P是subClassOf,则表明S和0都是Class,则将它们分别和各 自的父类语义关系索引编码绑定。如果P是subProperty,则表明S和0都是Property,贝1J 将它们分别和各自的父属性语义索引码绑定。剩余的P则是自定义属性,则分别将S、P和 0与各自对应的语义关系索引绑定。通过这样一个过程,重新对RDF数据赋予了多层次语义 信息,并最终持久化到已配置的数据库中去,从而支持高效的查询和离线推理。
[0038] 首先分析RDFS的部分推理规则。
[0039] 表1 RDFS部分推理规则集
[0040]

【权利要求】
1. 一种面向大规模RDF数据的高效语义索引的构建方法,其特征在于,该方法包括以 下步骤: 步骤1、配置开源分布式RDF数据库,作为存储RDF数据的持久化数据库; 步骤2、区分RDF数据库中的TBox数据和ABox数据; 步骤3、生成TBox数据中的类之间的子父语义关系索引; 步骤4、生成TBox数据中的属性之间的子父子父语义关系索引;针对每一个属性,其 中:对于域,直接用Class的语义关系索引;对于range,贝U是将其中Class的部分的语义关 系索引直接用Class的语义关系索引,而非Class的range则重新进行语义关系索引的生 成; 步骤5、将上述生成的语义关系融入到RDF数据中,包括原本的TBox数据和ABox数据, 构成新的RDF数据; 步骤6、将生成的新的RDF数据持久化到配置好的RDF数据库中。
2. 如权利要求1所述的面向大规模RDF数据的高效语义索引的构建方法,其特征在于, 所述步骤(2)的生成TBox数据中的类之间的子父语义关系索引中,还具体包含以下处理: 通过广度优先遍历从根类到叶子类的过程,来分别生成其对应的子父语义关系索引。
3. 如权利要求1所述的面向大规模RDF数据的高效语义索引的构建方法,其特征在于, 所述步骤(3)的生成TBox数据中的属性之间的子父子父语义关系索引中,具体包含以下处 理: 通过广度优先遍历从根属性到叶子属性的过程,来分别生成对应语义关系索引。
4. 如权利要求1所述的面向大规模RDF数据的高效语义索引的构建方法,其特征在于, 所述步骤(5)的将上述生成的语义关系融入到RDF数据中,还具体包括以下处理: 根据RDF数据库中三元组数据S、P、0中的谓词来判断这条三元组的类别,如果谓 词是rdf:type,则表示S是个体,则将其与0的语义关系索引进行绑定;如果谓词是 subClassOf,则表明S和0都是类,则将它们分别和各自的父类语义关系索引绑定;如果谓 词是subProperty,则表明S和0都是属性,则将它们分别和各自的父属性语义索引码绑定; 剩余的谓词则是自定义属性,分别将S、P和0与各自对应的语义关系索引绑定;所谓自定义 属性即数据集中由用户通过继承自根属性而自定义的属性。
【文档编号】G06F17/27GK104216975SQ201410437815
【公开日】2014年12月17日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】魏亚洲, 冯志勇, 王鑫, 饶国政 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1