[发明专利]基于谓语组合的SPARQL查询优化方法、系统、存储介质及设备有效

专利信息
申请号: 202010049093.2 申请日: 2020-01-16
公开(公告)号: CN111241127B 公开(公告)日: 2023-01-31
发明(设计)人: 古宇文 申请(专利权)人: 华南师范大学
主分类号: G06F16/242 分类号: G06F16/242;G06F16/2453
代理公司: 广州市华学知识产权代理有限公司 44245 代理人: 李斌
地址: 510631 广东省广州市天*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 谓语 组合 sparql 查询 优化 方法 系统 存储 介质 设备
【权利要求书】:

1.基于谓语组合的SPARQL查询优化方法,其特征在于,包括下述步骤:

构建RDF数据索引,根据三元组的主语S、谓语P、宾语O,分别生成SPO、OPS、PS和PO四种索引,所述三元组中的主语和宾语称为实体;

生成谓语组合,谓语组合中的每一个元素都包含一组标签,并且统计每个谓语组合的实体个数;

获取用户提交的SPARQL查询,并且把SPARQL查询转换为SPARQL查询图;

获取查询图中所有满足两个及以上三元组模式的公共顶点,对每一个公共顶点使用广度遍历算法,把SPARQL查询图转换成一棵树,就能得到一组树;

使用基于成本的算法选择这组树中成本最低的树,称这棵树为初步查询树,根节点为探索起始点;

所述使用基于成本的算法选择这组树中成本最低的树的步骤具体为:

如果这组树中只有一棵树,那么直接选择这棵树为成本最低的树;否则,需要从这组树中选择成本最低的树;首先需要获取每一棵树的成本,假设QP为某个顶点使用广度遍历算法生成的树;假设QP中每一个非叶子节点与孩子节点的三元组模式为一个星型子查询,这个星型子查询的中心点为相应的非叶子节点,SQ={sq1,…,sqn}为QP的所有星型子查询的一个集合,其中n1,sq1为包含根节点的星型子查询;假设PNSQ={nsq1,…,nsqn}为SQ中每一个星型子查询通过谓语组合获取的中心点的实体个数;假设NSQB={sqb1,…,sqbn}为通过常量孩子获取到的中心点的实体个数;假设sqk是SQ中的第k个星型子查询,其中k=n;假设sqk的常量孩子节点为Svb={vb1,…,vbh},其中h=n;如果Svb为空集,那么sqbk等于nsqk;否则,sqbk等于Svb中每个元素与相应的谓语获取中心点的实体个数的最小值;假设每个星型子查询的中心点的实体个数为NOC={noc1,…,nocn},NOC中的每个元素nock=min{nsqk,sqbk},其中k=n;假设WSQ={wqs1,…,wsqn}为每个星型子查询的成本,其中wsq1=noc1;假设wsqfather为当前星型子查询的父亲星型子查询的成本;假设pftoc为当前星型子查询与父亲星型子查询连接的三元组模式的边,通过PO与PS可以获取到父亲节点实体和当前节点实体的个数,分别表示为nof和noc;假设WSQ中的第i个星型子查询的成本为wsqi,那么wsqi=wsqfather*(nof/noc)*(noci/noc),其中1i=n;假设W为当前初步查询树的成本,那么;其次,计算出这组树中每一棵树的成本,选择成本最低的树,并称这棵树为初步查询树,初步查询树的根节点为探索起始点;

定义初步查询树中每个非叶子节点与孩子节点的三元组模式为星型子查询,使用基于选择度算法重排每个星型子查询的三元组模式顺序,生成最终的查询顺序;

所述使用基于选择度算法重排初步查询树中每个星型子查询的三元组模式的顺序,生成最终的查询顺序的步骤具体为:

假如sqk为初步查询树的一个星型子查询,Tp={tp1,..,tpj}为sqk所包含的三元组模式;使用selectivity(tpi)表示tpi的选择度,其中i=j;如果tpi中的孩子节点为常量时,则可以使用常量加上谓语,通过SPO或者OPS索引获取到中心点的实体个数;如果tpi的孩子节点为变量时,则可以使用谓语,通过PO或者PS索引获取到中心点的实体个数;把中心点的实体个数称为tpi的选择度;使用Tp的选择度,按照从小到大的顺序重新排序Tp的顺序;当所有的星型子查询的三元组模式按照选择度重新排序好后,称这个树为最终查询树;把最终查询树和剩余约束边加在一起,就是最终的三元组模式的查询顺序;

根据生成的三元组模式的查询顺序,使用两步剪枝进行查询处理,从而获取SPARQL查询的结果;

所述根据生成的三元组模式的查询顺序,使用两步剪枝进行查询处理,从而获取SPARQL查询的结果的步骤中,具体为:

把每个非叶子节点与孩子节点的三元组模式当作一个星型子查询,表示为SQ={sq1,…,sqn},其中这个非叶子节点也称为这个星型子查询的中心点Vcenter,每个星型子查询也包含一组三元组模式Tp={tp1,…,tpn};假设sq1是包含根节点的星型子查询;首先,是向下剪枝,先处理sq1,通过tp1来获取Vcenter的实体,如果tp1的孩子节点是常量值,则使用这个常量值与tp1的谓语,通过SPO或者OPS索引来获取到Vcenter的实体值,表示为Sbound;否则,通过PO或者PS索引来获取Vcenter的实体值;如果包含根节点的星型子查询的三元组模式的个数大于1,那么继续遍历{tp2,…,tpn},剪枝掉Sbound中不满足{tp2,…,tpn}的实体;假设Nchild是任意一个星型子查询中的一个非叶子节点;对于任意星型子查询剪枝完成后,需要把非叶子节点Nchild的所有实体与星型子查询中心点为Nchild的三元组模式依次进行遍历;其次是回溯剪枝,当任意一个星型子查询的孩子节点全部为叶子节点,或者星型子查询的实体为空时,需要把查询结果发送给父亲星型子查询;假设任意一个星型子查询的中心点的实体为Sbound,接收到的孩子星型子查询的中心点实体为Sboundchild,需要把Sbound中与Sboundchild没有关系的实体删除掉;如果这个星型子查询不包含根节点,则需要继续把实体Sbound发送给本身的父亲星型子查询;依次回溯剪枝,直到星型子查询包含根节点为止;如果这个SPARQL查询的剩余约束边不为空,还需要继续遍历剩余约束边;通过上述的两步剪枝就能获取到最终的查询结果。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南师范大学,未经华南师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010049093.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top