一种关系图谱的更新方法、装置及存储介质与流程

文档序号:22429020发布日期:2020-10-02 10:07阅读:87来源:国知局
一种关系图谱的更新方法、装置及存储介质与流程

本发明涉及计算机领域,尤其涉及一种关系图谱的更新方法、装置及存储介质。



背景技术:

一些技术中,关联图谱一般是静态的,直接显示图谱中所有的实体及关系,可读性性差。

在知识图谱的应用中,用户可以对指定的实体进行扩展来显示指定实体的关系图谱,在大数据的场景中,扩展出来的实体及实体之间的关联关系比较多,包括直接关系、基于事件的间接关联关系等隐性关系。这导致呈现给用户的关系图谱上实体和关系很多,影响用户体验。



技术实现要素:

为了解决上述技术问题,本公开提供了一种关系图谱的更新方法、装置及存储介质,可以更加简明展示关系图谱,提高用户的使用体验。

本公开提供了一种关系图谱的更新方法,包括:

确定待添加到关系图谱中的实体间的关系;

对于待添加到关系图谱中的每个关系,分别进行如下操作:

确定第一类型以及待添加关系所对应的两个实体中的第一实体;其中,所述第一类型为该待添加关系对应的关系类型;

当所述第一实体存在于所述关系图谱中时,如果所述第一实体在所述关系图谱中关联一个第一类型的关系,则在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,所述聚合节点是指包含多个相同类型的关系的节点;如果所述第一实体在所述关系图谱中关联多个第一类型的关系,则更新所述第一实体所指向的聚合节点;

待添加的关系添加完成后,确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体间的关系,包括:

获取关系图谱中已有的节点,并确定每个节点的类型,其中,所述节点包括:实体节点和聚合节点,其中,所述实体节点是对应于实体的节点;

当所述节点为实体节点时,获取该实体节点在所述关系图谱中所关联的实体间的关系,并将所获取的关系添加到关系图谱已有的实体间的关系中;

当所述节点为聚合节点时,获取该聚合节点所关联的从聚合节点指向实体节点的关系,并将所述关系添加到所述关系图谱已有的实体间的关系中;

将预先获取的实体间的关系去除所述关系图谱已有的实体间的关系得到待添加到关系图谱中实体间的关系。

一种示例性的实施例中,所述待添加关系所对应的两个实体中的第一实体是指:当两个实体在关系图谱中只有一个存在实体节点或当两个实体在关系图谱中都存在时,根据预定原则确定为源节点的实体节点所对应的实体。

一种示例性的实施例中,所述在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,包括:

在关系图谱中添加一个聚合节点,并在所述关系图谱中添加所述第一实体指向所添加的聚合节点的关系;将所述关系图谱中所存在的第一类型的关系的对端实体节点,以及待添加关系中另一实体对应的实体节点作为所添加的聚合节点关联的实体节点,将所述关系图谱中所存在的第一类型的关系和所述待添加关系作为所添加的聚合节点关联的关系。

一种示例性的实施例中,所述对于待添加到关系图谱中的每个关系,还分别进行如下操作:

当所述待添加关系对应的两个实体中,所述第一实体在所述关系图谱中存在,另一实体在所述关系图谱中不存在时,在所述关系图谱中添加所述另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和所述另一实体之间的关系;

当所述第一实体和所述另一实体在所述关系图谱中均存在时,在该关系图谱中添加所述第一实体和所述另一实体之间的关系;

当所述第一实体和另一实体在所述关系图谱中均不存在时,在所述关系图谱中添加第一实体和另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和另一实体之间的关系。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,包括:

获取该关系图谱中每个节点的类型;

当所述节点为实体节点时,将该实体节点对应的实体添加到已有实体中;

当所述节点为聚合节点时,将该聚合节点所关联的对端实体节点所对应的实体添加到已有实体中;

将所获取的实体去除所述已有实体得到待添加到关系图谱中的实体。

一种示例性的实施例中,所述更新所述第一实体所指向的聚合节点,包括:

获取所述第一实体所指向的聚合节点;

将该待添加关系添加到所述第一实体所指向的聚合节点的关联关系中,

将该待添加关系所关联的对端实体节点添加到所述第一实体所指向的聚合节点的关联节点中。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点后,方法还包括:

