知识图谱的前端渲染方法及系统、电子设备、存储介质与流程

文档序号:25518489发布日期:2021-06-18 20:04阅读:173来源:国知局
知识图谱的前端渲染方法及系统、电子设备、存储介质与流程

本发明涉及知识图谱技术领域,特别涉及一种知识图谱的前端渲染方法及系统、电子设备。



背景技术:

知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构,达到多学科融合目的的现代理论,能为学科研究提供切实的、有价值的参考。要获得最终可视化的知识图谱,后端在得到图层后,前端需要对图层进行渲染,渲染之后即可在前端展示图形化的知识图谱。目前图谱渲染技术都是对全部的图层进行渲染,当数据量小的时候这样的渲染是可行的,但是当数据量太大的时候,就会导致渲染的速度很慢,继而影响图谱展现的时效性,继而浪费一线数据分析人员的宝贵时间。因此,如何提升知识图谱大数据量节点的前端渲染速度与展示效率是目前亟待解决的技术问题。



技术实现要素:

本发明的目的在于改善现有技术中所存在的图谱渲染速度慢时效差的问题,提供一种知识图谱的前端渲染方法及系统、电子设备,以提高渲染速度和展示效率。

为了实现上述发明目的,本发明实施例提供了以下技术方案:

一方面,本发明实施例提供了一种知识图谱的前端渲染方法,包括以下步骤:

获取待渲染的图层;

确定本次渲染的应用任务,并基于确定出的应用任务,将获取的图层划分为若干个图元层,以及将每一个图元层划分为若干个图元片段,并存储;

判断图元片段量是否超过设定的数量阈值,如果是,则按照优先级排序序列,仅基于优先级大于等于设定的等级阈值的图元片段进行渲染,如果否,则基于全部图元片段进行渲染。

上述方案中,通过将图元进行分层以及划分片段,以及将图元片段进行优先级排序,当图元片段量较大时仅基于优先级较高的图元片段进行渲染,继而可以提升渲染效率,保障渲染效果的时效性。另外,图元层划分方式为固定方式,具体由应用任务确定,降低了技术实现的难度,且基于应用任务而划分的方式实用性强。

进一步细化的方案中,所述基于确定出的应用任务,将获取的图层划分为若干个图元层的步骤,包括:根据确定出的应用任务,从预先制定的策略表中查找出该应用任务对应的图元层划分策略,并基于查找出的图元层划分策略划分图元层。

上述方案中,划分策略预先已制定好,应用时直接基于应用任务查找即可,可以节省时间,进一步提高效率。

若所述应用任务为图谱可视化分析,则将图层划分为节点图元层、边图元层和属性图元层,并存储于临时存储区。若所述应用任务为社群分析,则以社群发现的计算结果作为划分依据,将具有相同的社群值的节点划分为同一个图元层,并存储于临时存储区。若所述应用任务为聚合分析,则将具有同类属性的边划分为同一个图元层,并存储于临时存储区。

此处仅列举了几个常见的应用任务举例,实际中可能有更多的应用任务,针对于其他应用任务可以参考此处的举例进行相应图元层划分。

所述将每一个图元层划分为若干个图元片段的步骤,包括:根据确定出的应用任务,从预先制定的策略表中查找出该应用任务对应的图元片段划分策略,并基于查找出的图元片段划分策略划分图元片段。

所述的知识图谱的前端渲染方法还包括步骤:判断图层中的图元片段是否有更新,若有,则仅基于更新后的图元片段进行渲染。

针对于已经渲染过的图谱,只需要针对更新后的图元片段进行渲染,而不影响其他图元片段,因此可以进一步大大提高渲染速度。

第二方面,本发明实施例提供了一种知识图谱的前端渲染系统,包括:

获取模块,被配置为获取待渲染的图层;

划分模块,被配置为确定本次渲染的应用任务,并基于确定出的应用任务,将获取的图层划分为若干个图元层,以及将每一个图元层划分为若干个图元片段,并存储;

渲染模块,被配置为判断图元片段量是否超过设定的数量阈值,如果是,则按照优先级排序序列,仅基于优先级大于等于设定的等级阈值的图元片段进行渲染,如果否,则基于全部图元片段进行渲染。

所述获取模块进一步被配置为基于数据id,从图库中搜索与该数据id相符的图层。

所述划分模块在划分图元层时,根据确定出的应用任务,从预先制定的策略表中查找出该应用任务对应的图元层划分策略,并基于查找出的图元层划分策略划分图元层。

更具体地,所述划分模块在划分图元层时,若所述应用任务为图谱可视化分析,则将图层划分为节点图元层、边图元层和属性图元层;若所述应用任务为社群分析,则以社群发现的计算结果作为划分依据,将具有相同的社群值的节点划分为同一个图元层;若所述应用任务为聚合分析,则将具有同类属性的边划分为同一个图元层;并将划分后的图元层存储于临时存储区。

所述划分模块在划分图元片段时,根据确定出的应用任务,从预先制定的策略表中查找出该应用任务对应的图元片段划分策略,并基于查找出的图元片段划分策略划分图元片段。

所述渲染模块还被配置为判断图层中的图元片段是否有更新,若有,则仅基于更新后的图元片段进行渲染。

第三方面,本发明实施例提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明实施例中任一实施方式所述的知识图谱的前端渲染方法中的步骤。

第四方面,本发明实施例提供了一种存储介质,存储有可运行程序,其特征在于,所述可运行程序被处理器运行时,实现本发明实施例中任一实施方式所述的知识图谱的前端渲染方法中的步骤。

与现有技术相比,当图元片段量过大时,本发明方案是选择性地对优先级高的图元进行渲染,而对于优先级低的放弃渲染,以此来保障渲染速度。因此采用本发明方法或系统进行图谱渲染,可以大大提高渲染的效率,保障图谱展示效果的时效性。经过测验,在交互良好的情况下可以支持两万以内数据节点的展示、渲染、布局,10000以内图元的渲染帧率可达到60fps。

一套图谱的使用周期较长,适合该图谱的分析手段(即应用任务)可以抽象为几大类,所以根据分析手段的不同,可以有不同的图元分层策略,同时分层策略可以作为二次加工的数据进行长效的存储,该存储策略本质上是对图库数据获取子集,并将不同子集中与可视化渲染相关数据进行备份保存,保存过程中依照分析手段的不同可以对不同的图元层存储打上不同的标签,以方便用户的复用。

本发明所具有的其他优势将会在具体实施例中进行相应说明。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为实施例中知识图谱的前端渲染方法的流程图;

图2为实施例中知识图谱的前端渲染系统框图。

图3为实施例中所述的电子设备的组成框图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在描述之前,先对可能使用到的专业术语进行说明。

图层:获取了原始数据和渲染数据之后形成的知识图谱,也就是界面上展示的包含边和节点的图谱,全量的。原始数据是指节点或边的属性数据,例如节点的名称、边代表的关系等等。渲染数据是指展示渲染效果的参数,比如节点的样式、节点颜色、边框颜色、标签字样,边的颜色等等。

图元层:将图层按照某种共性划分为不同的层,比如节点图元层,边图元层。

图元片段:就是图元层上单一的渲染单元,比如节点的颜色,节点的大小、边的颜色、边的粗细等。

图1为本实施例中提供的知识图谱的前端渲染方法的流程图。如图1所示,本方法包括步骤:

s10,获取待渲染的图层。

图层是指获取了原始数据和渲染数据之后形成的知识图谱,此处需要说明的是,对于待渲染的图层而言,渲染数据是指默认的数据。

在获取图层时,原始数据表有一份数据,图库有一份数据,这两份数据具有共同的唯一数据id,用唯一数据id,在图库中进行搜索,可以找到符合用户所查找该数据id的图层。

例如,在原始数据表中一个人的id是aaa,姓名叫做张三,那么在图库中张三是一个节点,节点的标签是张三,id是aaa,通过共有的id即可以对应找到数据。

s20,确定本次渲染的应用任务,并基于确定出的应用任务,将获取的图层划分为若干个图元层,并存储。

在具体实现时,可以预先制定策略表,不同应用任务下对应不同图元层划分策略,在实际应用时,确定出应用任务后,即可从预先制定的策略表中查找出该应用任务对应的图元层划分策略,并基于查找出的图元层划分策略划分图元层。

例如,当应用任务为图谱可视化分析时,可以将图层划分为节点图元层、边图元层和属性图元层,此处的属性图元层包括节点属性图元层和边属性图元层。每个图元层均为图库数据的拷贝且备份在临时存储区,在需要可视化层面变动时,将会获取某一临时存储区的某个图元层,进行数据变化,例如节点放大操作:系统将临时存储区节点图元数据进行读取,获取与节点直径有关参数,并对其进行改变,从而更改节点的大小,此时边图元层及属性图元层未发生任何改动;若想呈现复合变化效果,例如改变节点颜色同时改变边的粗细,则可通过两个图元层任务组合操作来完成以达到目的。

又例如,当应用任务为社群分析时,可以以社群发现的计算结果作为划分依据,将具有相同的社群值的节点划分为同一个图元层。例如节点abc为同一群组且值均为1,则将节点abc划分为一图元层,社群发现更关注节点分类结果,更关注节点可视化呈现,所以在该模式中,可能舍弃边的图元存储,重点将每个群组划分为不同的图元层。并将这些图元层存储在临时存储区。社群发现计算结束后,节点通常成聚类显示,具有相同社群值的节点以相同的颜色、半径等参数聚集在一起显示。

再例如,当应用任务为聚合分析时,可以将具有同类属性的边划分为同一个图元层。所谓聚合分析,通常是指对两节点之间具有多条边情况时需要将其聚合分析,例如两个账户之间频繁转账,此时需要知道交易总笔数、总金额等,则需要对边进行聚合分析,此时,将具有同类属性的边划分为一个边图元层,例如转出关系为一个图元层,转入关系为一个图元层,此时关注边数据,则可能舍弃节点的图元分层,将边图元分层存储在临时存储区,在进行聚合分析时,获取边的宽度值,并改变其宽度参数以完成聚合显示目的。

当然地,这里仅是列举了几个常见的应用任务,表明本发明方案的可行性。对于其他更多的应用任务,此处不再枚举。

将图层划分为图元层后,优选将划分后的图元层存储于临时存储区,渲染时从临时存储区中调取对应数据,既可以提高渲染的效率,也不会给其他不参与渲染的图层数据造成影响。

s30,将每一个图元层划分为若干个图元片段,并存储。

图元片段就是图元层上单一的渲染单元,作为一种常规实施方式,在划分图元片段时,筛选出图元层中可以单独渲染的单元,作为一个图元片段。例如节点直径、节点颜色、节点边框、节点高亮、边的颜色、边的粗细、标签均可以分别作为一个图元片段。

此处的单独渲染就是指计算机一次可以处理的一种渲染任务,比如一个节点,想要改变颜色和大小,但是颜色和大小不可以同时进行,因此大小和颜色在此时就分别是一个单独的渲染单元。在效果展示时,可以是只有当颜色和大小这两个渲染单元都改变了,对节点的大小和颜色的变化才生效。

对于不同应用场景而言,除了上述常规图元片段的划分策略外,还可以基于场景化划分策略。也就是,可以预先制定策略表,不同应用任务下对应不同图元片段划分策略,在实际应用时,确定出应用任务后,即可从预先制定的策略表中查找出该应用任务对应的图元片段划分策略,并基于查找出的图元片段划分策略划分图元片段。

仅是作为举例,图元片段划分策略不仅限以下几种:

一,在节点高级渲染时,提取某部分图元层中部分数据(如特定属性值,指定id等限制条件)将其保存为子图元层,再对该子图元层进行图元片段的划分,由于在节点高级渲染中只关注节点大小,故将节点直径划分为一个图元片段,并将其保存在临时存储区,根据需要调整的直径大小对图元片段进行数据修改(例如节点出入度越大,直径越大,节点显示越大,反之越小)。

二,在边的高级渲染时,只关注两节点之间拥有多条边的情况,故将边图元层中满足条件的边划分为一个子图元层,并在此子图元层上将边粗细划分为一个图元片段,当进行边的高级聚合渲染时,改变此子图元片段上的边粗细参数,以达到改变边粗细的效果。

三,社群发现计算中,算法着眼点在于节点的分类和节点的颜色,于是在获取上述社群发现场景下的图元层后,将节点的类型及颜色分别划分为两个图元片段并将其保存在临时存储区,当社群发现算法计算完成后,改变这两个图元片段的参数,将同类型节点聚集显示,并对同类型节点着相同颜色,以完成社群发现的视觉展示。

容易理解的,除上述举例三种场景外,用户也可自定义图元片段的划分场景,使得划分策略适用于不同的业务领域,并且可复用。

s40,判断图元片段量是否超过设定的数量阈值,如果是,则按照优先级排序序列,仅基于优先级高的图元片段进行渲染,如果否,则基于全部图元片段进行渲染。

本步骤中,当图元片段量较小时,渲染效果的展示在感观上不影响数据分析人员的处理,即渲染速度较快,此时可以基于全部图元片段进行渲染。但是当图元片段量较大时,会严重拖慢渲染进度,数据分析人员在前端不能及时看到渲染后的展示效果,继而会严重影响他们进行数据挖掘及分析。此时有选择性地只基于部分图元进行渲染,即可减少渲染的处理量,进而保障渲染的处理效率,使得数据分析人员在感观上不会觉得渲染后的图谱展示速度慢,继而不影响其对图谱数据的挖掘和分析。

由于不同设备的处理能力不同,因此数量阈值可以根据设备能力不同进行不同设置。

在选择性渲染时,为了不影响数据分析人员的正常使用,因此优选对图元片段按照优先级的等级进行排序,渲染时,仅基于优先级高的图元片段进行渲染。具体实施时,例如仅基于优先级大于等于设定的等级阈值的图元片段进行渲染。

例如,假设优先级等级分为四级,一级为最高优先级,等级阈值设定为3,那么仅基于优先级等级为一级、二级和三级的图元片段进行渲染,而优先级等级为四级的图元片段则不进行渲染。

本方案中,策略表中不仅记录了应用任务与划分策略(仅是指图元层划分策略,或者也可以同时包括图元层划分策略和图元片段划分策略)之间的对应关系,而且还记录了应用任务与优先级排序序列之间的对应关系,即是说不同的应用任务对应于不同的优先级排序序列,在基于应用任务确定出划分策略之后,对应也确定出了优先级排序序列。

例如,针对于社群分析的应用任务,图元优先级的排序序列为:某社群节点图元层>边图元层>属性图元层,以图元片段作为排序依据则为:某社群节点lable图元片段>节点颜色图元片段>节点大小图元片段>边宽度图元片段>边颜色图元片段>属性相关图元片段。

又例如,针对于聚合分析的应用任务,图元优先级的排序序列为:边图元层>节点图元层>属性图元层;以图元片段划分排序则序列为:边宽度图元片段>边颜色图元片段>边相关图元片段>节点相关图元片段>属性相关图元片段。

一般情况下,等级阈值是固定的,即设定之后就不变化。此处,为了增强方案的灵活性及实用性,等级阈值可以动态调整,例如等级阈值根据图元片段量与数量阈值之间的差值而动态调整。图元片段量与数量阈值之间的差值越大,说明需要渲染的图元片段越多,等级阈值根据差值而动态调整,使得渲染量也动态调整。例如针对于优先级等级为四级的情况,差值为d1时,等级阈值为3,差值为d2,d2>d1时,等级阈值为2。相比于固定量的渲染方式,在保障渲染效率的同时也可以增强方案的适应性。

