当前位置: 首页 > 专利查询>天津大学专利>正文

基于稀疏矩阵的RDF数据存储和查询方法技术

技术编号:20329149 阅读:13 留言:0更新日期:2019-02-13 05:45
本发明专利技术涉及数据库引擎的数据存储和查询处理领域,为充分利用真实人类社会活动关系数据的特点,将局部紧密的实体关系进行存储,提高查询效率,节省大量存储空间。本发明专利技术,基于稀疏矩阵的RDF数据存储和查询方法,步骤如下:步骤一:将原始RDF数据的字符串类型哈希编码成整数类型;步骤二:对编码后的RDF数据构建RDF立方体RDF Cube;步骤三:通过建立谓词索引采用一系列稀疏矩阵的形式来存储RDF Cube;步骤四:解析并优化SPARQL查询语句得到最优的查询计划;步骤五:基于稀疏矩阵的Join查询执行,结果输出。本发明专利技术主要应用于存储和查询处理场合。

【技术实现步骤摘要】
基于稀疏矩阵的RDF数据存储和查询方法
本专利技术涉及数据库引擎的数据存储和查询处理领域。具体来说,设计了一种基于稀疏矩阵的存储模式来存储大量RDF数据,设计了一个基于稀疏矩阵乘法的Join运算执行RDF数据的查询。
技术介绍
资源描述框架(ResourceDescriptionFramework,RDF)是一种非常流行的数据模型,以三元组(subject,predicate,object)的形式来表示Web上的信息。一个RDF数据集也可以被描述为一个有向标签图,一个三元组就表示一条边,subject和object表示两个顶点,predicate表示这条边的标签。SPARQL(SPARQLProtocolandRDFQueryLanguage)是万维网联盟(WorldWideWebConsortium,W3C)推荐的标准的RDF图数据查询语言。来自于真实世界中的大规模RDF数据,比如DBpedia(一个很特殊的语义网应用范例)和YAGO(一个链接数据库)数据,它们却存在着一种重要的数据特性---“稀疏性”。RDF数据的稀疏性意味着RDF图中每个顶点的邻接点只占据整个图中顶点的很小一部分。事实上,RDF数据的稀疏性无处不在。比如在现实生活中的社会活动关系情境中,人与人之间具有不同的社会活动关系,而且在这些社会活动关系中还包含着很多复杂的实体类型数据,比如地点关联,人物关系,涉及的时间点等等。任何两个实体都可以通过某些关系进行联系在一起。我们通过数据之间的关联也能够反映出人类社会活动的变化关系,比如某地区外来人口数的变化、交通道路使用量、假期旅游地等等都可以通过人类社会关系进行分析。但是,人类整体社会活动关系又具有局部紧密且全局稀疏的特性,比如说,A地区(比如,陕西省)内部的任何实体之间的关系就比较紧密,但是相比A地区和B地区(比如,陕西省和天津市)两个地区之间却只有少量的关联连接。所以,整体就人类社会活动关系而言,现实中的实体之间呈现出局部紧密的情况。例如图1,在DBpedia数据中(总共42966066个节点),有超过99.41%的节点的最大的度(出度和入度)为43;在YAGO数据中(总共38734252个节点),超过95.17%的节点的最大的度为39。SPARQL构建于基本图模式(BasicGraphPattern,BGP)和SPARQL代数运算之上,Join操作是SPARQL查询评估的核心操作,因为BGP就是三元组模式的join。而且在RDF图中,两个顶点的连结可以通过相邻矩阵的乘积来计算。通过对真实人类社会活动关系的RDF数据进行分析,我们专利技术了一种基于稀疏矩阵的存储模式进行高效存储数据,又专利技术了一种基于稀疏矩阵的join算法对数据进行高效查询。也就是说,基于稀疏矩阵的join算法用来查询具有“稀疏性”特征的RDF数据。因而,寻找一种可以充分考虑并利用数据稀疏性来高效存储和查询人类社会活动关系中的RDF数据的解决方案,是一个很有意义的课题。与本专利技术最相似的现有技术实现方案:现有的用于评估RDF数据的SPARQL查询的方法可以分为两类:基于关系的系统和基于图形的系统。基于关系的系统使用关系方法来存储和索引RDF数据。比如Jena、Oracle、Sesame、3store和SOR,这些系统使用一个具有3列的大表来维护所有三元组,分别对应于subject、predicate和object。然后将SPARQL查询转换为SQL查询,并通过表的多个自连接进行查询。最近提出了许多基于图的方法来存储图模型的RDF三元组,如gStore,dipLODocus[RDF],TurboHOM++和AMBER。这些基于图的方法通常将SPARQL查询处理视为子图匹配,这有助于保留和查询语义信息。gStore将所有谓词和谓词值映射为二进制位串,然后将其组织为一个VS*-tree树。由于VS*-tree树的每一层都是整个RDF图的总结,因此gStore可以有效地处理SPARQL查询。dipLODocus[RDF]以混合存储方式开始,为了查找分子簇以及通过聚类相关数据帮助提升查询速度,首先考虑RDF数据的图结构和数据分析的要求。TurboHOM++通过将RDF图转换为普通数据图来开发TurboISO,而AMBER将RDF数据和SPARQL查询表示为多图。现有技术的缺点:现有的对RDF数据的查询方法在一定程度上确实提高了查询评估的性能。然而,他们在处理来自真实世界的大规模RDF数据方面的改进仍然有限,原因是它们在存储数据时没有解决真实数据带来的稀疏性而造成存储数据时浪费大量空间。而且在基于关系的系统中大量的自连接会导致长时间的响应时间,这是系统的潜在瓶颈。由于缺乏并行性,所有上述系统在预处理时在计算上都很昂贵。另外,具有耗时遍历的查询方法会增加运行时间开销。由此,我们需要这样一个基于稀疏矩阵的RDF查询处理方法,既能够高效存储大量RDF数据,又能够快速进行查询处理。
技术实现思路
为克服现有技术的不足,本专利技术解决了真实社会活动关系数据的稀疏性,提出一种基于稀疏矩阵的数据存储模式和基于稀疏矩阵的join查询算法。本专利技术设计的存储模式,能够充分利用真实人类社会活动关系数据的特点,将局部紧密的实体关系进行存储,这样不仅高效紧凑的存储了原始数据,而且还缩小了查询数据集的范围,更提高了查询效率。本专利技术的存储模式能够节省大量存储空间,将数据表示为稀疏矩阵并仅在RDF图中维护实际关系的方式进行处理。本专利技术的查询算法是在基于稀疏存储模式之上的矩阵乘法来进行Join运算,能够显著提升查询效率。为此,本专利技术采取的技术方案是,基于稀疏矩阵的RDF数据存储和查询方法,步骤如下:步骤一:将原始RDF数据的字符串类型哈希编码成整数类型;步骤二:对编码后的RDF数据构建RDF立方体RDFCube;步骤三:通过建立谓词索引,采用一系列稀疏矩阵的形式来存储RDFCube;步骤四:解析并优化SPARQL查询语句得到最优的查询计划;步骤五:基于稀疏矩阵的Join查询执行,结果输出。步骤四具体地:对于给定的一个RDF数据的SPARQL查询语句,将其解析成一个查询图,然后再根据查询图中每条边的统计数据进行排序,在保证边与边连接的情况下重构查询执行计划。步骤四进一步具体地:输入的是一个SPARQL查询语句,其形式是一个L=(e1,e2,...,en),包含这个查询语句的所有边,首先初始化一个记为N的点集合来记录选取的边的点,并且按照L中所有的边的统计数据对L进行排序;然后在排序后的查询语句L中选取第一条边加入Q中,并将所选取的边的点加入N中,并更新L;只要L不为空,依次循环的从L中选取一条统计数小并且和之前已选边有关联的边加入Q中,所选边的点∈N并将该所选边的点加入到N中,更新L;最终得到的查询计划Q即为最优查询计划。步骤五具体地:通过步骤四得到给定的优化后的查询计划,对查询计划中的每一个稀疏矩阵依次执行基于稀疏矩阵的Join算法得到最终的查询结果,其中,每两个稀疏矩阵具体执行的是SMJoin算法。步骤五进一步具体地:算法1是对于给定的优化后的计划中的每个稀疏矩阵进行Join算法运算处理,输出最终查询结果;算法2是给定两个稀疏矩阵执行核心SMJoin算法;对于算法1,本文档来自技高网
...

【技术保护点】
1.一种基于稀疏矩阵的RDF数据存储和查询方法,其特征是,步骤如下:步骤一:将原始RDF数据的字符串类型哈希编码成整数类型;步骤二:对编码后的RDF数据构建RDF立方体RDF Cube;步骤三:通过建立谓词索引,采用一系列稀疏矩阵的形式来存储RDF Cube;步骤四:解析并优化SPARQL查询语句得到最优的查询计划;步骤五:基于稀疏矩阵的Join查询执行,结果输出。

【技术特征摘要】
1.一种基于稀疏矩阵的RDF数据存储和查询方法,其特征是,步骤如下:步骤一:将原始RDF数据的字符串类型哈希编码成整数类型;步骤二:对编码后的RDF数据构建RDF立方体RDFCube;步骤三:通过建立谓词索引,采用一系列稀疏矩阵的形式来存储RDFCube;步骤四:解析并优化SPARQL查询语句得到最优的查询计划;步骤五:基于稀疏矩阵的Join查询执行,结果输出。2.如权利要求1所述的基于稀疏矩阵的RDF数据存储和查询方法,其特征是,步骤四具体地:对于给定的一个RDF数据的SPARQL查询语句,将其解析成一个查询图,然后再根据查询图中每条边的统计数据进行排序,在保证边与边连接的情况下重构查询执行计划。3.如权利要求2所述的基于稀疏矩阵的RDF数据存储和查询方法,其特征是,步骤四进一步具体地:输入的是一个SPARQL查询语句,其形式是一个L=(e1,e2,...,en),包含这个查询语句的所有边,首先初始化一个记为N的点集合来记录选取的边的点,并且按照L中所有的边的统计数据对L进行排序;然后在排序后的查询语句L中选取第一条边加入Q中,并将所选取的边的点加入N中,并更新L;只要L不为空,依次循环的从L中选取一条统计数小并且和之前已选边有关联的边加入Q中,所选边的点∈N并将该所选边的点加入到N中,更新L;最终得...

【专利技术属性】
技术研发人员:张小旺张明月冯志勇
申请(专利权)人:天津大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1