CN105706078B - 实体集合的自动定义 - Google Patents
实体集合的自动定义 Download PDFInfo
- Publication number
- CN105706078B CN105706078B CN201380080179.XA CN201380080179A CN105706078B CN 105706078 B CN105706078 B CN 105706078B CN 201380080179 A CN201380080179 A CN 201380080179A CN 105706078 B CN105706078 B CN 105706078B
- Authority
- CN
- China
- Prior art keywords
- candidate set
- constraint
- constraints
- entities
- definition
- 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
Images
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3325—Reformulation based on results of preceding query
- G06F16/3326—Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
- G06F16/3328—Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages using graphical result space presentation or visualisation
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于自动生成实体集合的***包括:包括通过边连接的实体的数据图以及使得计算机***确定来自数据图中的实体集并且确定具有一定数量的约束的约束集的指令。所述集中的约束表示在数据图中由实体集中的实体中的至少两个共享的路径。所述指令还使得计算机***从约束的组合中生成候选集合定义,其中每个候选集合定义识别至少一个约束并且不多于所述一定数量的约束。所述指令还使得计算机***确定用于候选集合定义中的至少一些的信息增益,并且将具有满足阈值的信息增益的至少一个候选集合定义存储为候选集合。
Description
背景技术
基于大型图的知识库表示有关世界的事实性信息。例如,在数据图中,诸如人物、地点、事物、概念等实体可以被存储为节点并且节点之间的边可以指示实体间的关系。这样的数据图的基本单元能够是包括两个节点或实体以及边的三元组。三元组有时是指主语-谓语-宾语三元组,一个节点充当主语,第二节点充当宾语,并且关系充当谓语。当然,三元组除识别主语、谓语和宾语之外还可以包括附加信息,诸如有关实体和/或关系的元数据。
语义网络中的节点和边的数目能是很大的,并且因为由三元组表示的实际信息通常是细粒度的,例如表示婚姻关系、乐队中的成员资格以及其他离散的事实,所以可能难以在较高水平上理解实体。然而,在许多应用中,将实体分配到表示有关实体的更一般性事实的集合中是更加有用的。例如,知道某人是乐队的创始人或者吉他手可能比知道谁是此人的子女或者吉他手演奏的确切专辑的细粒度细节更加有用。集合被大量用于搜索、数据挖掘、广告定向、推荐***等。然而,对于图的实体集合的创建是手动过程,这不能缩放成大型图。
发明内容
一些实施方式使得***能够自动识别潜在有用的实体集合并且自动将大型图中的实体分配至所述集合。所述***可以使用搜索记录、基于文本的类别分配来识别潜在有用的集合,或者可以形成一组由用户识别的实体。所述***可以生成用于所述潜在有用集合中的成员资格的规则,评估所述规则以识别候选集合,生成用于所述候选集合中的每一个的名称(或者多个名称),并且对所述候选集合排名或者评分以确定发布哪些集合以供所述数据图使用。一些实施方式包括用于定义候选集合和已发布的集合中的成员资格的所述规则的语言。例如,集合可以通过表达关于成员资格的充分条件来定义。在一个实施方式中,所述条件可以被表达成合取范式。条件可以表示一个约束或者两个或更多个析取约束。约束可以具有五个格式中的一个:Exists(存在)、Not Exists(不存在)、Equals(等于)、NotEquals(不等于)以及Template(模板)格式。对于已发布的集合,一些实施方式可以在对实体邻居的单次扫描中有效生成所述已发布的集合中的每一个中的实体成员资格。所述有效生成可以包括构建用于所述已发布的集合的索引。所述***可以使用所述索引来评估来自所述实体的路径以确定满足哪些集合条件并且生成所述图中的成员资格的指示。
本公开的一个方面能够体现在包括至少一个处理器以及一个或多个存储器的***中。所述一个或多个存储器可以存储包括通过边来连接的实体的数据图以及当由所述至少一个处理器来执行时使得所述计算机***执行操作的指令。所述操作可以包括从所述数据图中确定第一实体集并且确定第二约束集,所述第二集包括一数量的约束,其中所述第二集中的约束表示在所述数据图中由所述第一实体集中的至少两个实体所共享的路径。所述操作也可以包括从所述第二集中的所述约束的组合中生成候选集合,其中每个候选集合定义识别来自所述第二集并且不多于所述一定数量的约束的至少一个约束,并且确定用于所述候选集合定义中的至少一些的信息增益。所述操作包括将所述候选集合定义中的至少一个作为候选集合存储在所述一个或多个存储器中,所述候选集合具有满足阈值的信息增益。
所述***能够包括以下特征中的一个或多个。例如,确定所述第一实体集可以包括从众包的文档语料库中选择类别并且确定由所述类别识别的实体。作为另一示例,确定所述第一实体集可以包括从搜索记录中识别流行查询,将所述流行查询转换成至少一个语义查询,并且针对所述数据图执行所述至少一个语义查询以获取查询结果,其中所述第一实体集是来自所述数据图的所述查询结果。将所述流行查询转换成所述至少一个语义查询可以包括将所述流行查询转换成多个语义查询,针对所述数据图运行所述多个语义查询中的每一个,并且确定多个实体集,所述多个集中的一个集表示响应于所述语义查询中的一个的实体。
作为另一示例,所述指令可以进一步包括当由所述至少一个处理器执行时使得所述计算机***基于与所述候选集合定义的所述约束相关联的来自所述数据图的属性来生成用于所述候选集合定义的集合名称的指令。在一些这样的实施方式中,生成所述集合名称对于与所述候选集合定义相关联的每个约束包括:当所述约束识别关系和客体实体时,确定所述客体实体的名称并且将所述名称变成复数形式,以及当所述约束识别客体实体的关系时,确定用于所述关系的名称。生成所述集合名称也可以包括从对于与所述候选集合定义相关联的所述约束的确定名称的组合中生成所述集合名称。
在一些实施方式中,确定所述第二约束集能够包括生成用于相应约束的相关性分值并且使用所述相关性分值来选择一定数量的约束。在一些实施方式中,所述指令进一步包括当由所述至少一个处理器执行时使得所述计算机***基于搜索记录来对所述候选集合评分并且当所述分值满足分值阈值时发布所述候选集合定义的指令。对所述候选集合评分能够包括从所述候选集合中生成查询,对所述搜索记录检查用于所生成的查询的流行度指示符,并且使用所述流行度指示符来对所述候选集合评分。发布所述候选集合可以发生在对集合名称的综合处理(curation)之后。
作为另一示例,所述指令可以进一步包括当由所述至少一个处理器执行时使得所述计算机***确定第一候选集合定义以及第二候选集合定义兼容并且响应于所述确定而将所述第一候选集合定义以及所述第二候选集合定义合并成第三候选集合定义的指令。确定所述第一候选集合定义以及所述第二候选集合定义兼容可以包括确定用于所述第一候选集合定义的约束等同于用于所述第二候选集合定义的约束并且生成表示用于所述第一候选集合定义的约束以及用于所述第二候选集合定义的约束的并集的用于所述第三候选集合定义的条件。
一个或多个存储器可以进一步存储指示关系等同性的表。在这样的实施方式中,所述指令能够进一步包括使得所述计算机***确定用于所述第一候选的约束是所述表中对于特定等同性的关系并且将用于所述第一候选的约束转换成包括用于所述约束的等同物的第一并集的指令。所述指令能够进一步包括使得所述计算机***确定用于所述第二候选的约束是所述表中对于所述特定等同性的第二关系并且将用于所述第二候选的约束转换成包括用于所述约束的等同物的第二并集的指令。所述指令能够进一步包括使得所述计算机***确定所述第一并集与所述第二并集相同的指令,其中用于所述第三候选的条件表示所述第一并集。
一个或多个存储器可以进一步存储指示用于目标约束的源约束的表。在这样的实施方式中,所述指令能够进一步包括使得所述计算机***确定用于所述第一候选的约束是用于所述目标约束的源约束并且将用于所述第一候选的约束转换成所述目标约束的指令。所述指令能够进一步包括使得所述计算机***确定用于所述第二候选的约束是用于所述目标约束的源约束并且将用于所述第二候选的约束转换成所述目标约束的指令。所述指令进一步包括使得所述计算机***确定所转换的约束是相同的指令,其中用于所述第三候选的条件表示所述目标约束。
在另一方面,一种计算机实现的方法包括使用至少一个处理器从通过边来连接的实体的数据图中确定第一实体集并且确定多个约束,每个约束表示由所述第一实体集中的至少两个实体所共享的路径和目标节点。所述方法也包括使用所述至少一个处理器来生成用于所述多个约束中的每一个的相关性分值并且使用所述相关性分值来为约束集选择一定数量的约束。所述方法进一步包括使用所述至少一个处理器从所述约束集的组合中生成候选集合定义,其中每个候选集合定义识别来自所述约束集并且不多于所述一定数量的约束的至少一个约束,确定用于所述候选集合定义中的至少一些的信息增益,并且将所述候选集合定义中的至少一个作为候选集合存储在存储器中,所述候选集合具有满足阈值的信息增益。
所述方法能够包括以下特征中的一个或多个。例如,确定所述第一实体集可以包括从众包的文档语料库中选择类别并且确定由所述类别识别的实体。作为另一示例,确定所述第一实体集能够包括从搜索记录中识别流行查询,将所述流行查询转换成语义查询,并且针对所述数据图执行所述至少一个语义查询以获取查询结果,其中所述第一实体集是来自所述数据图的所述查询结果。在另一示例中,所述方法也可以包括基于与所述候选集合定义的所述约束相关联的来自所述数据图的属性来生成用于所述候选集合定义的集合名称并且/或者基于搜索记录来对所述候选集合评分并且使用所述分值来优先化所述候选集合以便名称综合处理。在一些实施方式中,所述候选集合是第一候选集合并且所述方法进一步包括确定所述第一候选集合与第二候选集合兼容并且响应于所述确定而将所述第一候选集合与所述第二候选集合合并成第三候选集合定义。
在另一方面,一种计算机***包括至少一个处理器以及一个或多个存储器。所述一个或多个存储器可以存储包括通过边连接的实体、候选集合定义以及指令的数据图,每个集合定义包括一个或多个约束,约束表示所述数据图中的路径,所述指令当由所述至少一个处理器执行时使得所述计算机***执行操作。所述操作可以包括基于与所述候选集合定义的所述约束相关联的来自所述数据图的属性来生成用于所述候选集合定义的第一候选集合定义的名称并且将所述名称作为建议提供给所述候选集合定义的综合处理者。
所述计算机***可以包括以下特征中的一个或多个。例如,生成所述名称对于与所述候选集合定义相关联的每个约束能够包括:当所述约束识别关系和客体实体时,确定所述客体实体的名称并且将所述名称变成复数形式,以及当所述约束识别没有客体实体的关系时,确定所述关系的名称。在这样的实施方式中,生成所述名称也可以包括从对于与所述候选集合定义相关联的所述约束的确定名称的组合中生成所述名称。作为另一示例,所述数据图能够包括用于关系的中介者并且生成用于所述第一候选集合定义的所述名称包括用所述中介者来确定与所述候选集合定义相关联的约束包括所述关系;并且在生成所述名称中使用所述中介者。在一些实施方式中,所述操作也可以包括当确定所述第一候选集合定义不包括具有析取范式的条件时生成所述名称并且/或者基于来自所述数据图的属性来生成至少两个名称并且提供所述至少两个名称作为建议。
在另一方面,一种计算机***包括至少一个处理器以及一个或多个存储器。所述一个或多个存储器可以存储通过边连接的节点的数据图,存储来自集合定义的约束的索引,并且存储当由所述至少一个处理器执行时使得所述***执行操作的指令,其中定义指定具有至少一个约束的至少一个条件,每个约束具有约束类型、约束表达式,并且其中所述定义中的多个条件是合取性的。所述操作可以包括针对所述索引评估所述数据图中节点的边以确定所述边满足的条件以及其相关邻居,并且重复对与所述数据图中的所述节点相关联的每个边进行评估。所述操作也可以包括确定满足用于第一集合的条件并且在所述数据图中生成所述节点是所述第一集合的成员的指示。
所述计算机***能够包括以下特征中的一个或多个。例如,与所述集合定义中的条件相关联的多个约束是析取性的并且/或者所述索引能够包括用于每个约束类型的索引。作为另一示例,对于至少一个约束,所述约束类型能够是模板类型,并且所述约束表达式包括所述数据图中的路径和表示目标节点的变量。在这样的实施方式中,集合标识符可以取决于所述变量的值,使得所述***生成用于唯一目标节点的新集合。作为另一示例,所述存储器可以进一步存储用于每个集合定义的集合条件数据结构,并且所述操作也可以包括在评估所述节点的所述边以指示没有条件满足之前针对所述节点初始化所述集合条件数据结构,以及作为确定所述边满足条件的一部分,当所述边及其相关联的邻居满足第一约束时将用于第一集合条件对的标志设置为真,所述第一集合条件对与所述索引中的所述第一约束的所述约束表达式相关联。
在一些实施方式中,生成所述指示包括在所述数据图中生成所述节点与表示所述第一集合的实体之间的边。在这样的实施方式中,所述指令能够包括使得所述***评估与所述数据图中的多个节点相关联的每个边的批处理,所述评估确定对于所评估节点在多个集合中的集合成员资格,并且在所述数据图中生成集合实体与被确定为由所述集合实体所表示的所述集合的成员的节点之间的边。在这样的实施方式中,所述***也可以包括使得所述***接收对于所述数据图的查询、确定表示所述第一集合的所述实体响应于所述查询并且使用所述数据图中的所述边来提供所述节点作为对所述查询的响应的指令。
作为另一示例,所述操作也可以包括接收对于所述数据图的查询,所述查询识别所述数据图中的所述节点,执行对于与所述节点相关联的每个边的评估以确定所述节点的集合成员资格,并且返回所述节点是其成员的集合。在另一示例中,对于至少一个约束,所述约束类型是Equals类型,并且所述约束表达式包括路径和终端节点,使得对于匹配所述至少一个条件的所述节点,从所述节点开始的路径止于所述目标节点。在一些实施方式中,所述约束表达式包括应用于与所述终端节点相关联的值的函数。在一些实施方式中并且/或者至少一个约束表达式识别不同的集合,所述约束表达式是两个或更多个边的路径,并且/或者在对所述节点的邻居的单次遍历中评估所述节点在每个集合中的成员资格。
在另一方面,一种方法包括使用至少一个处理器针对数据图中的节点初始化第一数据结构,每个第一数据结构对应于特定集合并且包括用于所述集合中的每个条件的第一标志,所述第一标志指示条件满足或者条件不满足。所述方法也包括使用所述至少一个处理器针对所述节点初始化第二数据结构,每个第二数据结构对应于特定集合,其条件具有表示排除的约束,所述第二数据结构包括用于指示发现违反或者未发现违反的所述条件的第二标志。所述方法也包括针对集合索引中的约束表达式评估所述节点的关系及其邻居,并且对于所述关系及其邻居所满足的每个约束表达式,如果所述约束表达式表示包括,则在所述第一数据结构中设置用于集合的与所述索引中的所述约束表达式相关联的条件的第一标志,以指示条件满足,并且如果所述约束表达式表示排除,则在所述第二数据结构中设置用于集合的与所述约束表达式相关联的条件的第二标志,以指示违反发现。所述方法也包括重复所述评估并且对所述节点在所述数据图中的其余关系进行设置。所述方法可以进一步包括:对于每个第二数据结构,确定第二标志是否指示违反未发现,以及在所述第二标志指示违反未发现时,在第一数据结构中设置用于条件的第二标志以及与所述第二标志相关联以指示条件满足的集合。所述方法可以进一步包括:对于每个第一数据结构,确定用于每个条件的所述第一标志是否指示条件满足,以及当用于每个条件的所述第一标志指示条件满足时,生成所述数据图中的关系,该关系指示所述节点是与所述数据结构相对应的所述集合的成员。
所述方法可以包括以下特征中的一个或多个。例如,第一集合的第一条件可以与第一约束和第二约束相关联,并且所述索引针对所述第一集合的所述第一条件能够包括两个实体。所述两个实体中的第一实体可以具有用于与所述第一集合的所述第一条件相关联的所述第一约束的第一约束表达式。所述两个实体中的第二实体可以具有用于与所述第一集合的所述第一条件相关联的所述第二约束的第二约束表达式。在一些实施方式中,所述第一约束具有指示所述第一约束是排他性的约束类型。在一些实施方式中,所述第二约束是模板约束类型并且所述第二约束表达式识别路径和变量。在一些实施方式中,所述第一约束表达式识别另一集合。
在另一方面,一种计算机***可以包括至少一个处理器以及至少一个存储器,该存储器存储由边连接的节点的数据图以及多个集合定义。集合定义可以包括集合标识符以及所述集合中的成员资格应满足的一个或多个条件,条件是单个约束或者一组约束,其中当所述租中的一个约束得到满足时,所述条件得到满足。约束可以具有约束类型以及约束表达式。所述至少一个存储器也可以存储指令,所述指令在由所述至少一个处理器执行时使得所述***生成用于所述多个集合定义的索引,所述集合定义的每个约束具有索引条目。所述索引条目能够包括所述约束类型、所述约束表达式、所述集合标识符以及与所述约束相关联的所述集合内的所述条件的指示。所述索引能够被用于在对所述节点的邻居的单次扫描中确定所述数据图中的节点的集合成员资格。
所述计算机***可以包括以下特征中的一个或多个。例如,所述集合定义可以包括无论是否满足一个或多个条件都将节点识别成包括在所述集合中的白名单和/或无论是否满足一个或多个条件都将节点识别成排除在所述集合之外的黑名单。作为另一示例,所述约束类型能够选自群组Equals、Not Equals、Exists、Not Exists和Template。在一些实施方式中,用于Exists和Not Exists的约束类型的所述约束表达式指定没有目标节点的路径,并且用于Equals和Not Equals的约束类型的所述约束表达式指定具有目标节点的路径。在一些实施方式中,所述约束表达式包括应用于所述目标节点的值函数。作为另一示例,用于Template的约束类型的所述约束表达式指定具有变量的路径。在这样的实施方式中,第一条件能够具有两个约束,第一约束具有Template约束类型以及指定第一路径和第一变量的第一约束表达式,并且第二约束具有Template约束类型以及指定第二路径和所述第一变量的第二约束表达式。
在一个总体方面,一种体现在非暂时性计算机可读存储设备上的计算机程序产品包括当由至少一个处理器执行时使得计算设备执行所公开的方法、操作或者过程中的任何一个。在另一总体方面,一种用于定义实体集合并且有效地为大型数据图中的实体确定集合成员资格的***和/或方法,基本上如附图中的至少一个所示和/或结合附图中的至少一个所述,如权利要求中更完整地阐述。
能够实施本文所述的主题的实施方式中的一个或多个,以便实现下列优势中的一个或多个。作为一个示例,所述***可能够自动识别感兴趣的实体集合。所述***可以使用搜索记录作为可以作为具有渐增或者持续性新闻价值的集合的一部分的实体集合的指示。所述***也可能够自动生成大量集合,对所述集合进行排名以确定哪些可能相对更重要,并且自动发布所述集合以便在所述数据图中使用或者优先化所述集合以便人工贡献者查核。所述***有益地确定实体可以具有哪些共同属性以及提供标签以便概括共同性是什么。集群无法提供这样的细节。所述***也不要求预先存在的标签或者训练数据才能定义潜在有用的集群。
作为另一示例,所述***使用灵活的定义集合的方法并且使得表达性集合能够被定义。作为另一示例,所述***能够有效地确定所述集合中的实体成员资格。例如,可以在不到10毫秒内确定对于具有数十万乃至数百万实体的数据图中的实体的集合成员资格。在另一示例中,所述***可以在time O(实体具有的属性值的数目)内算出实体的集合成员资格。这与嵌套循环形成对照,所述嵌套循环可能花费时间O(实体具有的属性值的数目*集合约束的数目)。这使得集合成员资格能够被实时确定,使得集合成员资格最新并且能够被有效地用于对所述数据图进行查询和分析。在另一示例中,所述***可以通过对所述数据图进行分析以确定潜在的新数据是否隐含在不一致集合中的成员资格,对所述新数据的一致性进行验证。如果是这样,则所述***可以将所述潜在的新数据标记为错误数据。在附图和下面的说明中对一个或多个实施方式的细节进行阐述。从说明书、附图以及权利要求中将显而易见其他特征。
附图说明
图1图示根据一些实施方式的示例***。
图2图示数据图的表示,实体作为节点并且关系作为节点之间的边。
图3图示与所公开的实施方式一致的用于定义集合的灵活方法的示例。
图4图示与所公开的实施方式一致的用于生成发布的集合定义的过程的流程图。
图5图示与所公开的实施方式一致的用于自动生成候选集合的过程的示例。
图6图示与所公开的实施方式一致的用于基于搜索记录来确定用于候选集合的搜索流行度分值的过程的示例。
图7图示与所公开的实施方式一致的用于有效确定集合中实体成员资格的示例过程。
图8图示与所公开的实施方式一致的集合约束的示例索引。
图9图示与所公开的实施方式一致的用于迭代节点的邻居以在一次扫描中确定集合成员资格的示例过程。
图10A和10B图示使用图2的数据图、图3的示例集合320以及图8的示例索引来迭代节点的邻居的示例。
图11示出能够被使用于实现所述技术的计算机设备的示例。
图12示出能够被使用于实现所述技术的分布式计算机设备的示例。
各附图中的相似附图标记指示相同元素。
具体实施方式
图1是根据示例实施方式的***100的框图。***100可以自动识别和定义实体集合并且有效地从大型数据图中的实体中确定发布的集合的成员资格。在图1中对***100的描绘被描述为能够使用搜索记录、因特网资源或者用户输入来识别一组潜在相关的实体、确定候选集合、对候选集合进行评分、综合处理和协调、并且识别质量足以用于发布的集合的***。***可以包括用于促进用户输入的用户界面元素。对于发布的集合,***可以生成用于集合的索引,该索引允许***在对节点的邻居的一次扫描中确定特定节点在每个已发布的集合中的成员资格。***可以生成表示集合的数据图中的集合实体,并且集合实体可以与作为集合成员的每个节点具有特殊关系。因此,***可以利用集合实体来促进查询或者分析。图1的***是一个示例实施方式并且可以使用其他配置和应用。
***100可以包括图引擎110、集合发现引擎120以及集合成员资格引擎150。***100可以是包括数个不同设备的计算***,所述设备例如标准服务器、一组这样的服务器或者机架式服务器***。在一些实施方式中,图引擎110、集合发现引擎120以及集合成员资格引擎150可以是分立的计算设备,或者它们可以共享组件,诸如处理器和存储器。例如,集合发现引擎120、图引擎110以及集合成员资格引擎150可以被实现在个人计算机、服务器或者计算机的一个或多个逻辑分区中。在一些实施方式中,集合发现引擎120、图引擎110以及集合成员资格引擎150中的一个或多个可以是实现于诸如一组服务器的一系列计算设备中的分布式***。***100可以是如图12中所描述的计算机设备1200的示例。
***100可以包括基于图的数据存储190。基于图的数据存储是存储以节点和边形式的信息的数据图,节点通过边相连接。数据图中的节点可以表示实体,诸如人物、地点、项目、理念、主题、抽象概念、具体元素、其他适当事物或者其任意组合。因此,节点可以被称为实体,反之亦然。图中的实体可以通过边而彼此相关,所述边可以表示实体之间的关系。例如,数据图可以具有对应于Abraham Lincoln的实体并且数据图可以具有Abraham Lincoln实体与U.S.President实体和Lawyer实体之间的has profession关系。索引引擎可以保存基于图的数据存储190以允许搜索引擎搜索数据图,例如通过图中的一个或多个关系或者路径来查找与其他实体有关的实体。在一些实施方式中,索引引擎可以被包括在图引擎110中。基于图的数据存储10可以包括索引或者用于从数据存储中搜索和检索数据的一些其他方法。
基于图的数据存储190可以包括信息,由该信息能够创建图,诸如图2中所示的图200。如本文所用,对数据图的引用可以被认为是对用于数据图的索引的引用,反之亦然。数据图的节点可以被称为实体,并且边可以被称为两个实体之间的关系。如本文所用,实体可以指人物、地点或者事物的物理实施例或者物理实体的表示,例如文本或者涉及实体的其他信息。例如,实体可以是France的物理位置或者涉及France的抽象概念。图引擎110可以包括用户界面,该用户界面允许例如客户端170的用户的用户搜索、更新或以其他方式将信息保存在基于图的数据存储190中。图引擎110可以是具有其自己的处理器113和存储器114的分立计算设备,或者它可以与***100的其他组件共享一个或多个处理器和存储器。
***100可以包括爬取的文档137。爬取的文档137可以包括用于在文档语料库内搜索词语或者短语的索引。在一些实施方式中,语料库可以是可通过因特网获取的文档。文档可以包括存储内容的任何类型的文件,诸如声音文件、视频文件、文本文档、源代码、新闻文章、播客、网页、PDF文档、电子数据表等。在一些实施方式中,爬取的文档137可以存储一维倒排列表,该倒排列表包括短语、词语或者文档属性作为倒排列表的值,并且对于每个倒排列表的值存储用于与短语或者词语相关的文档的标识符。尽管用于爬取的文档137的索引已被描述为使用倒排列表,但索引可以具有一些其他的已知或者后期开发的格式。此外,爬取的文档137可以是任何文档集合,包括内网存储库、与特定服务器相关联的文档等。
***100也可以包括搜索记录135。搜索记录135可以包括搜索日志、从查询聚集的聚合数据或者有关先前处理的查询的日期/时间以及搜索项的其他数据。在一些实施方式中,在生成对于针对爬取的文档137执行的查询的搜索结果的正常过程中,搜索记录135可以由搜索引擎(未示出)来生成。
***100也可以包括候选集合130以及发布的集合140。在一些实施方式中,候选集合130以及发布的集合140可以是相同的数据,并且标志或者其他字段可以确定集合是否被发布。因此,集合140可以是集合130的子集,并且这两个集合可能不是不同地存储的集合。在一些实施方式中,候选集合可以被表示为来自不同源的等同集合集。这样的候选集合可以与有关集合的来自不同源的元数据相关联。集合被定义为一系列具有约束的条件。条件、约束以及诸如标识符、名称和元数据的其他数据共同地是集合定义。定义集合的条件和约束可以表示基于图的数据存储190中的实体成为集合成员须满足的条件。集合定义可以具有以合取范式的一个或多个条件。这意味着,针对是集合成员的实体,每个条件须对实体评估为真。条件可以表示单个约束或者两个或更多个约束的并集或者析取。约束与图中的路径相关联。路径通常具有1的长度,但可以具有更长的长度。约束可以是几个类型中的一个,并且类型确定来自特定实体的路径必须存在、必须不存在、必须通向特定目标节点、必须不通向特定目标节点等。约束也可以依据另一集合来定义。换言之,约束可以指定实体必须是还是必须不是某个其他集合的成员。
图3图示与所公开的实施方式一致的用于定义集合的灵活方法的示例。所述方法包括集合定义300,该集合定义300具有描述集合的标识符和名称。名称可以有助于确定集合是否是响应于搜索查询的良好候选或者是否帮助个人综合处理者得出良好名称。在一些实施方式中,集合定义300也可以可选地包括白名单和/或黑名单。白名单是无论条件是否对实体评估为假都是集合成员的那些实体的列表。黑名单是无论条件是否对实体评估为真都不是集合成员的那些实体的列表。集合定义300可以包括一个或多个条件305,诸如图3中所示的条件305a、条件305b以及条件305c。对于认为是集合成员的实体,条件305a、305b和305c须每个对实体评估为真。因此,条件是合取范式。
每个条件305都具有一个或多个约束310。在图3的示例中,条件305a具有约束310a,条件305b具有约束310b和310c,并且条件305c具有约束310d。每个约束310都可以具有相关联的约束类型315。约束类型315可以是五个类型中的一个并且可以确定用于约束的约束表达式的格式。约束表达式可以是数据图中的路径、路径值对或者集合标识符,这取决于约束类型。路径可以是从主体节点开始的任意长度的路径。路径值对的值可以是目标节点,例如路径终止于的节点,或者可以是模板变量,或者应用于目标节点的值函数。
例如,如果约束类型是Exists或者Not Exists,则约束表达式可以是路径。当路径被指定时,路径必须存在于数据图中,但路径结束于的节点不相关,例如对象节点或者目标节点。例如,如果路径是has child,则***可以仅寻找has child关系并且可以不关心子女是何人。对于Not Exists的类型,路径必须不存在于数据图中。如同Exists,目标节点为何无所谓。因此,如果has child关系存在,则该约束会评估为假。
Equals和Not Equals类型分别类似于Exists和Not Exists类型,不同之处在于约束表达式可以是路径值对或者集合。当约束类型是Equals并且约束表达式是路径值对时,路径和目标实体被指定。例如,约束可以指定路径has profession必须终止于lawyer节点。类似地,集合可以使用具有相同路径和目标实体的Not Equals约束类型排除全部律师。对于Equals和Not Equals约束类型的约束表达式也可以包括在评估约束之前应用于目标实体的值函数。例如,值函数可以取日期实体的值并且返回日期的世纪、年代、年份或者月份。然后可以将该返回值与期望值进行比较。作为示例,值函数可以使得日期实体能够被分组在桶(bucket)中—例如“19th centry”或者“1970s”。值函数可以作用于其他类型的实体。例如,值函数可以将州转换成国家或者大洲,另一值函数可以将邮政编码转换成邻里,另一个可以将美元转换成欧元等。Equals和Not Equals类型都能够指定集合来代替用于约束表达式的路径值对。在一些实施方式中,约束表达式可以使用例如“collection”的关键字来指示等号之后的哪一个是集合标识符。因此,如果存在World Leaders集合,则约束可以使用约束表达式“collection=World Leaders”来指定World Leaders集合中的成员资格。如果实体曾是World Leaders集合的成员,则该约束会对Equals类型评估为真。如果约束是NotEquals类型,则约束在实体不是World Leaders集合的成员时评估为真。这一属性允许***运用递归性,产生更简明的定义,而在合取范式内定义集合的过程中保持灵活性。
约束也可以具有Template类型。Template类型类似于Equals,但代替地指定约束表达式中的目标节点,约束表达式包括模板变量。模板变量允许目标节点确定实体属于哪一集合。例如,Template类型的约束可以具有has profession=[prof]的约束表达式。[prof]表示用于捕获目标实体的变量。上面识别的约束将生成用于has profession=Professor的集合、用于has profession=Lawyer的另一集合、用于has profession=Actor的另一集合等。集合定义可以包括两个约束,每一个都是Template类型。例如,以上集合的第二约束可以具有nationality=[ctry]的约束表达式。这可以产生用于FrenchLawyers的一个集合、用于Chinese Professors的另一个、用于German Actors的另一个、用于USA Actors的另一个等。此外,当相同的变量被用于具有OR关系的约束时,例如约束310b和310c,不同的路径能够使用相同的模板变量。因此,在上面的示例中,条件可以具有指定nationality=[ctry]OR citizenship=[ctry]OR born_in=[ctry]的约束。因为相同的模板变量[ctry]被用于每个约束中,所以具有nationality=USA的实体以及具有born_in=USA的实体将被置于相同的集合中。在一些实施方式中,当变量重复时,其在条件内的全部约束上重复,而不是跨条件重复。Template类型也可以使用值函数在评估之前应用于目标实体。因此,指定“birthdate=ExtractDecade([decade])”的路径的具有Template类型的约束可以生成用于所遇的每个年代的不同集合。可以理解的是,上面示例的格式是一个示例,并且鉴于上述公开可以实现其他格式。
Exists、Equals和Template约束类型可以对应于表示包括的约束,因为具有关系的节点以及满足约束表达式的目标节点满足约束。Not Exists和Not Equals约束类型可以对应于表示排除的约束,因为具有关系的节点以及满足约束表达式的目标节点不满足约束。
每个约束都与条件相关联。尽管条件可以具有两个或更多个约束,但与相同条件相关联的约束是析取性的。这意味着,如果满足约束中的任何一个,则满足条件。在图3的示例中,约束310a与条件0(305a)相关联,约束310d与条件2(305c)相关联,并且约束310b和310c均与条件1(305b)相关联。因此,如果约束310b或者约束310c评估为真,则条件1评估为真。这将随后参照图10A和10B来说明。在一些实施方式中,可以以从零开始按次序来识别条件,然而可以使用其他条件标识符。
四个集合的示例被图示为示例集合320。示例集合320可以是发布的集合140或者候选集合130。如示出的示例集合320,约束的路径长度可以长于1。例如,在具有名称“Political Science Lawyers”的集合C1中,条件1中的约束具有长度为2的路径。在该约束中,特定节点当其与某个中间节点具有has_degree的关系时满足约束,并且中间节点具有通向political science节点的emphasis关系。因此,如图所示,用于约束的路径可以具有大于1的长度。集合C2图示具有Template约束类型的集合。因为Template类型生成多个集合,所以集合的名称包括确定集合成员资格的变量。因此,C2集合的名称是“Presidents of[CTRY]”,其中[CTRY]用来自条件1的约束的目标节点的值来替换。如图所示,C2的条件1具有两个约束。因此,集合C2能够使用birth_country关系或者nationality关系来定义[CTRY]变量的值。具有名称“Only Children”的集合C3图示仅具有一个条件以及条件内的一个约束的集合。集合C4图示值函数的使用。在位置1的约束从目标节点的值中提取出世纪,之后将其与值“19th Century”进行比较。假设函数ExtractCentury()会在按birth_date关系与节点相关的日期实体介于1800与1899之间时则返回该值。
返回图1,***100可以包括集合索引145。集合索引145可以使得***能够在一次扫描中遍历实体的邻居,而仍能确定实体在发布的集合140中的每个集合中的成员资格。索引144可以包括用于每种约束类型的索引。用于Exists和Not Exists类型的索引可以指定路径以及与路径相关联的集合/集合对(或者换言之,集合/位置对)。索引可以通过路径或者通过路径的散列来分类。用于Equals和Not Equals类型的索引可以为每个路径/目标节点对指定集合/条件对。Equals和Not Equals索引可以由不是集合标识符并且不是模板的Equals和Not Equals条件约束来生成。用于Member和Not Member类型(例如识别递归集合的约束表达式)的索引可以为每个匹配的集合指定对应的集合/条件对。用于Template类型(例如包括模板变量的约束表达式)的索引可以为每个路径指定对应的集合、条件以及模板变量。集合索引145也可以包括从集合到集合中所用的模板变量列表的映射。集合索引145也可以包括有效地为大型数据图生成实体成员资格所需的其他映射。图8图示集合索引145的示例。
基于图的数据存储190、爬取的文档137、搜索记录135、候选集合130、发布的集合140以及集合索引145被存储在配置成以半永久或者非瞬态的形式来存储数据的有形计算机可读存储设备上,例如磁盘、闪存、高速缓冲存储器或者其组合。在一些实施方式中,基于图的数据存储190、爬取的文档137、搜索记录135、候选集合130、发布的集合140以及集合索引145可以被存储在各种存储器的组合中,并且/或者可以以分布方式存储在多个物理或逻辑计算设备中。
在一些实施方式中,***100可以包括集合发现引擎120。集合发现引擎120可以包括一个或多个处理器123,所述处理器123被配置成执行一个或多个机器可执行指令或者软件、固件及其组合的片段,以自动定义集合并且促进对集合和/或集合名称的用户综合处理。集合发现引擎120可以具有其自己的处理器和存储器,或者它可以与***100的其他组件共享一个或多个处理器和存储器。为了自动生成候选集合130,集合发现引擎120可以分析搜索记录135和/或爬取的文档137,如下将会更详细地阐释。集合发现引擎120也可以允许用户从基于图的数据存储中选择实体集作为生成集合的基础,所述用户诸如客户端170的用户。在一些实施方式中,集合发现引擎120也可以允许用户例如使用用户界面126来直接定义集合、自动编辑已生成的候选集合130、将实体添加到集合的白名单或者黑名单并且将一个或多个候选集合130发布成已发布集合140。在一些实施方式中,集合发现引擎120可以自动选择候选集合130中的一个或多个以便发布成已发布集合140。如上所述,发布候选集合130可以包括设置指示集合被发布的标志或者可以包括事实上将集合定义从候选集合130移动至已发布集合140。在一些实施方式中,集合发现引擎120可以包括针对发布排名和评估候选集合130的排名引擎。集合发现引擎也可以包括针对重复、同义词等评估候选集合并且合并兼容集合的协调引擎。
在一些实施方式中,***100可以包括集合成员资格引擎150。集合成员资格引擎150可以包括一个或多个处理器153,所述处理器153被配置成执行一个或多个机器可执行指令或者软件、固件或其组合的片段,以从发布的集合140中生成集合索引145。集合成员资格引擎150可以具有其自己的处理器和存储器或者它可以与***100的其他组件共享一个或多个处理器和存储器。集合成员资格引擎150可以周期性地生成集合索引145,例如每日一次。在一些实施方式中,集合成员资格引擎150以离线模式生成索引145。集合成员资格引擎150也可以使用基于图的数据存储190来确定发布的集合140中的实体成员资格。集合成员资格引擎150可以在对实体邻居的单次扫描中确定实体的成员资格,使用索引145来针对全部约束评估每个边一次。在一些实施方式中,集合成员资格引擎150可以生成数据图中称为集合实体的新实体,用于表示每个发布的集合以及从模板约束生成的每个集合。集合实体可以在图中被链接至按指示集合中成员资格的关系作为集合成员的实体。在一些实施方式中,集合成员资格引擎150可以确定实体成员资格并且周期性地生成集合实体,例如每日一次。在这样的实施方式中,集合成员资格引擎150可以删除任何集合实体以及表示实体成员资格的关系,生成发布的集合150中的集合的集合实体,针对成员资格评估数据图中的节点,并且生成适当的关系。在其他实施方式中,当集合被发布时,集合成员资格引擎150可以生成集合实体,以及当集合被发布或者实体或其关系发生变化(例如添加、删除或以其他方式更新)时为个体实体,可以生成实体成员资格。在一些实施方式中,***可以响应于查询或者其他命令而生成集合成员资格。查询可以识别实体并且可选地识别待评估实体的邻居。
***100也可以包括简明起见未示出的其他组件。例如,***100可以包括索引引擎以创建和保存基于图的数据存储190和/或爬取的文档137等。索引引擎可以从例如一个或多个服务器中获取内容,并且使用内容来保存基于图的数据存储190和/或爬取的文档137。在一些实施方式中,服务器可以是web服务器、专用网络上的服务器或者索引引擎可访问的其他文档源。索引引擎可以是一个或多个分立的计算设备,使得通过第一组计算设备来保存基于图的数据存储190并且通过第二组计算设备来保存爬取的文档137等。例如,图引擎110可以包括用于基于图的数据存储190的索引引擎并且***100可以包括用于爬取的文档137的另一索引引擎。***100也可以包括搜索引擎,利用常规或者其他信息检索技术,该搜索引擎使用基于图的数据存储190和/或爬取的文档137来确定对于查询的搜索结果。
***100可以与网络160上的客户端170进行通信。网络160可以例如是因特网,或者网络160能够是使用例如网关设备、桥接器、交换机和/或诸如此类来实现的有线或无线局域网(LAN)、广域网(WAN)等。经由网络160,集合发现引擎120或者集合成员资格引擎150可以与客户端170进行通信并且向/自其传送数据。例如,集合发现引擎120可以向客户端170的用户提供用于综合处理的候选集合,并且客户端170的用户可以定义集合、发布集合或者更新候选集合。
自动定义集合
图4图示与所公开的实施方式一致的用于生成发布集合定义的过程的流程图400。过程400可以通过***来执行,诸如图1的***100。***可以使用过程400来自动生成、排名和协调候选集合,并且自动或者半自动综合处理候选集合。在一些实施方式中,***也可以自动发布满足质量阈值的候选集合。质量阈值可以基于几个因素,如下所解释的。在一些实施方式中,过程400可以通过集合发现引擎来执行。
过程400可以开始于***生成候选集合(405)。候选集合可以从搜索记录或者诸如wiki页面的协同文档的分析中或者从来自数据图的用户提供的实体中自动生成。诸如wiki页面的协同文档是由许多人编辑的文档并且能够表示关于对主题的描述的群体一致性。***可以使用启发和元规则来确定哪一集合重要,如下将参照图5进行更详细的解释。候选集合的其他源包括Web表。Web表是在因特网上可获得的文档中发现的表并且可以使用超文本标记语言(HTML)中的<table>标签或者其他类似标记来生成。在Web表示例中,共同列于表中的实体可以被认为是用于分析的实体集。
一旦***识别出候选集合,***可以对候选集合进行排名(410)。对候选集合进行排名可以包括将重要性/流行度分值分配给每个候选集合。该分值可以被用于确定质量分值并且/或者优先化用于人工综合处理过程的集合。***可以基于搜索记录信号、成员实体知名度或者其他信号来生成分值并且可以将分值聚合成总分值。聚合的分值可以是各个分值的加权和。图6图示基于搜索记录信号来生成搜索分值的示例。基于成员实体知名度的成员分值可以表示集合中的重要或者流行实体的数目。每个实体的重要性可以基于对于每个实体保存在数据图中的重要性分值或者来自将数据图中的实体匹配到诸如web页面的文档中对该实体的引用的引擎的对于每个实体的重要性分值。在一些实施方式中,成员分值可以是平均的重要性分值,或者可以是集合中的实体具有满足阈值的重要性分值的百分比。在一些实施方式中,***也可以基于集合的实体出现在因特网上可获得的文档或者一些其他文档语料库中的表或列表中的频率来考虑表的重要性分值。对于具有出现在语料库文档中的表和/或列表的实体的集合,***可以确定实体出现在表/列表中的频率,确定集合中的实体与表/列表的相似程度,并且如果集合与表/列表非常相似,则确定具有表/列表的文档的质量。例如,***可以确定文档的PageRank(页面排名),可以确定由用户导入表/列表的频率等。其他类型的分值可以在确定对于候选集合的排名分值的过程中来考虑。
***可以聚合例如搜索流行度分值、成员分值以及表重要性分值的各个分值来确定总排名分值。总排名分值可以是各个分值的加权和。例如,一些实施方式可以使搜索流行度分值的权重更高,而其他实施方式可以使成员分值的权重更高。具有较高总排名分值的集合可以首选被考虑用于人工名称综合处理。***也可以使用排名分值来确定用于自动发布的质量分值。
***100也可以对候选集合进行协调(415)。兼容的集合可以被合并。当集合等同或者近乎等同时,它们兼容。集合兼容的一种方式是当约束对于两个候选集合相同时。当约束相同时,***可以自动将两个候选集合合并成新的候选集合。当一个集合的约束是用于另一集合的目标约束的源约束时,候选集合也可以兼容。为了识别目标-源关系,***可以包括将目标约束映射至一个或多个源约束的表或者其他数据。例如,源约束可以是“albumrelease type=live album”,并且其目标约束可以是“album content type=livealbum”。作为另一示例,目标约束可以是“book genre=social science”,并且其源约束可以包括“consumer product category=social science books”。在协调期间,***可以将每个源约束转译成目标约束。然后,***可以确定候选集合包括相同的已转译约束并且合并两个集合。在一些实施方式中,当定义被合并时,***将目标-源约束分配给相同的条件,使得可以满足任一约束来满足条件。
在一些实施方式中,当约束等同时,集合兼容。在这样的实施方式中,出于集合定义目的,***可以包括是彼此的同义词的关系或者约束的表。例如,born in可以是nationality的同义词,has profession=author可以是wrote的同义词,playedinstrument X on an album可以是played instrument X in a band的同义词。***可以将具有同义词的每个约束转译成具有一系列析取约束的条件,每个约束表示表中的同义词。如果然后发现一个具有已转译约束的候选集合等同于具有已转译约束的另一候选集合,则***可以合并两个集合,保留具有析取约束的条件。可以删除已被用于生成新的候选集合的两个候选集合。当两个候选集合被合并时,***可以基于两个候选集合的排名分值来计算新合并集合的排名分值。新集合的排名分值可以是两个候选集合的排名分值的平均值,两个候选集合的排名分值中的较高者,或者***可以参照如上步骤410所述来生成新的排名分值。当然,在一些实施方式中,***可以在生成用于候选集合的排名分值之前合并候选集合,重新安排图4中所示的步骤顺序。
***也可以对候选集合进行综合处理(420)。综合处理是指确定集合的名称。在一些实施方式中,***可以自动生成用于候选集合的一个或多个建议名称。自动生成的名称可以被用于候选集合的质量分值、可以被用于向个人贡献者建议名称等。***可以使用应用于约束中的关系值对的属性的启发来建议名称。例如,如果约束包括诸如profession=Jazz Pianist的关系和值,则***可以使用对目标实体的描述的复数形式作为集合的名称,例如Jazz Pianists。数据图中的一些关系具有模式。例如,plays instrument=violin的约束可以产生“violin player”的建议名称,但这并不合适。plays instrument关系可以具有带“musician”描述的模式。***可以使用模式来生成建议名称“violin musicians”。这在谓语具有一个以上属性时可能特别有用,诸如mediator或者Freebase数据图中的复合值类型谓语。
***也可以使用关系的描述作为潜在名称。例如,如果约束指定parent of的路径,则建议的名称可以是“parents”。这在约束是Exists类型时可能有用。如果集合定义具有多个合取约束,则***可以组合为每个约束所选择的描述。例如,如果一个约束是profession=Jazz Pianist并且另一个是citizenship=France,则***可以建议“FrenchJazz Pianists”。在一些实施方式中,名称可以基于期望的类型。例如,集合中的实体可以是单一的实体类型。实体类型(例如Movie或者Person)可以被用于对集合命名。***也可以推断名称也可以从诸如wikis的协作网页的类别或者用于生成集合候选的查询的类名称导出。可以为实体生成多于一个建议名称。***可以选取名称中的一个作为集合名称并且其余者可以是别名。已生成的名称可以被用于计算集合的名称分值。具有数字的名称可以被认为是低质量名称并且与低名称分值相关联。具有大量别名的集合也可以被认为是具有较低质量的名称,原因是存在许多不同的可能性并且对于个人综合处理者选择用于集合的名称可能十分有益。具有个人综合处理的名称的集合可以被认为是具有带高名称分值的高质量名称。因此,很可能不满足用于以自动生成的名称发布的质量阈值的集合可以在个人综合处理之后满足阈值。在一些实施方式中,候选集合在个人综合处理者认可集合名称之前可能始终不满足质量阈值。
***可以确定候选集合是否满足质量阈值(425)。每个候选集合可以具有与质量阈值作比较的质量分值。质量分值是例如来自步骤410的排名分值、来自步骤420的名称分值和/或其他因子的组合。在一些实施方式中,***可以使用自然语言技术来分析集合的名称以确定其是否与实体相关。例如,如果集合的名称是“Chinese Scientists”,例如取自wiki的类别,但集合中的实体不是人物实体,则***可能不会认为候选集合是高质量。因为当前名称有误导性,所以候选集合可能需要个人贡献者来综合处理候选集合的名称,之后***确定其满足质量阈值。
***也可以使用过滤条件来滤除低质量候选,无论排名分值、名称分值或者其他分值如何。例如,***可以滤除尺寸小于最小尺寸的候选集合、大于等同集合的最大数量的集合、小于约束的最小数量的候选集合和/或集合中的实体分数小于实体的最小分数的候选集合。在一些实施方式中,不满足过滤器的候选集合可以被删除,或者可以被分配极低的质量分值。在一些实施方式中,过滤可以发生在候选集合的生成期间,如下参照图5所讨论的。如果候选集合满足质量阈值(425,是),则***可以发布候选集合(430)。可以然后对发布的集合做索引并且自动确定成员资格,如下参照图7-10所述的。过程400然后结束。会理解的是,对于特定的候选集合,过程400的步骤可以发生在一定时间段内。例如,一些候选集合可以在没有个人综合处理的情况下被自动发布,而其他候选集合可以在其被发布之前接收综合处理。这样的候选集合可以在队列中等待综合处理一段时间。队列可以使用候选集合的排名分值或者质量分值,使得更高评分的集合可以被首先综合处理。排名、协调和综合处理候选集合可以彼此独立来执行并且可以以任意顺序来执行。
图5图示与所公开的实施方式一致的用于自动生成候选集合的过程的流程图500。过程500可以通过***的集合发现引擎来执行,作为图4的步骤405的一部分。***可以使用过程500来自动发现在实体集中由实体所共享的共同属性,并且确定哪些共同属性是重要的以及用于定义集合的候选。过程500可以开始使用数个输入中的一个。例如,在一个实施方式中,过程500可以通过从搜索记录中识别流行查询开始(505)。在一些实施方式中,流行查询可以是规律性请求的查询或者在给定时间帧内频繁请求的查询。流行查询的示例是“Tom Hanks movies(汤姆·汉克斯的电影)”。***可以将自然语言查询转换成能够针对数据图执行的一个或多个语义查询(510)。转换可以使用自然语言分析、语义图的分析或者其他已知或以后开发的技术来完成。例如,自然语言查询“Tom Hanks Movies”可以被转换成对“films Tom Hanks acted in(汤姆·汉克斯参演的电影)”、“movies Tom Hanksproduced(汤姆·汉克斯制片的电影)”或者“films Tom Hanks directed(汤姆·汉克斯导演的电影)”等的查询。***可以针对数据图来执行语义查询中的每一个,以确定响应于查询的实体集(515)。每个语义查询可以产生对应的实体集。尽管图5为简明起见图示为一个语义查询审查一个实体集,但会理解的是,可以对每个语义查询执行步骤515和535至550,并且由此每个语义查询可以产生一个或多个候选集合。
在另一示例中,过程500可以通过从诸如wiki网站的协作网站选择类别开始。wiki网站可以包括描述实体的文档并且可以将实体与一个或多个类别相关联。***可以使用类别中的一个并且确定数据图中的哪些实体与该类别相关联(535)。在另一示例中,***可以简单地从用户接收实体集(530)。在一些实施方式中,***可以包括对于集合的白名单中的由用户所指定的每个实体。在一些实施方式中,***可以如下所述对从用户接收的实体集进行分析,以确定能够被使用于将其他实体分组成集合的定义。换言之,从用户提供的实体可以表示用于集合的实体样本。
一旦***具有实体集,***可以确定对于集中的实体的属性值对(535)。属性值对表示由集中的多个实体所共享的路径和目标节点。因为大型数据图可能具有数千或者数十万属性以待评估,在一些实施方式中,一些属性(即关系)可能不会被考虑为属性值对。例如,一些关系可以建模图的元数据,包括有关实体类型和属性的数据,如果属性值的分布无法满足某个标准,诸如熵阈值或者具有字面值,诸如浮点数、日期、整数等,一些属性可能被认知为罕用。***可以忽略这样的属性。此外,***可以忽略通向一些类型的目标实体的路径。例如,***可以忽略复合值类型(CVT)的节点、不具有自然语言名称的节点等。***可以使用基于信息技术理论的度量来测量属性值对与实体集的相关强度并且选择预定数量的属性值对(540)。例如,为了确定相关性统计,***可以使用信息增益和IF-IDF测量或者任何其他已知或以后开发的相关性统计。相关性统计可以考虑实体流行度,使得包括多个流行实体的属性值对接收对相关性统计分值的增加。可以在数据图中跟踪实体流行度。一旦每个值对具有相关性统计,***可以选择属性值对的前4至5个或者某个其他预定数量,以便进一步评估。
***可以评估已选择的属性值对的组合以确定哪些组合与实体集最相关并且具有最高的信息增益(545)。例如,***可以确定所选择的属性值对集的子集并且评估尺寸小于或者等于预定数量的每个子集,所述预定数量例如3个。作为示例,如果预定数量是3并且***已为进一步评估而选择四个属性值对P1、P2、P3和P4,则***可以生成群组{P1,P2,P3,P4}的子集,所述子集具有1至3个成员。换言之,***可以生成子集:{P1}、{P2}、{P3}、{P4}、{P1,P2}、{P1,P3}、{P1,P4}、{P1,P2,P3}、{P1,P3,P4}、{P1,P2,P4}、{P2,P3}等。每个子集表示候选集合。对于每个子集,***可以计算信息增益。***可能偏好较简单的集合,或者换言之具有较少约束的集合。例如,如果集合{P1,P2,P4}具有与集合{P1,P4}相同的信息增益或者相同的共同实体,则***会偏好{P1,P4}多过{P1,P2,P4},原因是P2没有对集合添加值。在一些实施方式中,信息增益可以基于数据图中的实体总数、实体集中的实体数、数据图中满足子集的约束的实体数以及集中满足子集的约束的实体数。下列表1图示对于具有1000000个实体的数据图的上述变量的示例值。会理解的是,简明起见,表1没有包括每一子集组合的值并且***会计算另外子集的值来确定对于每个子集的信息增益:
表1
***可以使用以上的值来计算子集的熵,例如使用公式H(a,b)=(-a log a)-(blog b),其中a=S/T且b=(T-S)/T。***也可以计算满足子集(例如Y/T)以及不满足子集(例如(T-Y)/T)的实体的分布。这些计算可以被用于计算子集的信息增益。例如,子集的信息增益可以通过子集的熵(如上述)减去满足子集的实体的分数与H(X,(Y-X))的积减去不满足子集的实体的分数与H((S-X),(T-Y-S+X))的积来表示。
***可以选择具有满足预定阈值的信息增益的子集。在满足阈值的候选集合中,***可以使用其他测量来删减集合(550)。例如,不满足尺寸阈值的候选集合可以被丢弃,或者满足集合定义的实体的分数小于分数阈值的定义可以被丢弃。可以使用其他类似类型的测量。***可以存储未经删减并且满足信息增益阈值的候选集合作为候选集合。属性值对可以变成候选集合的约束。因此,在这一点上,候选集合具有一至三个条件,每个条件具有一个约束。过程500然后可以结束,具有已生成的候选集合。
图6图示与所公开的实施方式一致的用于基于搜索记录来确定对于候选集合的搜索流行度分值的过程600的示例。过程600可以通过***的集合发现引擎来执行,作为图4的步骤410的一部分。***可以使用过程600来计算用于为候选集合确定总排名分值的搜索流行度分值。搜索流行度分值可以是用于确定总排名分值的几个分值中的一个。***可以通过确定用于候选集合的约束中的关系的表达模式(605)来开始过程600。表达模式可以是基于关系以及其连接的实体的类型的学习模式。例如,如果集合包括约束actor=Tom Hanks,则***可以知道actor关系将电影、戏剧或者电视剧链接至人物。***可以确定用于actor关系的表达模式是“<person><media>”或者“<media><person>”或者“<media>of<person>”或者“<media><person>acted in”等。
***可以然后确定用于关系的描述和描述的同义词以及用于关系的预期主题的目标实体或实体类型(610)。例如,影片、节目和图片可以是电影的同义词,音乐剧可以是戏剧的同义词,并且剧集可以是电视剧的同义词。actor关系可以预期媒体类型作为主体实体以及人物作为客体实体。同义词确定可以包括用于常规搜索***来为搜索提供替选查询的同义词确定。***可以使用这些描述和同义词来生成至少一个伪查询(615)。例如,用于上述示例的伪查询可以是“tom hanks movies”、“tom hanks films”、“shows starring tomhanks”等。如果存在多个约束(620,是),则***可以针对每个约束执行步骤605至615并且将伪查询组合(625)。因此,例如,如果上述示例中的候选集合具有rated=PG的附加约束,则***可以将伪查询组合成“pg rated movies by tomhanks”。
***可以将伪查询与搜索记录进行匹配,以确定流行度/重要性证据,以此来确定用于候选集合的搜索流行度分值(630)。如上参照图4所讨论的,搜索记录可以包括先前提交的搜索查询的数量、频率和新近性的指示。如果伪查询匹配搜索记录中的查询,则***可以使用查询的流行度分值来确定候选集合的搜索流行度分值。在一些实施方式中,***可以对来自匹配查询的分值进行聚集或者平均值。在一些实施方式中,搜索记录可以被注释有对数据图中的实体的引用。这可以帮助消除伪查询或者搜索记录中的歧义字符串。在一些实施方式中,***也可以使用诸如术语在语料库中的频率的其他记录来确定搜索流行度分值。例如,一些***可以对诸如“action movies”的一个或多个词的短语做索引,并且包括短语的文档的数目也可以是流行度的指示。当***已确定候选集合的搜索流行度分值时,过程600结束。
确定集合成员资格
图7图示与所公开的实施方式一致的用于有效确定集合中的实体成员资格的示例过程700。过程700可以通过***的集合成员资格引擎来执行,所述***诸如图1的***100。***可以使用过程700来生成发布的集合的索引并且使用索引来确定每个集合中的实体成员资格。***可以通过获取已定义集合来开始过程700(705)。集合可以是例如使用图4的过程400的自动定义的集合和/或由用户输入的集合。在一些实施方式中,用户也可以编辑自动生成的集合。定义集合可以是持续过程,周期性地自动生成集合并且在任何时间人工输入或更新集合。集合可以被存于库内,诸如图1的发布的集合140。***可以聚集来自集合的集合约束的索引(710)。索引可以包括***用来在对邻居的单次扫描中确定实体的成员资格的几个索引。可以周期性地完成索引的生成,例如每夜,使得新的集合以及对集合的修改可以被索引捕捉。在一些实施方式中,当集合被发布或者修改时,索引可以被更新。
图8图示与所公开的实施方式一致的集合约束的示例索引。如图所示,索引可以包括多个基于约束类型的索引。集合库中的每个约束可以被***约束类型索引中的一个内。例如,索引可以包括用于类型Exists的约束的Exists索引800。该索引可以将约束表达式从路径作为约束表达式的Exists约束映射至与约束相关联的集合/条件对。索引也可以包括Not Exists索引805。该索引可以将约束表达式从Not Exists约束映射至与约束表达式相关联的集合/条件对。在图8所示的示例中,关系parent_of被用于集合C2的第二条件(condition 1)的约束中,关系wrote被用于集合C13的第一条件以及集合C11的第三条件的约束中。Not Exists索引图示了has_sibling关系出现于C3集合的第一条件中。该集合在图3的示例集合320中示出。
索引也可以包括Equals索引810,用于Equals约束类型的约束。Equals索引810可以为Equals类型的约束指定约束表达式以及与那些约束相关联的集合条件对。因此,例如索引810包括has_profession=Lawyer以及has_profession=President的分立条目,因为约束表达式包括目标节点。索引810可以包括任意长度的路径,诸如has_degree.emphasis=Political Science条目,并且可以包括值函数,如由birth_date=ExtractCentury("19th Century")条目所示。索引也可以包括Not Equals索引815,用于Not Equals约束类型的约束。Not Equals索引815可以起到与Equals索引810类似的作用,将约束表达式映射至集合/条件对。然而,该索引指示到目标节点的路径对于要满足的约束而言不应存在于数据图中。
索引也可以包括Member索引820以及Not Member索引825。索引820以及索引825表示集合标识符作为约束表达式的约束。Member索引指定在其他集合中的成员资格(针对索引820)或者无成员资格(索引825)。因此,索引820以及索引825将集合映射至集合/条件对。例如,集合C1的第二条件具有指定集合C3中的成员资格的约束。因此,对于该约束为真而言,正被评估的节点须是集合C3的成员。类似地,索引825图示出集合C19的第一条件指定实体必须不是集合C23的成员。Member索引820以及Not Member索引825表示递归式集合约束。
索引也可以包括Template索引830以及Template Variable索引835。Template索引830将约束表达式映射至对应的集合、条件和模板变量。当针对成员资格来评估节点时,如果节点具有与Template索引830的约束表达式中的路径匹配的路径,则***能够确定该路径属于哪些集合/条件对。***可以然后使用路径结束处的目标节点来确定节点属于哪一集合,如下参照步骤735进行更详细阐释的。Template Variable索引835可以将集合映射至集合中的模板变量的列表。***可以在分析节点的邻居之后使用索引835来生成集合,如下参照步骤735进行更详细阐释的。
返回图7,***可以使用索引来确定实体在发布的集合中的成员资格(715-740)。这可以独立于定义集合以及生成索引来完成,但必须在确定实体的成员资格之前生成索引。***可以确定个体实体的成员资格,作为为数据图中的全部实体确定成员资格的过程的一部分,或者当实体已被修改时,例如在数据图中增加或者删除关系,***可以确定实体的成员资格。在一些实施方式中,***可以在为数据图中的实体确定成员资格之前删除全部集合节点以及用于集合节点的关系。确定成员资格可以使得***再生集合实体及其关系,如下进行更详细阐释的。
在715,***可以初始化用于节点的集合数据结构。数据结构可以包括集合条件数据结构,该集合条件数据结构跟踪节点已满足哪些集合中的哪些条件。在一些实施方式中,集合条件数据结构可以是位向量并且节点可以具有用于每个集合的位向量。对于集合中的每个条件,位向量可以将集合包含为键与标志,例如位(bit)、字节(byte)或者阵列中的位置。例如,在图3的示例320中所示的集合C1可以具有C1→00的集合条件数据结构,每个0表示集合C1中的两个条件之一。图3的集合C2也可以具有数据结构,诸如C2→00,并且集合C3可以具有C3→0的数据结构。会理解的是,集合条件数据结构可以采取各种形式,只要其将集合包括为键和标志或者指示是否满足集合中的每个条件的位即可。***可以初始化集合条件数据结构,使得在任何集合中都没有条件被满足。例如,当使用位向量时,表示条件的位可以被初始化为零。***也可以初始化附加的数据结构。例如,***可以生成TemplateMatching Value数据结构,该数据结构将模板变量映射至在遍历节点邻居期间所遇到的目标节点。因此,例如,当nationality路径通向U.S.A.的目标节点时,***可以将U.S.A.与来自集合C2的模板变量[CTRY]关联。***可以将Template Matching Value结构初始化为空结构。此外,***可以具有用于每个约束的违反数据结构,该违反数据结构具有Not Exists索引或者Not Equals约束类型。违反数据结构可以包括用于Not Exists索引805以及NotEquals索引815中的每个条目的条目。***可以将违反结构初始化成指示未找到违反。
***可以然后通过迭代节点的邻居来扩增数据结构(720)。在一次扫描中完成迭代邻居,如下参照图9进行更详细阐述的。在迭代邻居之后,条件集合数据结构包括Equals、Exists和Template约束已满足哪些条件的指示。***可以然后用来自违反数据结构的信息更新集合条件数据结构。例如,当违反数据结构指示未违反条件时,***可以在集合条件数据结构中设置对应的标志或者位来指示已满足条件。当在集合条件数据结构中的违反的对应标志或者位最初被设置为“不满足”时,不返回任何违反。
***也可以确定对于递归约束的成员资格(730)。***可以使用Member索引和NotMember索引来进一步修改集合条件数据结构。例如,***可以确定被指定为Member索引中的键的集合,使用集合条件数据结构来确定节点是否为该集合的成员,并且如果它是,则为指定在键中的集合设置对应集合/条件对中的位或者标志。例如,使用图8的Member索引820,***可以确定节点是否为集合C3的成员,例如是否用于集合C3的全部条件位或者标志均被设置为真。如果它是,则***可以将用于C10的condition 1的位或者标志设置为真。类似地,使用Not Member索引825,***可以确定节点是否是集合C23的成员,并且如果不是,***可以将集合C19的条件0设置为真。
***可以然后生成数据图中表示节点成员资格的三元组(735)。例如,***可以生成节点与代表集合的集合实体之间的关系,用于集合的集合条件数据结构指示该集合实体已满足全部条件。如果表示集合的实体不存在,则***可以添加实体。图2中的实体Presidents of U.S.A.图示出集合实体的示例。集合实体可以具有由***分配的标识符以及名称,该名称是集合的名称。集合实体与图中的其他实体之间的关系可以是表明集合中的成员资格的特殊关系。
对于包括模板约束的集合,***可以使用Temporary Matching Value数据结构来识别那些集合并且生成正确的关系。如上所指示的,Temporary Matching Value数据结构将集合和模板变量映射至匹配值。诸如图8的索引835的Temporary Variable索引指示多少模板变量存在于集合中。***可以生成用于集合的变量的值的笛卡儿积(Cartesianproduct)。例如,图8的集合C7具有两个模板变量。如果用于集合C7的Temporary MatchingValue数据结构具有用于变量[CITIZ]的值“French”和“German”并且具有用于[JOB]变量的“Actor”、“Writer”和“Tailor”的工作,则***可以生成“French Actor”、“FrenchWriter”、“French Tailor”、“German Actor”、“German Writer”和“German Tailor”的组合。这些组合每个表示集合。因此,扩增Temporary Matching Value数据结构的实体是六个集合的成员。因此,***可以生成实体与六个集合实体的每一个之间的关系,并且生成六个集合实体中先前未存在于数据图中的任何一个。如果存在待确定成员资格的其他节点(740,是),则***可以对下一节点重复步骤715至735。如果没有需确定成员资格的其他节点(740,否),则过程700可以结束。
图9图示与所公开的实施方式一致的用于迭代节点的邻居以在一次扫描中确定集合成员资格的示例过程900。过程900可以通过集合成员资格引擎来执行,作为图7的步骤720的一部分。***可以通过选择节点的邻居内的关系中的一个(905)来开始过程900。关系可以是直接将节点与另一节点连接的任何关系。***可以将关系与Exists索引进行比较(910)。如果Exists索引包括匹配关系的路径,则***可以确定用于Exists索引中路径的集合/条件对。对于每个集合/条件对,***可以将集合条件数据结构中的对应位(或者标志等)标记成满足条件。***也可以将关系与Not Exists索引进行比较(915)。如果关系匹配Not Exist索引中的路径,则***可以确定与Not Exist索引中的路径相关联的集合/条件对。对于相关联的集合,***可以在违反数据结构中将相关联的条件设置为违反。
***可以然后针对关系得到目标节点(920)。目标节点是通过关系连接至原始节点的节点。***可以将关系和目标节点的组合与Equals索引中的约束表达式进行比较(925)。如果Equals索引包括匹配的路径和目标节点,则***可以确定与Equals索引中的路径和目标节点相关联的集合/条件对。对于相关联的集合,***可以在条件集合数据结构中将指示的条件设置为满足。***也可以将关系和目标节点的组合与Not Equals索引进行比较(930)。如果找到匹配的路径和目标节点,则***可以确定与匹配的路径值对相关联的集合/条件对。对于每个相关联的集合,***可以在违反数据结构中将相关联的条件设置为发现违反。***也可以将关系与Template索引进行比较(935)。如果关系匹配来自Template索引中的约束表达式的路径,则***可以确定与匹配路径相关联的集合、条件和模板变量。对于每个相关联的集合,***可以在集合条件数据结构中将相关联的条件标记为满足。对于每个相关联的集合,***也可以在Temporary Matching Value数据结构中生成将来自约束表达式的关联集合和模板变量与目标节点进行映射的条目。
***可以然后迭代目标节点的邻居,将关系与目标节点的关系进行连接(940)。换言之,***可以对目标节点执行过程900,但从目标节点到另一节点的每个关系与从原始节点通向目标节点的关系相连接。因此,例如,如果原始关系是has_degree并且目标节点是JD并且JD节点具有到Harvard的degree from关系,则用于匹配索引的关系是has_degree.degree_from。这允许集合定义包括长度大于1的路径。因此,如图9所用的关系可以指代在第二次迭代上长度大于1的路径。在一些实施方式中,***可以限制迭代的次数。例如,如果目标节点将是四次迭代,则***可以跳过步骤940。在该示例中,仅有长度为3的路径被用于约束。
当***已对目标节点的邻居进行迭代时,***可以确定是否存在与原始节点具有相同关系的另一目标节点(945)。如果另一目标节点确实存在(945,是),***可以使用下一目标节点来重复步骤920至945。如果不存在其他目标节点(945,否),则完成本次迭代并且过程900结束。
图10A和10B图示使用图2的数据图、图3的示例集合320以及图8的示例索引来迭代节点的邻居以确定集合成员资格的示例。简明起见,仅有关于图3的示例集合320的集合C1至C4的索引条目被考虑用于该示例。在图10A至10B的示例中,图2的Barack Obama节点是正被评估的节点,并且可以被称为原始节点。***可以生成用于图3的集合C1、C2、C3和C4中的每一个的集合条件数据结构1000。***也可以生成用于C3集合的条件的违反数据结构1001,原因是其包括Not Exists约束。对于该示例,数据结构将被称作具有用来表示集合的条件的标志,但应理解的是,标志可以是位、数字、符号或者用于跟踪条件满足/不满足状态的任何其他方法。数据结构中的全部标志可以被设置成不满足状态,在该示例中全部为零。***可以选择用于Barack Obama节点的关系,诸如has profession关系(1010)。***可以然后将has profession关系与Exists索引800以及Not Exists索引805进行比较(1012)。索引都不包括has profession关系,所以数据结构保持不变。***然后查看目标节点,在该示例中是Lawyer(1014),并且将has profession=Lawyer的组合与Equals索引810、NotEquals索引815以及Template索引830进行比较。集合C1的condition 0匹配Equals索引810中的关系与目标节点的组合,所以***设置使C1的condition 0对应于条件满足的标志,在该示例为a 1。has profession=Lawyer的组合不具有任何其他索引的匹配,所以***可以对下一目标节点分析has profession关系,President节点(1014)。has profession=President的组合匹配Equals索引810中的实体,所以***从索引810中确定满足集合C2的condition 0以及集合C4的condition0。***将集合条件数据结构1000中的适当标志设置成条件满足。对于has profession关系,组合没有匹配任何其他索引条目并且不存在其他目标节点,所以***选择另一关系。
***选择birth country关系(1016)并且确定该关系是否出现在Exists索引800或者Not Exists索引805中(1016)。没有出现,所以***查看U.S.A.的目标节点(1020)。***在Equals索引810、Not Equals索引815以及Template索引830中查找组合birth country=U.S.A.。***在Template索引830中找到对于集合C2的condition 1的匹配(1020)。***将集合条件数据结构1000中的对应标志设置成条件满足并且在Temporary MatchingValue数据结构1002中生成将C2的模板变量[CTRY]映射至U.S.A.的条目。如图10A所示,C2集合现已满足两个条件,如通过具有条件满足值的两个条件标志来指示。因为没有其他节点具有birth country关系,所以***选择另一关系。
在图10A的示例中,***接下来选择has degree关系(1022)。***将该关系与Exists索引800以及Not Exists索引805进行比较(1024)。没有发现匹配。***然后获取对于关系的目标节点,选择BA节点(1026)。***在Equals索引810、Not Equals索引815以及Template索引830中查找组合has degree=BA。没有发现匹配项。再通过选择BA节点的emphasis关系来检查BA节点的邻居(1028)。检查BA节点的邻居是第二次迭代,所以emphasis关系被连接至第一次迭代的has degree关系。该连接的路经变成***将其与索引中的约束表达式进行比较的关系。***首先在Exists索引800和Not Exists索引805中查找has degree.emphasis路经(1030),但没有发现匹配项。***然后查看对于emphasis关系的目标节点,Political Scienc节点(1032)。***在Equals索引810、Not Equals索引815以及Template索引830中查找has degree.emphasis=Political Science组合。***在Equals索引810中找到对于C1的condition 1的匹配条目。因此,***将在集合条件数据结构1000中的对应标志设置成条件满足。如图所示,C1集合现已让其全部条件满足。PoliticalScience节点没有进一步探查的关系,所以***查看对于BA节点的下一关系,如图10B所示。
在图10B中,***接下来选择BA节点的degree from关系。因为这是第二次迭代,所以该关系与第一次迭代的关系相连接并且***从Exists索引800以及Not Exists索引805中查找has degree.degree from(1036)。没有发现匹配。***然后得到BA节点的degreefrom关系的目标节点Columbia(1038)。***将has degree.degree from=Columbia组合与Equals索引810、Not Equals索引815以及Template索引830中进行比较。没有发现匹配。
***已探查BA节点的邻居并且由此返回至查找对于has degree关系的另一目标节点的第一次迭代。找到另一节点(1040)。***将组合has degree=JD与Equals索引810、Not Equals索引815以及Template索引830进行比较。没有发现匹配。但JD节点具有用来探查的邻居,所以***迭代其邻居。***将degree from关系连接至has degree关系并且在Exists索引800以及Not Exists索引805中查找匹配has degree.degree from的条目(1044)。没有发现匹配项。***得到目标节点Harvard并且在Equals索引810、Not Equals索引815以及Template索引830中查找has degree.degree from=Harvard(1046)。没有发现匹配。
在这一点,***已探查JD节点的邻居,并且原始节点Barack Obama不再有带hasdegree关系的目标节点。因此,***可以选择下一关系has sibling(1048)。***可以在Exists索引800以及Not Exists索引805中查找has sibling关系(1050)。Not Exists索引805具有对于集合C3的condition 0的匹配项。因为该匹配是随同Not Exists索引805,所以***不在集合条件数据结构1000中设置对应标志。替代地,***将违反数据结构1001中的对应标志设置成条件违反,在该情况中是a 1。通过这种方式来跟踪Not Exists以及NotEquals,确保如果Not Exists类型的约束是条件中析取的一部分(例如,独生子女或者最长子女),则仍能通过条件中的其他约束来满足条件。***可以然后得到目标节点Maya并且确定has sibling=Maya组合是否处于Equals索引810、Not Equals索引815或者Template索引830中(1052)。在此没有找到匹配,并且对于Barack Obama节点的全部关系都已被分析,所以***已完成其对邻居的迭代。
在***能够确定对于Barack Obama节点的成员资格之前,***可以使用违反数据结构1001在集合条件数据结构1000中设置附加标志。例如,如果用于集合C3的条件未曾被标记为违反,则***可以将用于集合C3的condition 0的标志设置成条件满足。然而,因为发现违反,所以***没有改变用于集合C3的condition 0的标志。使用集合条件数据结构1000,***可以确定满足用于集合C1和C2的全部条件,原因是用于这些条件的标志全部被设置成条件满足。***可以生成数据图中在Barack Obama节点与集合节点PoliticalScience Lawyers之间的关系。如果数据图不已经包括Political Science Lawyers节点,则其可以生成一个。另外,***可以使用Member索引820以及Not Member索引825来确定C1或C2集合是否处于任一索引中。如果是这样,则***可以适当地设置集合条件数据结构中的附加标志或者附加违反。C2集合包括Template类型的约束。因此,***可以使用来自Temporary Matching Value数据结构1002的值U.S.A.来生成数据图中在Barack Obama节点与集合节点Presidents of U.S.A.之间的关系。如上所指示的,如果该节点不已经存在,则***可以创建它。
便于阅读起见,上述示例通过名称或者描述来引用节点以及关系。应理解的是,不脱离所公开的实施方式,***可以使用数据结构中的其他标识符、索引、约束等。如图所示,***可以在对邻居的一次扫描中确定节点在索引内的每个集合中的成员资格,原因是当遇到路经时,能够将每一路经匹配至来自不同集合的约束。因此,***可以有效地为特大型数据图计算集合的成员资格。还应理解的是,尽管这些示例是针对对于条件使用合取范式的***,但一些实施方式可以使用析取范式,其中条件内的约束是合取性的,对在一次扫描中确定集合成员资格的过程作出适当修改。
图11示出可以与本文所述的技术一起使用的通用计算机设备1100的示例,该计算机设备1100可以是图1的***100和/或客户端180。计算设备1100旨在表示各种示例形式的计算设备,诸如膝上型计算机、桌面型计算机、工作站、个人数字助理、蜂窝电话、智能电话、平板计算机、服务器以及其他计算设备,包括可穿戴式设备。在此所示的组件、其连接和关系以及其功能仅意在作为示例,并不意在限制在该文档中描述和/或要求保护的本发明的实施方式。
计算设备1100包括处理器1102、存储器1104、存储设备1106以及经由接口1108连接的扩展端口1110。在一些实施方式中,计算设备1100可以包括经由接口1108连接的收发器1146、通信接口1144以及GPS(全球定位***)接收器模块1148以及其他组件。设备1100可以通过通信接口1144进行无线通信,该通信接口1144可以在必要时包括数字信号处理电路。组件1102、1104、1106、1108、1110、1140、1144、1146和1148中的每一个都可以被安装在共同的主板上或者适当地用其他方式。
处理器1102能够处理用于在计算设备1100内执行的指令,包括存储在存储器1104中或者存储设备1106上的指令,用于在诸如显示器1116的外部输入/输出设备上显示GUI的图形信息。显示器1116可以是监视器或者平板触屏显示器。在一些实施方式中,可以适当地使用多个处理器和/或多个总线,连同多个存储器以及多种类型的存储器。而且,可以连接多个计算设备1100,每个设备提供所需操作的一些部分(例如,作为服务器阵列、一组刀片服务器或者多处理器***)。
存储器1104存储计算设备1100内的信息。在一个实施方式中,存储器1104是一个或多个易失性存储器单元。在另一实施方式中,存储器1104是一个或多个非易失性存储器单元。存储器1104也可以是另一种形式的计算机可读介质,诸如磁盘或者光盘。在一些实施方式中,存储器1104可包括通过扩展接口提供的扩展存储器。
存储设备1106能够为计算设备1100提供大容量存储。在一个实施方式中,存储设备1106可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或带设备、快闪存储器或其他类似的固态存储器设备、或者设备阵列,包括存储区域网或其他配置中的设备。计算机程序产品能够是以有形方式体现在这样的计算机可读介质中。计算机程序产品也可以包含指令,所述指令在被执行时执行一个或多个方法,诸如上述那些。计算机或者机器可读介质是存储设备,诸如存储器1104、存储设备1106或者处理器1102上的存储器。
接口1108可以是管理对于计算设备1100的带宽密集操作的高速控制器或者管理较低的带宽密集操作的低速控制器,或者这样的控制器的组合。可以提供外部接口1140,以使设备1100能够与其他设备进行近域通信。在一些实施方式中,控制器1108可以被耦合至存储设备1106以及扩展端口1114。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的扩展端口可以被耦合至一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或者例如通过网络适配器的联网设备,诸如交换机或者路由器。
计算设备1100可以通过数种不同方式来实现,如图所示。例如,它可以被实现为标准服务器1130或者多次被实现于一组这样的服务器中。它也可以被实现为机架式服务器***的一部分。此外,它可以被实现于个人计算机中,诸如膝上型计算机1132或者智能电话1136。整个***可以由彼此通信的多个计算设备1100组成。其他配置可行。
图12示出可以与本文所述的技术一起使用的通用计算机设备1200的示例,该计算机设备1200可以是图1的***100。计算设备1200旨在表示各种示例形式的大规模数据处理设备,诸如服务器、刀片服务器、数据处理中心、大型主机以及其他的大规模计算设备。计算设备1200可以是具有多个处理器的分布式***,可能包括网络附接的存储节点,所述存储节点通过一个或多个通信网络互联。在此所示的组件、其连接和关系以及其功能仅意在作为示例,并不意在限制在该文献中描述和/或要求保护的本发明的实施方式。
分布式计算***1200可以包括任意数目的计算设备1280。计算设备1280可以包括在局域或者广域网络、专用光链路、调制解调器、桥接器、路由器、交换机、有线或无线网络等上通信的服务器或者机架式服务器、大型主机等。
在一些实施方式中,每个计算设备可以包括多个机架。例如,计算设备1280a可包括多个机架1258a-1258n。每个机架可以包括一个或多个处理器,诸如处理器1252a-1252n以及1262a-1262n。处理器可以包括数据处理器、网络附接的存储设备以及其他计算机控制的设备。在一些实施方式中,一个处理器可以操作为主处理器并且控制调度以及数据分发任务。处理器可以通过一个或多个机架式交换机1258互联,并且一个或多个机架可以通过交换机1278来连接。交换机1278可以处理多个相连的计算设备1200之间的通信。
每个机架可以包括诸如存储器1254和存储器1264的存储器以及诸如1256和1266的存储。存储1256和1266可以提供大容量存储并且可以包括易失性或者非易失性存储,诸如网络附接的磁盘、软盘、硬盘、光盘、带、快闪存储器或其他类似的固态存储器设备或者设备阵列,包括存储区域网络或者其他配置中的设备。存储1256或1266可以被共享于多个处理器、多个机架或者多个计算设备之间并且可以包括存储可由处理器中的一个或多个执行的指令的计算机可读的介质。存储器1254和1264可以包括例如一个或多个易失性存储器单元、一个或多个非易失性存储器单元和/或其他形式的计算机可读介质,诸如磁盘或关盘、快闪存储器、高速缓冲存储器、随机存取存储器(RAM)、只读存储器(ROM)以及其组合。诸如存储器1254的存储器也可以被共享于处理器1252a-1252n之间。诸如索引的数据结构可以例如跨越存储装置1256与存储器1254被存储。计算设备1200可以包括未示出的其他组件,诸如控制器、总线、输入/输出设备、通信模块等。
诸如***100的整个***可以由彼此通信的多个计算设备1200组成。例如,设备1280a可以与设备1280b、1280c和1280d进行通信,并且这些设备可以被共同称为***100。作为另一示例,图1的***100可以包括一个或多个计算设备1200作为集合成员资格引擎150。另外,计算设备中的一些可以在地理位置上彼此靠近,并且另一些可以在地理位置上远离。***1200的布局仅为示例并且***可以采取其他布置或者配置。
各种实施方式能够包括可在可编程***上执行和/或解释的一个或多个计算机程序中的实施方式,所述可编程***包括可以是专用或者通用的至少一个可编程处理器,所述可编程处理器被耦合至存储***、至少一个输入设备以及至少一个输出设备以从其接收数据和指令并且向其发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言和/或以汇编/机器语言来实现。如本文所用,术语“机器可读介质”、“计算机可读介质”是指任何非易失性计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器(包括随机存取存储器(RAM)和只读存储器(ROM)、可编程逻辑设备(PLD)),用于向可编程处理器提供机器指令和/或数据。
本文所述的***和技术能够在包括后端组件(例如数据服务器)、包括中间件组件(例如应用服务器)、包括前端组件(例如具有图形用户界面或者web浏览器的客户端计算机,用户能够通过该客户端计算机与本文所述的***和技术的实施方式交互)或者这样的后端、中间件或前端组件的任意组合的计算***中来实现。***的组件能够通过数字数据通信的任何形式或者介质(例如通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)以及因特网。
计算***能够包括客户端和服务器。客户端和服务器通常彼此远程并且典型地通过通信网络来交互。客户端与服务器的关系通过在相应的计算机上运行并且相互具有客户端-服务器关系的计算机程序来发生。
已对数个实施方式进行了描述。然而,在不脱离本发明的精神和范围的情况下,可以作出各种修改。此外,在附图中描绘的逻辑流程不要求所示的特定顺序或者序列顺序才能获得理想结果。此外,可以提供其他步骤,或者可以从所述的流程中取消一些步骤,并且可以向所述的***中添加其它组件或者自其移除组件。因此,其他实施方式在所附权利要求的范围内。
Claims (25)
1.一种用于在表示语义网络的基于图的数据存储中自动创建实体集合的计算机***,包括:
至少一个处理器;以及
一个或多个存储器,所述一个或多个存储器存储:
数据图,所述数据图包括通过边连接的实体,以及
指令,所述指令在由所述至少一个处理器执行时使得所述计算机***执行操作,所述操作包括:
从所述数据图中确定第一实体集,
确定第二约束集,所述第二约束集包括一定数量的约束,其中所述第二约束集中的每个约束识别约束类型并且识别在所述数据图中由所述第一实体集中的至少两个实体共享的至少一条边的路径,
从所述第二约束集中的所述约束的组合中生成一个或多个候选集合定义的列表,其中所述列表中的每个候选集合定义识别以合取范式的来自所述第二约束集的至少一个约束,
通过丢弃具有未能满足阈值的信息增益的候选集合定义来删减所述列表,并且
将在所述列表中的至少一个候选集合定义作为候选集合存储在所述一个或多个存储器中,所述候选集合具有满足所述阈值的信息增益并且所述候选集合的定义用于确定所述数据图中的属于所述候选集合的实体。
2.如权利要求1所述的***,其中,确定所述第一实体集包括:
从众包的文档语料库中选择类别;以及
确定通过所述类别识别的实体。
3.如权利要求1所述的***,其中,确定所述第一实体集包括:
从搜索记录中识别流行查询;
将所述流行查询转换成至少一个语义查询;以及
针对所述数据图执行所述至少一个语义查询以获取查询结果,其中所述第一实体集是从所述数据图得到的所述查询结果。
4.如权利要求3所述的***,其中,将所述流行查询转换成至少一个语义查询包括:
将所述流行查询转换成多个语义查询;
针对所述数据图运行所述多个语义查询中的每一个;以及
确定多个实体集,所述多个实体集中的一个集表示响应于所述多个语义查询中的一个语义查询的实体。
5.如权利要求1所述的***,其中,所述操作进一步包括:
基于与所述至少一个候选集合定义的所述约束相关联的来自所述数据图的属性来生成用于所述至少一个候选集合定义的集合名称。
6.如权利要求5所述的***,其中,生成所述集合名称包括:
对于与所述候选集合相关联的每个约束:
当所述约束识别关系和客体实体时,确定所述客体实体的名称并且将所述名称变成复数形式,或者
当所述约束识别没有客体实体的关系时,确定所述关系的名称;以及
从为与所述候选集合相关联的所述约束确定的名称的组合中生成所述集合名称。
7.如权利要求1所述的***,其中,确定所述第二约束集包括:
生成用于相应约束的相关性分值;以及
使用所述相关性分值来选择所述一定数量的约束。
8.如权利要求1所述的***,其中,所述操作进一步包括:
确定第一候选集合定义以及第二候选集合定义是兼容的;以及
响应于所述确定而将所述第一候选集合定义以及所述第二候选集合定义合并成第三候选集合定义。
9.如权利要求8所述的***,其中,确定所述第一候选集合定义以及所述第二候选集合定义是兼容的包括:
确定用于所述第一候选集合定义的约束等同于用于所述第二候选集合定义的约束;以及
生成表示用于所述第一候选集合定义的所述约束以及用于所述第二候选集合定义的所述约束的并集的、用于所述第三候选集合定义的条件。
10.如权利要求9所述的***,其中,所述一个或多个存储器进一步存储指示关系等同性的表并且其中所述操作进一步包括:
确定用于所述第一候选集合定义的所述约束是所述表中的用于特定等同性的关系;
将用于所述第一候选集合定义的所述约束转换成包括用于所述第一候选集合定义的所述约束的等同物的第一并集;
确定用于所述第二候选集合定义的所述约束是所述表中的用于所述特定等同性的第二关系;
将用于所述第二候选集合定义的所述约束转换成包括用于所述第二候选集合定义的所述约束的等同物的第二并集;以及
确定所述第一并集与所述第二并集是相同的,
其中用于所述第三候选集合定义的所述条件表示所述第一并集。
11.如权利要求9所述的***,其中,所述一个或多个存储器进一步存储指示用于目标约束的源约束的表并且其中所述操作进一步包括:
确定用于所述第一候选集合定义的所述约束是用于所述目标约束的源约束;
将用于所述第一候选集合定义的所述约束转换成所述目标约束;
确定用于所述第二候选集合定义的所述约束是用于所述目标约束的源约束;
将用于所述第二候选集合定义的所述约束转换成所述目标约束;以及
确定用于所述第一候选集合定义和所述第二候选集合定义的所转换的约束是相同的,
其中,用于所述第三候选集合定义的所述条件表示所述目标约束。
12.如权利要求1所述的***,其中,所述操作进一步包括:
基于搜索记录对所述候选集合评分来获得分值;以及
当所述分值满足分值阈值时,发布所述候选集合。
13.如权利要求12所述的***,其中,对所述候选集合评分包括:
从所述候选集合中生成查询;
对于所述搜索记录检查用于所生成的查询的流行度指示符;以及
使用所述流行度指示符来对所述候选集合评分。
14.如权利要求12所述的***,其中,发布所述候选集合发生在对集合名称的综合处理之后。
15.一种用于在表示语义网络的基于图的数据存储中自动创建实体集合的方法,包括:
使用至少一个处理器从通过边连接的实体的数据图中确定第一实体集;
确定多个约束,每个约束识别约束类型并且识别目标节点和来自所述第一实体集中的至少两个实体的通向所述目标节点的至少一条边的路径;
使用所述至少一个处理器来生成用于所述多个约束中的每一个的相关性分值;
使用所述多个约束的所述相关性分值来为约束集选择一定数量的约束;
使用所述至少一个处理器从所述约束集中的所述约束的组合中生成一个或多个候选集合定义的列表,其中所述列表中的每个候选集合定义识别以合取范式的来自所述约束集的至少一个约束;
通过丢弃具有未能满足阈值的信息增益的候选集合定义来删减所述列表;以及
将在所述列表中的至少一个候选集合定义作为候选集合存储在存储器中,所述候选集合具有满足所述阈值的信息增益。
16.如权利要求15所述的方法,其中,确定所述第一实体集包括:
从众包的文档语料库中选择类别;以及
确定通过所述类别识别的实体。
17.如权利要求15所述的方法,其中,确定所述第一实体集包括:
从搜索记录中识别流行查询;
将所述流行查询转换成语义查询;以及
针对所述数据图执行所述语义查询以获取查询结果,其中所述第一实体集是来自所述数据图的所述查询结果。
18.如权利要求15所述的方法,进一步包括:
基于与所述至少一个候选集合定义的所述约束相关联的来自所述数据图的属性来生成用于所述至少一个候选集合定义的集合名称。
19.如权利要求15所述的方法,其中,所述候选集合是第一候选集合并且所述方法进一步包括:
确定所述第一候选集合以及第二候选集合是兼容的;以及
响应于所述确定而将所述第一候选集合以及所述第二候选集合合并成第三候选集合。
20.如权利要求15所述的方法,进一步包括:
基于搜索记录对所述候选集合评分来获得分值;以及
使用所述分值来优先化所述候选集合以便名称综合处理。
21.一种用于在表示语义网络的基于图的数据存储中自动创建实体集合的计算机***,包括:
至少一个处理器;以及
一个或多个存储器,所述存储器存储:
数据图,所述数据图包括通过边连接的实体,
一个或多个候选集合定义的列表,所述列表中的每个候选集合定义包括以合取范式的一个或多个约束,约束识别约束类型并且识别在所述数据图中的路径,以及
指令,所述指令在由所述至少一个处理器执行时使得所述计算机***执行操作,所述操作包括:
基于由所述列表中的第一候选集合定义所识别的路径的属性,生成用于所述第一候选集合定义的名称,以及
将所述名称作为建议提供给所述列表的综合处理者。
22.如权利要求21所述的***,其中,生成所述名称包括:
对于与所述第一候选集合定义相关联的每个约束:
当所述约束识别关系和客体实体时,确定所述客体实体的名称并且将所述名称变成复数形式,或者
当所述约束识别没有客体实体的关系时,确定用于所述关系的名称;以及
从为与所述第一候选集合定义相关联的所述约束确定的名称的组合中生成所述名称。
23.如权利要求21所述的***,其中,所述数据图包括用于关系的中介者并且生成用于所述第一候选集合定义的所述名称包括:
确定与所述第一候选集合定义相关联的约束包括与所述中介者的所述关系;以及
在生成所述名称中使用所述中介者。
24.如权利要求21所述的***,其中,所述生成所述名称包括:
当确定所述第一候选集合定义不包括具有析取约束的条件时,生成所述名称。
25.如权利要求21所述的***,其中,所述操作进一步包括:
基于来自所述数据图的属性来生成至少两个名称并且提供所述至少两个名称作为建议。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/001213 WO2015051480A1 (en) | 2013-10-09 | 2013-10-09 | Automatic definition of entity collections |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105706078A CN105706078A (zh) | 2016-06-22 |
CN105706078B true CN105706078B (zh) | 2021-08-03 |
Family
ID=52777820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380080179.XA Active CN105706078B (zh) | 2013-10-09 | 2013-10-09 | 实体集合的自动定义 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9454599B2 (zh) |
EP (1) | EP3055786A4 (zh) |
CN (1) | CN105706078B (zh) |
WO (1) | WO2015051480A1 (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US20120309363A1 (en) | 2011-06-03 | 2012-12-06 | Apple Inc. | Triggering notifications associated with tasks items that represent tasks to perform |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
CN104969289B (zh) | 2013-02-07 | 2021-05-28 | 苹果公司 | 数字助理的语音触发器 |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
CN105431839A (zh) * | 2013-03-15 | 2016-03-23 | 罗伯特·哈多克 | 具有提供对知识的一步访问的自适应用户接口的智能互联网*** |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
WO2015020942A1 (en) | 2013-08-06 | 2015-02-12 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US20180053114A1 (en) * | 2014-10-23 | 2018-02-22 | Brighterion, Inc. | Artificial intelligence for context classifier |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
WO2015184186A1 (en) | 2014-05-30 | 2015-12-03 | Apple Inc. | Multi-command single utterance input method |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US20160055427A1 (en) | 2014-10-15 | 2016-02-25 | Brighterion, Inc. | Method for providing data science, artificial intelligence and machine learning as-a-service |
US20150032589A1 (en) | 2014-08-08 | 2015-01-29 | Brighterion, Inc. | Artificial intelligence fraud management solution |
US20150066771A1 (en) | 2014-08-08 | 2015-03-05 | Brighterion, Inc. | Fast access vectors in real-time behavioral profiling |
US10657178B2 (en) * | 2014-08-22 | 2020-05-19 | Hewlett Packard Enterprise Development Lp | Processing of a generate entity type graph component of a graph analysis system |
US10990881B1 (en) * | 2014-08-26 | 2021-04-27 | Progress Software Corporation | Predictive analytics using sentence data model |
US10474680B2 (en) * | 2014-10-09 | 2019-11-12 | Splunk Inc. | Automatic entity definitions |
US20160063502A1 (en) | 2014-10-15 | 2016-03-03 | Brighterion, Inc. | Method for improving operating profits with better automated decision making with artificial intelligence |
US11080709B2 (en) | 2014-10-15 | 2021-08-03 | Brighterion, Inc. | Method of reducing financial losses in multiple payment channels upon a recognition of fraud first appearing in any one payment channel |
US10546099B2 (en) | 2014-10-15 | 2020-01-28 | Brighterion, Inc. | Method of personalizing, individualizing, and automating the management of healthcare fraud-waste-abuse to unique individual healthcare providers |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US20160283523A1 (en) * | 2015-03-24 | 2016-09-29 | International Business Machines Corporation | Schema generation using natural language processing |
US20180130006A1 (en) | 2015-03-31 | 2018-05-10 | Brighterion, Inc. | Addrressable smart agent data technology to detect unauthorized transaction activity |
US10037388B2 (en) * | 2015-04-27 | 2018-07-31 | Microsoft Technology Licensing, Llc | Fast querying of social network data |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US20160350421A1 (en) * | 2015-06-01 | 2016-12-01 | Boyd Cannon Multerer | Personal searchable document collections with associated user references |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US10769140B2 (en) * | 2015-06-29 | 2020-09-08 | Microsoft Technology Licensing, Llc | Concept expansion using tables |
CA2991905C (en) | 2015-07-10 | 2020-04-28 | Whether or Knot LLC | Systems and methods for electronic data distribution |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US9959311B2 (en) * | 2015-09-18 | 2018-05-01 | International Business Machines Corporation | Natural language interface to databases |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
US10423652B2 (en) * | 2016-08-08 | 2019-09-24 | Baidu Usa Llc | Knowledge graph entity reconciler |
US20180060417A1 (en) * | 2016-08-08 | 2018-03-01 | Dialectica, Llc | Dialectical information architecture |
US9836183B1 (en) * | 2016-09-14 | 2017-12-05 | Quid, Inc. | Summarized network graph for semantic similarity graphs of large corpora |
JP6310532B1 (ja) * | 2016-11-24 | 2018-04-11 | ヤフー株式会社 | 生成装置、生成方法、及び生成プログラム |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
DK201770429A1 (en) | 2017-05-12 | 2018-12-14 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK201770411A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | MULTI-MODAL INTERFACES |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US20180349472A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Methods and systems for providing query suggestions |
US10789425B2 (en) * | 2017-06-05 | 2020-09-29 | Lenovo (Singapore) Pte. Ltd. | Generating a response to a natural language command based on a concatenated graph |
US10534592B2 (en) * | 2017-08-07 | 2020-01-14 | Sap Se | Template expressions for constraint-based systems |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
RU2688250C1 (ru) * | 2018-08-14 | 2019-05-21 | Илья Александрович Шарков | Способ отображения содержимого персональной базы данных на экране эвм |
CN110866389B (zh) * | 2018-08-17 | 2021-12-17 | 北大方正集团有限公司 | 信息价值评估方法、装置、设备及计算机可读存储介质 |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11025489B2 (en) * | 2019-05-23 | 2021-06-01 | Cisco Technology, Inc. | Automated discovery of manual configuration changes |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
DK201970510A1 (en) | 2019-05-31 | 2021-02-11 | Apple Inc | Voice identification in digital assistant systems |
US11227599B2 (en) | 2019-06-01 | 2022-01-18 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
CN110781354B (zh) * | 2019-10-24 | 2022-06-10 | 北京齐尔布莱特科技有限公司 | 一种对象选择方法、装置、***及计算设备 |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11183193B1 (en) | 2020-05-11 | 2021-11-23 | Apple Inc. | Digital assistant hardware abstraction |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
CN114297411B (zh) * | 2022-03-08 | 2023-05-02 | 支付宝(杭州)信息技术有限公司 | 知识图谱中实体的配置方法、分析方法及装置 |
CN114692644B (zh) * | 2022-03-11 | 2024-06-11 | 粤港澳大湾区数字经济研究院(福田) | 一种文本实体标注方法、装置、设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645361A (zh) * | 2005-01-26 | 2005-07-27 | 上海大学 | 广义归约的装置与方法 |
CN101101551A (zh) * | 2007-08-03 | 2008-01-09 | 中国科学院软件研究所 | 一种自动创建过程主体的方法 |
CN101305366A (zh) * | 2005-11-29 | 2008-11-12 | 国际商业机器公司 | 从非结构化文本提取和显现图表结构化关系的方法和*** |
CN101515287A (zh) * | 2009-03-24 | 2009-08-26 | 崔志明 | 一种用于复杂页面的包装器自动生成方法 |
CN101587493A (zh) * | 2009-06-29 | 2009-11-25 | 中国科学技术大学 | 文本分类方法 |
CN101630314A (zh) * | 2008-07-16 | 2010-01-20 | 中国科学院自动化研究所 | 一种基于领域知识的语义查询扩展方法 |
CN101999119A (zh) * | 2008-04-01 | 2011-03-30 | 雅虎公司 | 用于输入识别和完成的技术 |
CN102262658A (zh) * | 2011-07-13 | 2011-11-30 | 东北大学 | 一种基于实体的自底向上Web数据抽取方法 |
CN102332009A (zh) * | 2011-09-02 | 2012-01-25 | 北京大学 | 一种大规模数据集上的关系查询方法 |
CN102349072A (zh) * | 2009-01-30 | 2012-02-08 | 谷歌公司 | 识别查询方面 |
US8145626B2 (en) * | 2008-12-31 | 2012-03-27 | Sap Ag | Method and system for data processing using multidimensional filtering |
CN102750316A (zh) * | 2012-04-25 | 2012-10-24 | 北京航空航天大学 | 基于语义共现模型的概念关系标签抽取方法 |
CN102999563A (zh) * | 2012-11-01 | 2013-03-27 | 无锡成电科大科技发展有限公司 | 基于资源描述框架的网络资源语义检索方法及*** |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128613A (en) * | 1997-06-26 | 2000-10-03 | The Chinese University Of Hong Kong | Method and apparatus for establishing topic word classes based on an entropy cost function to retrieve documents represented by the topic words |
US6167370A (en) | 1998-09-09 | 2000-12-26 | Invention Machine Corporation | Document semantic analysis/selection with knowledge creativity capability utilizing subject-action-object (SAO) structures |
US7925610B2 (en) | 1999-09-22 | 2011-04-12 | Google Inc. | Determining a meaning of a knowledge item using document-based information |
US8051104B2 (en) | 1999-09-22 | 2011-11-01 | Google Inc. | Editing a network of interconnected concepts |
US6665863B1 (en) * | 2000-05-31 | 2003-12-16 | Microsoft Corporation | Data referencing within a database graph |
US7502770B2 (en) | 2001-04-11 | 2009-03-10 | Metaweb Technologies, Inc. | Knowledge web |
US6946715B2 (en) * | 2003-02-19 | 2005-09-20 | Micron Technology, Inc. | CMOS image sensor and method of fabrication |
US7765206B2 (en) | 2002-12-13 | 2010-07-27 | Metaweb Technologies, Inc. | Meta-Web |
JP5068996B2 (ja) | 2003-04-04 | 2012-11-07 | ヤフー! インコーポレイテッド | サブドメインヒントによる検索及びサブドメイン単位のスポンサー付き結果提供を組み込んだ検索結果生成のシステム |
US7769579B2 (en) | 2005-05-31 | 2010-08-03 | Google Inc. | Learning facts from semi-structured text |
US7587387B2 (en) | 2005-03-31 | 2009-09-08 | Google Inc. | User interface for facts query engine with snippets from information sources that include query terms and answer terms |
US7774328B2 (en) | 2006-02-17 | 2010-08-10 | Google Inc. | Browseable fact repository |
WO2007100834A2 (en) * | 2006-02-27 | 2007-09-07 | The Regents Of The University Of California | Graph querying, graph motif mining and the discovery of clusters |
JP5028847B2 (ja) | 2006-04-21 | 2012-09-19 | 富士通株式会社 | 遺伝子間相互作用ネットワーク分析支援プログラム、該プログラムを記録した記録媒体、遺伝子間相互作用ネットワーク分析支援方法、および、遺伝子間相互作用ネットワーク分析支援装置 |
US8122026B1 (en) | 2006-10-20 | 2012-02-21 | Google Inc. | Finding and disambiguating references to entities on web pages |
US8204856B2 (en) | 2007-03-15 | 2012-06-19 | Google Inc. | Database replication |
US20100121839A1 (en) | 2007-03-15 | 2010-05-13 | Scott Meyer | Query optimization |
US7672937B2 (en) | 2007-04-11 | 2010-03-02 | Yahoo, Inc. | Temporal targeting of advertisements |
US8069127B2 (en) * | 2007-04-26 | 2011-11-29 | 21 Ct, Inc. | Method and system for solving an optimization problem with dynamic constraints |
US7822774B2 (en) | 2007-06-11 | 2010-10-26 | Microsoft Corporation | Using link structure for suggesting related queries |
US20090094211A1 (en) | 2007-10-05 | 2009-04-09 | Fujitsu Limited | Implementing an expanded search and providing expanded search results |
CN100470554C (zh) * | 2007-11-09 | 2009-03-18 | 清华大学 | 在大规模社会网络中基于路径评分的个人关系发现方法 |
US7792837B1 (en) | 2007-11-14 | 2010-09-07 | Google Inc. | Entity name recognition |
WO2009154570A1 (en) * | 2008-06-20 | 2009-12-23 | Agency For Science, Technology And Research | System and method for aligning and indexing multilingual documents |
US20100185994A1 (en) | 2008-08-14 | 2010-07-22 | Pikus Fedor G | Topological Pattern Matching |
US8370128B2 (en) | 2008-09-30 | 2013-02-05 | Xerox Corporation | Semantically-driven extraction of relations between named entities |
WO2010085523A1 (en) | 2009-01-21 | 2010-07-29 | Metaweb Technologies, Inc. | Graph store |
US8145636B1 (en) * | 2009-03-13 | 2012-03-27 | Google Inc. | Classifying text into hierarchical categories |
US9141911B2 (en) * | 2009-05-29 | 2015-09-22 | Aspen Technology, Inc. | Apparatus and method for automated data selection in model identification and adaptation in multivariable process control |
CN101996287B (zh) | 2009-08-13 | 2012-09-05 | 财团法人资讯工业策进会 | 恶意软件清除方法及*** |
US8583673B2 (en) | 2009-08-17 | 2013-11-12 | Microsoft Corporation | Progressive filtering of search results |
US9195905B2 (en) | 2010-03-10 | 2015-11-24 | Siemens Aktiengesellschaft | Method and system for graph based interactive detection of curve structures in 2D fluoroscopy |
US8782080B2 (en) * | 2010-04-19 | 2014-07-15 | Facebook, Inc. | Detecting social graph elements for structured search queries |
US8180804B1 (en) * | 2010-04-19 | 2012-05-15 | Facebook, Inc. | Dynamically generating recommendations based on social graph information |
US8732208B2 (en) * | 2010-04-19 | 2014-05-20 | Facebook, Inc. | Structured search queries based on social-graph information |
US8751521B2 (en) * | 2010-04-19 | 2014-06-10 | Facebook, Inc. | Personalized structured search queries for online social networks |
KR101781416B1 (ko) * | 2010-06-22 | 2017-09-25 | 아브 이니티오 테크놀로지 엘엘시 | 관련 데이터세트의 처리 |
US8533225B2 (en) * | 2010-09-27 | 2013-09-10 | Google Inc. | Representing and processing inter-slot constraints on component selection for dynamic ads |
US8725739B2 (en) * | 2010-11-01 | 2014-05-13 | Evri, Inc. | Category-based content recommendation |
US9116995B2 (en) * | 2011-03-30 | 2015-08-25 | Vcvc Iii Llc | Cluster-based identification of news stories |
US20120317088A1 (en) * | 2011-06-07 | 2012-12-13 | Microsoft Corporation | Associating Search Queries and Entities |
JP5866922B2 (ja) | 2011-09-22 | 2016-02-24 | 富士ゼロックス株式会社 | 検索装置及びプログラム |
US20130212081A1 (en) * | 2012-02-13 | 2013-08-15 | Microsoft Corporation | Identifying additional documents related to an entity in an entity graph |
US20140025702A1 (en) * | 2012-07-23 | 2014-01-23 | Michael Curtiss | Filtering Structured Search Queries Based on Privacy Settings |
CN102880687B (zh) * | 2012-09-14 | 2015-07-29 | 北京大学 | 基于标签技术的个人交互数据检索方法及其*** |
WO2015051481A1 (en) | 2013-10-09 | 2015-04-16 | Google Inc. | Determining collection membership in a data graph |
-
2013
- 2013-10-09 WO PCT/CN2013/001213 patent/WO2015051480A1/en active Application Filing
- 2013-10-09 CN CN201380080179.XA patent/CN105706078B/zh active Active
- 2013-10-09 EP EP13895222.1A patent/EP3055786A4/en not_active Withdrawn
-
2014
- 2014-02-21 US US14/186,320 patent/US9454599B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645361A (zh) * | 2005-01-26 | 2005-07-27 | 上海大学 | 广义归约的装置与方法 |
CN101305366A (zh) * | 2005-11-29 | 2008-11-12 | 国际商业机器公司 | 从非结构化文本提取和显现图表结构化关系的方法和*** |
CN101101551A (zh) * | 2007-08-03 | 2008-01-09 | 中国科学院软件研究所 | 一种自动创建过程主体的方法 |
CN101999119A (zh) * | 2008-04-01 | 2011-03-30 | 雅虎公司 | 用于输入识别和完成的技术 |
CN101630314A (zh) * | 2008-07-16 | 2010-01-20 | 中国科学院自动化研究所 | 一种基于领域知识的语义查询扩展方法 |
US8145626B2 (en) * | 2008-12-31 | 2012-03-27 | Sap Ag | Method and system for data processing using multidimensional filtering |
CN102349072A (zh) * | 2009-01-30 | 2012-02-08 | 谷歌公司 | 识别查询方面 |
CN101515287A (zh) * | 2009-03-24 | 2009-08-26 | 崔志明 | 一种用于复杂页面的包装器自动生成方法 |
CN101587493A (zh) * | 2009-06-29 | 2009-11-25 | 中国科学技术大学 | 文本分类方法 |
CN102262658A (zh) * | 2011-07-13 | 2011-11-30 | 东北大学 | 一种基于实体的自底向上Web数据抽取方法 |
CN102332009A (zh) * | 2011-09-02 | 2012-01-25 | 北京大学 | 一种大规模数据集上的关系查询方法 |
CN102750316A (zh) * | 2012-04-25 | 2012-10-24 | 北京航空航天大学 | 基于语义共现模型的概念关系标签抽取方法 |
CN102999563A (zh) * | 2012-11-01 | 2013-03-27 | 无锡成电科大科技发展有限公司 | 基于资源描述框架的网络资源语义检索方法及*** |
Non-Patent Citations (2)
Title |
---|
Entity Summarisation with Limited Edge Budget on Knowledge Graphs;Marcin Sydow 等;《Proceedings of the International Multiconference on Computer Science and Information Technology Date of Conference》;20110106;第513-516页 * |
大规模图上标签集约束路径的集合查询;包佳佳 等;《计算机科学》;20130430;第40卷(第4期);第172-176,192页 * |
Also Published As
Publication number | Publication date |
---|---|
US9454599B2 (en) | 2016-09-27 |
US20150100568A1 (en) | 2015-04-09 |
WO2015051480A1 (en) | 2015-04-16 |
EP3055786A1 (en) | 2016-08-17 |
CN105706078A (zh) | 2016-06-22 |
EP3055786A4 (en) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105706078B (zh) | 实体集合的自动定义 | |
Brickley et al. | Google Dataset Search: Building a search engine for datasets in an open Web ecosystem | |
US8996559B2 (en) | Assisted query formation, validation, and result previewing in a database having a complex schema | |
US20150100605A1 (en) | Determining collection membership in a data graph | |
US8285702B2 (en) | Content analysis simulator for improving site findability in information retrieval systems | |
US20150095303A1 (en) | Knowledge Graph Generator Enabled by Diagonal Search | |
CN108509543B (zh) | 一种基于Spark Streaming的流式RDF数据多关键词并行搜索方法 | |
Feicheng et al. | Utilising social network analysis to study the characteristics and functions of the co-occurrence network of online tags | |
Zhang et al. | Temporal data representation and querying based on RDF | |
Quoc et al. | An elastic and scalable spatiotemporal query processing for linked sensor data | |
IL248313A (en) | Research on data-driven preference and semantic processing | |
KR20110133909A (ko) | 모든 자연어 표현의 각각의 의미마다 별도의 용어를 동적으로 생성하는 방법 및 이를 기반으로 하는 사전 관리기,문서작성기, 용어 주석기, 검색 시스템 및 문서정보체계 구축장치 | |
Lin et al. | Entity retrieval in the knowledge graph with hierarchical entity type and content | |
Song et al. | Multi-domain ontology mapping based on semantics | |
Li et al. | Aggregate nearest keyword search in spatial databases | |
Zhao et al. | A citation recommendation method based on context correlation | |
Liu et al. | Development and application of massive unstructured big data retrieval technology based on cloud computing platform | |
Pokorný et al. | Graph pattern index for Neo4j graph databases | |
Li et al. | Research on hot news discovery model based on user interest and topic discovery | |
Bodra | Processing queries over partitioned graph databases: An approach and it’s evaluation | |
Goyal | Qp-subdue: Processing queries over graph databases | |
Yang et al. | Retaining knowledge for document management: Category‐tree integration by exploiting category relationships and hierarchical structures | |
Micsik et al. | Exploring publication metadata graphs with the LODmilla browser and editor | |
CN109446440B (zh) | 深网查询接口集成方法、***、计算设备及存储介质 | |
Saoud et al. | Exploiting social annotations to generate resource descriptions in a distributed environment: Cooperative multi-agent simulation on query-based sampling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |