本公开总体上涉及一种用于划分(partition)知识图的方法,并且更具体地涉及一种用于划分包括多个节点和边的知识图的计算机实现的方法。本公开进一步涉及用于划分知识图的相关系统以及计算机程序产品。
背景技术:
在认知计算中,知识图用于存储和处理信息。知识图包括存储在网格和边的顶点或节点上的事实(从不同源收集),也被称为存储事实、节点、顶点之间的关系的链接。边可具有描述关系的性质和/或强度的相关属性。
就计算操作而言对知识图执行的第一和最前面的操作是搜索操作。通过研究已经广泛学习了并行化图形搜索的概念。用于在知识图中搜索的传统并行化方法基于当满足特定条件(例如,足够数量的边源自搜索路径的当前点)时拆分搜索过程。当运行并行线程时,必须控制搜索路径的交叉/合并,并且并行化开销必须不能超过性能增益。
然而,这种并行化搜索请求的方法不考虑来自先前搜索的结果。使用静态算法独立地执行每个搜索。该算法不考虑在其上执行搜索的知识图的特定结构。
代替定义用于将过程分割成在整个知识图上运行的子过程的规则,需要替代方法以便提高性能和准确性。
存在与用于划分知识图的计算机实现的方法有关的若干公开。
文件us2018/0052884a1公开了将自然语言用户输入处理成用于进行物品推荐的更正式的、机器可读的结构化查询表示。用户输入的分析通过由描述不同用户与电子市场相对频繁发生的先前交互的类别、属性和属性值构建的知识图来协调。知识图具有定向边,每个定向边具有基于从用户行为模式计算的类别/属性/属性值交互的条件概率的分数值,基于所述市场中的历史买家行为模式的用户查询与结构化数据之间的关联,来自可供卖家购买的物品的元数据用于更好地定义买家的要求,和/或所接收的映射到库存相关数据的天气、位置/地点、场合和物品的世界知识,用于生成用于进一步用户输入的相关提示。
文件us2018/0144424a1描述了用于查询多个医疗保健相关知识图的方法和系统。该方法包括基于基于关键字的查询从多个医疗相关知识图接收一组医疗相关响应子图。对子图进行排序并生成新的子图。
已知解决方案的缺点可能是以下事实:所提出的方法对于此类活动而言或多或少是静态的、域特异性的和/或缺乏并行性。
技术实现要素:
根据本公开的一个方面,可提供一种用于划分知识图的计算机实现的方法。知识图可以包括多个节点和多条边,其中边可以链接节点中所选择的节点。该方法可以包括分析一组过去的搜索并且基于此确定知识图中多条边中的每一条边的访问频率,并且将知识图中具有最高访问频率的预定义百分比的边标记为中间集群核。
该方法可以还包括根据标记的中间集群核—即相应的边—的访问频率对标记的中间集群核进行排序,选择中间集群核中具有最高访问频率的第一集群核作为中间集群核,以及在第一集群核周围以预定的第一半径分配第一边,其中第一集群核和第一边构建第一集群。
此外,该方法可以包括:选择除了第一集群的边之外具有最高访问频率的中间集群核作为第二集群核,以及在第二集群核周围以预定义的第二半径分配第二边,其中第二集群核和第二边构建第二集群,以及将知识图划分为包括第一集群的第一子知识图和包括第二集群的第二子知识图。
根据本公开的另一方面,可提供一种用于划分知识图的系统。知识图可以包括多个节点和多条边,其中边可以链接节点中所选择的节点。该系统可以包括分析单元,该分析单元被适配成用于分析一组过去的搜索并且基于该分析单元确定该知识图表中的该多条边中的每一条边的访问频率,标记单元,被适配成将所述知识图中具有最高访问频率的预定义百分比的边标记为中间集群核,排序模块,用于将标记的中间集群核按照其访问频率进行排序。
此外,该系统可以包括选择单元,该选择单元被适配成用于选择具有最高访问频率的中间集群核作为第一集群核,并且在第一集群核周围以预定义的第一半径分配第一边,其中第一集群核和第一边构建第一集群。选择单元还被适配成选择除了第一集群的边之外具有最高访问频率的中间集群核作为第二集群核,并且第二集群核周围以预定义的第二半径分配第二边。第二集群核和第二边可构建第二集群。
此外,该系统可以包括分区模块,该分区模块被适配成用于将知识图划分为包括第一集群的第一子知识图和包括第二集群的第二子知识图。
所提出的用于划分知识图的计算机实现的方法,可提供多个优点和技术效果:
通过将大且复杂的知识图(逻辑上)分离成子知识图或子图,可以更快地执行这样的过程,从而导致对用户查询的更短的响应时间。本地搜索引擎可以从已经接收到搜索请求的全局搜索引擎分叉,而不是在相同的大型知识图中启动若干搜索过程——如通过已知技术所完成的。本地搜索引擎可主要使用逻辑上分离的子图中的仅一者来执行。这可降低对一个单个知识图上的不同搜索过程之间的交互进行管理的要求。另外,还可能在不同子图中搜索不同主题。此外,如果搜索路径到达子图的边界,即集群,则本地搜索引擎的搜索过程可以被切换到可在其他子图上操作的并行本地搜索引擎。这可以减少当并行搜索引擎对单个大型知识图进行操作时维持冲突处理机制的努力。
在对知识图进行分区之后,可以更容易地将各个子图置于一致状态(即,提交所有排队操作);在此之后,整个知识图可被设置成一致的状态以用于例如更容易的归档。这可允许更有效的方法来备份和归档一个子图而不是完整的知识图。而且,当独立地在子图上执行而不是在整个知识图上执行它们时,对于更新(即,写入)操作,可以实现更高的性能,这些更新操作也可能需要队列-提交周期。
在下文中,将描述本发明构思的附加实施例。
根据实施例,该方法包括以迭代方式选择附加的中间集群核,每个中间集群核具有除了已经构建的集群(例如,先前选择的集群)的边之外的最高访问频率,以及在附加的中间集群核的每一个周围以相应预定义半径分配相应边,其中附加的中间集群核和相应边中的每一个构建另一集群。所以,所提出的概念可以容易地扩展,以将原始的整个知识图分割或划分成多个子知识图或知识子图。
根据该方法的一个可能的实施例,第一半径、第二半径和相应的半径可各自为围绕相应集群核的预定路径长度。在该版本中,可以为其他集群核创建或多或少的径向和对称的保护区域。
根据该方法的一个实施例,第一半径、第二半径和对应半径可以各自是这些边的访问频率的倒数值的总和的预定义路径长度值。这样的方法可以阻止更多的边在搜索更频繁地遍历的区域中变成另一个集群核。这样,群集可以沿着频繁的搜索路径形成,而不是圆形,并且因此提高用于稍后的搜索请求的性能。
根据实施例,该方法还可以包括:针对每个边——除了每个边的其他属性和属性值之外——维持访问计数器值,该访问计数器值可以在每次搜索路径穿过该边时递增。每个平均值的另一个属性可以是表示穿过相应边的搜索路径的访问频率的维持的分数值。计数器和分数的拆分可能看起来是多余的;然而,这可能具有显著的优点,因为可以对最近的搜索给予更多的重点。
根据一个进一步有利的实施例,该方法还可以包括基于访问计数器值在时间上定期更新分数值,并且将访问计数器值重置为零。该方法可以应用分数,该分数将更大的权重置于通过边的最近的搜索路径遍历上,并且将较小的权重置于较早的搜索路径遍历上。作为示例,新分数可被计算为当前分数除以2以及当前计数器除以2。以此方式,当前计数贡献50%,前一周期的计数贡献25%,前一周期的计数贡献12.5%等。由此,对知识图表中的此类请求的动态自适应反应可被直接实现。
根据该方法的一个有用实施例,划分知识图还可以包括确定两个相邻集群核(例如,两个相邻集群的集群核)之间的最短路径,其中,所述最短路径是沿着相应路径的相应边的访问频率的最低总和的路径,将在所确定的最短路径上具有最低访问频率的边标记为在相邻集群(例如,对应于两个相邻集群核的两个相邻集群)之间的割点(cut-point)—其可以被切换为边的附加属性,以及重复所述确定最短路径的步骤和将边标记为割点的步骤,直到所述相邻集群之间不存在没有包括所述割点标记的边的路径。因此,两个子图可以相当简单的方式彼此分离。它还表示分离子图的动态方式,因为可以反映过去搜索的实际访问频率而不是使用静态方法来划分知识图。
根据一个后续有利实施例,该方法还可以包括,
在接收到对知识图的新搜索请求时(即,在分区之后),将本地搜索引擎分配给子知识图中的每一个,将新搜索请求传递到分配给子知识图的本地搜索引擎中的每一个,并且
由所述本地搜索引擎在所述子知识图中并行地执行所述新的搜索请求。使用算法可以自由地选择任何起始点用于在相应子知识图中的搜索。然而,可应用特殊规则以选择用于子图中的搜索的最合适起始点。
根据进一步和随后的有利实施例,该方法还可以包括在链接到相应集群核的核处在相应子知识图中的每一个子知识图中开始新的搜索请求。这可改进子图中的搜索过程的性能,且因此,最初接收的搜索请求,因为在最靠近子图的中心的节点中的一者(即,过去具有高存取频率的相应集群中心)中具有快速命中的概率可能过高。
根据进一步有利的实施例,该方法还可以包括:如果相应的搜索路径越过子知识图边界,则将本地搜索引擎的搜索线程从本地搜索引擎传递至另一个子知识图中的另一个本地搜索引擎。以此方式,即使搜索路径遍历经划分的子图之间的边界,本地搜索引擎的搜索过程的并行性也可继续。这是可能的,因为相关边缘没有被真正移除,而是仅被标记为切割点。
此外,实施例可以采取相关计算机程序产品的形式,该相关计算机程序产品可从计算机可用或计算机可读介质访问,该计算机可用或计算机可读介质提供用于由计算机或任何指令执行系统使用或与其结合使用的程序代码。出于本说明的目的,计算机可用或计算机可读介质可为可包含用于存储、传达、传播或传输供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用的程序的装置的任何设备。
附图说明
应注意的是,参考不同的主题描述了本公开的实施例。特别地,一些实施例参考方法类型权利要求来描述,而其他实施例参考装置类型权利要求来描述。然而,本领域的技术人员将从以上和以下说明中得出,除非另有说明,除了属于一种类型的主题的特征的任何组合之外,还涉及不同主题的特征之间的任何组合,特别是方法类型权利要求的特征之间的任何组合,以及装置类型权利要求的特征被视为公开在本文件内。
以上限定的方面以及本公开的其他方面从下文中有待描述的实施例的示例中是清楚的并且参考实施例的示例进行解释,但是本公开并不限于这些实施例的示例。
将仅通过示例的方式并且参考以下附图来描述本公开的一些实施例:
图1示出了用于划分知识图的本发明的计算机实现的方法的实施例的框图。
图2示出了具有集群核的知识图的一部分的实施例的框图。
图3示出了在对子图进行划分的第一步骤中的知识图的实施例的框图。
图4示出了在对子图进行划分的第二步骤中的知识图的实施例的框图。
图5示出了在对子图进行划分的第三步骤中的知识图的实施例的框图。
图6示出了在对子图进行划分的第四和第五步骤中的知识图的实施例的框图。
图7示出了所公开的用于划分知识图的系统的实施例的框图。
图8示出了包括根据图7的系统的计算系统的实施例的框图。
具体实施方式
在本说明书的上下文中,可以使用以下惯例、术语和/或表达式:
术语“知识图”可以表示网络数据结构,包括事实-在节点中表示-和边-表示节点之间的连接或链路。由此,知识图可表示用于组织所谓的非结构化数据(即,事实)及其语义关系的知识库。搜索引擎经常使用知识图。边可以通过相关属性来表征,例如,描述两个连接的节点之间的链路的强度。也可以使用其他属性,如访问计数器等。可以使用唯一标识符(id)来管理边和节点。
术语“划分知识图谱”可以表示将最初完整的知识图谱分离成至少两个或更多个通常不重叠的部分知识图谱的活动。然而,该分离意味着逻辑分离或虚拟分离,在某种意义上,各个边未从原始完整的知识图中完全移除。然而,裁剪的相应边被标记为包括裁剪点作为平均值的附加属性。因此,搜索算法可以在其搜索过程期间经由子图的逻辑边界或边界的相应边从节点到节点交叉。划分知识图的结果可以被表示为子知识图,或者简称为子图。
因此,子图是与整个或原始知识图分离(逻辑上或虚拟地)的节点集。子图包括连接至节点的所有边,还包括通过以上提及的划分方法“逻辑移除”的边(即,包括a点)。
术语“过去搜索”可以表示过去针对各种不同搜索请求的知识图的搜索路径的信息。各个信息可以包括诸如起点(即,搜索过程的起始节点)、访问最终结果的边以及最终执行请求和递送结果的处理时间的信息。
术语“访问频率”-具体地,边的访问频率-可以表示在知识图谱中的多个搜索过程期间搜索过程已经访问特定边的次数。由此,访问频率可以用作访问计数的同义词。每次搜索过程遍历一条边,相关的访问计数器加1。所以边的属性访问频率实际上可以由访问计数器值来表示。
术语“中间集群核”可以表示知识图谱中的多个边,所述知识图谱可能已经被确定为在分析之后示出对应边的最高访问频率。因为记录了知识图谱中每条边的访问频率-例如,作为边的附加属性-其可以是容易确定的。所有边是具有最高访问频率的边。然后,可以将预定义的边百分比-例如,根据访问频率的边的排序列表中的前5%(其他百分比数量是可能的)-定义为中间集群核。生成这种方式可能是有用的,中间集群核的数量显著高于完整知识图应被划分成的集群的数量。
术语“第一集群核”可以表示所有中间集群核中具有最高数量的访问频率的中间集群核。如果两条边示出了相同数量的访问频率,则随机过程可以决定两条边中的哪条边可以被选择为第一集群核。
术语“第二集群核”可以表示在中间集群核的列表中具有第二高访问频率的边。然而,这可能仅在具有第二高访问频率的边不位于第一集群核周围的保护区中(即,在第一集群核周围的半径内)的情况下发生。然而,第二集群核可以被选择为除了第一子图的成员(即,第一集群核和在围绕第一集群核的半径内的所有节点)之外具有最高访问频率的边。
术语“半径”可以表示围绕集群核的预定义或动态确定的物理或逻辑半径。
术语“访问计数器值”可以表示在搜索请求的执行期间每当搜索过程可以使用特定边时可以增加的边的属性。
术语“分数值”可以表示针对也反映时间作为附加参数的访问计数器值的测量。分数值还可以被实现为边的附加属性。在对边的较新访问可以被给予较高权重的意义上,分数值可以表示“前置式”访问计数器值。
术语“最短路径”可以表示代表从源节点到目的节点的最短跳数的节点和边的组合。作为跳数确定的一部分,还可以在计数中反映边(和/或节点)的加权因子。这里使用的加权因子可以是边的访问频率。由此,源节点与目的节点之间的最短路径可以被定义为长路径的访问频率的总和。
术语“割点”可以表示边标记的属性,该属性在逻辑上标记从一个节点到另一个节点的边或链路已经被虚拟地切割或移除。割点基本上标记子图的外边界。
术语“新搜索请求”可以表示在将知识图划分为子图之后的搜索请求。
术语“本地搜索引擎”可以表示在计算意义上执行子图中的搜索请求的过程。子图可以是这里公开的划分过程的结果。
术语子图的“重叠区”可以表示在构成至多预定义数量的k条边的路径上可以到达并且不是子图本身的一部分的所有节点的集合。特定节点可在若干重叠区内。
在下文中,将给出附图的详细描述。附图中的所有说明都是示意性的。首先,给出用于划分知识图的本发明的计算机实现的方法的实施例的框图。之后,将描述进一步的实施例以及用于划分知识图的系统的实施例。
图1示出了用于对知识图进行划分的计算机实现的方法100的实施例的框图。知识图包括多个节点和多条边,其中边链接节点中所选择的节点。边可具有多个属性,并且节点可包括事实。
方法100包括分析一组过去的搜索(102),并且基于此确定知识图表中的多个边中的每个边的访问频率(104)。在知识图谱中的搜索可能已经从不同节点开始;基本上,搜索路径在搜索期间就其访问频率(即,访问计数器值)来分析。
方法100将知识图中具有最高访问频率的边(不是节点)的预定义百分比(例如,5%)标记为中间集群核(106),将标记的中间集群核,即所述边,根据它们的访问频率排序(具体地,使用列表)(108),以及将具有最高访问频率的边选择为所述中间集群核的第一集群核(110),以及在围绕所述第一集群核的预定义的第一半径中分配第一边,其中所述第一集群核和所述第一边构建所述第一集群(112)。对于半径规格,可以使用不同的方法。
此外,方法100包括将除了所述第一群集的边之外具有最高访问频率的边选择为中间集群核的第二集群核(114),以及分配围绕所述第二集群核心的预定义的第二半径中的第二边,其中所述第二集群核和所述第二边构建所述第二集群(116),以及将知识图划分为包括第一集群的第一子知识图以及包括第二集群的第二子知识图(118)。
图2示出了具有集群核的知识图200的一部分的实施例的框图。具体地,示出了来自过去搜索的一组边上的搜索路径频率的示范性分布。顶点的节点被示为圆形元素,其中一些具有附图标记(例如,202、204、206、208)。该图作为两个场景的示例:首先,搜索从用点标记的节点202开始。其次,搜索在图中所示的节点集合之外开始,并且搜索路径遍历图中所示的节点。虚线指示到图中未示出的其他顶点的边。
这些链路(即,节点之间的边)被示出为直线。边旁的数字示出边的示范性搜索路径频率。该参数将由知识图谱管理系统作为边的单独属性来管理。所以,节点202与节点204之间的访问频率在边210处已经为10;又如,节点202和节点206之间的访问频率为5,节点206和208之间的访问频率为2。图2中所示的外围节点处的虚线指示知识图甚至进一步扩展。然而,还可见的是,节点202和204之间的边是具有最高访问频率(即,10)的边。因此,如果假设这些节点是集群,则该边可以看作所示节点的集群核。
识别集群核的一般方法按以下方式执行:系统将搜索路径最频繁出现的边的预定义量(例如,5%,其他可能的值)的唯一识别号(id)存储在列表中。该列表按照搜索路径中的访问频率自上而下排序。
最频繁边(即,主要边)形成第一子图的中心。在主要边的预定义半径中的边的id被从列表中移除或被标记为不在列表中进一步反映。在一个实现方式中,半径被定义为路径长度,即边的数量(忽略边的任何其他属性)。在另一个实现方式中,半径被定义为每条边的搜索频率的倒数值的和。后一种方法移除了搜索更频繁遍历或访问的区域中的更多边。这样,群集沿着频繁的搜索路径形成,而不是圆形。
半径涉及知识图的总大小。例如,对于具有被划分成10个子图的106个节点(即,每个区域大约105个顶点)的知识图,100的半径将是合理的。在半径被选择为相对大的情况下,知识图的边缘上的子图形的中心将是有利的。小半径导致识别整个知识图的中心中的子图的中心。
在移除或阻挡主要边周围(半径内)的边的id之后,将列表顶部的边识别为第二子图的中心(即,次要边)。然后,将位于次边的预定义半径中的边的id从列表中移除或者标记为不用于下一集群中心。还可以注意到,从集群到集群中心,半径可以变化,例如减小。这将反映出在搜索中,高阶/低阶主导集群中心的遍历程度不如之前识别的那些集群中心/边。
该过程被迭代(例如,用变化的参数执行两次或更多次或者渐进地排除节点或边)直到已经识别了与预定义数量的子图一样多的边(即,集群中心)。在一些实施例中,一旦边或集群中心的数量等于子图的预定义数量,该过程可以停止。尽管被描述为基于终止与预定义数量的子图的匹配值,但是在一些实施例中,
图3示出了在对子图进行划分的第一步骤中的知识图300的实施例的框图。
所公开的划分知识图的方法重复两个步骤:1.)确定两个中心之间的最短路径,其中路径长度被定义为每条边的搜索频率的总和。2.)在该路径中移除具有最低搜索频率的边。
该方法开始于将整个知识图300分成两部分,将包括主要边302的部分与包括次要边304的部分分开。迭代以上两个步骤,直到不存在将主要边302与次要边304连接的任何路径。
该方法随后将知识图300中包括主要边302的部分与包括第三边306的部分以及与被识别为子图的中心的所有其他边分开。出于识别目的,相应集群中心的主要边302、次要边304和第三边306(例如,边302、304、306)在图3中被标记为相应节点之间的粗线。
然后,该方法将次要边304与第三边306分离,以此类推,直到整个知识图谱300被分割成子图谱的完整集合(即,待确定的预定义子图的数目)。
以下实例以更详细的步骤示出了该方法。图3中的访问的搜索路径数(即,搜索过程使用此边的次数)是说明性的并且不一定相加以形成遍历与先前图中所示的顶点类似的所有顶点的搜索路径。
在本示例中,如以上解释的,已经使用列表和排序方法将三条边302、304、306识别为子图的集群中心(例如,集群中心302、304、306)。主子图和次子图之间的最短路径308具有18的长度,即,边的访问频率的总和。首先对具有最低搜索频率(即,1)的边310进行切割标记。
图4示出了在对子图进行划分的第二步骤中的知识图300的实施例的框图。在移除第一边(图3,310)之后,最短路径402现在具有长度20。接着,具有访问频率1的边404被切割标记。
图5示出了在对子图进行划分的第三步骤中的知识图300的实施例的框图。在这种情况下,集群中心302和304之间的最短路径沿着虚线502延伸。沿着该路径,仅连接两个集群中心302和304的边是边504。该边504接下来得到切割标记。由此,已经沿着边310、404和504切割标记了原始完成的连接的知识图300。
图6示出了在对子图进行划分的第四和第五步骤中的知识图300的实施例的框图。这样,在图3至图5的上下文中讨论,边604和606也被切割标记。因此,第四步骤中集群中心302和304之间的最短路径沿着线602横穿。可以注意到,出于可理解的原因,附图中未示出所有切割标记的边;可以说,它们已经被虚拟地移除。被切割标记的边606最终将集群中心302周围的子集群与最初完整的知识图300的剩余左侧部分分离。
在该示例性部分知识图300的最终步骤中,边608将被切割标记(或虚拟地移除)以便将集群中心304周围的子图与具有集群中心306的子图分离。
如已经变得可理解的:划分成子图应被理解为逻辑构造或虚拟切割子图之间的边。既不采取副本也不移动或移除数据,而是将子图的节点标记为相应子图的成员且接收针对所述子图定义的索引编号。
在描述更多硬件相关方面之前,可考虑搜索的一些方面:原则上,取决于知识图的结构和搜索操作,可在一个节点处或在整个知识图的若干笔记上开始搜索。在后一种情况下,搜索在每个子图的一个节点上开始。
在多核计算机或多线程处理器上,搜索过程通常分布在核或线程上。这样,整个知识图被映射在底层硬件上。根据子图的构造,过程主要停留在子图中。
在每个子图中,本地搜索过程可以被分割成若干并行过程,即通过派生和结束子进程。
然而,如果搜索过程是离开子图并进入相邻子图,则该方法根据实现方式以如下方式处理搜索过程:
a)搜索过程结束。当以覆盖给定范围的整体的方式构造搜索过程时,这适用。
b)将搜索过程切换到另一个处理单元。切换过程可由接收处理单元以与由在该处理单元上运行的原始主搜索过程产生的任何其他子搜索过程相同的方式来处理。
c)终止跨子图边界的当前搜索过程,并且收集搜索结果。另外,搜索过程的最后位置(即,指示方向的当前节点和边)被添加到该子图的主搜索过程的起始点的列表中并且如果适当的话被拾取。
在一个实现中,每当命中不是始发子图的一部分的节点时,就发生到另一子图的交叉。在另一实现中,给出了如上定义的重叠区域。在重叠区中运行,允许子图的搜索过程进入相邻区而不立即中断(参见实现方式a)和c)或切换(如实现方式b中))。在搜索过程通过进入相邻子图而离开重叠区的情况下,搜索过程被中断或切换,如上所述。
图7示出用于划分知识图的所公开的系统700的实施例的框图。知识图包括多个节点和多条边,其中,边链接节点中所选择的节点。该系统包括分析单元702,该分析单元702适于分析一组过去的搜索并且基于该分析单元702来确定知识图表中的多个边中的每个边的访问频率,标记单元704,适于将所述知识图谱中具有最高访问频率的边的预定百分比标记为中间集群核,排序模块706,用于将标记的所述中间集群核按照它们的访问频率进行排序。
选择单元708,用于选择访问频率最高的中间集群核(例如,第一中间集群核或第一边)作为中间集群核中的第一集群核。选择单元708还可被配置或适于指派第一群集核周围的预定义第一半径中的第一边。第一集群核和第一边可由此构建或形成第一集群。在一些实施例中,选择单元708还适于或配置用于选择除了第一集群的边之外具有最高访问频率的中间集群核(例如,第二中间集群核或第二边)作为中间集群核中的第二集群核。选择单元708可在第二群集核周围的预定义第二半径中指派第二边。第二集群核和第二边可由此构建或形成第二集群。
系统700包括划分模块710,适用于将知识图划分为包括第一集群的第一子知识图和包括第二集群的第二子知识图。
本公开的实施例可与几乎任何类型的计算机一起实现,而不管平台适于存储和/或执行程序代码。图8作为实例示出适于执行与所提出的方法相关的程序代码的计算系统800。
计算系统800仅是合适的计算机系统的一个示例,并且不旨在对在此描述的本公开的实施例的使用或功能的范围提出任何限制,而不管计算机系统800是否能够被实现和/或执行上文阐述的任何功能。在计算机系统800中,存在可与许多其他通用或专用计算系统环境或配置一起操作的组件。可以适合于与计算机系统/服务器800一起使用的众所周知的计算系统、环境和/或配置的示例包括,但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机,手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品,网络pc、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境,等等。计算机系统/服务器800可以在由计算机系统800执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器800可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可位于本地和远程计算机系统存储介质(包括存储器存储设备)两者中。
如图所示,计算机系统/服务器800以通用计算设备的形式示出。计算机系统/服务器800的组件可包含(但不限于)一或多个处理器802(例如,处理单元)、系统存储器804(例如,耦合到一或多个处理器的计算机可读存储介质)和将包含系统存储器804的不同系统组件耦合到处理器802的总线806。总线806表示若干类型的总线结构中的任一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线。计算机系统/服务器800通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器800访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质两者。
系统存储器804可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)808和/或高速缓存存储器810。计算机系统/服务器800还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统812可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为”硬盘驱动器”)读取和向其写入。虽然未示出,但是可以提供用于从可移除非易失性磁盘(例如,”软盘”)读取和向可移除非易失性磁盘写入的磁盘驱动器,以及用于从可移除非易失性光盘(诸如cd-rom、dvd-rom或其他光学介质)读取或向可移除非易失性光盘写入的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线806。如以下将进一步描绘和描述的,系统存储器804可以包括具有被配置为执行本公开的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块816的程序/实用程序可以以示例而非限制的方式以及操作系统、一个或多个应用程序、其他程序模块和程序数据存储在系统存储器804中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一者或其某一组合可包含联网环境的实施例。程序模块816总体上执行本公开的实施例的功能和/或方法,如在此所描述的。
计算机系统/服务器800还可以与一个或多个外部设备818通信,诸如键盘、定点设备、显示器820等;使得用户能够与计算机系统/服务器800交互的一个或多个设备;和/或使计算机系统/服务器800能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(i/o)接口814发生。再者,计算机系统/服务器800可以经由网络适配器822与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)之类的一个或多个网络通信。如所描绘的,网络适配器822可以经由总线806与计算机系统/服务器800的其他部件通信。应当理解,尽管未示出,其他硬件和/或软件组件可以与计算机系统/服务器800结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据归档存储系统等。
此外,用于划分知识图的系统700可附接至总线806(例如,形成总线系统的多条总线)。
已经出于说明的目的呈现了本公开的不同实施例的描述,但不旨在是穷尽性的或局限于所披露的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。这里使用的术语被选择以最佳地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
本发明可以体现为系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
该介质可以是用于传播介质的电子、磁性、光学、电磁、红外或半导体系统。计算机可读介质的示例可包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、刚性磁盘和光盘。光盘的当前示例包括致密盘只读存储器(cd-rom)、致密盘读/写(cd-r/w)、dvd和蓝光盘。
计算机可读存储介质可为有形装置,其可保留和存储供指令执行装置使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存),静态随机存取存储器(sram)、便携式致密盘只读存储器(cd-rom),数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构,以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理装置,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令,指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的smalltalk、c++等编程语言,以及常规的过程式编程语言,例如“c”编程语言或类似的编程语言。计算机可读程序指令可以完全地在用户的计算机上执行、部分地作为独立软件包在用户的计算机上执行、部分地在用户”的计算机上部分在远程计算机上执行、或者完全地在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可提供到通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中、可编程数据处理装置、和/或以特定方式起作用的其他设备、使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可加载到计算机、其他可编程数据处理设备上,或者使得在计算机上执行一系列操作步骤的另一设备,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或另一设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和/或框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
在此使用的术语仅用于描述具体实施例的目的并且不旨在限制本公开。如在此使用的,单数形式“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组的存在或添加。
以下权利要求书中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物旨在包括用于结合其他要求保护的元件(如具体要求保护的)来执行功能的任何结构、材料或动作。出于说明和描述的目的已经呈现了本公开的描述,但不旨在是详尽的或限制于以所披露的形式的本公开。在不背离本公开的范围的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择并描述这些实施例是为了解释本公开的原理和实际应用,并且使得本领域的普通技术人员能够针对具有不同修改的不同实施例(如适合于所考虑的具体用途)来理解本公开。