通过本发明上述方法,不仅可以保障最终的渲染效果,而且可以提高渲染的速度,保障时效性。经过测验,在交互良好的情况下可以支持两万以内数据节点的展示、渲染、布局,10000以内图元的渲染帧率可达到60fps,而基于相同的条件,传统方法只能展示1000左右个节点,且1000以内的图层渲染帧率约为24fps,本发明上述方法速度提升非常明显。

而且,根据分析手段的不同,有不同的图元分层策略,同时分层策略可以作为二次加工的数据进行长效的存储,该存储策略本质上是对图库数据获取子集,并将不同子集中与可视化渲染相关数据进行备份保存,保存过程中依照分析手段的不同可以对不同的图元层存储打上不同的标签,以方便用户的复用。

另外,基于上述方法,针对于已经渲染过的图谱,当图元数据有更新时,则只需要针对更新后的图元片段进行渲染,而不影响其他图元片段,因此可以大大提高渲染速度。

请参阅图2,基于相同的发明构思,本实施例中同时提供了一种知识图谱的前端渲染系统,包括:

获取模块,被配置为获取待渲染的图层。更具体地,获取模块被配置为基于数据id,从图库中搜索与该数据id相符的图层,图层包括底层数据和图元。

划分模块,被配置为确定本次渲染的应用任务,并基于确定出的应用任务,将获取的图层划分为若干个图元层,以及将每一个图元层划分为若干个图元片段,并存储。具体实现时,划分模块根据确定出的应用任务,从预先制定的策略表中查找出该应用任务对应的划分策略,并基于查找出的划分策略划分图元层。

例如,若所述应用任务为图谱可视化分析,则将图层划分为节点图元层、边图元层和属性图元层;若所述应用任务为社群分析,则以社群发现的计算结果作为划分依据,将具有相同的社群值的节点划分为同一个图元层;若所述应用任务为聚合分析,则将具有同类属性的边划分为同一个图元层。然后将划分后的图元层存储于临时存储区。

渲染模块,被配置为判断图元片段量是否超过设定的数量阈值,如果是,则按照优先级排序序列,仅基于优先级大于等于设定的等级阈值的图元片段进行渲染,如果否,则基于全部图元片段进行渲染。

另外,渲染模块还被配置为判断图层中的图元是否有更新,若有,则仅基于更新后的图元片段进行渲染。

对于知识图谱的前端渲染系统中未描述之处,可以参见前述知识图谱的前端渲染方法中的相关描述,此处则不再赘述。

如图3所示,本实施例同时提供了一种电子设备,该电子设备可以包括处理器31和存储器32,其中存储器32耦合至处理器31。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构。

如图3所示,该电子设备还可以包括:输入单元33、显示单元34和电源35。值得注意的是,该电子设备也并不是必须要包括图3中显示的所有部件。此外,电子设备还可以包括图3中没有示出的部件,可以参考现有技术。

处理器31有时也称控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器31接收输入并控制电子设备的各个部件的操作。

其中,存储器32例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其他合适装置中的一种或多种,可存储上述处理器31的配置信息、处理器31执行的指令、记录的表格数据等信息。处理器31可以执行存储器32存储的程序,以实现信息存储或处理等。在一个实施例中,存储器32中还包括缓冲存储器,即缓冲器,以存储中间信息。

输入单元33例如用于向处理器31提供实体主体的数据或者数据持有方所拥有的数据。显示单元34用于显示处理过程中的各种结果,例如获取的图层、划分后的图元层、策略表等等,该显示单元例如可以为lcd显示器,但本发明并不限于此。电源35用于为电子设备提供电力。

本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行本发明方法所包含的操作步骤。

本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行本发明方法所包含的操作步骤。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成模块及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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