当关系图谱中的聚合节点被选中时,如果该聚合节点当前为聚合状态,则获取该聚合节点所关联的节点和所关联的关系,把关联节点所关联的节点和所关联的关系显示到所展示的关系图谱上;如果该聚合节点为展示状态,则把该聚合节点所关联的节点和所关联的关系在所展示的关系图谱上进行隐藏。

本公开还提供了一种关系图谱的更新装置,包括:存储器和处理器;

所述存储器,用于保存用于关系图谱的更新的程序;

所述处理器,用于读取执行所述用于关系图谱的更新的程序,执行如下操作:

确定待添加到关系图谱中的实体间的关系;

对于待添加到关系图谱中的每个关系,分别进行如下操作:

确定第一类型以及待添加关系所对应的两个实体中的第一实体;其中,所述第一类型为该待添加关系对应的关系类型;

当所述第一实体存在于所述关系图谱中时,如果所述第一实体在所述关系图谱中关联一个第一类型的关系,则在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,所述聚合节点是指包含多个相同类型的关系的节点;如果所述第一实体在所述关系图谱中关联多个第一类型的关系,则更新所述第一实体所指向的聚合节点;

确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体间的关系,包括:

获取关系图谱中已有的节点,并确定每个节点的类型,其中,所述节点包括:实体节点和聚合节点,其中,所述实体节点是对应于实体的节点;

当所述节点为实体节点时,获取该实体节点在所述关系图谱中所关联的实体间的关系,并将所获取的关系添加到关系图谱已有的实体间的关系中;

当所述节点为聚合节点时,获取该聚合节点所关联的从聚合节点指向实体节点的关系,并将所述关系添加到所述关系图谱已有的实体间的关系中;

将预先获取的实体间的关系去除所述关系图谱已有的实体间的关系得到待添加到关系图谱中实体间的关系。

一种示例性的实施例中,所述待添加关系所对应的两个实体中的第一实体是指:当两个实体在关系图谱中只有一个存在实体节点或当两个实体在关系图谱中都存在时,根据预定原则确定为源节点的实体节点所对应的实体。

一种示例性的实施例中,所述在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,包括:

在关系图谱中添加一个聚合节点,并在所述关系图谱中添加所述第一实体指向所添加的聚合节点的关系;将所述关系图谱中所存在的第一类型的关系的对端实体节点,以及待添加关系中另一实体对应的实体节点作为所添加的聚合节点关联的实体节点,将所述关系图谱中所存在的第一类型的关系和所述待添加关系作为所添加的聚合节点关联的关系。

一种示例性的实施例中,所述对于待添加到关系图谱中的每个关系,所述处理器还分别进行如下操作:

当所述待添加关系对应的两个实体中,所述第一实体在所述关系图谱中存在,另一实体在所述关系图谱中不存在时,在所述关系图谱中添加所述另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和所述另一实体之间的关系;

当所述第一实体和所述另一实体在所述关系图谱中均存在时,在该关系图谱中添加所述第一实体和所述另一实体之间的关系;

当所述第一实体和另一实体在所述关系图谱中均不存在时,在所述关系图谱中添加第一实体和另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和另一实体之间的关系。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,包括:

获取该关系图谱中每个节点的类型;

当所述节点为实体节点时,将该实体节点对应的实体添加到已有实体中;

当所述节点为聚合节点时,将该聚合节点所关联的对端实体节点所对应的实体添加到已有实体中;

将所获取的实体去除所述已有实体得到待添加到关系图谱中的实体。

一种示例性的实施例中,所述更新所述第一实体所指向的聚合节点,包括:

获取所述第一实体所指向的聚合节点;

将该待添加关系添加到所述第一实体所指向的聚合节点的关联关系中,

将该待添加关系所关联的对端实体节点添加到所述第一实体所指向的聚合节点的关联节点中。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点后,方法还包括:

当关系图谱中的聚合节点被选中时,如果该聚合节点当前为聚合状态,则获取该聚合节点所关联的节点和所关联的关系,把关联节点所关联的节点和所关联的关系显示到所展示的关系图谱上;如果该聚合节点为展示状态,则把该聚合节点所关联的节点和所关联的关系在所展示的关系图谱上进行隐藏。

本公开还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行上述关系图谱的更新方法或任一示例性实施例中的操作。

