当前位置: 首页 > 专利查询>谷歌公司专利>正文

针对大型图表的实时所保存查询更新制造技术

技术编号:14753047 阅读:67 留言:0更新日期:2017-03-02 10:09
公开了一种用于响应于图表更新而自动地更新用于图表的所保存的查询结果的系统。所述系统能够响应于对数据图表的更新而识别目标约束。目标约束指定数据图表中的包括在更新中所指定的边缘的路径。系统能够通过经由路径遍历图表来确定用于目标约束的状态,并且基于所述状态确定用于包括约束的第一查询的经叠缩的定义指示成员节点是响应于第一查询。系统然后能够根据经叠缩的定义使用在遍历期间所识别的成员节点来更新用于第一查询的所保存的查询结果。

【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本申请要求2014年6月17日提交的题为“REAL-TIMESAVED-QUERYUPDATESFORALARGEGRAPH”的美国非临时专利申请No.14/306,969的优先权,该专利申请的全部内容通过引用合并于此。
技术介绍
基于大型图表的知识库表示与世界有关的实际信息。例如,在数据图表中,可将实体(诸如人、地点、短语、单词、类别、事实、东西、概念等)存储为节点,并且节点之间的边缘(edge)可指示实体之间的关系。这样的数据图表的基本单元可以是包括两个节点或实体以及边缘标签的三元组。第一节点有时被称为源或主语节点(subjectnode),并且第二节点有时称为目标或对象节点(objectnode)。当然,除识别主语、谓语以及对象之外,三元组进一步可包括附加信息,诸如与实体和/或关系有关的元数据。用户可以定义用于图表的查询或集合。集合或查询定义节点必须满足以响应于查询而成为节点集合的成员的约束。所述约束通常指定节点必须或不必具有什么关系以成为查询结果的成员,例如集合的成员。这样的查询(即,集合)在搜索、数据挖掘、广告定向、推荐系统等中被广泛地使用,并且成员资格常常被存储,因为计算成员资格在大型图表中是昂贵的。但是随着节点和关系被添加到图表或从图表删除,所保存的成员可能变得过时,尤其是在被频繁地更新的大型图表中。
技术实现思路
某些实施方式使得系统能够随着边缘被更新(例如,随着三元组被添加到基于图表的数据存储或从其删除)而实时地更新所保存的查询结果。实时可以包括短延迟(例如,小于一分钟),以允许系统按三元组的源节点将更新分组。查询可由约束定义,其识别节点在图表中必须具有(或不具有)以有资格作为用于所保存的查询的结果的性质或关系。所保存的查询可由约束表达式定义,其是被逻辑操作结合的一系列约束,换言之,约束的布尔表达式。所述系统可包括被按边缘索引的约束的索引。所述系统可使用索引来确定哪些约束与来自已更新三元组的边缘匹配,因此识别用于所述三元组的目标约束。所述系统使用目标约束来高效地确定哪些所存储的查询结果受到更新的影响以及所述更新是否导致对结果的改变。通过按主语将更新分组,系统可再使用在识别和评估受到更新影响的查询结果时的工作,例如在图表中的向前和向后行进。可以在包括至少一个处理器和一个或多个存储器的系统中体现本公开的一个方面。一个或多个存储器可存储包括被边缘连接的节点和多个所保存的查询的数据图表,每个查询由将被满足以实现在用于查询的查询结果中的成员资格的一个或多个约束来定义,每个约束指定边缘中的至少一个。一个或多个存储器还可存储指令,所述指令在被所述至少一个处理器执行时使得计算机系统执行操作。所述操作可包括响应于利用源节点、更新边缘以及目标节点来更新数据图表的操作而识别目标约束,所述目标约束指定包括更新边缘的路径,并且所述目标约束属于所述多个所保存的查询的第一所保存的查询。所述操作还可包括评估用于成员节点的目标约束以通过经由目标约束的路径遍历图表来确定用于目标约束的状态,基于所述状态来确定用于第一所保存的查询的经叠缩(collapsed)的定义是否指示成员节点是响应于或不响应于第一所保存的查询,以及在经叠缩的定义指示成员节点是响应或不响应的情况下根据经叠缩的定义而利用成员节点来更新第一所保存的查询的所保存的查询结果。所述系统可以包括以下特征中的一个或多个。例如,目标约束可以是第一目标约束,并且所述操作还可包括识别属于第一所保存的查询的第二目标约束,所述第二目标约束指定包括更新边缘的路径,所述第二目标约束具有比第一目标约束的路径长度更长的路径长度;以及将用于第二目标约束的状态设置成指示第二目标约束未解算的状态。此外,所述状态可以是第一状态,并且所述操作还可包括基于第一状态而确定用于第一所保存的查询的经叠缩的定义未能指示成员节点是响应于或不响应于第一所保存的查询,评估用于成员节点的第二目标约束以通过经由第二目标约束的路径遍历图表来确定用于第二目标约束的第二状态,基于第一状态和第二状态而确定用于第一查询的经叠缩的定义是否指示成员节点是响应于或不响应于第一所保存的查询,以及在经叠缩的定义指示成员节点是响应或不响应的情况下根据经叠缩的定义而利用成员节点来更新第一所保存的查询的所保存的查询结果。作为另一示例,一个或多个存储器还可按边缘来存储约束的索引,所述索引被用来识别目标约束。作为另一示例,所述操作还可包括存储数据图表的遍历的结果,并且使用所存储的结果来评估指定包括目标约束路径的路径的第二目标约束。作为另一示例,更新可以是第一更新,并且所述操作可包括存储数图表的遍历的结果,并且当对数据图表的后续更新包括与第一更新的源节点不同的源节点时删除所存储的结果。作为另一示例,目标约束可以是第一目标约束,并且状态可以是第一状态且所述操作可包括将图表的遍历的结果存储在存储器中;识别用于第一查询的第二目标约束,所述第二目标约束具有包括第一目标约束的路径的路径;以及在评估第二目标约束时使用所存储的遍历的结果以确定用于第二目标约束的第二状态。所述操作可进一步包括基于第一状态和第二状态而确定用于第一所保存的查询的经叠缩的定义是否指示成员节点是响应于或不响应于第一所保存的查询,以及在经叠缩的定义指示成员节点是响应或不响应的情况下根据经叠缩的定义而利用成员节点来更新第一所保存的查询的所保存的查询结果。作为另一示例,目标约束可以是第一目标约束,并且所述操作还可包括识别多个目标约束,所述第一目标约束是所述多个目标约束中的一个,所述多个目标约束是用于至少两个查询,并且所述第一所保存的查询是所述至少两个查询中的一个。所述操作还可包括智能地评估所述多个目标约束以便以较长的路径长度延迟针对目标约束的遍历。在另一方面,一种计算机实现方法包括使用至少一个处理器来识别目标约束,所述目标约束指定包括在对数据图表的更新中所指定的边缘的数据图表中的路径,所述识别被所述更新触发;以及使用所述至少一个处理器通过经由路径遍历图表来确定用于目标约束的状态。所述方法还包括基于所述状态而确定用于包括约束的第一查询的经叠缩的定义指示成员节点响应于第一查询;以及根据经叠缩的定义使用在遍历期间所识别的成员节点来更新用于第一查询的所保存的查询结果。在某些实施方式中,使用多个约束的索引来识别目标约束,所述索引是按边缘来组织的。当更新包括在源节点与目标节点之间添加更新边缘时,根据经叠缩的定义来更新所保存的查询结果包括向所保存的查询结果添加成员节点。当更新包括在源节点与目标节点之间移除更新边缘时,根据经叠缩的定义来更新所保存的查询结果包括保持保存的查询结果。本方法可以包括以下特征中的一个或多个。例如,所述目标约束可以是第一目标约束,并且所述方法进一步包括:识别属于第一查询的第二目标约束,所述第二目标约束指定包括更新边缘的路径,所述第二目标约束具有比第一目标约束的路径长度更长的路径长度;以及将用于第二目标约束的状态设置成指示第二目标约束未解算的状态。在某些实施方式中,所述状态可以是第一状态,并且所述方法进一步包括基于第一状态而确定用于第一查询的经叠缩的定义未能指示成员节点是响应于或不响应于第一查询,评估用于成员节点的第二目标约束以通过经由第二目标约束的路径遍历图本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201580030355.html" title="针对大型图表的实时所保存查询更新原文来自X技术">针对大型图表的实时所保存查询更新</a>

