本发明涉及图信息查询技术领域,特别是涉及一种查询图分解方法、装置、电子设备及存储介质。
背景技术:
子图同构查询技术是在给定一个查询图和一个目标图的前提下,从目标图中找到与查询图的点、边属性完全匹配的子图。而由于查询图规模较大,因此很难实现直接在目标图中查找与查询图完全匹配的子图。
为了实现在目标图中查找与查询图完全匹配的子图,采取的方法主要是查询图分解方法。具体的,对查询图进行分解,得到多个查询子图,在目标图中查找与分解后的查询子图相匹配的子图,得到查询的中间结果。最后,将查询的中间结果进行归并得到最终完整结果。
分解查询图的方法为限定分解半径的分解查询图的方法。目前的限定分解半径的查询图分解方法主要分为两种:一种是随机分解方法,另一种是贪心分解方法。
随机分解方法为:首先在查询图中随机的选取一个节点u,为节点u和节点u的邻居节点分配一个查询子图,对于任意连接到这个查询子图中节点的边,如果纳入到这个查询子图中不会使查询子图的半径超过预设限定半径的值,那就也分配给这个查询子图,否则不分配。接着再随机选取另一个点,迭代上述步骤,直到原查询图全部分解完毕。
贪心分解方法为:对于查询图内的每个节点,以该节点为中心,在预设分解半径的限制下,中心节点将和距离该中心节点小于分解半径的节点,以及这些节点之间的边一起构成子图。然后在这些子图中,选择覆盖节点最多的子图,作为查询图分解的第一个查询子图。接着迭代进行上述操作,直到原查询图全部分解完毕。
而在限定分解半径的条件下,根据上述两种方法对查询图进行分解,得到的查询子图的过程中,查询图的结构会被严重破坏,导致出现一些规模较小的查询子图,进而导致查询子图的数目较多,由于查询子图数目较多,则在对中间结果进行归并得到最终结果的复杂度会较高,使得子图同构查询技术的整体性能不高。
技术实现要素:
本发明实施例的目的在于提供一种查询图分解方法、装置、电子设备及存储介质,以减少分解查询图后得到的查询子图的数目,从而提高子图同构查询技术的整体性能。具体技术方案如下:
为实现上述目的,本发明实施例提供了一种查询图分解方法,所述方法包括:
确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;
对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;
从多个第一节点中选择一个节点,作为第二节点;所述第一节点为离心率最大的待分配节点;
确定到所述第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;
对于每个目标节点,从所述查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;所述预设分解半径为分解子图中节点到中心节点的最大跳数;
从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图。
可选的,在从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图之后,还包括:
将所述查询图中位于查询子图中的节点确定为已分配节点,返回执行所述确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,直至所述查询图不包含待分配节点。
可选的,所述查询图还包括连接节点的边;
所述确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,包括:
若所述查询图包含未分配至查询子图中的节点,从所述查询图中的已分配节点中确定第三节点;所述第三节点为连接的至少一条边未位于查询子图中的节点;
将所述第三节点以及未分配至查询子图的节点,确定为待分配的节点;
确定每个待分配节点分别至其他待分配的节点的跳数。
可选的,所述方法还包括:
输出所述查询图的最终分解结果,所述最终分解结果中包含所述查询图的多个查询子图。
为实现上述目的,本发明实施例还提供了一种查询图分解装置,所述装置包括:
第一确定模块,用于确定所述查询图中每个待分配节点分别至其他待分配节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;
第一选择模块,用于对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;
第二选择模块,用于从多个第一节点中选择一个节点,作为第二节点;所述第一节点为离心率最大的待分配节点;
第二确定模块,用于确定到所述第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;
第三确定模块,用于对于每个目标节点,从所述查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;所述预设分解半径为分解子图中节点到中心节点的最大跳数;
第三选择模块,用于从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图。
可选的,所述装置还包括:
第四确定模块,用于在从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图之后,将所述查询图中位于查询子图中的节点确定为已分配节点,并触发第一确定模块。
可选的,所述查询图还包括连接节点的边;
所述第一确定模块,具体用于:
若所述查询图包含未分配至查询子图中的节点,从所述查询图中的已分配节点中确定第三节点;所述第三节点为连接的至少一条边未位于查询子图中的节点;
将所述第三节点以及未分配至查询子图的节点,确定为待分配的节点;
确定每个待分配节点分别至其他待分配的节点的跳数。
可选的,所述装置还包括:
输出模块,用于输出所述查询图的最终分解结果,所述最终分解结果中包含所述查询图的多个查询子图。
为实现上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。
本发明实施例提供的查询图分解方法、装置、电子设备及存储介质,首先从查询图中各个待分配节点中确定多个第一节点,其中,第一节点为离心率最大的待分配节点,再从多个第一节点中选择一个第一节点作为第二节点,确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点,对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图,从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。可见,本发明实施例中在分解查询图时,是从离心率最大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的查询图的一种示意图;
图2为本发明实施例提供的查询图分解方法的一种流程图;
图3为本发明实施例提供的图1所示的查询图中各个节点的离心率的示意图;
图4为本发明实施例提供的查询图分解方法的另一种流程图;
图5为本发明实施例提供的查询图分解装置的一种结构示意图;
图6为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种查询图分解方法、装置、电子设备以及存储介质,以实现减少分解查询图后得到的查询子图的数目,从而提高子图同构查询技术的整体性能。
为便于理解,下面结合图1对本申请实施例中出现的词语进行解释。图1为本发明实施例提供的查询图的一种示意图,图1中的数字表示节点编号。
跳数:在本申请实施例中,查询图中两节点之间的跳数表示两节点之间最短路径中包含的边的数目。例如,图1中节点0和节点7之间的最短路径为0-1-3-6-7,其中包括了4条边,则图1中节点0到节点7的跳数为4。
分解半径:在本申请实施例中,分解半径为分解子图中节点到中心节点的最大跳数。即每个分解子图都是具有中心节点的,分解子图中的所有节点到中心节点的跳数中的最大跳数为分解半径。
上述定义只是为了更好对本申请进行说明,并不对本申请的保护范围进行限制。
下面通过具体实施例,对本申请进行说明。
参见图2,图2为本发明实施例提供的查询图分解方法的一种流程图,方法包括以下步骤:
步骤s201:确定查询图中每个待分配节点分别至其他待分配的节点的跳数;待分配节点包括查询图中未分配至查询子图中的节点。
以图1为例,现假设要对图1所示的查询图进行分解,且预设的分解半径为1,即分解子图中各个节点到中心节点的跳数都为1。
可以先确定该查询图中每个待分配节点分别至其他待分配的节点的跳数,由于当前该查询图还未分解出查询子图,即节点0到节点7均为未分配节点。
以节点0为例,其到节点1的跳数为1,到节点2的跳数为2,到节点3的跳数为2,到节点4的跳数为3,到节点5的跳数为3,到节点6的跳数为3,到节点7的跳数为4。同样的,可以确定出节点1-7分别到其他节点的跳数。
步骤s202:对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;
在获取查询图中各个节点分别到其他节点的跳数后,对于每个待分配节点,可以选择最大的跳数最为该节点的离心率。
以图1中节点0为例,其到其他节点的跳数最大为4,则确定节点0的离心率为4。再举一例,节点3到节点0的跳数,和节点3到节点7的跳数相同,均为2,也是该节点3到其他节点的跳数的最大值,则节点3的跳数为2。相应的,可以确定各个节点的离心率,参见图3,图3为本发明实施例提供的图1所示的查询图中各个节点的离心率的示意图。
可以理解的,节点的离心率反映了该节点在整个查询图中的边缘性。节点的离心率越大,说明该节点越靠近查询图的边缘。
步骤s203:从多个第一节点中选择一个节点,作为第二节点;第一节点为离心率最大的待分配节点。
在本发明实施例中,可以将离心率最大的节点确定为第一节点,例如,图1所示的查询图中,节点0和节点7的离心率最大,则节点0和节点7均为第一节点。
在本步骤中,可以任意选取一个第一节点作为第二节点,例如,可以选取节点0为第二节点。
步骤s204:确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;
在本发明的一种实现方式中,所确定的目标节点到第二节点的跳数不超过预设跳数,该预设跳数不大于分解半径。较佳的,预设跳数等于分解半径。
以图1所示的查询图为例,假设分解半径为1,预设跳数也为1。若以节点0位第二节点,则到该第二节点不超过预设跳数的节点只有节点1,将节点1作为目标节点。
在查询图较大时,到第二节点不超过预设跳数的节点可以有很多个,可以将其均作为目标节点。
步骤s205:对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图。
在确定出目标节点后,可以确定以每个目标节点为中心节点,以预设的分解半径为半径的分解子图。可以理解的,在中心节点和分解半径确定的情况下,可以确定对应的分解子图。
在步骤s204中所确定的目标节点可以有多个,因此在本步骤中,也可以确定出多个分解子图。
仍以步骤s204中例子进行说明,由于其所确定的目标节点仅有一个,为节点1,则在本步骤中确定以节点1为中心节点,分解半径为1的分解子图,即包含了节点0、节点1、节点2、节点3的分解子图。
步骤s206:从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。
由于节点的离心率越大,说明该节点越靠近查询图的边缘,因此可以从步骤s205中确定的多个分解子图中选择一个包含第一节点数目最多的分解子图,其中,第一节点是待分配节点中离心率最大的节点。
由于被选择的分解子图中包含更多靠近查询图边缘的节点,说明被选择的分解子图也更靠近查询图的边缘,则可以将其作为分解得到的查询子图,这样避免破坏查询图的内容结构,保持查询图的内部连通性。
本发明实施例提供的查询图分解方法,首先从查询图中各个待分配节点中确定多个第一节点,其中,第一节点为离心率最大的待分配节点,再从多个第一节点中选择一个第一节点作为第二节点,确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点,对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图,从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。可见,本发明实施例中在分解查询图时,是从离心率最大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。
本发明实施例中,若从查询图中已经分解出了查询子图,那么步骤s201中:确定查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,可以包括:
从查询图中的已分配节点中确定第三节点;第三节点为连接的至少一条边未位于查询子图中的节点;将第三节点以及未分配至查询子图的节点,确定为待分配的节点;确定每个待分配节点分别至其他待分配的节点的跳数。
下面结合例子对上述过程进行说明:
若当前已经从查询图中分解出了查询子图,那么查询子图中包含的节点为已分配节点,以图1所示查询图为例,当前已经分解出的查询子图包含的节点有节点0、节点1、节点2以及节点3,则将该4个节点确定为已分配节点,那么剩下的节点有节点4、节点5、节点6以及节点7。
随后从查询图中已分配节点中确定第三节点,其中第三节点为连接的至少一条边未位于查询子图中的节点。以图1所示查询图为例,图1中节点3为分解出的查询子图中的一个节点,但由于节点3与节点4、5、6之间均有连接的边,且这些边均未位于查询子图中,因此将节点3确定为第三节点。
随后将第三节点以及未分配至查询子图的节点,确定为待分配的节点。可以理解的,从查询图中去除查询子图包括的节点以及边后,需要将第三节点补上。以图1所示查询图为例,从查询图中去除查询子图包括的节点0、节点1、节点2以及节点3后,剩下的节点有节点4、节点5、节点6以及节点7,再将第三节点补上形成一个完整的图,将第三节点以及未分配至查询子图的节点,确定为待分配的节点,这样待分配的节点为节点3、节点4、节点5、节点6以及节点7。随后确定每个待分配节点分别至其他待分配的节点的跳数。
在本发明实施例中,在每次分解出查询子图后,则查询子图中包含的节点为已分配节点,则在下次分解时不需要计算这些已分配节点的离心率。而是将第三节点和未分配的节点均作为待分配节点,重新计算当前待分配节点的离心率,按照图2所示实施例分解下一个查询子图,直到查询图中不再包含待分配节点。
以图1所示查询图为例,在分解出包含节点0、1、2、3的查询子图后,当前待分配节点为节点3、4、5、6、7,则重新计算该5个节点的离心率,并重新分解查询子图。
具体过程如下:计算出节点3、4、5、7的离心率为2,节点6的离心率为1,则节点3、4、5、7均为第一节点,从中任意选择一个节点作为第二节点,假设选取节点5为第二节点。随后确定到第二节点的跳数不超过预设跳数的目标节点,由于预设跳数为1,那么目标节点可以为节点3或者节点6。
以节点3为中心节点且半径为1的分解子图中包含节点3、4、5、6,其中第一节点的个数为4;以节点6为中心节点且半径为1的分解子图中包含节点3、4、5、6、7,其中第一节点的个数为5。因此,将以节点6为中心节点的分解子图确定为查询子图,此时,则节点3、4、5、6、7均为已分配节点,查询图中不再包含待分配节点,因此,图1所示的查询图已经分解完成,分解得到两个查询子图,其中一个是以节点1为中心节点,半径为1的查询子图,另一个是以节点6为中心节点,半径为1的查询子图。
在本发明实施例中,可以将每次分解得到的查询子图均作为查询图的最终分解结果,其包含了分解过程中所确定的每一个查询子图。
可见,本发明实施例中,在分解查询图时,是从离心率较大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。
下面再结合图4对本发明提供的另一种实施例做简要介绍,参见图4,图4为本发明实施例提供的查询图分解方法的另一种流程图,可以包括以下步骤:
s401:输入查询图q和分解半径k。
s402:以查询图q中每个节点为中心,k为半径,构建子图。
在本步骤中,是以查询图q中每个节点为中心,以分解半径k为半径构建子图,总共生成的子图数目和查询图q中节点的数目相同。
s403:将所有子图均加入候选查询子图集合。
在本步骤中,将生成的所有子图均作为候选查询子图,生成查询子图集合。
s404:判断查询图q中是否有未分配的节点,是则执行s405;否则执行s409。
s405:为剩下的节点计算离心率。
在本步骤中,对于每个剩下的节点,计算离心率,该离心率和图2所示实施例中提到的离心率相同。
s406:随机选择离心率最大的节点。
在本步骤中,随机选择一个离心率最大的节点,可以设为节点p。
s407:在以该节点k跳范围内节点为中心,k为半径构建的子图中,选择包含离心率最大的节点数最多的子图。
在本步骤中,确定每个到上述节点p的跳数不超过k的节点,可以设为节点q,从以每个节点q为中心,k为半径构建的子图中,选择一个包含离心率最大的节点数最多的子图,作为本次循环中确定的查询子图。
s408:将该子图加入输出查询子图集合中,并从查询图q中删除该子图包含的节点和边,并返回s404。
确定出查询子图后,将该查询子图加入查询子图集合,然后从查询图q中删除该查询子图中包含的节点和边,再返回s404,进行下一次循环。
s409:输出查询子图集合。
可见,本发明实施例中,在分解查询图时,是从离心率较大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。
基于相同的发明构思,根据上述查询图分解方法实施例,本发明实施例还提供了一种查询图分解装置,参见图5,可以包括以下模块:
第一确定模块501,用于确定查询图中每个待分配节点分别至其他待分配节点的跳数;待分配节点包括查询图中未分配至查询子图中的节点;
第一选择模块502,用于对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;
第二选择模块503,用于从多个第一节点中选择一个节点,作为第二节点;第一节点为离心率最大的待分配节点;
第二确定模块504,用于确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;
第三确定模块505,用于对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;预设分解半径为分解子图中节点到中心节点的最大跳数;
第三选择模块506,用于从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。
本发明实施例提供的查询图分解装置,首先从查询图中各个待分配节点中确定多个第一节点,其中,第一节点为离心率最大的待分配节点,再选择一个第一节点作为第二节点,确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点,对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图,从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。可见,本发明实施例中在分解查询图时,是从离心率最大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。
在本发明实施例中,在图5的装置实施例的基础上,还可以包括第四确定模块,用于在从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图之后,将查询图中位于查询子图中的节点确定为已分配节点,并触发第一确定模块。
在本发明实施例中,第一确定模块501,具体可以用于:
若查询图包含未分配至查询子图中的节点,从查询图中的已分配节点中确定第三节点;第三节点为连接的至少一条边未位于查询子图中的节点;
将第三节点以及未分配至查询子图的节点,确定为待分配的节点;
确定每个待分配节点分别至其他待分配的节点的跳数。
本发明实施例中,在图5装置实施例的基础上,还可以包括输出模块,用于输出查询图的最终分解结果,最终分解结果中包含查询图的多个查询子图。
基于相同的发明构思,根据上述查询图分解方法实施例,本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述图1-4所示的查询图分解方法实施例。其中,查询图分解方法包括:
确定查询图中每个待分配节点分别至其他待分配的节点的跳数;待分配节点包括查询图中未分配至查询子图中的节点;
对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;
从多个第一节点中选择一个节点,作为第二节点;第一节点为离心率最大的待分配节点;
确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;
对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;预设分解半径为分解子图中节点到中心节点的最大跳数;
从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。
在本发明实施例中,首先从查询图中各个待分配节点中确定多个第一节点,其中,第一节点为离心率最大的待分配节点,再选择一个第一节点作为第二节点,确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点,对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图,从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。可见,本发明实施例中在分解查询图时,是从离心率最大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。
上述电子设备提到的通信总线604可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602用于上述电子设备与其他设备之间的通信。
存储器603可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器603还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器601可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于相同的发明构思,根据上述查询图分解方法实施例,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述图1-4所示的任一查询图分解方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。