与现有技术相比,本公开实施例公开一种关系图谱的更新方法、装置及计算机可读存储介质,方法包括:确定待添加到关系图谱中的实体间的关系;对于待添加到关系图谱中的每个关系,分别进行如下操作:确定第一类型以及待添加关系所对应的两个实体中的第一实体;当第一实体存在于关系图谱中时,如果第一实体在关系图谱中关联一个第一类型的关系,则在关系图谱中添加聚合节点,将第一实体指向该聚合节点,聚合节点是指包含多个相同类型的关系的节点;如果第一实体在关系图谱中关联多个第一类型的关系,则更新第一实体所指向的聚合节点;确定待添加到关系图谱中的实体,并在关系图谱中添加对应的实体节点。通过本公开的方案,可以更简明地展示关系图谱。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例的关系图谱的更新方法的流程图;

图2为本发明实施例的关系图谱的更新装置的示意图;

图3为本发明实施例一示例的关系图谱展示的示意图;

图4a为一个实施例中更新前的关系图谱示意图;

图4b为本发明实施例一示例中关系图谱添加聚合节点后的示意图;

图4c为本发明实施例一示例中关系图谱添加聚合节点的展示示意图;

图5a为本发明实施例一示例中更新前关系图谱示意图一;

图5b为本发明实施例一示例中更新后关系图谱示意图一

图6a为本发明实施例一示例中更新前关系图谱示意图二;

图6b为本发明实施例一示例中更新后关系图谱示意图二;

图7a为本发明实施例一示例中更新前关系图谱示意图三;

图7b为本发明实施例一示例中更新后关系图谱示意图三;

图8为本发明实施例一示例中关系图谱的展示示意图一;

图9为本发明实施例一示例中关系图谱的展示示意图二;

图10为本发明实施例一示例中关系图谱的展示示意图三。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本文中,实体在关系图谱中的表现形式为实体节点,关系的表现形式为边。一个实体在关系图谱中存在,是指关系图谱中存在该实体对应的实体节点;一个关系在关系图谱中存在,是指关系图谱中存在该关系对应的边;一个实体在关系图谱中关联一个关系,是指该实体对应的实体节点,在关系图谱中和其它节点之间存在一条该关系对应的边。

图1为本公开的关系图谱的更新方法流程图,如图1所示,包括步骤100-102:

步骤100.确定待添加到关系图谱中的实体间的关系;

步骤101.对于待添加到关系图谱中的每个关系,分别进行如下操作:

确定第一类型以及待添加关系所对应的两个实体中的第一实体;其中,所述第一类型为该待添加关系对应的关系类型;

当所述第一实体存在于所述关系图谱中时,如果所述第一实体在所述关系图谱中关联一个第一类型的关系,则在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,所述聚合节点是指包含多个相同类型的关系的节点;如果所述第一实体在所述关系图谱中关联多个第一类型的关系,则更新所述第一实体所指向的聚合节点;

步骤102.待添加的关系添加完成后,确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

在步骤100中,确定待添加到关系图谱中的实体间的关系。

在本实施例中,当实体扩展时,可以通过调用接口服务获取到扩展出来的所有实体和实体间的关系;遍历该关系图谱,得到该关系图谱中所有的节点和边;根据所获取的实体间的关系、该关系图谱中所有的节点和边确定待添加到关系图谱中的实体间的关系。

一种示例性的实施例中,获取关系图谱中已有的节点,并确定每个节点的类型,其中,所述节点包括:实体节点和聚合节点,其中,所述实体节点是对应于实体的节点;当所述节点为实体节点时,获取该实体节点在所述关系图谱中所关联的实体间的关系,并将所获取的关系添加到关系图谱已有的实体间的关系中;当所述节点为聚合节点时,获取该聚合节点所关联的从聚合节点指向实体节点的关系,并将所述关系添加到所述关系图谱已有的实体间的关系中;将预先获取的实体间的关系去除所述关系图谱已有的实体间的关系得到待添加到关系图谱中实体间的关系。如图3所示,关系图谱中包括2类元素,一类为节点;另一类为节点间的连线也就是边。节点有2种类型,一种为entity,是代表实体的实体节点,另一种为relationnode,代表关系聚合后产生的聚合节点。边有3种类型,一种为relation,代表实体间的关系,另一种为nodetorelation,代表实体指向聚合节点的边,另一种为relationtonode,代表聚合节点指向实体的边。

一种示例性的实施例中,所述待添加关系所对应的两个实体中的第一实体是指:当两个实体在关系图谱中只有一个存在实体节点或当两个实体在关系图谱中都存在时,根据预定原则确定为源节点的实体节点所对应的实体。在本实施例中,待添加关系所对应的两个实体第一实体和第二实体,当在关系图谱中仅存在一个实体节点,该实体节点作为第一实体;当待添加关系所对应的两个实体第一实体和第二实体在该关系图谱中都存在时,可以通过主键查询两个实体节点关联的边中与待添加的关系类型相同的边的数量,以数量多的实体为源节点;如果数量相同,随机选取一个实体节点为源节点。例如:当待添加关系(同行关系)连接2个实体a和b,如果在该关系图谱中a和b实体节点均存在,可以通过主键分别查询两个实体节点关联的边中与待添加关系类型相同(同行关系)的边的数量;若a实体节点关联一条同行关系,b实体节点关联三条同行关系,确定b为源节点。若a实体节点和b实体节点均关联两条同行关系,随机选择a或b作为源节点。

在步骤101中,对于待添加到关系图谱中的每个关系,分别进行如下操作:确定第一类型以及待添加关系所对应的两个实体中的第一实体;其中,所述第一类型为该待添加关系对应的关系类型;当所述第一实体存在于所述关系图谱中时,如果所述第一实体在所述关系图谱中关联一个第一类型的关系,则在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,所述聚合节点是指包含多个相同类型的关系的节点;如果所述第一实体在所述关系图谱中关联多个第一类型的关系,则更新所述第一实体所指向的聚合节点。

在本实施例中,通过步骤100确定待添加到关系图谱中实体间的关系,针对每个关系,获取当前关系所连接的两个实体,根据第一实体所关联的关系不同,按照相应的规则进行添加该关系。如图4a-4c所示,当待添加关系(母子关系)连接2个实体a和b,如果第一实体a有一条关系类型(母子关系)相同的边r1,在关系图谱中添加聚合节点,该聚合节点包括与该聚合节点关联的实体节点数组connectednodes和聚合节点关联的关系数组connectededges,在connectednodes中包含与关联关系对应的对端实体节点,connectededges中包含已存在第一类型的关系和待添加到关系图谱中实体间的关系即connectednodes中保存r1关联的对端实体a1和实体b,connectededges中保存r和r1,并在关系图谱中添加实体a指向聚合节点的边。例如:当待添加关系(母子关系)连接2个实体a和b,如果在该关系图谱中a和b实体节点均存在,以实体节点a为源节点为例,如果存在一条边和当前待添加关系相同的关系类型即同行关系,在关系图谱中添加聚合节点-同行关系聚合节点,节点类型为relationnode,聚合节点的connectednodes中保存2条关系(从a到a1的同行关系和从a到b的同行关系)对应的对端实体节点a1和b,connectededges中保存相同类型的2条关系边即从a到a1的关系边系和从a到b的关系边,并在关系图谱中添加实体a指向聚合节点的边,边类型为nodetorelation。

一种示例性的实施例中,在关系图谱中添加聚合节点,将第一实体指向该聚合节点,包括:在关系图谱中添加一个聚合节点,并在关系图谱中添加第一实体指向所添加的聚合节点的关系;将关系图谱中所存在的第一类型的关系的对端实体节点,以及待添加关系中另一实体对应的实体节点作为所添加的聚合节点关联的实体节点,将关系图谱中所存在的第一类型的关系和待添加关系作为所添加的聚合节点关联的关系。

一种示例性的实施例中,更新第一实体所指向的聚合节点,包括:获取所述第一实体所指向的聚合节点;将该待添加关系添加到所述第一实体所指向的聚合节点的关联关系中,将该待添加关系所关联的对端实体节点添加到所述第一实体所指向的聚合节点的关联节点中。如图5a-5b所示,确定第一类型(母子关系)以及待添加关系(母子关系)所对应的两个实体中的第一实体a存在关系图谱中;如果所述第一实体a在关系图谱中关联多个母子关系,查找第一实体节点a所待添加母子关系类型对应的聚合节点(母子关系聚合节点),更新聚合节点的connectednodes和connectededges,即将待添加母子关系和该关系所对应的对端实体实体b添加到关系图谱中。如图6a-6b所示,确定第一类型(同行关系)以及待添加关系(同行关系)所对应的两个实体a和b均存在关系图谱中,如果在关系图谱中a存在多条同行关系的边,查找出第一实体节点a第一类型(同行关系)关系类型对应的聚合节点-同行关系聚合节点,更新聚合节点中的connectednodes和connectededges。

一种示例性的实施例中,所述对于待添加到关系图谱中的每个关系,还分别进行如下操作:当所述待添加关系对应的两个实体中,所述第一实体在所述关系图谱中存在,另一实体在所述关系图谱中不存在时,在所述关系图谱中添加所述另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和所述另一实体之间的关系;当所述第一实体和所述另一实体在所述关系图谱中均存在时,在该关系图谱中添加所述第一实体和所述另一实体之间的关系;当所述第一实体和另一实体在所述关系图谱中均不存在时,在所述关系图谱中添加第一实体和另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和另一实体之间的关系。

在步骤102中,待添加的关系添加完成后,确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

在本步骤中,添加完所有的关系到关系图谱后,确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,包括:获取该关系图谱中每个节点的类型;当所述节点为实体节点时,将该实体节点对应的实体添加到已有实体中;当所述节点为聚合节点时,将该聚合节点所关联的对端实体节点所对应的实体添加到已有实体中;将所获取的实体去除所述已有实体得到待添加到关系图谱中的实体。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点后,方法还包括:当关系图谱中的聚合节点被选中时,如果该聚合节点当前为聚合状态,则获取该聚合节点所关联的节点和所关联的关系,把关联节点所关联的节点和所关联的关系显示到所展示的关系图谱上;如果该聚合节点为展示状态,则把该聚合节点所关联的节点和所关联的关系在所展示的关系图谱上进行隐藏。如图8所示,若当前节点为聚合状态,获取聚合节点上的connectednodes和connectededges,把connectednodes、connectededges中保存的节点和边添加到关系图谱上。如图9所示,如果当前节点为展开状态,把聚合节点上的connectednodes和connectededges关联的点和边都从图谱上隐藏。如图10所示,展示关系图谱上b2是a的好友,b2是b的好友,在关系图谱中展开状态时,2个好友关系聚合节点都指向b2,当隐藏不显示b的好友关系时,将b和b2的边进行隐藏显示,b2节点保留在关系图谱上展示。

本公开还提供了一种关系图谱的更新装置,如图2所示,包括:存储器和处理器;

所述存储器,用于保存用于关系图谱的更新的程序;

所述处理器,用于读取执行所述用于关系图谱的更新的程序,执行如下操作:

确定待添加到关系图谱中的实体间的关系;

对于待添加到关系图谱中的每个关系,分别进行如下操作:

确定第一类型以及待添加关系所对应的两个实体中的第一实体;其中,所述第一类型为该待添加关系对应的关系类型;

当所述第一实体存在于所述关系图谱中时,如果所述第一实体在所述关系图谱中关联一个第一类型的关系,则在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,所述聚合节点是指包含多个相同类型的关系的节点;如果所述第一实体在所述关系图谱中关联多个第一类型的关系,则更新所述第一实体所指向的聚合节点;

确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体间的关系,包括:

获取关系图谱中已有的节点,并确定每个节点的类型,其中,所述节点包括:实体节点和聚合节点,其中,所述实体节点是对应于实体的节点;

当所述节点为实体节点时,获取该实体节点在所述关系图谱中所关联的实体间的关系,并将所获取的关系添加到关系图谱已有的实体间的关系中;

当所述节点为聚合节点时,获取该聚合节点所关联的从聚合节点指向实体节点的关系,并将所述关系添加到所述关系图谱已有的实体间的关系中;

将预先获取的实体间的关系去除所述关系图谱已有的实体间的关系得到待添加到关系图谱中实体间的关系。

一种示例性的实施例中,所述待添加关系所对应的两个实体中的第一实体是指:当两个实体在关系图谱中只有一个存在实体节点或当两个实体在关系图谱中都存在时,根据预定原则确定为源节点的实体节点所对应的实体。

一种示例性的实施例中,所述在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,包括:

在关系图谱中添加一个聚合节点,并在所述关系图谱中添加所述第一实体指向所添加的聚合节点的关系;将所述关系图谱中所存在的第一类型的关系的对端实体节点,以及待添加关系中另一实体对应的实体节点作为所添加的聚合节点关联的实体节点,将所述关系图谱中所存在的第一类型的关系和所述待添加关系作为所添加的聚合节点关联的关系。

一种示例性的实施例中,所述对于待添加到关系图谱中的每个关系,所述处理器还分别进行如下操作:

当所述待添加关系对应的两个实体中,所述第一实体在所述关系图谱中存在,另一实体在所述关系图谱中不存在时,在所述关系图谱中添加所述另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和所述另一实体之间的关系;

当所述第一实体和所述另一实体在所述关系图谱中均存在时,在该关系图谱中添加所述第一实体和所述另一实体之间的关系;

当所述第一实体和另一实体在所述关系图谱中均不存在时,在所述关系图谱中添加第一实体和另一实体对应的实体节点,并在该关系图谱中添加所述第一实体和另一实体之间的关系。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,包括:

获取该关系图谱中每个节点的类型;

当所述节点为实体节点时,将该实体节点对应的实体添加到已有实体中;

当所述节点为聚合节点时,将该聚合节点所关联的对端实体节点所对应的实体添加到已有实体中;

将所获取的实体去除所述已有实体得到待添加到关系图谱中的实体。

一种示例性的实施例中,所述更新所述第一实体所指向的聚合节点,包括:

获取所述第一实体所指向的聚合节点;

将该待添加关系添加到所述第一实体所指向的聚合节点的关联关系中,

将该待添加关系所关联的对端实体节点添加到所述第一实体所指向的聚合节点的关联节点中。

一种示例性的实施例中,所述确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点后,方法还包括:

当关系图谱中的聚合节点被选中时,如果该聚合节点当前为聚合状态,则获取该聚合节点所关联的节点和所关联的关系,把关联节点所关联的节点和所关联的关系显示到所展示的关系图谱上;如果该聚合节点为展示状态,则把该聚合节点所关联的节点和所关联的关系在所展示的关系图谱上进行隐藏。

一个示例性实施例,包括下述步骤1-6:

步骤1.获取扩展的所有实体和关系。

在本步骤,可以调用接口服务获取所有实体和关系,其中,该关系是指所获取实体的实体间关系。

步骤2.遍历关系图谱,得到该关系图谱中所有的节点和边。

在本步骤中,该关系图谱包括节点和边;其中,该边元素是节点间的连线。该节点包括实体节点和聚合节点两种类型;实体节点可以定义为entity,代表实体,聚合节点可以定义为relationnode,代表同种类型关系聚合后产生的聚合节点;例如:关系类型为母子关系,将多个关系类型为母子关系的实体节点聚合产生一个母子关系聚合节点。关系图谱中的边包括实体间的关系、实体节点指向聚合节点的边和聚合节点指向实体节点的边三种类型,实体节点间的关系可以定义为relation,代表实体间的关系,实体节点指向聚合节点的边可以定义为nodetorelation,代表实体指向聚合节点的边,聚合节点指向实体节点的边可以定义为relationtonode,代表聚合节点指向实体的边;如图3所示的关系图谱中的节点和边的类型。

步骤3.定义多个变量,把数据保存到相应的变量中。

在本步骤中,定义多个变量,包括:定义实体变量entities,用于保存所获取的实体;定义关系变量relations用于保存所获取的实体间的关系;定义已有实体变量currententities,用于保存关系图谱上已有的实体;定义已有关系变量currentrelations用于保存关系图谱上已有的实体间的关系;定义待添加的实体变量addednodes,用于保存待添加到关系图谱上的实体节点;定义待添加的关系变量addededges,用于保存待添加到关系图谱上实体间的关系。

步骤4.确定待添加到关系图谱中的实体间的关系。

在本步骤中,确定待添加到关系图谱中的实体间的关系的实现步骤,包括:

步骤41.获取关系图谱中已有的节点,并确定每个节点的类型,其中,所述实体节点是对应于实体的节点;

步骤42.当所述节点为实体节点entity时,获取该实体节点在所述关系图谱中所关联的实体间的关系,并将所获取的关系添加到关系图谱已有的实体间的关系中currentrelations;

步骤43.当所述节点为聚合节点relationnode时,获取该聚合节点所关联的从聚合节点指向实体节点的关系,并将所述关系添加到所述关系图谱已有的实体间的关系currentrelations中;

步骤44.将步骤1中所获取的实体间的关系去除所述关系图谱已有的实体间的关系currentrelations得到待添加到关系图谱中实体间的关系。

步骤5.按照预先设置的规则将所述待添加的实体间的关系集合添加到当前关系图谱中。

在本步骤中,对于待添加到关系图谱中的每个关系,分别进行如下操作:

步骤51.确定待添加到关系图谱中的关系所对应的两个实体,该关系所对应的两个实体用a代表第一实体、用b代表第二实体或称为另一个实体;

步骤52.若实体a和b在关系图谱中均不存在时,在该关系图谱中添加两个实体节点a和b,以及待添加到关系图谱中的关系r;

步骤53.若实体a和b在关系图谱中存在其中一个实体时,以第一实体a在所述关系图谱中存在,另一实体b在所述关系图谱中不存在为例(第一实体a在所述关系图谱中不存在,另一实体b在所述关系图谱中存在,也采用同样的实现步骤),并判断实体a是否存在实体间的关系类型的边,根据判断结果在关系图谱中添加节点b和待添加到关系图谱中的关系,实现过程包括:

步骤531.若实体a不存在实体间的关系类型的边,在关系图谱中添加另一实体b,并在该关系图谱中添加第一实体b和另一实体之间的关系r;

步骤532.如果第一实体a在所述关系图谱中关联一个第一类型的关系r1,则在所述关系图谱中添加聚合节点,将第一实体指向该聚合节点,包括:在关系图谱中添加一个聚合节点,并在所述关系图谱中添加所述第一实体指向所添加的聚合节点的关系;将所述关系图谱中所存在的第一类型的关系的对端实体节点,以及待添加关系中另一实体对应的实体节点作为所添加的聚合节点关联的实体节点,将所述关系图谱中所存在的第一类型的关系和所述待添加关系作为所添加的聚合节点关联的关系;其中,所述聚合节点是指包含多个相同类型的关系的节点。如图4a-4b所示,图4a中关系图谱中已存在实体a和a1,实体a和a1间的关系用r1表示,该关系的关系类型是母子关系;图4b中在关系图谱中添加一个聚合节点,聚合节点名称为母子关系;并在关系图谱中添加另一个实体、以及a指向聚合节点的母子关系的边,隐藏显示关系图谱中的实体a1;其中,该聚合节点包括与该聚合节点相关联的实体节点connectednodes和聚合节点中的关联边connectededges,在connectednodes中保存与r1关联的对端实体a1和实体b,connectededges中保存r和r1。图4c中聚合节点展开时,实体a通过a指向聚合节点的母子关系的边连接聚合节点(母子关系),该母子关系节点通过关系r1和r分别连接实体节点a1和b。

步骤533.如果所述第一实体在所述关系图谱中关联多个第一类型的关系,则更新所述第一实体所指向的聚合节点,包括:获取第一实体所指向的聚合节点;将该待添加关系添加到所述第一实体所指向的聚合节点的关联关系中,将该待添加关系所关联的对端实体节点添加到所述第一实体所指向的聚合节点的关联节点中。如图5a-5b所示,图5a中实体a在关系图谱中关联两条母子关系类型的边r和r1,要添加一条母子关系类型的边r2,该待添加的关系所对应的实体为a和a2,添加边r2的实现过程如下:获取实体a所指向的聚合节点(母子关系聚合节点),将待添加关系母子关系添加到母子关系聚合节点的关联关系中connectededges,并将实体a2添加到聚合节点相关联的实体节点connectednodes中,在connectednodes中保存a1、a2和体b,connectededges中保存r、r1和r2,如5b所示。

步骤54.若关系图谱中存在实体a和b时,分别查询实体a和b所关联的边,根据所述查询结果的不同情况在当前图谱中添加节点和边r。

在步骤54中,根据所述查询结果的不同情况在当前图谱中添加节点和边r的实现步骤包括:

步骤541.若实体a和b均不存在所关联的边,在关系图谱中添加实体a和b的实体间的关系类型的边r;

步骤542.若实体a和b均存在多条所关联的边,根据预定原则确定a或b为源节点;

在本步骤中,根据所关联的边数量选择实体a或b作为源节点包括:当实体a所关联的边的数量多于实体b时,选择实体a作为源节点;当实体b所关联的边的数量多于实体a时,选择实体b作为源节点;当实体a所关联的边数量等于实体b时,随机选择实体a或实体b作为源节点。以下步骤中,以实体节点a作为源节点为例进行说明。

步骤543.当源节点a存在一条和当前待添加的关系类型相同的边时,在所述关系图谱中添加聚合节点,将源节点a指向该聚合节点,包括:在关系图谱中添加一个聚合节点,并在所述关系图谱中添加所述源节点a指向所添加的聚合节点的关系;将所述关系图谱中所存在的第一类型的关系的对端实体节点,以及待添加关系中另一实体b对应的实体节点作为所添加的聚合节点关联的实体节点,将所述关系图谱中所存在的第一类型的关系和所述待添加关系作为所添加的聚合节点关联的关系。如图6a-6b所示,图6a中实体节点a和b存在关系图谱中,待添加到关系图谱中实体节点a和b关系r;实体节点a为源节点,实体节点a存在一条与待添加关系r相同关系类型的边r1(实体a到实体a1的同行关系的边),该已存在的边r1对应的对端实体节点为a1,在关系图谱中添加聚合节点(同行关系聚合节点),节点类型为relationnode,聚合节点的connectednodes中保存实体节点b和a1,connectededges保存两条相同关系类型同行关系的边r1和r,并在图谱中添加实体a指向聚合节点的边,边类型为nodetorelation,如图6b所示。

步骤544.当源节点a存在多条和当前待添加的第一关系类型相同的边时,更新所述源节点a所指向的聚合节点。

在本步骤中,更新源节点a所指向的聚合节点,包括:获取源节点a所指向的聚合节点;将该待添加关系添加到所述源节点a所指向的聚合节点的关联关系中,将该待添加关系所关联的对端实体节点添加到所述源节点a所指向的聚合节点的关联节点中。如图7a-7b所示,图7a中源节点a存在两条和待添加的关系相同的关系类型(同行关系)的边,待添加a和b2的同行关系;确定源节点a中同行关系的关系类型所对应聚合节点,更新聚合节点中的connectednodes和connectededges,在connectednodes添加实体节点b2,在connectededges中添加聚合节点指向b2的同行关系的边,如图7b所示。

步骤6.确定待添加到关系图谱中的实体,并在所述关系图谱中添加对应的实体节点。

在本步骤中,当执行完步骤54中所有待添加的关系后,针对添加完关系后得关系图,确定待添加到该关系图谱中的实体,并在所述关系图谱中添加对应的实体节点,实现过程如下:

步骤61.获取该关系图谱中每个节点的类型;

步骤62.当所述节点为实体节点时,将该实体节点对应的实体添加到已有实体中;

步骤63.当所述节点为聚合节点时,将该聚合节点所关联的对端实体节点所对应的实体添加到已有实体中;

步骤64.将所获取的实体去除所述已有实体得到待添加到关系图谱中的实体。

步骤65.在所述关系图谱中添加对应的实体节点。

步骤7.当关系图谱中的聚合节点被选中时,如果该聚合节点当前为聚合状态,则获取该聚合节点所关联的节点和所关联的关系,把关联节点所关联的节点和所关联的关系显示到所展示的关系图谱上;如图8所示,当前节点为聚合状态,获取当前聚合节点的connectednodes和connectededges,把connectednodes、connectededges中保存的实体节点和边添加到展示关系图谱上。

步骤8.如果该聚合节点为展示状态,则把该聚合节点所关联的节点和所关联的关系在所展示的关系图谱上进行隐藏;如图9所示,聚合节点为展示状态时,把当前聚合节点的connectednodes、connectededges中关联的实体节点和边从展示关系图谱上进行隐藏显示。

另外,若当前聚合节点所关联的实体节点与其他节点也存在关联关系时,所关联的该实体节点保留在关系图谱上,将所关联的边从展示关系图谱上进行隐藏。如图10所示,展示关系图谱上b2是a的好友,b2也是b的好友,在关系图谱中展开状态时,2个好友关系聚合节点都指向b2,当隐藏不显示b的好友关系时,将b和b2的边进行隐藏显示,b2节点保留在关系图谱上展示。

本发明提出一种关系图谱的更新方法,通过相同关系聚合的方法,来减少关系图谱中展示的节点和关系,提高可读性。

在示例性实施例中,还可以对聚合节点添加交互,支持用户通过点击来显示或隐藏聚合起来的实体和关系,提高用户的使用体验。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1