1.服务流程间差异检测与自然语言翻译方法,该方法包括以下步骤:
1)输入两个服务流程,将它们分别转换成对应的基于任务节点的过程结构树TPST;
2)节点映射,即对两个TPST中的节点进行映射,包括如下步骤:
2.1)任务节点映射:若两个任务节点的标签相同,则它们之间的相似度为1,否则相似度为0;
2.2)路由节点映射,类型一样的路由节点才可映射;
3)P,Q‑Gram提取:分别遍历两个TPST,找出所有的P,Q‑Gram,P,Q‑Gram是扫帚形状,其中P代表的是TPST中P个层次直接相连的路由节点,Q代表的是P中层次最大的路由节点的Q个孩子节点;
4)P,Q‑Gram映射:比较两个TPST中的所有P,Q‑Gram,给定P,Q‑Gram1和P,Q‑Gram2,若它们的P和Q中的每个节点都一一映射,则将P,Q‑Gram1和P,Q‑Gram2映射起来;
5)共同主结构提取:合并两个TPST中所有的映射P,Q‑Gram,将合并后的P,Q‑Gram作为两个TPST的共同主结构;
6)流程差异检测和自然语言翻译:设计以下四类差异模式,对两个TPST中除了共同主结构以外的节点生成差异模式,两个TPST间的差异模式可展示在它们的共同主结构之上,并将差异翻译成自然语言:
Ⅰ)子树编辑模式:包括子树删除模式和子树插入模式,子树subTree删除模式的自然语言翻译为:由节点a、b、c…组成的子树subTree只存在TPST1中,子树subTree插入模式的自然语言翻译为:由节点a、b、c…组成的子树subTree只存在TPST2中;
Ⅱ)节点编辑操作:包括节点删除模式和节点插入模式,节点node删除模式的自然语言翻译为:节点node只存在TPST1中,节点node插入模式的自然语言翻译为:节点node只存在TPST2中;
Ⅲ)控制流结构变化模式:对于两个TPST中的映射路由节点,它们的子节点a1…am和b1…bm也一一映射但是拥有不同的执行关系C1和C2,该模式的自然语言翻译为:TPST1中节点a1…am的执行顺序为C1,而在TPST2中节点b1…bm的执行顺序变为C2;
Ⅳ)顺序交换模式:对于两个TPST中映射的顺序结构块,其中节点的执行顺序不同,自然语言翻译为:在TPST1中节点顺序为a→b→c…,而在TPST2中节点顺序为c→b→a…。
2.如权利要求1所述的服务流程间差异检测与自然语言翻译方法,其特征在于:所述步骤2.2)具体步骤如下:
2.2.1)生成特征向量:一个路由节点g用一个特征向量fv(g)=[T,C]来表示,其中T是g的类型,包括有序和无序两种,C指g的孩子节点集合;
2.2.2)计算特征向量相似度,包括以下两种情况:Ⅰ)两个路由节点g1和g2的类型为有序,即为Sequence或Loop节点,用公式(1)来计算g1和g2的相似度,公式(1)中的LCS代表C1和C2的最长共同子序列,fv(g1)、fv(g2)分别表示g1和g2的特征向量:
Ⅱ)两个路由节点g1和g2的类型为无序,即为XOR或AND节点,用公式(2)来计算g1和g2的相似度:
2.2.3)选出映射节点:两个TPST中所有可能映射的任务节点对和路由节点对集合为N={n1,…ni,…,nm}(1≤i≤m),计算任一可能映射的节点对ni={node1,node2}中node1和node2的相似度,采用贪心算法,选出每一轮能最大化增加两个TPST间相似度的节点对nj={node1,node2}中将node1和node2进行映射,随后在N中删除包含node1或node2的节点对,直到两个TPST间的相似度不再增加或N为空就停止,最后得到两个TPST间的映射节点对;其中,两个TPST间的相似度采用公式(3)来计算,C1和C2分别代表两个TPST的孩子节点集合: