[发明专利]一种基于图遍历的SPARQL查询优化方法有效
申请号: | 201710343003.9 | 申请日: | 2017-05-16 |
公开(公告)号: | CN107291807B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 李亮;沈志宏;周园春;黎建辉;朱小杰;刘东江;李跃鹏 | 申请(专利权)人: | 中国科学院计算机网络信息中心 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/245 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 遍历 sparql 查询 优化 方法 | ||
1.一种基于图遍历的SPARQL查询优化方法,其步骤为:
1)使用属性图表示RDF数据中三元组,然后利用Bigtable模型存储RDF数据,得到RDF数据对应的Bigtable数据;
2)将SPARQL查询转化对RDF属性图的遍历;
3)根据步骤2)获得的遍历序列,遍历Bigtable数据中满足条件的所有节点,完成SPARQL查询;
利用Bigtable模型存储RDF数据的方法为:21)针对RDF数据中的每一RDF三元组(sub,pre,obj),将主语sub作为节点v,存储为Bigtable模型中一行;22)判断宾语obj的类型:a)若宾语obj为rdf:literal,即谓语pre为主语sub的属性,则将宾语obj作为该节点v的属性值,然后将谓语pre作为该节点v的属性名称,存储为该节点v所在行的一个存贮单元Cell;b)若宾语obj为rdf:resource,即谓语pre为主语sub关联到其它节点的边,则将宾语obj作为一独立节点w,存储为Bigtable模型中一行;然后将谓语pre作为该节点v的出边,指向该节点w,存储为该节点v所在行的一个Cell,并且将谓语pre作为该节点w的入边,出自该节点v,存储为该节点w所在行的一个Cell。
2.如权利要求1所述的方法,其特征在于,步骤2)中,将SPARQL查询转化为Gremlin图遍历,实现将SPARQL查询转化对RDF属性图的遍历。
3.如权利要求2所述的方法,其特征在于,将SPARQL查询转化为Gremlin图遍历的方法为:对于SPARQL查询的where子句中的每个三元组(sub,pre,obj),如果该三元组为谓语pre表示属性图中属性的三元组,则将该三元组转化为对主语sub所代表属性图中节点的过滤has(pre,obj),obj为过滤条件,pre为谓语pre所代表的属性名称;如果该三元组为谓语pre表示属性图中边的三元组,则将该三元组转化为主语sub所代表节点到宾语obj所代表节点的遍历sub.out(pre)-obj,out表示出边,pre表示谓语pre所代表的边的关联标签;通过处理where子句的所有三元组,获得所述遍历序列。
4.如权利要求1所述的方法,其特征在于,根据步骤2)获得的遍历序列,遍历Bigtable数据中满足条件的所有节点的方法为:所述遍历序列为过滤和关联边组成的遍历序列;首先根据关联边组成遍历路径,然后利用过滤消除无效的遍历路径,得到有效遍历路径;然后根据有效遍历路径遍历Bigtable数据中满足条件的所有节点,然后组织有效遍历路径的节点和边的属性值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算机网络信息中心,未经中国科学院计算机网络信息中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710343003.9/1.html,转载请声明来源钻瓜专利网。