【技术保护点】
一种计算机系统,包括:至少一个处理器;以及至少一个存储器,所述至少一个存储器存储:被边缘连接的节点的数据图表,多个所保存的查询,每个查询由要被满足以获取在用于该查询的查询结果中的成员资格的一个或多个约束来定义,每个约束指定所述边缘中的至少一个,以及指令,所述指令在被所述至少一个处理器执行时使得所述系统:响应于利用源节点、更新边缘以及目标节点来更新所述数据图表的操作而识别目标约束,所述目标约束指定包括所述更新边缘的路径,并且所述目标约束属于第一所保存的查询,评估用于成员节点的所述目标约束以通过经由所述目标约束的所述路径遍历所述图表来确定用于所述目标约束的状态,基于所述状态来确定用于所述第一所保存的查询的经叠缩的定义是否指示所述成员节点是响应于或不响应于所述第一所保存的查询,以及在所述经叠缩的定义指示所述成员节点是响应或不响应的情况下,根据所述经叠缩的定义而利用所述成员节点来更新所述第一所保存的查询的所保存的查询结果。

【技术特征摘要】
【国外来华专利技术】2014.06.17 US 14/306,9691.一种计算机系统,包括:至少一个处理器;以及至少一个存储器,所述至少一个存储器存储:被边缘连接的节点的数据图表,多个所保存的查询,每个查询由要被满足以获取在用于该查询的查询结果中的成员资格的一个或多个约束来定义,每个约束指定所述边缘中的至少一个,以及指令,所述指令在被所述至少一个处理器执行时使得所述系统:响应于利用源节点、更新边缘以及目标节点来更新所述数据图表的操作而识别目标约束,所述目标约束指定包括所述更新边缘的路径,并且所述目标约束属于第一所保存的查询,评估用于成员节点的所述目标约束以通过经由所述目标约束的所述路径遍历所述图表来确定用于所述目标约束的状态,基于所述状态来确定用于所述第一所保存的查询的经叠缩的定义是否指示所述成员节点是响应于或不响应于所述第一所保存的查询,以及在所述经叠缩的定义指示所述成员节点是响应或不响应的情况下,根据所述经叠缩的定义而利用所述成员节点来更新所述第一所保存的查询的所保存的查询结果。2.根据权利要求1所述的系统,其中,所述存储器进一步存储按边缘对所述约束的索引,所述索引被用来识别所述目标约束。3.根据权利要求1或2所述的系统,其中,所述目标约束是第一目标约束,并且所述存储器进一步存储指令,所述指令在被所述至少一个处理器执行时使得所述系统:识别属于所述第一所保存的查询的第二目标约束;所述第二目标约束指定包括所述更新边缘的路径;所述第二目标约束具有比所述第一目标约束的路径长度更长的路径长度;以及将用于所述第二目标约束的状态设置成指示所述第二目标约束未解算的状态。4.根据权利要求3所述的系统,其中,所述状态是第一状态,并且所述存储器进一步存储指令,所述指令在被所述至少一个处理器执行时使得系统:基于所述第一状态而确定用于所述第一所保存的查询的经叠缩的定义未能指示所述成员节点是响应于或不响应于所述第一所保存的查询;评估用于所述成员节点的所述第二目标约束以通过经由所述第二目标约束的所述路径遍历所述图表来确定用于所述第二目标约束的第二状态;以及基于所述第一状态和所述第二状态而确定用于所述第一查询的所述经叠缩的定义是否指示所述成员节点是响应于或不响应于所述第一所保存的查询,以及在所述经叠缩的定义指示所述成员节点是响应或不响应的情况下,根据所述经叠缩的定义而利用所述成员节点来更新所述第一所保存的查询的所保存的查询结果。5.根据权利要求1至4中的任一项所述的系统,其中,所述目标约束是第一目标约束,并且所述状态是第一状态,并且所述存储器进一步存储指令,所述指令在被所述至少一个处理器执行时,使得所述系统:将所述图表的所述遍历的结果存储在所述存储器中;识别用于所述第一查询的第二目标约束,所述第二目标约束具有包括所述第一目标约束的所述路径的路径;在评估所述第二目标约束时使用所存储的所述遍历的所述结果以确定用于所述第二目标约束的第二状态;基于所述第一状态和所述第二状态而确定用于所述第一所保存的查询的所述经叠缩的定义是否指示所述成员节点是响应于或不响应于所述第一所保存的查询;以及在所述经叠缩的定义指示所述成员节点是响应或不响应的情况下根据所述经叠缩的定义而利用所述成员节点来更新所述第一所保存的查询的所保存的查询结果。6.根据权利要求1至5中的任一项所述的系统,其中,所述更新是第一更新,并且所述存储器进一步存储指令,所述指令在被所述至少一个处理器执行时使得所述系统:存储所述数据图表的所述遍历的结果;以及当对所述数据图表的后续更新包括与所述第一更新的所述源节点不同的源节点时删除所存储的结果。7.根据权利要求1至6中的任一项所述的系统,其中,所述存储器进一步存储指令,所述指令在被所述至少一个处理器执行时使得所述系统:存储所述数据图表的所述遍历的结果;以及使用所存储的结果来评估指定包括所述目标约束的所述路径的路径的第二目标约束。8.根据权利要求1至7中的任一项所述的系统,其中,所述目标约束是第一目标约束,并且所述存储器进一步存储指令,所述指令在被所述至少一个处理器执行时使得所述系统:识别多个目标约束,所述第一目标约束是所述多个目标约束中的一个,所述多个目标约束是用于至少两个查询,并且所述第一所保存的查询是所述至少两个查询中的一个;以及智能地评估所述多个目标约束以便以较长的路径长度延迟...

【专利技术属性】
技术研发人员:阿密特·贝哈尔基思·帕特里克·戈尔登本·休特琴森威廉·常
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1