CN113220820B - 基于图的高效sparql查询应答方法、装置和设备 - Google Patents

基于图的高效sparql查询应答方法、装置和设备 Download PDF

Info

Publication number
CN113220820B
CN113220820B CN202011471406.XA CN202011471406A CN113220820B CN 113220820 B CN113220820 B CN 113220820B CN 202011471406 A CN202011471406 A CN 202011471406A CN 113220820 B CN113220820 B CN 113220820B
Authority
CN
China
Prior art keywords
graph
vertex
directed
entity
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011471406.XA
Other languages
English (en)
Other versions
CN113220820A (zh
Inventor
郭得科
罗来龙
王希
张千桢
郑龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202011471406.XA priority Critical patent/CN113220820B/zh
Publication of CN113220820A publication Critical patent/CN113220820A/zh
Application granted granted Critical
Publication of CN113220820B publication Critical patent/CN113220820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明示例性实施例提供一种基于图的高效SPARQL查询应答方法、装置和设备,其中的方法包括:将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;通过访问抽象图进行查询,并给出应答结果。本发明的查询应答效果远优于目前的查询方法。

Description

基于图的高效SPARQL查询应答方法、装置和设备
技术领域
本发明示例性实施例涉及数据处理技术领域,尤其涉及一种基于图的高效SPARQL查询应答方法、装置和设备。
背景技术
由于RDF数据的使用越来越多,有效地处理RDF数据集上的SPARQL查询已经成为一个重要的问题。在基于图的RDF数据管理方案中,SPARQL查询被转换成子图模式,并通过图匹配在RDF图上求值。然而,要回答SPARQL查询,需要处理RDF推理来对RDF数据中的隐式三元组进行建模,这在很大程度上被现有的基于图的解决方案所忽略。
在基于图的解决方案中,SPARQL查询被转换成图模式P,然后在RDF图G上进行求值。查询求值过程通过将P中的变量与G的元素匹配来执行,这样返回的图就包含在G中(模式匹配)。基于图的解决方案的主要优势在于,RDF query5在不丧失建模能力的情况下更易于表达,更重要的是,没有优化策略的图模式匹配能够执行甚至优于关系RDF查询引擎。随后,人们提出了一些新的基于图的系统。特别是,gStore使用精心设计的索引VS*-tree来处理RDF查询。TurboHom++将RDF图转换成有标记图,并将子图同态方法应用于RDF查询处理。AMbER是一个基于图的RDF引擎,它将RDF数据和SPARQL查询表示为多图,并将查询求值任务转化为子图同态问题。
所有上述工作都可以总结为基于图的RDF查询评估(而不是应答)工作,因为它们忽略了称为蕴涵的RDF基本特性,该特性允许RDF图中建模隐式信息。考虑蕴涵是至关重要的,没有蕴涵可能会导致不完整的答案。例如,假设声明“Titanic has an actor LeonardoDiCaprio”没有在RDF数据中;然而,还是可以根据显示三元组<Titanic_Film,leadingRole,Leonardo_DiCap rio>和RDFS中“leadingRole belongs to thesubproperty of hasActor”的描述术语挖掘出三元组<Titanic_Film,hasActor,Leonardo_DiCaprio>。RDFS表示一种本体语言,可用于增强RDF图的描述。因此,RDF查询应答可以分为推理步骤和查询评估步骤。
在基于关系的方法中,有两个不同的推理步骤,即饱和与重构。基于饱和的查询应答使所有隐含信息都变得明确。基于重构的查询应答将查询重写为等价的大型连接查询联合集,并根据原始RDF数据设置它们的查询位置。饱和导致高效的查询评估,但它需要大量的计算时间、存储空间,并且必须在更新时重新计算;由于语法上的高度复杂性以及RDF和SPARQL语言之间微妙的相互作用,查询重构会对查询响应时间产生不利的影响。
发明内容
有鉴于此,本发明示例性实施例的目的在于提出一种基于图的高效SPARQL查询应答方法、装置和设备,以解决目前的SPARQL图查询存在缺陷的问题。
基于上述目的,本发明示例性实施例提供了一种基于图的高效SPARQL查询应答方法,包括:
将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;其中,RDF数据集为RDF数据的集合,RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值;有向标记图G=(UG,EG,∑G,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure GDA0003765404620000021
是连接主体和对象的一组有向边,ΣG是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到ΣG中的一个标签上;有向标记图包括文本顶点、实体顶点及变量顶点,合并有向标记图中的连接同一个类的实体顶点,以形成所述多级抽象图,所述多级抽象图为语义抽象图,其为是多级概念图;
构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;其中,辅助数据结构表示有向标记图模式中语义包含关系的一系列集合,有向标记图模式允许增强RDF图中的描述,辅助数据结构由四个集合组成SubPro(·)集合、SubClass(·)集合、Domain(·)集合及Range(·)集合,SubPro(·)集合为给定有向标记图模式中的边属性p,SubPro(p)是p的子属性集合,SubClass(·)集合为给定有向标记图模式中的类顶点t,SubClass(t)是t的子类顶点集合,Domain(·)集合为给定有向标记图模式中的类顶点t,Domain(t)是属于t的定义域的边属性集合,Range(·)集合为给定有向标记图模式中的类顶点t,Range(t)是属于t的范围的边属性集合;所述构造抽象图作为索引为在所述辅助数据结构的基础上,合并有向标记图中的连接同一个类的实体顶点,构造一个抽象图作为索引,在辅助数据结构构造过程中,需要获得相应的超类顶点来构造索引,超类顶点为当不存在其他类顶点t时,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点;
通过访问抽象图进行查询,并给出应答结果。
结合上述说明,在本发明实施例另一种可能的实施方式中,所述方法还包括:
对所述有向标记图中的实体顶点附近的邻居结构编码成一个比特串,并对候选顶点进行剪枝,进行多级修剪进行细化,以给出经过优化后的应答结果。
结合上述说明,在本发明实施例另一种可能的实施方式中,所述方法还包括:
通过按需饱和策略对所述应答结果是否完整进行检测,包括以下两个阶段:
对数据边所包含的子属性进行检查,以查看是否有任何子属性与查询边匹配;
对实体顶点是否与抽象图中的查询顶点类型匹配进行检查。
结合上述说明,在本发明实施例另一种可能的实施方式中,所述方法还包括:
通过邻域编码对每一查询边的边属性信息进行无效候选的剪除。
结合上述说明,在本发明实施例另一种可能的实施方式中,所述邻域编码包括:
将每一实体顶点描述为一个bit串,以作为顶点签名;
通过Bloom过滤器将RDF图中的每个顶点的相邻边属性和相应的相邻顶点属性编码成bit串。
结合上述说明,在本发明实施例另一种可能的实施方式中,所述方法还包括:
当RDF图更新时,通过边插入处理和边删除处理对所述抽象图进行增量维护。
第二方面,本发明示例性实施例还提供了一种基于图的高效SPARQL查询应答装置,包括:
抽象图构建模块,用于将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;其中,RDF数据集为RDF数据的集合,RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值;有向标记图G=(UG,EG,∑G,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure GDA0003765404620000041
是连接主体和对象的一组有向边,ΣG是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到ΣG中的一个标签上;有向标记图包括文本顶点、实体顶点及变量顶点,合并有向标记图中的连接同一个类的实体顶点,以形成所述多级抽象图,所述多级抽象图为语义抽象图,其为是多级概念图;
索引构建模块,用于构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;其中,辅助数据结构表示有向标记图模式中语义包含关系的一系列集合,有向标记图模式允许增强RDF图中的描述,辅助数据结构由四个集合组成SubPro(·)集合、SubClass(·)集合、Domain(·)集合及Range(·)集合,SubPro(·)集合为给定有向标记图模式中的边属性p,SubPro(p)是p的子属性集合,SubClass(·)集合为给定有向标记图模式中的类顶点t,SubClass(t)是t的子类顶点集合,Domain(·)集合为给定有向标记图模式中的类顶点t,Domain(t)是属于t的定义域的边属性集合,Range(·)集合为给定有向标记图模式中的类顶点t,Range(t)是属于t的范围的边属性集合;所述构造抽象图作为索引为在所述辅助数据结构的基础上,合并有向标记图中的连接同一个类的实体顶点,构造一个抽象图作为索引,在辅助数据结构构造过程中,需要获得相应的超类顶点来构造索引,超类顶点为当不存在其他类顶点t时,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点;
查询模块,用于通过访问抽象图进行查询,并给出应答结果。
上述的装置,所述装置还包括:
优化模块,用于对所述有向标记图中的实体顶点附近的邻居结构编码成一个比特串,并对候选顶点进行剪枝,进行多级修剪进行细化,以给出经过优化后的应答结果。
上述的装置,所述装置还包括:
过滤模块,用于通过按需饱和策略对所述应答结果是否完整进行检测,包括以下两个阶段:
对数据边所包含的子属性进行检查,以查看是否有任何子属性与查询边匹配;
对实体顶点是否与抽象图中的查询顶点类型匹配进行检查。
第三方面,本发明示例性实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的基于图的高效SPARQL查询应答方法。
从上面所述可以看出,本发明示例性实施例提供的基于图的高效SPARQL查询应答方法、装置和设备,在基于图的解决方案中加入重要的RDF推理特性,以提高SPARQL查询应答的准确率以及隐式应答回应率,包括:提出一种在线饱和策略,它只选择可能受查询影响的RDF片段;提供一个过滤器和验证框架来有效地计算给定查询的答案,该框架将RDF图中的等价实体顶点分组,形成语义抽象图作为索引,并根据索引进行多级剪枝计算匹配;语义抽象图和图饱和可以根据数据图的变化进行有效更新,从而使框架能够处理动态RDF图;本发明示例性实施例还提供了真实数据集和合成数据集的大量实验,验证了该方法的有效性。
附图说明
为了更清楚地说明本发明示例性实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明示例性实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明示例性实施例的有向关系图RDF示意图;
图2为本发明示例性实施例的方法基本流程示意图;
图3为本发明示例性实施例查询模式图说明示意图;
图4为本发明示例性实施例的方法解决框架示意图;
图5为本发明示例性实施例RDF图的概念图Gc示意图;
图6(a)为本发明示例性实施例RDF图的抽象图构造之一示意图;
图6(b)为本发明示例性实施例RDF图的抽象图构造之二示意图;
图7为本发明示例性实施例RDF图的顶点bit串示意图;
图8(1)为本发明示例性实施例RDF图的有向标记图性能评估之一示意图;
图8(2)为本发明示例性实施例RDF图的有向标记图性能评估之二示意图;
图8(3)为本发明示例性实施例RDF图的有向标记图性能评估之三示意图;
图9(1)为本发明示例性实施例RDF图的索引性能评估之一示意图;
图9(2)为本发明示例性实施例RDF图的索引性能评估之二示意图;
图9(3)为本发明示例性实施例RDF图的索引性能评估之三示意图;
图10为本发明示例性实施例RDF图的装置基本结构示意图;
图11为本发明示例性实施例RDF图的设备结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本发明示例性实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本发明示例性实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在发明示例性实施例中,确定了通过在现有的基于图的系统中添加推理机制来缩小语法复杂而带来不利的查询应答影响的缺陷。在概念上,在饱和与重构之间取得平衡,并使用按需饱和策略来处理蕴涵,即,不需要明确地显示RDF图中的所有隐式数据,因为大多数隐式信息与查询无关;相反,只选择与查询相关的RDF片段,然后相应地饱和它。基于该推理机制,提出了一个过滤验证框架,即GQARDF,用于计算给定查询的答案。
本发明示例性实施例中,将三元组的集合建模为有向标记图,其中图顶点表示主体和对象,而图的边用于表示关系谓词,如图1所示的RDF示例图,图中的英文仅作为示例进行说明,以其体现的关系为展示目的。为了查询RDF数据,W3C推荐了一种形式化语言,即SPARQL。例如,要检索获得美国奖的科幻电影中的演员,可以使用SPARQL定义查询:
Q1:Select?m Where{?m<won>?p.?n<has Actor>?m.?m<rdf:type>Actor.?p<rdf:type>America_Award.?n<type>Science_Fiction_Film.}
图2为本发明实施例一提供的方法基本流程图,本实施例可适用于数据查询情况,该方法可通过智能终端的中央控制模块进行处理,其具体包括如下步骤:
在步骤210中,将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;其中,RDF数据集为RDF数据的集合,RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值;有向标记图G=(UG,EGG,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure GDA0003765404620000071
是连接主体和对象的一组有向边,ΣG是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到ΣG中的一个标签上;有向标记图包括文本顶点、实体顶点及变量顶点,合并有向标记图中的连接同一个类的实体顶点,以形成所述多级抽象图,所述多级抽象图为语义抽象图,其为是多级概念图;
在步骤220中,构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;其中,辅助数据结构表示有向标记图模式中语义包含关系的一系列集合,有向标记图模式允许增强RDF图中的描述,辅助数据结构由四个集合组成SubPro(·)集合、SubClass(·)集合、Domain(·)集合及Range(·)集合,SubPro(·)集合为给定有向标记图模式中的边属性p,SubPro(p)是p的子属性集合,SubClass(·)集合为给定有向标记图模式中的类顶点t,SubClass(t)是t的子类顶点集合,Domain(·)集合为给定有向标记图模式中的类顶点t,Domain(t)是属于t的定义域的边属性集合,Range(·)集合为给定有向标记图模式中的类顶点t,Range(t)是属于t的范围的边属性集合;所述构造抽象图作为索引为在所述辅助数据结构的基础上,合并有向标记图中的连接同一个类的实体顶点,构造一个抽象图作为索引,在辅助数据结构构造过程中,需要获得相应的超类顶点来构造索引,超类顶点为当不存在其他类顶点t时,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点;
在步骤230中,通过访问抽象图进行查询,并给出应答结果。
具体地,上述步骤可包括:
RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值。在此只考虑格式良好的三元组,根据W3C RDF标准,实体和类都可以用IRIs(国际化资源标识符)表示。在这项工作中,需要区分“实体”和“文字”,以使其在具有相同的操作时有所区分。作为替代方案,RDF数据表示为RDF图,形式定义如下。
定义1(RDF图)。RDF图是有向标记图G=(UG,EG,∑G,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure GDA0003765404620000081
是连接主体和对象的一组有向边,ΣG是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到ΣG中的一个标签上。更准确地说,一个主体的顶点有一个与其IRI对应的标签,而一个对象的顶点可以有一个IRI或文字的标签。边的标签是其相应的属性。
定义2(RDF架构)。RDF Schema(RDFS,有向标记图模式)是RDF的一个有价值的特征,它允许增强RDF图中的描述。RDFS三元组在这些图中声明类和属性之间语义约束。
定义3(RDF蕴涵)。W3C将RDF蕴涵命名为一种机制,通过这种机制,可以基于一组显式三元组和一些蕴涵规则派生隐式RDF三元组。
以下步1为作为示例的实例级蕴涵,其中,Constraints为限制因素,Description为描述,Entaliment为显式三元组,Entailedtriples为隐式三元组。
表1:实例级蕴涵
Figure GDA0003765404620000091
本发明示例性实施例专注于RDFS机制的核心蕴涵。使用RDFS可以恢复大量的隐式信息,其中一部分可能是查询的答案。具体来说,表1列举了可能的RDFS约束和相应的蕴涵规则。前两列显示了允许的语义约束和表示它们的符号,其中domain和range分别表示每个边标签的第一个和第二个属性。最后两列显示了获取隐式的三元组的蕴涵规则。由于只查询实例级(隐式和显式)数据的巨大实际影响,因此将重点放在只回答实例级上的查询(参见表1)。
考虑SPARQL最基本的块构建,它由基本图模式(BGP)查询组成,基本图模式的说明见于图3。
定义4(BGP查询)。BGP可以被建模为一个有向标记的查询模式图Q=(VQ,EQ),其中VQ是主体和对象顶点的集合,它可以是IRIs、文本或变量,
Figure GDA0003765404620000092
Figure GDA0003765404620000093
是连接相应主体和对象的一组有向边,每一个都有一个文本或变量的边标签。图3显示了一个BGP查询,其中的圆表示变量顶点。
定义5(查询评估)。给定一个查询模式Q=(VQ,EQ),它有n个顶点{v1,…vn}。一组在图G中的n个顶点的集合{u1,…uh}被称为Q的匹配或嵌入,前提是当且仅当以下条件成立:
如果vi是一个文本顶点,vi和ui具有相同的文本值;
如果vi是实体顶点,vi和ui具有相同的IRI;
如果vi是变量顶点,则对ui没有约束;
如果存在带有属性p的边<vi,vj>∈EQ,则存在同样带有属性p的边<ui,uj>∈EG
定义6(查询应答)。查询应答是考虑蕴涵的查询评估。Q的答案由返回的查询变量绑定组成。
SPARQL的BGP查询应答问题是一个很大的挑战,它在很大程度上被现有的基于图的RDF数据管理工作所忽略。为此,本发明示例性实施例提出了一个新的过滤验证框架GQARDF。一般来说,本发明的方法包括两个阶段:离线构建索引和在线RDF查询应答(见图4的方法框架)。
关于离线索引构建,包括:
离线过程用于建立语义抽象图作为索引。首先,构造了一个辅助数据结构,即STP,它是表示RDFS中语义包含关系的一系列集合。然后,在STP的基础上,合并RDF图中的连接同一个类的实体顶点(等价类),构造一个抽象图作为索引。索引被预计算一次,并在G发生更改时动态维护。
在线查询处理,包括:
在线过程用于计算给定查询的答案。在接收到RDF查询Q时,框架通过访问抽象图,提取一个子图作为所有与Q相似的匹配结果的压缩表示。如果这样的子图是空的,框架将确定Q没有答案。此外,本发明的方法提出按需饱和策略来获得每个变量顶点的候选点,并进行子图匹配来计算答案。特别地,提出了一个新的编码模型,将顶点附近的邻居结构编码成一个比特串,并通过“Bloom过滤器”对候选顶点进行剪枝。
构建语义抽象图的过程包括如下:
提取语义关系:
为了构造抽象图,需要对G中的等价实体顶点进行分组和合并,其中两个实体顶点如果相邻于等价类顶点(即具有等价类型),则它们是等价的。为此,利用RDFS中的语义关系构造了一个辅助数据结构STP,使得给定一个类型顶点t和一个实体顶点u,就可以检查u是否具有类型t,STP由以下四个集合组成。
SubPro(·):给定RDFS中的边属性p,SubPro(p)是p的子属性集合;
SubClass(·):给定RDFS中的类顶点t,SubClass(t)是t的子类顶点集合;
Domain(·):给定RDFS中的类顶点t,Domain(t)是属于t的定义域的边属性集合;
Range(·):给定RDFS中的类顶点t,Range(t)是属于t的范围的边属性集合。
为了获得SubPro(·),提取了RDFS中所有具有“rdfs:subPropertyOf”边属性的三元组,例如<p1,rdfs:subPropertyOf,p2>。然后,提取顶点p1形成集合SubPro(p2)。其他三个集合可以类似方法来构建。注意,在STP构造过程中,需要获得相应的超类顶点来构造索引。
定义7(超类顶点)。如果不存在其他类顶点t,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点。
为了发现超类顶点,对RDFS中的每个类顶点t使用一个计数器num(,t)(初始值为0)来计算t被提取出来构造SubClass(·)的次数。例如,在处理带有“rdfs:subClassOf”边属性的RDFS三元组时,例如,<t1,rdfs:subClassOf,t2>,t1被提取以形集合SubClass(t2),设置num(t1)←num(t1)+1。直观地说,如果类顶点ts的计数为0(即num(ts)=0),则类顶点ts是超类顶点。SubClass(·)中的类顶点{t}按其顶点权重w(t)降序排列,其中
Figure GDA0003765404620000111
利用STP中的语义类约束集,构造语义抽象图作为索引,进一步降低了空间开销。
给定一个RDF图G=(U,E,L),一个概念图Gc=(Uc,Ec,Lc),概念图是一个忽略边标签的有向图。具体来说,(1)Uc是U的一个划分,每个Uc中的
Figure GDA0003765404620000112
是一组实体顶点集合;(2)每个
Figure GDA0003765404620000113
都有一个从STP超类顶点中获得的标签
Figure GDA0003765404620000114
使得对于任何
Figure GDA0003765404620000115
中的实体顶点u的类型tu,都是
Figure GDA0003765404620000116
的子集;(3)
Figure GDA0003765404620000117
是Ec中的一条边,当且仅当对于
Figure GDA0003765404620000118
(或者
Figure GDA0003765404620000119
)中的每一个实体顶点,在图G中都有一条边连接到
Figure GDA00037654046200001110
(或者
Figure GDA00037654046200001111
)。如果u没有类型,可以用STP导出u对应的类型。为了区分概念图的顶点与Q和G的顶点,把抽象图的顶点称为节点。这里,一个实体顶点u具有tu类型,表示有一个类型顶点tu与实体顶点u相连接。
图6显示了图1RDF图的概念图Gc。每个在Gc中的节点
Figure GDA00037654046200001112
表示一组类型属于
Figure GDA00037654046200001113
子类的实体顶点。在Film节点中,Inception_Film类型(例如Science_Fiction_Film)和Titanic_Film类型(例如Romantic_Movie)都属于SubClass(Film)。
定义8(语义抽象图)。语义抽象图是多级概念图,定义如下:
在第一级中,
Figure GDA00037654046200001114
表示使用超类顶点构造的初始概念图;
在第i级中(i≥2),
Figure GDA00037654046200001115
是一个由
Figure GDA00037654046200001116
构造而来的更详细的概念图,他将每个
Figure GDA00037654046200001117
节点划分成更小的分区,在这种情况下,(1)每个在
Figure GDA0003765404620000121
中的
Figure GDA0003765404620000122
都有一个标签类型
Figure GDA0003765404620000123
它是
Figure GDA0003765404620000124
的子类;(2)
Figure GDA0003765404620000125
是一条在
Figure GDA0003765404620000126
中的边,当且仅当对于
Figure GDA0003765404620000127
中的每一个实体顶点u1(或者
Figure GDA0003765404620000128
中的每一个实体顶点u2),都存在一个
Figure GDA0003765404620000129
中的实体顶点u2(
Figure GDA00037654046200001210
中的实体顶点u1)与之相连,即<u1,u2>(或者<u2,u1>)是图G中的一条边。
一个重要的问题是得到一个给定类顶点tu的子类顶点。可以根据STP中的SubClass(tu)获得tu的子类顶点集合
Figure GDA00037654046200001211
每个子类顶点都有一个权重
Figure GDA00037654046200001212
注意.
Figure GDA00037654046200001213
越接近tu
Figure GDA00037654046200001214
的值就越大。称
Figure GDA00037654046200001215
(1<i≤n)是tu的子类顶点集合,如果它们在SubClass(tu)中具有相同且最大的权重值。具体来说,如果子类
Figure GDA00037654046200001216
说tu的子类顶点为他本身。图6(b)描述了图1中RDF图的语义抽象图,它也是一个2级概念图。
实证研究表明,3级概念图对优化来说是足够的。因此,在实验中把概念图分为3级。
语义抽象图构造。在
Figure GDA00037654046200001217
中,首先构造节点集
Figure GDA00037654046200001218
作为G的顶点划分,
Figure GDA00037654046200001219
中的每个节点
Figure GDA00037654046200001220
包含的实体顶点类型
Figure GDA00037654046200001221
都属于SubClass(ts)。边集Ec1也相应地被构造。然后检查每个边
Figure GDA00037654046200001222
每个在
Figure GDA00037654046200001223
中的顶点u1(或者在
Figure GDA00037654046200001224
中的顶点u2)都有一个孩子顶点在
Figure GDA00037654046200001225
中(或者父顶点在
Figure GDA00037654046200001226
中)。如果没有,通过拆分和合并节点
Figure GDA00037654046200001227
(或者
Figure GDA00037654046200001228
)重构
Figure GDA00037654046200001229
使其满足条件。
Figure GDA00037654046200001230
将相应地使用新节点和边集进行更新。细化重构过程将一直重复,直到达到一个固定点。在
Figure GDA00037654046200001231
中,将
Figure GDA00037654046200001232
中使用的类顶点替换为相应的子类顶点,并采用相同的过程来构造
Figure GDA00037654046200001233
例如,在图6(a)中,节点Person和Film在
Figure GDA00037654046200001234
中分别被划分为一组节点集合{Actress,Actor,Director}和{Romatic_Movie,Seience_Fiction_Film}。由于Director中的实体顶点Christopher_Nolan在节点Romatic_Movie中没有邻居,因此将节点Director分割为两个节点,生成
Figure GDA00037654046200001235
(图6(b))作为二级概念图。
关于查询修剪和应答:
多级过滤:
为了检索最终的答案,需要为查询中的每个变量顶点获取候选点。不直接在RDF图上执行子图匹配,而是提取G的一个子图(通常很小),该子图包含基于抽象图的查询的所有匹配。
首先在
Figure GDA0003765404620000131
上搜索查询图。对于Q中的每个变量V,可以基于STP得到相应的超类ts。设cand(v)表示V的候选,v初始化为一组在
Figure GDA0003765404620000132
中标签为ts的节点。使用cand(v)和cand(v′)对每个查询边<v,v′>(v′不是类顶点)进行不动点计算。对于每个节点
Figure GDA0003765404620000133
检查是否存在位于cand(v′)中的节点
Figure GDA0003765404620000134
使得
Figure GDA0003765404620000135
中的边
Figure GDA0003765404620000136
具有与边<v,v′>相同的方向。如果没有,
Figure GDA0003765404620000137
(以及其中包含的所有数据顶点)不再是v的候选,将从cand(v)中移除。特别地,如果cand(v)为空,那么可以说查询Q在RDF图上没有答案。
多级修剪。由于语义抽象图是一个多级概念图,可以通过逐个浏览i(i≥2)级概念图来细化候选对象。例如,在2级概念图中,给定查询边<v,v′>,让tv和t′v分别表示v和v′的类型。对于每一个包含在
Figure GDA0003765404620000138
中的每个节点
Figure GDA0003765404620000139
如果(1)
Figure GDA00037654046200001310
(或
Figure GDA00037654046200001311
);(2)有一个包含在
Figure GDA00037654046200001312
中的
Figure GDA00037654046200001313
它与
Figure GDA00037654046200001314
相连,
Figure GDA00037654046200001315
Figure GDA00037654046200001316
(或
Figure GDA00037654046200001317
如果不是,则可以修剪除去
Figure GDA00037654046200001325
(及其中包含的所有实体顶点)。请注意,如果实体顶点v的类型tv等于
Figure GDA00037654046200001319
那么在较大等级的概念图中,将不再检验与v相邻的查询边。为了将v与其他查询顶点区分开,对每个查询顶点使用一个flag(初始化为false)并设置flag[V]=true。同样,可以通过浏览更大等级概念图来进一步细化候选集。
结合图6(b)中的语义抽象图和图2中的SPARQL查询图。在
Figure GDA00037654046200001320
中,初始化
Figure GDA00037654046200001321
经过检查,发现所有候选节点都满足边的约束并且不会被修剪。然后,在
Figure GDA00037654046200001322
中,根据
Figure GDA00037654046200001323
中使用的每个超类的子类来细化每个变量顶点的候选集。细化之后,
Figure GDA00037654046200001324
为了获得查询的完整答案,在本发明示例性实施例中,还提供了一种按需饱和策略,它包括两个阶段:边属性饱和和实体类型饱和。
关于边属性饱和:
边属性饱和用于检查数据边缘是否可以直接或通过蕴涵来匹配查询边缘的属性。也就是说,如果数据边与查询边具有不同的属性,将检查数据边所包含的子属性,以查看是否有任何子属性与查询边匹配。
为此,假设<v,v′>是顶点v的一个标签为pv的输出边。对于cand(v)中的每个候选实体顶点u,检查是否存在一个被标记为pu的与u相连的输出边<u,u′>,使得pu=pvorpu∈SubPro(pv)。如果不是,u将从cand(v)修剪除去。另外,如果pu∈SubPro(pv)且没有其他与u相邻的具有pv性质的输出边,将标记为pv,的输出边<u,u′>添加到u中。
关于实体类型饱和:
实体类型饱和用于检查实体顶点是否与查询图中的查询顶点类型匹配。
给定一个类型为tu的变量顶点v,lag[v]=false,,对于cand(v)中的每个实体顶点u,检查是否满足以下三个条件之一:(1)tu∈SubClass(tv),其中tu是u的类型;(2)存在一个标签为pu的与u相邻的输出边<u,u′>,pu∈Domain(tv);(3)存在一个标签为pu的与u相邻的输入边<u,u′>,p∈Range(tv)。如果不是,u将从cand(v)中剪除。
注意,在过滤过程中,本发明的方法忽略每个查询边的边属性信息。在这一部分中,使用邻域编码技术进一步剪除无效候选。
关于邻域编码:
邻域编码在RDF数据管理中被广泛应用,它将每个顶点描述为一个bit串,并称作顶点签名。选择通过Bloom过滤器将RDF图中的每个顶点的相邻边属性和相应的相邻顶点属性编码成bit串。
设标签为pu的<u,u′>为图G中的实体顶点u的相邻边,m为pu的bit串长度,n为u′的bit串长度。Bloom filter使用一组散列函数H将m位的bit串中的
Figure GDA0003765404620000141
位设置为“1”,并将n位的bit串中的
Figure GDA0003765404620000142
位也设置为“1”,其中
Figure GDA0003765404620000143
Figure GDA0003765404620000144
分别表示独立哈希函数的数目。u的bit串由Bit(u)表示,通过对其所有相邻边的bit串执行bitwise OR而形成。注意,给定一个变量顶点V,如果V的相邻顶点也是一个变量顶点,将该顶点bit串全部设置为“0”(与变量边相同)。只有当Bit(V)&Bit(u)=Bit(V)时,u才是V的候选点,其中“&”是bitwise AND运算符。
所述编码方法将顶点的bit串分为两部分:第一部分表示输出边属性信息,第二部分表示连接邻居的属性信息。这种方法不能充分利用邻域信息进行候选剪枝。在这方面,建议使用六个部分对顶点的邻域进行编码,如图7所示的顶点bit串。前两部分描述了输出边信息和连接顶点信息。在第三部分中,将每个边与对应的邻居绑定。最后三部分是关于输入边的信息,处理方式与输出边类似。为了避免编码方法中可能存在的“假丢弃”问题,按照前述方法设置每个部分的长度为100,并使用3个不同的哈希函数。
所述编码方法将顶点的bit串分为两部分:第一部分表示输出边属性信息,第二部分表示连接邻居的属性信息。这种方法不能充分利用邻域信息进行候选剪枝。在这方面,建议使用六个部分对顶点的邻域进行编码,如图7所示。前两部分描述了输出边信息和连接顶点信息。在第三部分中,将每个边与对应的邻居绑定。最后三部分是关于输入边的信息,处理方式与输出边类似。为了避免编码方法中可能存在的“假丢弃”问题,按照所述方法设置每个部分的长度为100,并使用3个不同的哈希函数。
然后,在接收到每个查询顶点的最终简略候选集后,进行子图同态计算以获得查询的答案。在这里,采用最新算法中提出的代价模型,例如CPI,来计算有效的匹配顺序,并相应地进行子图同态匹配。
关于更新时的索引维护:
每次更新RDF图时,不再重新计算语义抽象图和饱和度,而是采用增量维护策略。
边插入处理:考虑一个边<u,u′>插入到G中,对抽象图中的每一级都采取一种拆分-合并-传播的策略。在第一级中,首先在图
Figure GDA0003765404620000151
中识别分别包含u和u′的
Figure GDA0003765404620000152
Figure GDA0003765404620000153
然后,将u′从
Figure GDA0003765404620000154
中分离,并在
Figure GDA0003765404620000155
Figure GDA0003765404620000156
由于边插入而违反概念图的结构约束时,同样地拆分
Figure GDA0003765404620000157
接下来,检查
Figure GDA0003765404620000158
中分离的数据顶点是否能因为满足边的约束而合并到其他节点中。自因为更新的节点
Figure GDA0003765404620000159
(或者
Figure GDA00037654046200001510
)可能会传播到它的相邻节点,应该进一步以同样的方式检查
Figure GDA00037654046200001511
(或者
Figure GDA00037654046200001512
)的相邻节点,直到
Figure GDA00037654046200001513
中没有更新。同样,在更新
Figure GDA00037654046200001514
之后,按照相同的分割-合并-传播策略更新
Figure GDA00037654046200001515
边删除处理:考虑从G中删除的边<u,u′>,采取与边插入的更新过程类似的操作。为了节省空间而省略了,在此不再赘述。
关于更新时的饱和度维护:
为了有效地保持饱和度,一个重要的问题是跟踪一条边的多种蕴涵方式。当同时考虑隐式数据和更新时,这一点非常重要:对于给定的更新,必须确定它是否添加/删除了三元组属于饱和的一个原因。一个常见的方法是记录每个隐含三元组的推理路径,即导致该三元组处于饱和状态的所有推理规则序列。然而,这类理由的数量增长得非常快,因此这种做法不具可扩展性。相反,选择跟踪边被推理的原因。在子属性饱和中,当隐含边只被一个显式边蕴涵时,原因数记为1。在实体类型饱和中,对于cand(,v)中的每个数据顶点u,使用符号Type(u)来记录可能导致u与v具有相同类型的原因的数目。然后,对于给定的边插入(或者边删除),将判定这个添加(或者删除)是否是类型边属于饱和度的一个原因。当此计数达到0时,应删除隐含的类型边。
本发明示例性实施例提出的算法是用C++实现的,在Linux上运行,它具有两个Core Intel Xeon CPU 2.2Ghz和32GB主存储器。具体实现了三种算法:(1)算法,GQARDF;(2)TurboHom++,它扩展了已有的子图同态方法来处理SPARQL查询;(3)gStore,它用一个签名标记每个顶点,并逐个匹配数据顶点和模式顶点的签名。
本发明示例性实施例在真实的RDF和合成数据集上进行了实验(如表2所示)。对于查询求值,选择在Yago数据集上使用中的SPARQL BGP查询集,在LUBM数据集上使用中的SPARQL BGP查询集,每个查询集都有6个查询样式(Q1~Q6)。
表2:图数据集
Figure GDA0003765404620000161
将评估的按需饱和技术的有效性,该技术通过匹配结果的数量进行缩放。为了简单起见,使用
Figure GDA0003765404620000162
表示Yago数据图中的查询Qi,使用
Figure GDA0003765404620000163
表示LUBM数据图中的查询Qi。对两个数据集进行了实验,并展示了所有查询的结果,结论如下:
表3:匹配结果
Figure GDA0003765404620000164
Figure GDA0003765404620000171
表3显示了匹配结果的总数。毫无意外GQARDF对于几乎所有查询都获得了比gStore更完整的匹配结果。特别是在
Figure GDA0003765404620000172
Figure GDA0003765404620000173
中,如果使用gStore,则匹配结果的数量为0。这是因为在
Figure GDA0003765404620000174
中,边标签“placedIn”在原始RDF图中不存在,但是GQARDF使用约束isLocatedIn<sp placedIn来获取满足查询的蕴涵三元组。类似地,在
Figure GDA0003765404620000175
Figure GDA0003765404620000176
中,会产生一些在模式图中而不在RDF图中的边,并将边添加到RDF图中以获得更多的匹配结果。总的来说,比较验证了提出的按需饱和策略的有效性。
使用Yago和LUBM数据评估了GQARDF、gStore和TurboHom++的性能,并使用LUBM数据评估了它们的可伸缩性。在这些实验中,索引是预先计算的,因此不计算它们的构建时间。注意,gStore和TurboHom++不能处理SPARQL查询应答,因为它们忽略了称为蕴涵的基本RDF特性。因此,采用了重构的推理策略,并重写了gStore和TurboHom++中所使用的查询,以直接计算所有的答案。
查询应答时间。图8(1)和图8(2)分别显示了Yago和LUBM数据图上每个RDF查询图的查询应答时间。由于TurboHom++需要离线过程将RDF图转换为标记图,而gStore需要离线过程来构建VS*树索引,因此只考虑每个竞争对手的在线性能。GQARDF始终优于其竞争对手,这是因为的按需饱和策略可以避免重写查询的大量子图匹配计算。特别是,在Yago中,GQARDF优于TurboHom++11.28倍(见查询
Figure GDA0003765404620000177
),优于gStore 10.19倍(见查询
Figure GDA0003765404620000178
);在LUBM中,GQARDF优于TurboHom++5.89倍(见查询
Figure GDA0003765404620000179
),优于gStore 8.47倍(见查询
Figure GDA00037654046200001710
))。注意,在大多数情况下,gStore的性能最差,因为它以BFS顺序遍历RDF图,这将产生冗余的笛卡尔积。
可伸缩性评估。图8(3)显示了GQARDF与现有算法在可伸缩性方面的性能结果比较,使用了改变数据集大小的LUBM数据。在这里,将RDF图的大小固定为从12,237,135(LUBM10M)到32,457,671(LUBM 30M)。使用查询图
Figure GDA00037654046200001711
因为在这种情况下性能差距最大。它揭示了无论数据集大小如何,GQARDF始终优于其竞争对手。一般来说,可伸缩性表明GQARDF能够处理相当大的实际图,就像处理确定性图的现有算法一样。特别是GQARDF比TurboHom++的性能高12.75倍,比gStore高22.57倍。
利用合成数据集和真实数据集,接下来研究(1)GQARDF及其竞争对手的索引构建成本,包括时间成本和物理内存;(2)内存缩减率
Figure GDA0003765404620000181
其中|M1|和|M|分别是索引和数据图的物理内存成本;(3)过滤率
Figure GDA0003765404620000182
其中|Gsub|滤波阶段的诱导子图的平均大小,|G|是图G的大小,结果如下:
表4:索引的有效性
Figure GDA0003765404620000183
图9(1)和图9(2)分别显示了使用LUBM构建索引的空间成本和时间成本。由于TurboHom++不构造任何索引,因此只将GQARDF与gStore进行比较。看到,GQARDF无论在内存和时间上都始终优于竞争对手。此外,随着数据大小的增长,该方法的空间消耗和时间消耗呈非指数增长。具体来说,GQARDF在内存成本和时间成本方面分别优于gStore 11.24倍和40.31倍。
表4给出了使用Yago的索引的有效性。研究结果表明:(1)不管mr和fr,GQARDF都比gStore强;(2)语义抽象图比RDF图包含的节点和边要少得多,占用的物理内存不到它的一半;(3)使用语义抽象图可以有效地过滤搜索空间,即验证的Gsub大小仅为Yago的17%。
最后比较了GQARDF及其竞争对手在RDF图变化时的性能。使用Yago数据集并固定边插入|EI|=1,376,286。因为一次更新一条边对TurboHom++来说太慢了,所有查询都将超时(1小时)。因此,为它批量插入100K(=100×103)的边。图9(3)告诉,GQARDF的表现远远优于其竞争对手。特别地,GQARDF优于TurboHom++26.43倍,即使是在TurboHom++中批量的插入更新边。
将相关工作分为以下几类:
基于关系的RDF查询计算。基于关系的RDF存储使用关系模型存储RDF数据,并将SPARQL查询转换为关系代数表达式。SW-Store[16]使用面向列向量作为其底层存储,三元组按主题列排序存储。RDF-3X[1,17]和Hexastore[18]将RDF三元组模型为大型的三属性表结构,并为主语、谓语和宾语的每一个排列建立6个聚合的B+树作为索引。H-RDF-3X[19]是一个分布式RDF处理引擎,其中RDF-3X安装在每个集群节点中。
基于图的查询计算。基于图的存储使用图遍历方法,即子图同态和图索引。TurboHom++[4]通过将实体类型嵌入到顶点标签集中来提高查询性能,从而从查询图中消除相应的查询顶点/边。GRIN[20]使用图分区和距离信息来构造图查询的索引。gStore[5]使用签名标记每个顶点,并使用VS*-树索引匹配数据顶点和查询顶点的签名。Grass[21]利用星子图的指纹概念进行图形模式匹配,以剪除搜索空间。
查询应答。RDF查询应答需要考虑蕴涵,因为忽略蕴涵会导致答案不完整。3store[7]、Jena[22]、OWLIM[8]、Sesame[23]支持基于RDF蕴涵规则的饱和查询应答。Goasdoue等人的工作[24]扩展了上述研究以支持空白节点。[25]中的算法考虑了一些新的规则来重构关系连接查询。然而,以上的查询应答方法都是基于关系的,没有基于图的方法来实现高效的查询应答。
本发明研究了基于图的高效查询应答方法。设计了GQARDF来提供有效的支持。在此基础上,提出了一种按需饱和的策略,它只选择一个可能受查询影响的RDF片段进行饱和。此外,还设计了一个语义抽象图索引来发现候选顶点,不断减少了候选集搜索空间和所需时间。根据数据图的变化,可以有效地更新语义抽象图和图饱和度。最后,在实际数据集和基准数据集上进行的综合实验表明,GQARDF优于其可替代方案。
简而言之,本发明的方法有益效果包括如下:
将RDF图中的等价实体顶点进行分组,形成多级抽象图作为索引;
利用该索引,提出了一种过滤策略,该策略提取G的一个子图作为压缩表示的查询结果;
提出了一种新的编码方法来进一步细化每个查询顶点的候选集合,并进行子图匹配计算;
提供了在RDF图发生更改时能增量地维护索引和图饱和的技术,使框架能够处理动态数据图;
实验结果表明,本发明的技术明显优于目前最先进的RDF数据管理系统。
可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。
图10为本发明实施例提供的一种基于图的高效SPARQL查询应答装置装置的结构示意图,该装置可由软件和/或硬件实现,一般地集成于智能终端中,可通过基于图的高效SPARQL查询应答装置方法来实现。如图所示,本实施例可以以上述实施例为基础,提供了一种基于图的高效SPARQL查询应答装置装置,其主要包括了抽象图构建模块1010、索引构建模块1020和查询模块1030。
其中的抽象图构建模块1010,用于将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;其中,RDF数据集为RDF数据的集合,RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值;有向标记图G=(UG,EG,∑G,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure GDA0003765404620000201
是连接主体和对象的一组有向边,∑G是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到∑G中的一个标签上;有向标记图包括文本顶点、实体顶点及变量顶点,合并有向标记图中的连接同一个类的实体顶点,以形成所述多级抽象图,所述多级抽象图为语义抽象图,其为是多级概念图;
其中的索引构建模块1020,用于构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;其中,辅助数据结构表示有向标记图模式中语义包含关系的一系列集合,有向标记图模式允许增强RDF图中的描述,辅助数据结构由四个集合组成SubPro(·)集合、SubClass(·)集合、Domain(·)集合及Range(·)集合,SubPro(·)集合为给定有向标记图模式中的边属性p,SubPro(p)是p的子属性集合,SubClass(·)集合为给定有向标记图模式中的类顶点t,SubClass(t)是t的子类顶点集合,Domain(·)集合为给定有向标记图模式中的类顶点t,Domain(t)是属于t的定义域的边属性集合,Range(·)集合为给定有向标记图模式中的类顶点t,Range(t)是属于t的范围的边属性集合;所述构造抽象图作为索引为在所述辅助数据结构的基础上,合并有向标记图中的连接同一个类的实体顶点,构造一个抽象图作为索引,在辅助数据结构构造过程中,需要获得相应的超类顶点来构造索引,超类顶点为当不存在其他类顶点t时,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点;
其中的查询模块1030,用于通过访问抽象图进行查询,并给出应答结果。
本发明示例性实施例的一种实施方式中,所述装置还包括:
优化模块,用于对所述有向标记图中的实体顶点附近的邻居结构编码成一个比特串,并对候选顶点进行剪枝,进行多级修剪进行细化,以给出经过优化后的应答结果。
本发明示例性实施例的一种实施方式中,所述装置还包括:
过滤模块,用于通过按需饱和策略对所述应答结果是否完整进行检测,包括以下两个阶段:
对数据边所包含的子属性进行检查,以查看是否有任何子属性与查询边匹配;
对实体顶点是否与抽象图中的查询顶点类型匹配进行检查。
上述实施例中提供的基于图的高效SPARQL查询应答装置可执行本发明中任意实施例中所提供的基于图的高效SPARQL查询应答方法,具备执行该方法相应的功能模块和有益效果,未在上述实施例中详细描述的技术细节,可参见本发明任意实施例中所提供的基于图的高效SPARQL查询应答方法。
需要说明的是,本发明示例性实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本发明示例性实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明示例性实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图11示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行本发明实施例的方法。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序及程序本身的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息,以用于执行本发明实施例的上述技术方案。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明示例性实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明示例性实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明示例性实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明示例性实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明示例性实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明示例性实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明示例性实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种基于图的高效SPARQL查询应答方法,其特征在于,包括:
将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;其中,RDF数据集为RDF数据的集合,RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值;有向标记图G=(UG,EG,∑G,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure FDA0003765404610000011
是连接主体和对象的一组有向边,ΣG是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到ΣG中的一个标签上;有向标记图包括文本顶点、实体顶点及变量顶点,合并有向标记图中的连接同一个类的实体顶点,以形成所述多级抽象图,所述多级抽象图为语义抽象图,其为是多级概念图;
构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;其中,辅助数据结构表示有向标记图模式中语义包含关系的一系列集合,有向标记图模式允许增强RDF图中的描述,辅助数据结构由四个集合组成SubPro(·)集合、SubClass(·)集合、Domain(·)集合及Range(·)集合,SubPro(·)集合为给定有向标记图模式中的边属性p,SubPro(p)是p的子属性集合,SubClass(·)集合为给定有向标记图模式中的类顶点t,SubClass(t)是t的子类顶点集合,Domain(·)集合为给定有向标记图模式中的类顶点t,Domain(t)是属于t的定义域的边属性集合,Range(·)集合为给定有向标记图模式中的类顶点t,Range(t)是属于t的范围的边属性集合;所述构造抽象图作为索引为在所述辅助数据结构的基础上,合并有向标记图中的连接同一个类的实体顶点,构造一个抽象图作为索引,在辅助数据结构构造过程中,需要获得相应的超类顶点来构造索引,超类顶点为当不存在其他类顶点t时,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点;
通过访问抽象图进行查询,并给出应答结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述有向标记图中的实体顶点附近的邻居结构编码成一个比特串,并对候选顶点进行剪枝,进行多级修剪进行细化,以给出经过优化后的应答结果。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过按需饱和策略对所述应答结果是否完整进行检测,包括以下两个阶段:
对数据边所包含的子属性进行检查,以查看是否有任何子属性与查询边匹配;
对实体顶点是否与抽象图中的查询顶点类型匹配进行检查。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过邻域编码对每一查询边的边属性信息进行无效候选的剪除。
5.根据权利要求4所述的方法,其特征在于,所述邻域编码包括:
将每一实体顶点描述为一个bit串,以作为顶点签名;
通过Bloom过滤器将RDF图中的每个顶点的相邻边属性和相应的相邻顶点属性编码成bit串。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当RDF图更新时,通过边插入处理和边删除处理对所述抽象图进行增量维护。
7.一种基于图的高效SPARQL查询应答装置,其特征在于,包括:
抽象图构建模块,用于将RDF数据集的三元组建模为有向标记图,对有向标记图的实体顶点进行分组和合并,形成多级抽象图,其中三元组中的对象和主体为所述有向标记图的实体顶点;其中,RDF数据集为RDF数据的集合,RDF数据是<s,p,o>形式的三元组,其中s是实体或类,p表示一个与实体或类关联的属性,o是实体、类或文本值;有向标记图G=(UG,EG,∑G,LG),其中UG是与RDF数据中的所有主体和对象相对应的一组顶点,
Figure FDA0003765404610000021
是连接主体和对象的一组有向边,ΣG是顶点和边的一组有限标签集合,标签函数LG将每个顶点或边映射到ΣG中的一个标签上;有向标记图包括文本顶点、实体顶点及变量顶点,合并有向标记图中的连接同一个类的实体顶点,以形成所述多级抽象图,所述多级抽象图为语义抽象图,其为是多级概念图;
索引构建模块,用于构建辅助数据结构,结合所述有向标记图中连接同一类的实体顶点,构造抽象图作为索引,所述辅助数据结构包括有向标记图模式中语义包含关系的集合,所述有向标记图模式用于描述所述有向标记图的特征;其中,辅助数据结构表示有向标记图模式中语义包含关系的一系列集合,有向标记图模式允许增强RDF图中的描述,辅助数据结构由四个集合组成SubPro(·)集合、SubClass(·)集合、Domain(·)集合及Range(·)集合,SubPro(·)集合为给定有向标记图模式中的边属性p,SubPro(p)是p的子属性集合,SubClass(·)集合为给定有向标记图模式中的类顶点t,SubClass(t)是t的子类顶点集合,Domain(·)集合为给定有向标记图模式中的类顶点t,Domain(t)是属于t的定义域的边属性集合,Range(·)集合为给定有向标记图模式中的类顶点t,Range(t)是属于t的范围的边属性集合;所述构造抽象图作为索引为在所述辅助数据结构的基础上,合并有向标记图中的连接同一个类的实体顶点,构造一个抽象图作为索引,在辅助数据结构构造过程中,需要获得相应的超类顶点来构造索引,超类顶点为当不存在其他类顶点t时,使得类顶点ts∈SubClass(t),则称类顶点ts为超类顶点;
查询模块,用于通过访问抽象图进行查询,并给出应答结果。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
优化模块,用于对所述有向标记图中的实体顶点附近的邻居结构编码成一个比特串,并对候选顶点进行剪枝,进行多级修剪进行细化,以给出经过优化后的应答结果。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
过滤模块,用于通过按需饱和策略对所述应答结果是否完整进行检测,包括以下两个阶段:
对数据边所包含的子属性进行检查,以查看是否有任何子属性与查询边匹配;
对实体顶点是否与抽象图中的查询顶点类型匹配进行检查。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任意一项所述的基于图的高效SPARQL查询应答方法。
CN202011471406.XA 2020-12-15 2020-12-15 基于图的高效sparql查询应答方法、装置和设备 Active CN113220820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011471406.XA CN113220820B (zh) 2020-12-15 2020-12-15 基于图的高效sparql查询应答方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011471406.XA CN113220820B (zh) 2020-12-15 2020-12-15 基于图的高效sparql查询应答方法、装置和设备

Publications (2)

Publication Number Publication Date
CN113220820A CN113220820A (zh) 2021-08-06
CN113220820B true CN113220820B (zh) 2022-09-16

Family

ID=77085836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011471406.XA Active CN113220820B (zh) 2020-12-15 2020-12-15 基于图的高效sparql查询应答方法、装置和设备

Country Status (1)

Country Link
CN (1) CN113220820B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528444B (zh) * 2022-02-25 2023-02-03 北京百度网讯科技有限公司 图数据处理方法、装置、电子设备和存储介质
CN116304213B (zh) * 2023-03-20 2024-03-19 中国地质大学(武汉) 基于图神经网络的rdf图数据库子图匹配查询优化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992608A (zh) * 2017-12-15 2018-05-04 南开大学 一种基于关键字上下文的sparql查询语句自动生成方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8983990B2 (en) * 2010-08-17 2015-03-17 International Business Machines Corporation Enforcing query policies over resource description framework data
WO2014074957A1 (en) * 2012-11-08 2014-05-15 Sparkledb As Systems and methods involving resource description framework distributed data base managenent systems and/or related aspects
CN103049555B (zh) * 2012-12-30 2016-03-02 中国人民解放军国防科学技术大学 保证语义正确性的动态分层集成数据访问方法
US9576073B2 (en) * 2014-06-02 2017-02-21 Microsoft Technology Licensing, Llc Distance queries on massive networks
CN111309979B (zh) * 2020-02-27 2022-08-05 桂林电子科技大学 一种基于邻居向量的RDF Top-k查询方法
CN111510454B (zh) * 2020-04-15 2022-03-15 中国人民解放军国防科技大学 一种面向模式图变化的连续子图匹配方法、系统及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992608A (zh) * 2017-12-15 2018-05-04 南开大学 一种基于关键字上下文的sparql查询语句自动生成方法

Also Published As

Publication number Publication date
CN113220820A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
Liu et al. MMKG: multi-modal knowledge graphs
Ristoski et al. Semantic Web in data mining and knowledge discovery: A comprehensive survey
CN110727839B (zh) 自然语言查询的语义解析
Ren et al. Multi-query optimization for subgraph isomorphism search
CN111159223A (zh) 一种基于结构化嵌入的交互式代码搜索方法及装置
US20140143280A1 (en) Scalable Summarization of Data Graphs
CN107291895B (zh) 一种快速的层次化文档查询方法
CN106528648B (zh) 结合Redis内存数据库的分布式RDF关键词近似搜索方法
CN113220820B (zh) 基于图的高效sparql查询应答方法、装置和设备
Wang et al. A unified approach to matching semantic data on the Web
Wang et al. Efficient computation of g-skyline groups
CN111444220A (zh) 规则驱动和数据驱动相结合的跨平台sql查询优化方法
Niu et al. Scaling inference for markov logic via dual decomposition
US8140546B2 (en) Computer system for performing aggregation of tree-structured data, and method and computer program product therefor
Wang et al. Top-k queries on RDF graphs
KR101467707B1 (ko) 지식 베이스의 개체 매칭 방법 및 이를 위한 장치
Djenouri et al. An ontology matching approach for semantic modeling: A case study in smart cities
Koide et al. Enhanced indexing and querying of trajectories in road networks via string algorithms
Wang et al. gst-store: querying large spatiotemporal RDF graphs
CN107818125B (zh) 通过simd处理器寄存器对数据进行迭代评估
Zhao et al. Graph-based ontology analysis in the linked open data
Albahli et al. ohStore: Ontology hierarchy solution to improve RDF data management
Slavov et al. Fast processing of SPARQL queries on RDF quadruples
Su et al. Efficient subhypergraph matching based on hyperedge features
Xia et al. On the substructure countability of graph neural networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant