【技术实现步骤摘要】
基于SPARQL查询语言的多查询方法和装置
本申请属于数据库
,具体涉及一种基于SPARQL查询语言的多查询方法和装置。
技术介绍
自从知识图谱的概念被Google提出并被用于为用户提供具有完整知识体系的搜索结果后,各式各样的知识库层出不穷,例如基于社区构建的Freebase等。这些知识库都可以提供半结构化的RDF(ResourceDescriptionFramework,资源描述框架)数据格式版本。SPARQL(SPARQLProtocolandRDFQueryLanguage,SPARQL协议和RDF查询语言)查询语言采用类似SQL(StructuredQueryLanguage,结构化查询语言)查询的方式定义查询模式,支持精确检索知识库中用户指定的任意部分数据,是标准的知识库查询语言。在具体应用中,查询引擎可能会在短时间内接收到大量密集的查询请求,对于同时到达的批量查询,现有技术中的查询引擎往往是将该批量查询进行排列后逐个对查询进行求值,忽略了批量查询间可能存在的显著结构重合,不能将查询间可能存在的公共查询模式集的求值结果作为中间结果进行有效利用,从而难以提高查询引擎的查询效率。
技术实现思路
有鉴于此,本申请实施例提供了一种基于SPARQL查询语言的多查询方法和装置,以减少对多查询进行求值所用的时间,提高查询引擎的求值效率。其技术方案如下:第一方面,提供了一种基于SPARQL查询语言的多查询方法,该方法包括:获取包括至少两个查询的批量查询簇,该批量查询簇中每个查询的查询语言均为SPARQL查询语言;对于每个批量查询簇,获取批量查询簇中任两个以上查 ...
【技术保护点】
1.一种基于SPARQL查询语言的多查询方法,其特征在于,所述方法应用在查询引擎上,所述方法包括:获取包括至少两个查询的批量查询簇,所述批量查询簇中每个查询的查询语言均为SPARQL查询语言;对于每个所述批量查询簇,获取所述批量查询簇中任两个以上查询的公共查询三元组模式集,所述公共查询三元组模式集包括对应的所述任两个以上查询中可通过列更名操作取得相同求值结果的三元组模式;对于每个所述公共查询三元组模式集,获取所述批量查询簇的求值代价;对所述求值代价最小时对应的第一公共查询三元组模式集进行求值,得到第一求值结果;对每个查询未被包括在所述第一公共查询三元组模式集中的三元组模式进行求值,得到所述查询的第二求值结果;对于每个查询,基于所述第一求值结果和所述查询的第二求值结果,得到所述查询的最终求值结果。
【技术特征摘要】
1.一种基于SPARQL查询语言的多查询方法,其特征在于,所述方法应用在查询引擎上,所述方法包括:获取包括至少两个查询的批量查询簇,所述批量查询簇中每个查询的查询语言均为SPARQL查询语言;对于每个所述批量查询簇,获取所述批量查询簇中任两个以上查询的公共查询三元组模式集,所述公共查询三元组模式集包括对应的所述任两个以上查询中可通过列更名操作取得相同求值结果的三元组模式;对于每个所述公共查询三元组模式集,获取所述批量查询簇的求值代价;对所述求值代价最小时对应的第一公共查询三元组模式集进行求值,得到第一求值结果;对每个查询未被包括在所述第一公共查询三元组模式集中的三元组模式进行求值,得到所述查询的第二求值结果;对于每个查询,基于所述第一求值结果和所述查询的第二求值结果,得到所述查询的最终求值结果。2.根据权利要求1所述的基于SPARQL查询语言的多查询方法,其特征在于,所述获取包括至少两个查询的批量查询簇包括:获取包括至少两个查询的批量查询;当所述批量查询只包括两个查询时,将所述两个查询作为所述批量查询簇;当所述批量查询包括三个以上查询时,将所述三个以上查询作为所述批量查询簇,或者使用层次聚类方法对所述批量查询进行聚类划分,得到至少一个所述批量查询簇,每个所述批量查询簇包括所述批量查询中的至少两个查询。3.根据权利要求2所述的基于SPARQL查询语言的多查询方法,其特征在于,所述方法还包括:对所述批量查询中未被任一所述批量查询簇包括的查询进行求值,得到所述批量查询中未被任一所述批量查询簇包括的查询的求值结果。4.根据权利要求1所述的基于SPARQL查询语言的多查询方法,其特征在于,所述获取所述批量查询簇中任两个以上查询的公共查询三元组模式集包括:获取所述批量查询簇中任两个查询的三元组模式序列二元组,所述三元组模式序列二元组包括两条等价的三元组模式序列,其中一条三元组模式序列包括来自一个查询中的一条或多条三元组模式,另一条三元组模式序列包括来自另一个查询中的一条或多条三元组模式,所述两条等价的三元组模式序列包括的三元组模式数量相等且一一对应等价,所述两条等价的三元组模式序列所包括的三元组模式上的变量映射函数为一一映射关系;将所述三元组模式序列二元组进行扩展,得到三元组模式序列多元组;将一个或多个所述三元组模式序列多元组作为所述批量查询簇的公共查询三元组模式集。5.根据权利要求4所述的基于SPARQL查询语言的多查询方法,其特征在于,所述将所述三元组模式序列二元组进行扩展,得到三元组模式序列多元组包括:遍历所述批量查询簇中每两个查询,得到所述每两个查询的三元组模式序列二元组;设所述批量查询簇中查询的数量为k,对于2<n≤k的数量n,遍历所述批量查询簇中的每n个查询,通过对两个或两个以上的三元组模式序列m元组求交集得到每n个查询的三元组模式序列n元组,1<m<n,所述两个或两个以上的三元组模式序列m元组对应的查询的并集与所述三元组模式序列n元组对应的n个查询相同。6.根据权利要求5所述的基于SPARQL查询语言的多查询方法,其特征在于,所述通过对两个或两个以上的三元组模式序列m元组求交集得到每n个查询的三元组模式序列n元组包括:获取所述两个或两个以上的三元组模式序列m元组中三元组模式序列所包括的三元组模式的交集;当所述交集不为空集时,将所述两个或两个以上的三元组模式序...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。