CN103488673B - 用于执行调和处理的方法、控制器及数据存储系统 - Google Patents
用于执行调和处理的方法、控制器及数据存储系统 Download PDFInfo
- Publication number
- CN103488673B CN103488673B CN201310231665.9A CN201310231665A CN103488673B CN 103488673 B CN103488673 B CN 103488673B CN 201310231665 A CN201310231665 A CN 201310231665A CN 103488673 B CN103488673 B CN 103488673B
- Authority
- CN
- China
- Prior art keywords
- node
- reconciliation process
- data
- tlv triple
- resource
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Abstract
一种用于执行在数据图中被表示为节点的资源的调和的方法以及数据存储系统,该方法包括:选择图的节点的、待针对其执行与特定节点的调和处理的初始子集,其中,选择初始子集包括:确定所述节点中的哪些节点在图遍历操作中具有最高被读取访问次数,并将这些节点作为被最多访问的节点包括在初始子集中;执行该特定节点与节点的初始子集中的每个节点之间的调和处理;以及延迟该特定节点与图的节点的、待针对其执行与该特定节点的调和的另外子集之间的调和处理。
Description
技术领域
本发明涉及数据存储和相关联的处理的领域。具体地,本发明的实施方式涉及数据集的图形表示中的资源的调和处理的执行。该调和处理意在对图中的在语义上对应的资源之间的异构性进行调和。
背景技术
大量的可用图数据为不仅能够显示统计趋势而且能够揭示隐含模式并提炼数据中的知识的自动化或半自动化分析创造了潜能。形式语义在自动化的计算密集型任务中发挥着重要作用。尽管关于如何最好地捕获语义存在长期的战役,但是仍广泛认为图形表示或类图形表示是模拟人类如何感知世界(如具有实体以及实体之间的关系的本体)的最佳工具。
图数据库因此提供了如下优点:自然地表示可以存储大量结构化和非结构化数据的基于“语义网络”的知识表示。
图数据库是如下一种数据表示:其采用节点和边(或弧)来表示实体以及采用节点之间的弧来表示这些实体之间的关系。图数据库被应用于各种不同的应用中,该各种不同的应用总体上可以被分组成两个主要种类。第一类包括具有概念描述的大集合的、复杂的基于知识的系统(被称为“基于知识的应用”),例如智能决策支持和自学习。第二类包括涉及对事务性数据执行图分析的应用(被称为“事务性数据应用”),例如社交数据和商业智能。
格式化图数据库的核心处是资源描述框架,RDF,一种提供数据的语义标记的简单的基于图的数据建模语言。使用RDF,数据孤岛可以开始被拼接在一起并且将当前群岛数据景观转换为被连接的数据图,基于该被连接的数据图,可以构造复杂的数据分析和商业智能应用。
数据集通常可能是高度异构性的且分布式的。这样的数据的分散性质导致通常众多数据资源使用不同的参考符号来表示同一真实世界对象的问题。朝向有效利用可用的图数据的必要且重要的步骤是:标识并调和多种参考符号,以用于语义一致性。下文中,术语“调和(reconciliation)”用于指示通过标识和定义在语义上彼此对应的资源之间的等价性链接来调和资源(如数据图中的节点,例如,如RDF三元组(triple)的主语或宾语)之间的异构性的过程。从而,“调和处理”是指为了实现调和而由处理器对算法和指令的执行。
数据调和的重要性是明显的。数据调和确保当异构的数据集被链接(导致数据的语义多样化)时的数据完整性。否则不能执行有意义的分析。同时,等价性允许应用能够彼此对准。应用之间的通信因而可以被自动化并委托给计算机。
发明内容
本发明的实施方式提供了一种用于执行在数据图中被表示为节点的资源的调和的方法,该方法包括:选择所述图的节点的、待针对其执行与特定节点的调和处理的初始子集,其中,选择所述初始子集包括:确定所述节点中的哪些节点在图遍历操作中具有最高被读取访问次数,并将这些节点作为被最多访问的节点包括在所述初始子集中;执行所述特定节点与节点的所述初始子集中的每个节点之间的调和处理;延迟所述特定节点与所述图的节点的、待针对其执行与所述特定节点的调和的另外子集之间的调和处理。
可以在创建图期间或创建图之后创建等价性链接。在现有的调和处理中,针对整个数据集来(在单个例程中)同时执行找寻等价性链接的处理。如果考虑大量数据(数十亿节点的规模),则这可能是效率低下的重要来源。调和是一种复杂、冗长以及耗时的过程,并且通常是昂贵的。调和算法通常执行相当耗时的计算密集型操作。这对真实复杂任务的实用性提出了挑战,并且对最佳地迎合数据需求以获得最大性能和可缩放性的计算结构的有效利用提出了挑战。可用的数据量正在逐渐增长,并且因此常常无法通过现有的方法和工具来管理待调和的可用数据量。为了能够调和大量数据,期望高度重视可缩放性问题。
图中的数据可以被称为“被连接的数据”、“图数据”、“被链接的数据”或“相关数据”以及所有意在将图的概念结构反映为由弧互连的多个节点的其它短语。在某些实施中,图中的数据可以是如在其被设置为“开放式的被链接的数据(LOD)”倡议的一部分的数据中那样的“被链接的数据”,但是本发明的实施方式并不限于这样的实施,而且术语“被链接的数据”可以被更广义地解释,而不是仅被解释为被设置作为LOD倡议的一部分的数据。
通过提供一种执行调和处理但调和处理不是必须全部在单个例程中执行的方法,能够实现可缩放性。也就是说,一些调和处理可以基于向图中添加新节点或添加具有作为主语的节点的新数据项(例如三元组)来执行,但是不必须执行与图中的节点的整个集合的调和处理,而是仅针对子集来执行。初始子集的大小不是必需随着图的大小增加而增加,因此初始调和处理所需要的处理不随着图的增长而变得不可行。
另外,通过降低在一个道次或一个例程中针对整个图来执行调和处理的需要,可以减轻由对新节点进行调和处理所引起的瓶颈。这从整体上改进了系统的特性,并且还使得系统操作者能够趋向于更加复杂并从而潜在地更加有效的调和算法,而无需担心对系统特性的不利影响。
资源的调和可以是如下过程:通过标识和产生在语义上彼此对应的资源(由图中的节点表示)之间的等价性链接来调和图中的资源之间的异构性。例如,在具有不同名称的两个资源指代同一个真实世界对象(即,这两个资源是在语义上等价的/在含义上等价的)的情况下,向图中添加链接以表示这两个资源是等价的将是适当的。资源调和可以包括:标识在资源(图节点是资源)之间何处存在等价性;以及向图中添加等价性的指示。多个资源的标识或同一真实世界实体的表示还被称为本体映射、本体匹配或本体对准。
资源可以是通过URI可去参考的网络资源,并且可以是正由图中的数据描述的实体的表示(描述)。特定实体可以由一个或多个资源来表示。
延迟调和处理可以包括:停止执行对资源之间的语义等价性进行标识的处理以及向图中添加链接以表示这些语义等价性的处理;然后,在恢复所述处理之前,等待预定触发事件组中的一个触发事件,或者等待由任务调度器响应于系统中的计算资源的状态(例如使用量/工作负荷)而作出的决定。
在本发明的实施方式中,选择初始子集可以包括:确定所述节点中的哪些节点在图遍历操作中具有最高被读取访问次数,并将这些节点作为被最多访问的节点包括在初始子集中。
初始子集的大小可以由系统管理者控制,或者可以是预设的,并且可以例如是在图中的设定数量的节点或设定比例的节点。图遍历操作可以包括以特定方式访问/读取图节点,最终可以访问所有节点,其中这种访问方法会影响遍历算法的效率。有利地,通过在初始子集中选择被最多访问的节点,完成在特定节点与这些最可能被查询的节点之间的调和处理。因此,很可能是作为对图的查询的一部分而被读取的节点已执行了与图中的其它节点的调和处理。
此外,选择初始子集还可以包括:确定所述节点中的哪些节点具有最高被读取访问概率,作为在图遍历操作中所述被最多访问的节点之一之后的下一个节点。
有利地,在该特定方法中,还使用与被最多访问的节点的共现性(co-occurrence)作为选择初始子集的基础。这扩展了当查询时将会已与高比重的其它节点执行了调和处理的节点的范围,并且该扩展以赞同对节点进行读取访问的机制的方式来被引导。通过使用共现性关联原则来标识在图遍历操作中的被最多访问的节点之一之后的最可能被访问的这些节点,针对被最多访问的节点执行的调和处理还可以针对作为初始子集的一部分的已标识的节点来执行(传播)。
在替代的实施中,可以将作为在图遍历操作中的被最多访问的节点之一之后的下一个节点的具有最高被读取访问概率的节点标识为针对其延迟调和处理的另外子集。例如,另外的子集每个可以与作为在图遍历操作中的被最多访问的节点之一之后的下一个节点的被读取访问节点的概率范围相关联,所述节点可以取决于所述概率被分配给另外的子集。
在已确定在一个或另一个时间每个节点必须具有在自身与每个其它节点之间执行的调和处理的实施中,节点的另外子集是在图中的不属于初始子集的成员的所有节点。然而,节点的所述另外子集可以不必一定全部在单个例程中在其自身与特定节点之间执行了调和,而是所述另外子集可以被分成其它的另外子集,在针对每个其它的另外子集的调和处理之间存在延迟。
期望的是在每个节点与其它节点中的每一个之间执行调和处理,这是因为其允许利用或分析图中的数据的若干个应用彼此对准并且有利于所述应用之间的通信。例如,数据采集机可以遵循由调和处理产生的等价性链接以通过潜在的无穷的网络数据来导航。
可选地,节点的另外子集的调和处理可以被延迟并且在当计算资源的监视表明计算资源不然将空闲时的时隙内被执行。
可以仅在系统空闲时间执行调和处理。可选地,可以在由图中的事件确定的时间(例如在向图插入新数据项(例如RDF三元组)时)来执行特定节点与初始子集的调和处理,并且另外的子集与特定节点之间的调和处理被延迟至直到系统空闲时间。在此使用的系统空闲时间被用作如下操作状态的范围的方便表示:在所述操作状态下,有能力处理由调和处理在负责所述调和处理的资源处所施加的额外的处理负担。例如,当在处理器中没有其它未决任务时,可以由处理器执行另外子集的调和处理。这样的决定可以由集中式工作负荷调度器(具有调和处理控制模块的功能)来作出,或由处理器本身在本地作出。也就是说,可以取决于负责执行所述处理的计算资源的操作状态,来作出何时执行特定节点与另外子集的节点之间的调和处理的决定。
实施本发明的方法还可以包括:将特定节点的标识添加到列表;在列表中保持特定节点的标识直到已执行了与图的节点的另外子集的处理为止,此时,将特定节点的标识从列表中去除;并且当接收到标识一个或多个待被读取的节点的对图的查询时,检查所述一个或多个待被读取的节点中的哪些节点被标识在列表上,并且,针对所述一个或多个待被读取的节点中的被标识在列表上的每个节点,执行与图的每个节点的调和处理。
这样的列表可以由具有调和控制器(例如调和处理控制模块)或系统控制器的功能的实体来集中保持。替代地,所述列表可以在分布式结构内实现,通过分布式系统中的多于一个的节点彼此配合工作来实现。在一些实施中,期望的是,针对特定节点的调和处理在其作为对查询的响应的一部分被返回之前或在作为对查询的响应的一部分被读取之前完成。有利地,保持仍未被执行完整调和处理(即与图中的每个其它节点的调和处理)的这些节点的列表使得需要在返回对查询的响应之前被执行的调和处理能够被容易地标识。节点的在列表上的标识可以是例如名称或URI。特定节点的标识可以保持在列表上,直到与节点的另外子集中的调和处理已开始或完成(取决于实施)为止。
另外地或替代地,针对图中的不包括在与其执行调和处理的初始子集中的每个节点,实施本发明的方法可以包括:将特定节点的标识以关联元数据的形式添加到未被调和的节点的列表中,并在所述列表中保持所述标识直到执行了与特定节点的调和处理为止,此时,将特定节点的标识从所述列表中去除;当接收到标识一个或多个待被读取的节点的对图的查询时,针对每个待被读取的节点,执行所述节点与以关联元数据的形式标识在未被调和的节点列表中的每个节点之间的调和处理。
存在如下实施:其中每个节点均具有关联元数据,该关联元数据可以被存储在节点处或可以被存储在从所述节点所链接至的位置或能够基于节点的标识定位到的位置。每个节点具有其自身的单独的关联元数据。所述元数据可以包括已与节点的初始子集进行了调和(与初始子集的节点执行了调和处理)但仍未与所讨论的节点进行调和的节点的列表。有利地,这使得能够将与另外子集的节点的调和处理控制成基于在节点处可用的信息或可从节点直接得到的信息而局部执行。
尽管在本发明的实施方式中并非必要,但实施可以包括其中图被存储在计算资源的分布式网络中的系统。该计算资源的分布式网络(存储节点)可以包括由相互通信的多于一个的不同存储单元构成的系统。示例性通信范例是对等(P2P)网络,因此计算资源的分布式网络可以是存储节点的对等网络。P2P是在对等体之间划分任务或工作负荷的分布式结构。对等体(个体存储节点或处理)是在应用中具有同样权限的对等参与者。每个对等体被配置成使得自身的资源的一部分(例如处理能力、磁盘存储器或网络带宽)能够被其它网络参与者直接获得,而不需要由服务器或固定主机进行集中协作。与其中服务器进行提供而客户端进行消费的传统的客户端-服务器模型不同,对等体既可以被视为资源的供应者又可以被视为资源的消费者。有利地,P2P系统可以以对数通信成本来保持交换消息的大的存储节点组。
关于执行两个节点之间的调和的实际处理,在本发明的实施方式中,特定节点与另外的节点的调和处理可以包括:通过对由执行多个不同的相似度计算产生的值进行合计来获得相似度值,或者获得由执行相似度计算产生的单个值,其中,相似度计算是生成表示特定节点与另一个节点在语义上等价的似然度的值;如果相似度值超过预定的相似度阈值,则向图添加表示特定节点与另一个节点之间的等价性关系的等价性链接。
有利地,本发明的实施方式降低了对一次性或在单个例程中针对特定节点执行所有调和处理的需要。借助于在本发明的实施方式中采用的进行调和处理的递增法的增加的灵活性,在调和处理时可以采用更加健壮的算法或算法组而不会对整体系统性能造成不利影响。为此,本发明的实施方式可以运行每个算法给出相似度值的多个算法,或运行给出相似度值的单个健壮的算法,并且对所述值进行合计以获得用于与阈值进行比较的整体相似度值。可以是如下情况:关于两个节点是否语义等价,每个算法(或相似度计算)给出是/否(1/0),阈值是在执行相似度计算的总数中“是”结果所需占的比例。替代地,可以使用许多相似度计算的加权平均来获得相似度值。
取决于实施本发明的实施方式的方式,可以在计算资源的分布式网络中的多于一个的计算资源上同时执行特定节点与存储在该计算资源上的如下节点之间的调和处理:所述节点属于正针对其执行与所述特定节点的调和处理的节点子集。
分布式存储系统(例如被采用以存储数据图的分布式存储系统)根据其性质对数据进行分段。有利地,本发明的实施方式可以通过针对特定节点执行并行调和来利用该分段,所述并行调和是通过在特定节点与存储在该计算资源上的图节点之间、在用于存储节点的每个计算资源处执行调和处理来执行的。可以对数据执行一些正交分段,以使得:每个计算资源在一个例程中不执行特定节点与存储在该计算资源中的每个节点之间的调和处理,而是例如基于在图遍历操作中节点被访问的频繁度来将节点分裂。所述正交分段提供了在并行处理实施中的进一步的灵活性。可以集中执行特定节点与初始子集之间的调和处理,然后执行特定节点与另外子集之间的调和处理,并且还可以进行局部调度。
本发明的实施方式可以通过存储以每个节点为基础作为元数据存储的某些统计数据/值/属性/参数/测量结果来增强或提供其功能性。本发明的实施方式可以包括:针对每个节点,作为关联元数据,存储表示所述节点在图遍历操作中被进行读取访问的次数的值以及表示在所述图中与所述节点链接的每个节点在图遍历操作中作为下一个节点被读取的次数的值。
在本发明的实施方式中,通过节点和边的图来表示知识、事实和/或陈述,其中节点是所描述或表示的实体,边是这些实体之间的关系。本发明的实施方式可以被配置成将图数据直接存储为节点和边。然而,还可以采用一些其它基础数据结构。
作为示例性基础数据存储结构,图中的数据可以被编码为每个包括主语、谓语和宾语的三元组,并且图中的节点是三元组的主语和宾语,三元组的谓语表示三元组的主语与宾语之间的链接。
可选地,三元组可以是资源描述框架(RDF)三元组。贯穿本说明书,应当理解:在对“RDF三元组”进行具体引用的地方,RDF三元组是符合RDF标准的三元组的示例性形式。另外,对“三元组”的引用包括所提及的三元组可能是RDF三元组。相似地,在本说明书的其它地方讨论的RDF处理器是用于在API封装与存储的数据项之间的交互的处理器的示例。
资源描述框架是一种用于对作为用于语义网络的标准的信息进行概念描述或建模的通用方法。对语义网络的信息的建模进行标准化允许对共同语义网络上进行操作的应用之间的互操作性。通过将RDF Schema(RDFS)提供为用于描述RDF中词汇表的语言,RDF保持具有明确的形式语义的词汇表。
可选地,三元组中的一个或多个元素(元素是谓语、宾语或主语)中的每个是统一资源标识符(URI)。RDF和其它三元组格式以以下设想为前提:使用网络标识符例如URI来标识事物(即对象、资源或实例)以及使用简单的属性和属性值来描述所标识的“事物”。就所述三元组而言,在其网络资源具体体现中,主语可以是对描述实体的网络资源进行标识的URI,谓语可以是标识属性(例如颜色)的类型的URI,宾语可以是指定归属于所讨论的实体的属性类型的特定实例的URI。使用URI使得三元组能够将简单的陈述、涉及的资源表示为图中的节点和弧,所述节点和弧表示资源以及其相应的属性和值。可以使用SPARQL协议和RDF查询语言(SPARQL)来查询RDF图。由万维网联盟的RDF数据访问工作小组(DAWG)标准化SPARQL,SPARQL被认为是关键的语义网络技术。SPARQL允许查询包括三元组模式、逻辑乘法、逻辑加法以及可选模式。
三元组通过将图数据表征为多个主语-谓语-宾语的表达来提供对图数据的编码。在上下文中,主语和宾语是图数据的图节点,例如是实体、对象、实例或概念,谓语是对主语和宾语之间的关系的表示。谓语通过提供至宾语的规定类型的链接来声明关于主语的某事。例如,主语可以表示万维网资源(例如通过URI),谓语表示资源的特定特征、特性或方面,宾语表示所述特征、特性或方面的实例。换言之,三元组陈述的集合从本质上表示有向图的数据。RDF标准提供用于这样的三元组的格式化结构。
当向图中输入了新三元组时,发起节点与节点的初始子集之间的调和处理。另外,调和处理可以是有条件的,其取决于新三元组的主语本身是新的(在这种情况下,针对所述“特定节点”,发起调和处理)或不是新的(在这种情况下,确定不需要调和处理)。
本发明的特定方面的实施方式提供了一种用于执行在图数据中被表示为节点的资源的调和的数据库控制器;该数据库控制器包括:选择模块,其被配置成选择图的节点的、待针对其执行与特定节点的调和处理的初始子集,其中,选择初始子集包括:确定所述节点中的哪些节点在图遍历操作中具有最高被读取访问次数,并将这些节点作为被最多访问的节点包括在初始子集中;调和处理模块,其被配置成执行特定节点与节点的初始子集中的每个节点之间的调和处理;以及调和处理控制模块,其被配置成延迟图的节点的、待针对其执行与特定节点的调和的另外子集的调和处理。
数据库控制器可以被实现为在单个计算资源上的集中控制器,被实现为由许多计算资源配合的集中控制器,或者被实现为其中每个处于分布式存储系统中的相应计算资源上的多个等价控制器中的控制器。例如,可以是:由在存储系统中的计算资源上运行的程序来提供数据库控制器;以及一个或多个其它计算资源还运行等价程序以使得可以通过多个数据库控制器来访问数据库。
本发明的另一方面的实施方式提供了一种用于存储数据图的数据存储系统,在数据图中,资源被表示为数据图的节点,该数据存储系统包括:多个存储单元,所述多个存储单元每个都被配置成存储来自数据图的数据段;以及作为本发明的实施方式如上所述和/或其它地方所述的数据库控制器。当然,数据存储单元是计算资源的示例,其可以具有除了存储之外的处理功能和控制/管理功能。
存储单元可以每个均是计算资源,例如,除了包括处理器、存储器和/或附加部件(例如网络接口卡、主板、输入/输出装置)之外,计算资源可以每个均包括存储单元。
本发明的实施方式实现了一种执行调和处理的方法,其具有以下有益效果中的一项或更多项:降低了调和的计算工作负荷;将处理分成较小的块以使得能够更好地调度调和任务;利用分布式数据存储以使得能够正交分段数据从而改善并行性能以及改进可缩放性;使得能够在分散的计算机资源上同时执行若干个相似度测量;由概率模型进行引导以执行调和。
附图说明
现在,将参照附图,仅作为示例来描述本发明的优选特征,在附图中:
图1是对实施本发明的数据存储系统中的服务器上所部署的软件的示意性说明;
图2示出了本发明的实施方式的系统结构,其中控制功能中的某些控制功能被集中化;
图3是示出了在本发明的实施方式中向基础数据存储区中添加新三元组所执行的处理的流程图;
图4是示出了在本发明的实施方式中对扩展图进行更新并执行调和处理所执行的处理的流程图;
图5是示出了在本发明的实施方式中用于执行调和处理的示例性过程的流程图;
图6是示出了在本发明的实施方式中用于接收并处理查询的示例性过程的流程图;
图7是示出了在本发明的实施方式中用于对节点执行穷举调和的示例性过程的流程图;
图8是示出了在本发明的实施方式中用于执行“按节点(on-node)”调和处理的示例性过程的流程图;
图9是对调和处理的并行化的概念性说明;以及
图10是对通过数据的物理分配和利用被存储为元数据的值进行数据分段的概念性说明。
具体实施方式
图1示出了在每个服务器10上部署的软件的结构。在该特定示例中,存储系统由通过消息传递系统进行通信的服务器组构成。在图1所示的示例中,服务器实施多层模型,其中每层利用并使用下面层的容量。所述结构包括:从最顶端起,语义层11、RDF层12、三元组适配器层14、KVS层15以及通信层16,其中故障检测器13位于三元组适配器层14和KVS层15的侧面。当然,如在下面的描述中将会更加清楚的,本文中讨论的实施方式使用RDF三元组作为用于存储数据图的基础数据结构。这绝不是本发明的实施方式中仅有的可以使用的基础数据结构,而是在此被选中是为了呈现本发明的实施方式的示例性实施。此外,采用KVS(键值存储)格式,其中将RDF三元组本身用作访问关联值存储区中的另外数据(包括元数据)的键。再次,选择KVS格式是为了呈现本发明实施方式的示例性实施,对于本领域的技术人员明显的是本发明的实施方式并不限于这种特定格式。
以下段落描述每个层的作用以及它们的交互。
1)语义层:语义层11是到与终端用户交互的客户端应用的接口,并被配置成向RDF处理器中继用户的查询。在该层中,数据不被视作各个RDF三元组而是处于概念级别或者甚至模型级别(作为相关RDF三元组的组)。在该层执行语义处理操作,例如数据调和处理和属性遍历。当需要深度语义分析时,还可以进行更加复杂的本体分析,例如基于规则的推理和基于描述逻辑的推理。在示例性实施中,可以通过Jena和OWL2 RL/RDF实现高水平的推理。然而,语义层11并不限制于特定的实施,并且允许其它推理引擎容易地插入。语义层11提供了在该说明书的其它地方提及的选择模块、调和处理模块以及调和处理控制模块的控制功能。
2)RDF层:RDF层12桥接基础数据层和语义层。这可以通过API例如Jena Graph API来实现。
RDF层12被配置成使用直接对三元组进行作用的方法,例如添加/去除三元组以及使用RDF SPARQL查询来检索三元组。此外,在RDF层12存在SPARQL引擎,其负责将基于文本的查询转换为一组操作。这些操作包括低水平搜索操作以及过滤和加入机制。这些功能中的一些被实施在该层的SPARQL引擎内,而低水平数据搜索便于由基础三元组适配器层14进行。
3)三元组适配器层:三元组适配器层14负责将三元组转换为在KVS层15中存储的键。该键应当是唯一的,还可以与其它键相比较以加强关于键的顺序(其中每个键高于、低于或等于从三元组生成的任何其它键)。三元组适配器层14向上层提供三个简单操作:添加新三元组、去除现有的三元组以及根据特定标准寻找一组三元组。该寻找操作是RDF特定的,其接收三个参数,该三个参数可以是特定值或空值。例如,求得(主语;空值;空值)返回具有特定(限定)主语的所有三元组。该层使用基础KVS接口来存储、去除和查询数据。
4)KVS层:KVS层15实现分布式的、有序的键值存储。KVS层15提供了规则有序的哈希映射接口,以添加键值对,获得或去除键值(给定的某个键),以及另外地在有序的KVS上执行范围查询。范围查询方法接收前缀最小键以及前缀最大键,并且返回包含在给定范围内的所有键值对的迭代值。该层负责对来自其它服务器的数据的分配和检索。该层使用基础通信层16通过传递消息来与其它服务器进行通信。
5)故障检测器:故障检测器13负责看门狗的执行,所述看门狗将会检测服务器故障并且向存储层通知依然存在的(未发生故障的)服务器。该层还使用通信层16在其它服务器之间交换消息并产生一组活动的处理,其还被称为系统的视图。当该视图变化时,通知KVS层15以使得它例如可以触发从故障恢复。在本发明的实施方式的上下文中,故障检测器13完全是可选的,并且提供扩展本发明的实施方式的功能性的功能。
6)通信层:通信层16是一种通过其在服务器(例如在本说明书的其它地方提及的存储单元或计算装置)之间传递消息的机构。例如,通信层16可以被配置成输出基元以向其它服务器发送消息以及接收来自其它服务器的消息。本领域的技术人员将理解:许多替代性实施可以用于该目的。
图2示出了替代性结构,其中客户端应用30通过集中式RDF处理器22与单个集中式接触点进行通信。RDF处理器22具有RDF层12的功能,但在图2的示例中,它以集中式水平实施而不是以局部水平实施。调和处理器21(其组合了在本说明书的其它地方提及的选择模块、调和处理模块以及调和处理控制模块的功能)在图2的示例中也在集中式水平上实施。调和处理器21被配置成对存储在多个数据存储单元23中的图进行控制并执行调和处理。所述多个数据存储单元23被至少配置成存储数据图的一部分。此外,数据存储单元23可以被配置成执行上述三元组适配器层14、KVS层15、通信层16以及故障检测器13中的一个或多个的功能。图1和图2示出了:取决于实施所述实施方式的系统的需求,可以在局部水平或集中式的水平上执行本发明实施方式的各种功能。
在图1的示例性实施方式中,采用KVS作为向外缩放RDF数据存储(即数据图的存储)的方法(同样适用于图2)。然而,RDF三元组本身不是KVS准备好的。第一步骤是定义标准KVS可以方便利用的键值元组。下面,陈述用于数据的分布式存储(图)的示例性格式化数据结构。
定义1:RDF三元组。RDF三元组t,<s,p,o>(表示为SPO)限定了主语(s)与宾语(o)之间的关系。该关系指使用谓语(p)。主语(s)与宾语(o)二者均是图中的节点,而谓语是弧。
三元组是RDF中的基本数据结构。如此,三元组是在本发明的实施方式中用于存储图数据库(其可以被视作图的存储形式)的示例性基础数据结构。然而,本发明还可以被实施至或应用于采用除了RDF三元组以外的基础数据结构的实施方式中。三元组的宾语反过来可以是其它三元组的主语或具体数据类型(例如字符串、整数等)的主语。图是RDF三元组的自然呈现。RDF图是有向的、加标记的图。图的顶点(节点)是三元组的主语或宾语,而边是谓语。在RDF图中,节点和边两者也均被称为RDF资源。
定义2:RDF图。令T为一组RDF三元组。T的图形表示是G=<V,E>,其中且E={(vs,vo)|(s,p,o)∈T}。V被定义为作为RDF三元组的主语或宾语的一组节点(或顶点),而E是通常规定为一对节点<v1,v2>,v1,v2∈V的节点之间的一组边(或弧)。
一般而言,KVS是允许存储无模式数据的非关系数据模型。KVS的关键益处是简单性和可缩放性。在KVS中的数据项是键值元组<k,v>,其中,k是唯一标识符,v是k所标识的有效载荷。
定义3:三元组化K/V(键值)元组。给定三元组t,三元组KN元组是{<kt,metadata>|kt∈{<s,p,o>}∪{<p,o,s>}∪{<o,s,p>}},其中元数据将三元组元数据存储为键值元组的值。
作为用于本发明的实施方式的基础数据格式的存储的三元组的示例,通过生成语义相同但语法不同的形式是<p,o,s>(表示为POS)与<o,s,p>(表示为OSP)的两个变量来复制每个SPO形式的三元组。这考虑了查询性能和故障恢复,并且为了提供用于存储在本发明的特定实施方式中利用的各种形式的元数据的机制。
通过范围查询来正常完成查询RDF数据,使用通配符来代替在三元组中的元素。例如SELECT<?,?,?>检索在数据存储区中的所有三元组,而SELECT<?,?,o>返回使用o作为宾语的所有三元组。复制三元组允许根据不仅主语而且根据谓语和宾语来对数据进行排序。这增强了查询执行。
三元组被存储在分布式的KVS中,在该具体实施中,每个三元组及其变量作为键,而相关元数据作为值。这样的方法有利于灵活的元数据建模和管理。如在本说明书中之前提及的,可以使用任何其它基于图的存储装置,以如下方式实施本发明的优选实施方式:通过基于图的存储装置来存储以及访问元数据。在本发明的实施方式中,可以如以下解释的那样使用元数据来记录节点访问频繁度和节点对的共现性。反过来,使用元数据来选择将哪些图节点包括在节点的初始子集中,以及哪些图节点具有特定节点被延迟的调和处理。
形式是SPO的原三元组以及形式是POS和OSP的复制三元组的组被排序并分成n段,其中n是用于存储数据的服务器(或存储单元)的数量,其中每个服务器负责一个数据段。可以使用哈希函数将数据段映射至服务器。
为了有效地定位特定三元组或其变量之一被置于的段,可以使用Trie(具有受限于待索引的字符串的大小的搜索复杂度的排序树),其中Trie的每个叶子对应于数据段。例如,可以实施从数据项到服务器的两级映射。使用Trie来对所有现有的三元组进行组织和排序,其中整个三元组集合按字母顺序排列。然后,通过跟随与Trie中的每个节点关联的前缀来完成寻找正确的数据段。在检索段ID之后,将一致哈希用作工具,将段映射至服务器机器。将所述两个映射级联在一起,能够找到每个三元组的目的地存储机器的函数(γ):通过实施γ=consistent-hashing(trie-search(t)),γ:t→IDmachine。该函数使用Trie结构将数据项映射为段ID,并且然后使用一致哈希将段ID映射为机器ID。如以下段落中将要描述的,使用所述方法来存储所有的三元组版本。
添加三元组包括以下步骤:在有序的数据空间中定位数据段;以及将键值元组插入至相应的机器(使用γ()映射)。以下在算法1中详细描述用于三元组插入的示例性算法。
算法1:addTriple(t)
需要:γ()
m1←γ(t.SPO),m2←γ(t.POS),m3←γ(t.OSP)
以m1,存储(<t.SPO,metadata>,m1,m2,m3)
以m2,存储(<t.POS,metadata>,m1,m2,m3)
以m3,存储(<t.OSP,metadata>,m1,m2,m3)
向机器传递的变元包括:三元组或三元组的变量以及被保持在服务器局部存储索引表中以用于故障恢复的所有所涉及的机器(针对变量)的标识符(m1,m2,m3)。这些程序确保每个三元组SPO、POS和OSP以允许使用三元组数据的子集的任意组合作为前缀来进行范围查询的方式被存储在系统中。
对三元组进行定位的机制与用于检索和删除的机制相同。由于数据通常是有序的,因此可以检索处理RDF范围查询所需的段ID。定义5陈述了如何在本具体实施中执行范围查询。
定义5:范围查询。给定两个三元组t1和t2以及数据分段D0,…,Dn,范围查询检索出t1与t2之间的所有三元组包括性地为:
{t|t∈Di∧t1∈Di∧key(t)≥key(t1)}
∪{t'|t'∈Dj∧t2∈Dj∧key(t')≤key(t2)}
∪{t″|t″∈Dk∧(i<k<j)}
其中key()将三元组转换为在KVS中的键。
需要被访问的段是:包含t1的段、包含t2的段以及所有中间段。
删除操作通过在每个服务器上使用“删除”来代替在算法1中的“存储”指令来以相似方式进行处理。“删除”指令去除对应于三元组的行并更新相应的索引表(如果需要)。
可以以“事件驱动”方式来实施本发明的实施方式的调和的递增法。当“某事”改变了数据存储的状态(例如插入新三元组或检索现有的三元组)时,产生事件,其中数据存储是图的存储版本。为了数据调和,两个基本事件被认为能够触发调和处理的相关事件:addEvent和readEvent。通过三元组的插入操作发出addEvent,通过图查询发出readEvent。作为对这两个事件的反应,调和被触发。可以引起数据调和的其它类型的事件可以被表示为一系列addEvent和readEvent,因此不再分别定义。当然,addEvent与readEvent是高度相关的。当向非空图添加三元组时,将访问并且评估相关三元组,以检测应当被调和的任何数据,引起向数据存储待发出的一系列readEvent。这样紧密的关系以示例性方式被反映,用于选择与以下陈述的特定节点之间执行调和处理的节点的初始子集。readEvent被认为是图遍历操作。采用遍历历史来建立初始子集,该初始子集包括被最多访问的节点以及与被最多访问的节点具有强共现性关系的节点。用于选择初始子集的算法是用于选择初始子集的示例性机制,并且基于如下假设:如果两个节点是强相关的(即在图遍历操作中在访问节点A之后访问节点B的概率非常高),则非常可能在同一例程中对A执行的调和处理也应当对B执行,而不是延迟执行。遵循使用共现性关系的这样的相关节点的路径,可以选择其调和比其它节点的调和更迫切的节点的初始子集。
这样的选择机制的可取之处是显著的。即使图被跨存在多个服务器上,单个机器上的数据的大小可能会非常大,从而否定了实时的穷举调和动作。可以使用两个任意节点之间的共现性概率来将图划分为:被频繁访问的节点以及与被最频繁访问的节点具有强相关性的节点的子图(初始子集);以及包含被较少访问的节点的子图(另外子集)。对于后者,调和检查被推迟,直到执行了直接读取操作为止。因此,递增法使得能够进行关于大数据图的调和。
通过将图划分为初始子集和另外子集,还可以将数据图的分段叠加在已经就位的物理数据分段之上。该基于使用的分段还增强了数据调和的并行处理。
本发明的实施方式可以采用或创建扩展图,其通过以下将详细阐述的一些特定元数据字段/值来扩展。所述特定元数据字段提供如下信息:该信息可以用于将节点的初始子集与节点的另外子集区分开。
定义4:扩展的RDF图。
扩展的RDF图是Ge=<V',E'>,其使用节点和边的元数据来扩展RDF图G=<V,E>:
V'={<v,mv|v∈V>},E'={<e,me>|e∈E},
其中V和E如在定义2:RDF图中所定义的。
在该特定实施中,三元组被视为基础数据结构,以上定义的扩展RDF图需要节点局部元数据和边局部元数据。由于该实施存储了每个三元组的三个变量,因而可以如下存储元数据:
·存储节点和边的元数据:针对分别表示三元组主语和三元组宾语的节点,mv被局部地存储在每个SPO三元组和每个OSP三元组中。me被局部存储至每个PSO中。更新现有的三元组的元数据包括:读取三元组数据;重新计算值;以及返回该值。
·查询节点和边的元数据:当查询关于特定节点或边的元数据时,检索所有的相关三元组并且根据需要将元数据进行合计。
例如,可以使用简单的键值元组<kt,number_of_visits>来保持关于特定三元组(t)被读取多少次的指示。如果需要功能模块来估计对节点s的访问总次数,则应当检索将<s,?,?>作为键(其中?匹配任意字符串)的所有键值元组。相应的number_of_visits(访问次数)然后被求和,以给出最终答案。
用元数据记录节点访问频繁度和节点对的共现性来扩展正常的RDF图。使用频繁度和共现性是为了减少调和处理需要最初访问的节点的数目,并从而降低在三元组插入时的计算成本。这使得能够实现将非紧急操作推迟至当该非紧急操作变得必要时的点的递增调和技术。节点和边的元数据被用作用信号表示所述节点在其它节点当中如何显著以及所述节点如何彼此紧密地连接的机制。
作为readEvent(由数据查询触发的)的结果,数值被递增地添加到标准图。在下文中,标准数据图(RDF图)被表示为G,而扩展图被表示为G’i,其中i表示向原图施加了多少次迭代(由readEvent和addEvent触发的)以产生递增图变换。
定义6:频繁度、共现性、未决请求。
令t为三元组<s,p,o>,s和o是由t的图形表示所产生的两个节点。频繁度f(s)是访问主语节点s的总次数。共现性为其中m是特定三元组<s,p,o>被用s作为主语进行访问/查询的总次数。
Lt=[t0;…,ti,…,tn]是包含在所述节点处仍待调和的所有三元组的三元组列表。Lt可以为空。
节点s与节点o之间的共现性被近似为:在对节点s的所有访问中多少访问导致了对节点o的访问。在基础存储水平上,元数据与形成键值元组的三元组相关联,其中频繁度和未决请求被实施为节点的元数据(即<v,f:Lt>),而共现性则通过边的元数据被实现为<e,co>。当然,这些仅仅是用于存储标识被最多访问的节点以及在图遍历操作中在被最多访问的节点之后访问的节点而所需的元数据的示例性技术。本领域的技术人员将会理解:可以将在不同位置中作为元数据所存储的各种不同值用于该同一目的。
addEvent和readEvent被系统不同地处理。由于向图添加三元组会通常导致:一系列的查询被发出并且潜在地生成并添加新三元组,所以addEvent的实例可以被认为是对频繁度和共现性值进行更新的序列。理论上,只有不再有节点需要被处理时,这样的涟漪效应(ripple-off effect)才会终止。
令t为与从主语节点到宾语节点的有向边等价的三元组<s,p,o>。对图的每次读取操作递增地改变已被访问的节点的频繁度值f(s)和在G'i中的相邻节点之间的共现性关系co(s,o)。基本原理如下:通过使用共现性关联原则,可作出关于相对于节点s执行的调和处理是否将/应当被传播至与s连接的相邻节点或者这些相邻节点的调和处理是否应当被延迟的决定。
图3示出了向图添加新三元组的处理中的控制的流程。
当向空图添加三元组时,不需要调和,S101-S103,即在S102处为“是”。然后,在步骤S104中,将扩展图初始化为简单的RDF图。当向现有图添加三元组时,即在S102处为“否”,在S105处更新扩展图,将主语节点的相应频繁度以及连接三元组主语和宾语的边的共现性增加1。如果需要,在S105处执行调和处理。在该阶段,可以是如下情况:选择节点的初始子集,并且在节点的初始子集与新三元组的主语节点之间执行调和处理。在图4中示出了用于S105中的处理的控制的示意性流程(如以下讨论并在算法2中进行格式化的)。在许多情况下,调和处理可能导致产生新三元组(在S106处的“是”),这反过来又导致元数据更新以及新的调和处理。这将继续,直到没有新知识(三元组)生成为止。在算法2中将所述处理进行格式化。应当注意,由于KVS的性质,添加到现有键值对仅仅更新元组的值。
关于执行特定程序的设备,可以通过选择模块来执行初始子集的选择。可以通过调和处理模块来执行包括调和处理,该调和处理包括:相似度计算、相似度合计以及必要时创建新的等价性链接。通过调和处理控制模块来执行对另外(延迟)的调和处理的标识和调度,所述另外(延迟)的调和处理包括:对特定触发事件进行响应;以及对响应于触发事件而应当被执行的调和处理进行标识。每个模块可以被实现为如下数据库控制器的一部分:该数据控制器可以相对于分布式系统中的存储单元/服务器/计算资源是局部的,或者可以是集中式的并且设置在集中式硬件上,或者通过与分布式硬件/计算资源/服务器相配合以创建有效的集中式控制器。模块可以被实现为硬件,或者可以为在计算资源/服务器/存储单元上工作的软件模块,例如作为数据库管理系统的一部分。
数据/语义调和主要发生在宣称新实例数据时。当添加三元组t=<s,p,o>时,addEvent实例触发待对照整个图中执行的插入三元组t的主语s的调和。在实践中,需要对照其处理的图的大小会容易地达到数百万节点并且变得过大而不能进行穷举遍历。通过将重点放于选择特定节点(在该情况下,为新三元组的主语)将要与之初始执行调和的初始子集,前面的处理负担被降低,并且获得较廉价的初始调和近似。
算法2 doAddEvent(t=<s,p,o>)
需要:G=<V,E>作为RDF图
需要:addTriple()(算法1)
算法3 reconcile(t)t=<s,p,o>
需要:αandβ作为预定的阈值
算法3是如下示例性算法:该算法用于选择与特定节点执行调和处理的节点的初始子集,并且在不属于初始子集部分的节点处记录特定节点的指示,使得它们可以在将来根据需要与特定节点进行调和(即调和处理被延迟)。
图4示出了对应于算法2并且还对应于作为图3中的S105的一部分而发生的处理的控制的流程。也就是说,图4示出了对图中的特定节点(例如,新三元组的主语)执行调和处理并且更新扩展图的控制的流程。在S200处,检索被最多访问的节点。在S201处执行特定节点与被最多访问的节点之间的调和处理,而在S202处检索/计算节点共现性;与被最多访问的节点相邻并且与相应的被最多访问的节点具有大于预定阈值的共现性频繁度(S203处的“是”)的节点,也在S201处作为初始子集的一部分与特定节点进行调和。在S201处执行的处理将在图5的流程图和算法3中更加详细地说明。当不再有剩余的被最多访问的节点或者与被最多访问的节点具有大于阈值的共现性的、被最多访问的节点的相邻节点时,对于作为调和处理的一部分的新三元组的产生是否导致了新的被最多访问的节点执行检查,因此重复步骤S200至S203。这被称为“涟漪效应”并且继续直到没有新的三元组被添加作为调和处理的一部分为止。剩余节点与特定节点之间的调和处理被延迟。如在算法2中陈述的,在未按照步骤S200至步骤S204部分执行调和处理的节点的每个节点处记录特定节点的指示,使得这些节点在一段延迟之后被递增地调和。
递增法背后的基本原理是:仅针对在过去被频繁访问的节点以及与它们强相关(通过共现性)的相邻节点来执行调和。其它节点的调和被推迟直到它们被访问为止或者直到明确作出了穷举调和请求为止。如算法3所示,使用频繁度值来标识被最频繁访问的节点的子集S。
针对被最频繁访问的节点的初始子集执行调和。与被最频繁访问的节点强相关(大于预定义的阈值β)的所有未处理的节点被针对特定节点进行调和,所述强相关节点可以是初始子集的一部分,但是在一些实施方式中,可以是如下情况:初始子集仅仅是被最频繁访问的节点,所述强相关节点(与被最多访问的节点具有大于阈值的共现性关系co(s,o))是与特定节点的调和处理被延迟的另外子集的节点。
所有剩余节点的调和被推迟,直到它们被明确访问为止,直到关于特定节点使用穷举调和方法为止,或者直到响应于系统是空闲的或者具有多余处理容量的指示来执行调和处理为止。然而,使用record()在每个节点处局部地记录未执行的调和。这在必要或有利时将允许一个道次调和。
针对v'∈V'k的调和doReconciliation(s,v’)包括两个具体部分:相似度计算和对结果的合计。图5是陈述作为图4中的步骤S201的“执行调和”中的一部分来执行的处理的流程图。在以上算法3中确定了调和处理。算法3和图5陈述了在本发明实施方式的具体实施中的示例性调和处理。当然,在本发明的实施方式中可以执行许多替代性调和处理例程。在步骤S300处获得调和候选列表,也就是说,例如节点的初始子集,或者节点的另外子集的全部或部分。在步骤S301处,计算相似度量度,或者执行相似度计算。相似度计算可以为一组相似度量度以确定两个资源s、v′有多大程度等价。每个相似度计算产生表示两个资源之间的相似度(或者特定节点s与另一个节点v′等价的似然度)的分数,因此相似度(s;v′)=σ,其中σ为[0,1]中的分数,0表示两个实体不同,而1表示两个实体是等价的(描述同一个现实世界对象)。例如可以通过简单的合计或通过加权平均来对相似度计算进行组合,以获得相似度值。
相似度计算可以基于不同的相似度量度,大多数相似度计算涉及被广泛应用于记录链接和模式匹配二者中的各种字符串相似度度量。字符串相似度度量可以包括:莱温斯坦(Levenshtein)编辑距离,其测量将一个字符串值转换成另一个字符串值时需要的基本变化操作的次数;和/或亚罗(Jaro)度量,其被设计以考虑公共拼写偏差。这两个度量仅仅是可以用于执行资源的调和的许多相似度测量实施方式的样本。关于对结果的合计,针对每个对(s、v′、分数),调和获得例如与这些相似度量度的加权平均等价的合计相似度值(s、vi、加权分数)。只有当相似度值大于选定的相似度阈值(S303)similarity_th时,才在图中选择并添加候选的等价性链接。similarity_th表示将一对对象描述视为彼此相似所需的最小相似度值。
以如下两种不同方式之一或二者来处理推迟的调和:
i)由readEvent(查询)触发的“按需”和“按节点”调和;以及
ii)在系统空闲时间,强制进行调和。在极端情况下,可以在三元组插入时不执行调和,即所有调和可以被推迟至系统空闲时间或者明确查询的点。
1)使用未决调和请求查询图:
在本发明的实施方式中使用的递增调和法包括将被确定与图中的现有节点应当执行调和的特定节点与图中的至少一些节点之间的调和处理推迟或者延迟直到真正必要或有利时的时间点。如上解释,特定节点可以是被插入图中的新三元组的主语节点。在插入时,特定节点可以仅在其自身与被最频繁访问的节点/资源以及所述节点/资源的强相关相邻节点之间执行调和处理。基于“按需”的考虑,所有剩余节点的调和被延迟。
作为通过其可以标识并调度延迟的调和处理的机制,这些未决请求可以被存储在两个不同的位置之一或二者处。有效地,该机制所需要的额外存储空间被与时间效率和处理性能进行权衡。
首先,开始数据调和处理的三元组被作为节点元数据(见定义4和定义6)而存储在扩展图中的每个未访问的节点处。通过在节点(在列表Lt中的)处局部地存储未决请求,在每个节点处可以按需局部地继续进行另外的调和,即可以通过读取针对节点存储的元数据来确定关于该节点延迟处理的事实,相应地可以调度延迟处理。
其次,系统保持还未完全调和进入图中的新添加的三元组的列表(其中完全调和的三元组或节点是指与图中的其它节点中的每个执行了调和处理的三元组或节点)。该列表是指未被调和的三元组的队列(或缓存),Q=[t0,…,tm]。
图6是陈述接收到图的查询时执行的处理的流程图,以确保响应于查询关于待检索的节点与图中的所有其它节点之间已执行了调和处理。
在步骤S401和步骤S402中,当查询时首先对照Q中的成员检查查询(q)。
待判定的查询要满足的条件包括Q中的元素呈现如下形式:
其中,δ是预定的数值阈值。必要地,如果查询等于Q中的元素或者与Q中的元素显著相似(其中通过δ给出阈值的相似度),则在整个图中对所讨论的节点强迫进行数据调和。相似度阈值的规定提供了当检查Q是否包括目标查询时的灵活性。
如果Q包含查询(即,如果满足上述条件),S402中的“是”,则流程行进到S403并且对照整个图增强作为Q的成员的被查询到的节点tj的数据调和。应当注意,该“穷举调和”有效定义了关于对查询的接收必须执行的调和处理量的“最坏情况场景”。然而,在大多数实施中,期望Q的大小与图相比较要小得多。因此,不应当频繁发生强迫的穷举图调和。此外,在系统空闲时间,排队的未被调和的三元组被去除并处理,这进一步降低了查询在“最坏情况场景”中求出自己的机会。此外,由于在查询中标识的节点在该点需要穷举调和,因此就调和是关于被访问的节点的事实而言处理是有效的。在S403的穷举调和之后(在图7中更加详细地陈述了穷举调和的示例性过程),流程行进到S404,评估查询并且读取节点。
如果在S402中答案为“否”,并且查询q与队列Q之间不存在重叠,则流程行进到S405,并且对照扩展图对其进行评估。在步骤S405和步骤S406,执行检查以标识正被查询的任何节点是否具有与其进行未决/延迟的调和处理的节点的“按节点”指示(被标识在队列Lt中,以元数据存储)。当遇到了未被调和的节点(在扩展图中具有未决调和的节点)时,在S407中执行“按节点”的数据调和。在图8中陈述了针对“按节点”的数据调和处理的示例性处理。
在步骤S408处,在查询评估期间,就频繁度、共现性以及节点局部和全局缓存的未决调和请求这些方面,更新扩展图的元数据。
由图8和图9可见,在每种情况下必须执行的调和处理与在图5中陈述的调和处理大体上相同,并且相同的数字被用于直接等价步骤。区别仅在特定节点待与之执行调和处理的候选节点。
2)在空闲时间调和:除了通过查询所强迫的“按需”和“按节点”数据调和之外,递增法还使得能够更好地利用计算资源。通过监视整个系统,可以标识当计算资源处于空闲状态时的时隙,或者标识当计算资源处于在被确定为具有充足的处理能力以向计算资源的工作负荷添加调和处理的工作状态时的时隙。可以对整个图(如果必要而且合适)或者递增地再次使用频繁度和共现性值对未决调和进行标识、调度和执行。应当注意,调和还引起扩展图的元数据的更新。在空闲时间的调和可以是“按节点”调和和穷举调和之一或二者。
实施事件驱动法具有如下重要特征:其允许在不同的分布式互联网节点上存在同时运行的若干个相似度任务。这将事件驱动法与其它方法区分开。使用事件是组织部件进行互相通信的主要手段。通过二维数据分段实现语义操作的并行化。
首先,原始的数据图分布在多个物理存储单元上,使得当执行调和时能够进行数据的“垂直”分段。可以由通过通信网络链接的远程服务器执行不同的相似度任务,并且这样的任务可以并行运行。分布式和并行化是事件驱动系统的特征,其可以帮助加速整个调和处理的执行时间。可以通过由读取事件或添加事件触发的计算资源来针对还未与该计算资源上的所有节点调和的特定节点执行调和处理。多于一个的计算资源可以关于相同的特定节点一次来执行这样的调和处理。
图9示出了跨多个服务器的调和处理的并行化。通过事件触发调和处理,该事件可以是向基础数据存储中插入新三元组,在这种情况下,三元组的主语变得“特定”。可以每个服务器处,在特定节点与存储在该服务器上的选定的候选列表(例如,初始子集,或在穷举处理的情况下的整个图)中的节点之间,执行相似度计算的执行,以及执行基于这些计算来获得相似度值所需的处理。在这个意义上,调和处理被分解为在各个服务器上并行执行的多个相似度任务(相似度任务1至n)。结果然后被进行合计,在合适的情况下使用等价性链接来更新图,这会引起触发更多调和处理的另外“事件”。
其次,扩展图通过数据划分的抽象和动态层来提供用于并行化的增强的能力。通过将在扩展图G′中作为元数据而存储的频繁度和共现性值用作鉴别器,可以施加与由分布式数据存储单元获取的基础物理数据分段正交的数据分段。图中的数据然后被有效地分为用于调和处理的较小的块,其中每个数据块限定了调和处理的例程被限制在其内的边界(如图10所示)。这种二次分段是期望的,这是因为即使图被跨多个机器进行存储,在单个机器上的数据大小也可以非常大从而否定实时穷举调和动作。可以使用两个任意节点之间的共现性概率将图分段为:被频繁访问的节点的子图(初始子集);以及包含较少访问的节点的子图(另外子集)。对于后者,调和处理被延迟或推迟直到执行直接读取操作为止或者直到系统的空闲时间为止。因此,使得能够实现可能使语义数据调和处理并行化的递增法。通过叠加在已经就位的物理存储分段之上,该基于使用的分段进一步增强了数据调和的并行处理。
在任何上述方面中,各种特征可以以硬件实施,或者被实施为在一个或多个处理器上运行的软件模块。一个方面的特征可以应用于任何其它方面。
本发明还提供了:用于执行本文中描述的任何方法的计算机程序或计算机程序产品;以及在其上存储用于执行本文描述的任何方法的程序的计算机可读介质。实施本发明的计算机程序可以被存储在计算机可读介质上,或者例如可以为信号形式,例如由因特网网站提供的可下载数据信号,或者可以为任何其它形式。
Claims (13)
1.一种用于执行在数据图中被表示为节点的资源的调和的方法,所述方法包括:
选择所述图的节点的、待针对其执行与特定节点的调和处理的初始子集,其中,选择所述初始子集包括:确定所述节点中的哪些节点在图遍历操作中具有最高被读取访问次数,并将这些节点作为被最多访问的节点包括在所述初始子集中;
执行所述特定节点与节点的所述初始子集中的每个节点之间的调和处理;以及
延迟所述特定节点与所述图的节点的、待针对其执行与所述特定节点的调和的另外子集之间的调和处理。
2.根据权利要求1所述的方法,其中,
选择所述初始子集还包括:确定所述节点中的哪些节点具有最高被读取访问概率,作为在图遍历操作中的所述被最多访问的节点之一之后的下一个节点。
3.根据权利要求1所述的方法,其中,
节点的所述另外子集是所述图中的不是所述初始子集的成员的所有节点。
4.根据权利要求1所述的方法,其中,
节点的所述另外子集的所述调和处理被延迟、并且在当对计算资源的监视表明所述计算资源不然将会空闲时的时隙内被执行。
5.根据权利要求1所述的方法,进一步包括:
将所述特定节点的标识添加到列表;
在所述列表中保持所述特定节点的标识直到已执行了与所述图的节点的所述另外子集的处理为止,此时,将所述特定节点的标识从所述列表中去除;以及
当接收到标识一个或多个待被读取的节点的对所述图的查询时,检查所述一个或多个待被读取的节点中的哪些节点被标识在所述列表上,并且,针对所述一个或多个待被读取的节点中的被标识在所述列表上的每个节点,执行与所述图的每个节点的调和处理。
6.根据权利要求1所述的方法,进一步包括:
针对所述图的不包括在与其执行调和处理的所述初始子集中的每个节点,将所述特定节点的标识以关联元数据的形式添加到未被调和的节点的列表,并在所述列表中保持所述标识直到执行了与所述特定节点的调和处理为止,此时,将所述特定节点的标识从所述列表中去除;以及
当接收到标识一个或多个待被读取的节点的对所述图的查询时,针对每个所述待被读取的节点,执行该节点与以关联元数据的形式标识在未被调和的节点的列表中的每个节点之间的调和处理。
7.根据权利要求1所述的方法,其中,
所述图被存储在计算资源的分布式网络中。
8.根据权利要求1所述的方法,其中,
所述特定节点与另一个节点的调和处理包括:
通过对由执行多个不同的相似度计算产生的值进行合计来获得相似度值,或者获得由执行相似度计算产生的单个值,其中,相似度计算是生成表示所述特定节点与所述另一个节点在语义上等价的似然度的值的计算;以及
如果所述相似度值超过预定的相似度阈值,则向所述图添加表示所述特定节点与所述另一个节点之间的等价性关系的等价性链接。
9.根据权利要求7或8所述的方法,其中,
在计算资源的所述分布式网络内的多于一个的计算资源上同时执行所述特定节点与存储在该计算资源上的如下节点之间的调和处理:所述节点属于正针对其执行与所述特定节点的调和处理的节点子集。
10.根据权利要求1所述的方法,进一步包括:
针对每个节点,作为关联元数据,存储表示所述节点在图遍历操作中被进行读取访问的次数的值以及表示在所述图中与所述节点链接的每个节点在图遍历操作中作为下一个节点被读取的次数的值。
11.根据权利要求1所述的方法,其中,所述图中的数据被编码为三元组,每个三元组包括主语、谓语和宾语,并且所述图的节点是所述三元组的主语和宾语,并且三元组的谓语表示所述三元组的主语与宾语之间的链接。
12.一种用于执行在数据图中被表示为节点的资源的调和的数据库控制器,所述数据库控制器包括:
选择模块,所述选择模块被配置成选择所述图的节点的、待针对其执行与特定节点的调和处理的初始子集,其中,选择所述初始子集包括:确定所述节点中的哪些节点在图遍历操作中具有最高被读取访问次数,并将这些节点作为被最多访问的节点包括在所述初始子集中;
调和处理模块,所述调和处理模块被配置成执行所述特定节点与节点的所述初始子集中的每个节点之间的调和处理;以及
调和处理控制模块,所述调和处理控制模块被配置成延迟所述图的节点的、待针对其执行与所述特定节点的调和的另外子集的调和处理。
13.一种用于存储数据图的数据存储系统,在所述数据图中,资源被表示为所述数据图的节点,所述数据存储系统包括:
多个存储单元,所述多个存储单元每个都被配置成存储来自所述数据图的数据段;以及
根据权利要求12所述的数据库控制器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1210234.9 | 2012-06-12 | ||
GBGB1210234.9A GB201210234D0 (en) | 2012-06-12 | 2012-06-12 | Reconciliation of large graph-based data storage |
EP12174230.8A EP2674875B1 (en) | 2012-06-12 | 2012-06-28 | Method, controller, program and data storage system for performing reconciliation processing |
EP12174230.8 | 2012-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488673A CN103488673A (zh) | 2014-01-01 |
CN103488673B true CN103488673B (zh) | 2016-12-28 |
Family
ID=46605703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310231665.9A Active CN103488673B (zh) | 2012-06-11 | 2013-06-09 | 用于执行调和处理的方法、控制器及数据存储系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9449115B2 (zh) |
EP (1) | EP2674875B1 (zh) |
JP (1) | JP6160277B2 (zh) |
CN (1) | CN103488673B (zh) |
ES (1) | ES2609445T3 (zh) |
GB (1) | GB201210234D0 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8682846B2 (en) * | 2011-09-09 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Content item reconciliation |
US9342622B2 (en) * | 2013-06-27 | 2016-05-17 | Google Inc. | Two-phase construction of data graphs from disparate inputs |
US9218438B2 (en) * | 2013-08-28 | 2015-12-22 | Bank Of America Corporation | Computing architecture for storing a graph database based on temporal aspects of its edges |
CN104915340B (zh) * | 2014-03-10 | 2019-09-10 | 北京大学 | 自然语言问答方法及装置 |
US20150261860A1 (en) * | 2014-03-12 | 2015-09-17 | Kaushal MITTAL | Predicate execution in shared distributed computing environment |
US20150293783A1 (en) * | 2014-04-09 | 2015-10-15 | International Business Machines Corporation | Scheduling identity manager reconciliation to execute at an optimal time |
WO2015162458A1 (en) * | 2014-04-24 | 2015-10-29 | Singapore Telecommunications Limited | Knowledge model for personalization and location services |
KR101660584B1 (ko) * | 2014-04-30 | 2016-09-27 | 한국과학기술원 | 그래프 압축 처리 방법 및 장치 |
EP3001329A1 (en) * | 2014-09-25 | 2016-03-30 | Fujitsu Limited | Method, controller, program and data storage system for performing reconciliation processing |
US9535963B1 (en) * | 2015-09-18 | 2017-01-03 | Linkedin Corporation | Graph-based queries |
US20170147402A1 (en) * | 2015-11-25 | 2017-05-25 | GM Global Technology Operations LLC | Optimized task partitioning through data mining |
CN105447156A (zh) * | 2015-11-30 | 2016-03-30 | 北京航空航天大学 | 资源描述框架分布式引擎及增量式更新方法 |
US20170228448A1 (en) * | 2016-02-08 | 2017-08-10 | Futurewei Technologies, Inc. | Method and apparatus for association rules with graph patterns |
JP6745127B2 (ja) * | 2016-03-30 | 2020-08-26 | 株式会社アドバンスト・メディア | 情報処理システム、サーバ、端末装置、情報処理方法及びプログラム |
US9893941B1 (en) | 2016-07-29 | 2018-02-13 | Qualcomm Incorporated | Unit sourcing |
US20200334715A1 (en) * | 2016-10-17 | 2020-10-22 | Singapore Telecommunications, Ltd. | Knowledge Model for Personalization and Location Services |
US10725988B2 (en) * | 2017-02-09 | 2020-07-28 | Micron Technology, Inc. | KVS tree |
EP3407206B1 (en) | 2017-05-22 | 2021-08-04 | Fujitsu Limited | Reconciled data storage system |
US10725982B2 (en) * | 2017-11-20 | 2020-07-28 | International Business Machines Corporation | Knowledge graph node expiration |
CN108052614B (zh) * | 2017-12-14 | 2021-12-03 | 太原理工大学 | 一种数据库系统负载的调度方法 |
US10423726B2 (en) * | 2018-01-10 | 2019-09-24 | International Business Machines Corporation | Machine learning to integrate knowledge and natural language processing |
CN108984633B (zh) * | 2018-06-21 | 2020-10-20 | 广东顺德西安交通大学研究院 | 一种基于节点上下文向量空间的rdf近似答案查询方法 |
WO2020014181A1 (en) * | 2018-07-09 | 2020-01-16 | Siemens Aktiengesellschaft | Knowledge graph for real time industrial control system security event monitoring and management |
US10936661B2 (en) | 2018-12-26 | 2021-03-02 | Micron Technology, Inc. | Data tree with order-based node traversal |
CN111914092A (zh) * | 2019-05-09 | 2020-11-10 | 富士通株式会社 | 针对作者消歧的信息处理装置、方法和介质 |
CN111046241B (zh) * | 2019-11-27 | 2023-09-26 | 中国人民解放军国防科技大学 | 用于流式图处理的图存储方法及装置 |
CN111291002B (zh) * | 2020-03-05 | 2023-07-18 | 深圳市网心科技有限公司 | 文件对账方法、装置、计算机设备及存储介质 |
CN111538311B (zh) * | 2020-04-22 | 2021-08-20 | 北京航空航天大学 | 一种基于数据挖掘的机械设备柔性多状态自适应预警方法及装置 |
US20240012803A1 (en) * | 2022-07-08 | 2024-01-11 | Salesforce, Inc. | Mechanisms for deleting triples of a database store |
CN116955363B (zh) * | 2023-09-21 | 2023-12-26 | 北京四维纵横数据技术有限公司 | 无模式数据创建索引方法、装置、计算机设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022377A (zh) * | 2007-01-31 | 2007-08-22 | 北京邮电大学 | 一种基于服务关系本体的交互式服务创建方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002157158A (ja) * | 2000-11-20 | 2002-05-31 | Hitachi Ltd | データベースシステムにおけるデータ管理方法 |
US7512612B1 (en) * | 2002-08-08 | 2009-03-31 | Spoke Software | Selecting an optimal path through a relationship graph |
US20060248093A1 (en) * | 2005-04-29 | 2006-11-02 | Ora Lassila | Method for determining relationships between data resources |
US7426524B2 (en) * | 2005-09-27 | 2008-09-16 | International Business Machines Corporation | Update processes in an enterprise planning system |
-
2012
- 2012-06-12 GB GBGB1210234.9A patent/GB201210234D0/en not_active Ceased
- 2012-06-28 EP EP12174230.8A patent/EP2674875B1/en active Active
- 2012-06-28 ES ES12174230.8T patent/ES2609445T3/es active Active
-
2013
- 2013-05-29 US US13/904,467 patent/US9449115B2/en active Active
- 2013-06-09 CN CN201310231665.9A patent/CN103488673B/zh active Active
- 2013-06-10 JP JP2013121882A patent/JP6160277B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022377A (zh) * | 2007-01-31 | 2007-08-22 | 北京邮电大学 | 一种基于服务关系本体的交互式服务创建方法 |
Non-Patent Citations (3)
Title |
---|
Scalable matching of ontology graphs using partitioning;Ravikanth Kolli;《http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.219.2681&rep=rep1&type=pdf》;20080831;第6页,第10-13页,第35-40页 * |
一种基于RDF图的本体匹配方法;王颖;《计算机应用》;20080229;全文 * |
一种改进的本体映射方法;马婷婷;《徐州工程学院学报》;20110331;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP2674875A1 (en) | 2013-12-18 |
CN103488673A (zh) | 2014-01-01 |
EP2674875B1 (en) | 2016-12-14 |
US9449115B2 (en) | 2016-09-20 |
JP2013257874A (ja) | 2013-12-26 |
ES2609445T3 (es) | 2017-04-20 |
JP6160277B2 (ja) | 2017-07-12 |
GB201210234D0 (en) | 2012-07-25 |
US20130332490A1 (en) | 2013-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488673B (zh) | 用于执行调和处理的方法、控制器及数据存储系统 | |
Čebirić et al. | Summarizing semantic graphs: a survey | |
US9639575B2 (en) | Method and system for processing data queries | |
CN104160394B (zh) | 用于半结构化数据的可缩放分析平台 | |
Schindler | A fast renormalisation for arithmetic coding | |
Huo et al. | Efficient temporal shortest path queries on evolving social graphs | |
Hao et al. | Integrating and navigating engineering design decision-related knowledge using decision knowledge graph | |
CN114218400A (zh) | 基于语义的数据湖查询系统及方法 | |
Kanagal et al. | Lineage processing over correlated probabilistic databases | |
US11449477B2 (en) | Systems and methods for context-independent database search paths | |
CN109213752A (zh) | 一种基于cim的数据清洗转换方法 | |
CN113254630A (zh) | 一种面向全球综合观测成果的领域知识图谱推荐方法 | |
Larriba-Pey et al. | Introduction to graph databases | |
Kanagal et al. | Indexing correlated probabilistic databases | |
CN115237937A (zh) | 一种基于星际文件系统的分布式协同查询处理系统 | |
Theeten et al. | Chive: Bandwidth optimized continuous querying in distributed clouds | |
Xu et al. | Application of rough concept lattice model in construction of ontology and semantic annotation in semantic web of things | |
Li et al. | Research on distributed search technology of multiple data sources intelligent information based on knowledge graph | |
CN111522918A (zh) | 数据汇聚方法、装置、电子设备及计算机可读存储介质 | |
Li et al. | Research on storage method for fuzzy RDF graph based on Neo4j | |
Chen et al. | Scaling up Markov logic probabilistic inference for social graphs | |
Amato et al. | Big data processing for pervasive environment in cloud computing | |
Oo | Pattern discovery using association rule mining on clustered data | |
CN112506913B (zh) | 一种面向制造业数据空间的大数据体系结构构建方法 | |
Abdallah et al. | Towards a GML-Enabled Knowledge Graph Platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |