一种基于本体的Web服务功能相似性度量方法与流程

文档序号:16898257发布日期:2019-02-19 17:41阅读:166来源:国知局

本发明涉及web服务演化领域,具体涉及一种基于本体的web服务功能相似性度量方法。



背景技术:

web服务是一种软件系统,旨在支持机器之间的跨网络交互。目前主要有两种类型的web服务:一种是基于soap,另一种是基于rest。两者的区别是使用的接口不同,基于soap的web服务使用soap接口传递消息,并且使用web服务描述语言(wsdl)来描述web服务,wsdl为web服务提供者指定了使用协议和编码独立机制,它是一个xml词汇表,描述了网络上可访问的服务并将它们映射到具有消息传递功能的通信端点集合中。而使用rest接口的web服务则使用通用的http方法(get、delete、post和put)来描述、发布和使用相关资源。

目前的研究工作旨在通过使用称为本体的概念化知识来提供web服务的语义描述。本体是一个词汇表,用于描述一个领域内的一组概念(领域可被定义为特定的主题领域或知识领域)以及这些概念之间存在的关系。它被应用于领域内的属性推理,或是领域本身的定义。在web服务的上下文中,本体作为提供web服务语义描述的一种方式,发挥着重要的作用。web服务描述的增强促进了语义web服务的发展,以机器可理解的方式对web服务进行语义描述将对诸如电子商务和应用程序集成等领域产生重大影响,因为它可以实现不同系统和组织之间动态、可扩展及高效性的协作。

随着web服务的不断发展,为了适应环境改变和用户需求的变更,互联网中的web服务需要持续不断地进行演化。因此,web服务演化成为服务计算领域重要的研究点之一。同时,web服务作为构建软件服务的重要技术,如何使软件系统能够自适应运行并且支持服务动态演化具有重要的研究意义和应用价值。

web服务演化泛指服务在发布、运行之后,为适应环境变化、持续满足用户需求,而进行一系列变更的过程。由于web服务动态、异构、自治的特点,并且服务的分布式特征使得系统所集成的服务大多来源于不同的组织,这造成了web服务的演化相比传统软件演化将面临更多的挑战。

在服务演化研究领域,已经有许多研究学者针对服务间语义相似性度量方法提出了不同的优化方案。美国印第安那大学信息学院计算机科学系的anagmaguitman将图论引入到语义相似性的计算之中,并给出了计算方法。加拿大曼尼托巴大学的dekanglin提出在计算语义相似性不但要考虑概念之间所共享的信息量,也要考虑概念之间差异信息量。曼彻斯特城市大学的yuhuali等人也提出了一个度量语义相似性的方法,他们考虑了概念密度因素对语义相似性的影响。



技术实现要素:

web服务的演化一般通过服务聚类操作来缩小服务样本的搜索空间,使服务匹配过程可以在一个特定的聚类中进行,而不是一个具有许多不相关服务的大型服务池。通常情况下,计算对象间的相似度是聚类算法的重要一步。本发明通过计算本体概念属性之间的相似度,并考虑了同种属性名称不同的情况,结合朴素贝叶斯模型的单词语义相似度度量方法来计算属性名称之间的相似性,通过参数数量差值与参数数量的比率来增强数量差对于服务输入相似度的影响,因此能够合理地度量服务间的功能相似性,优化服务聚类效果。

为了解决上述技术问题本发明所采用的技术方案是:

一种基于本体的web服务功能相似性度量方法,所述服务功能相似性度量方法包括以下步骤:

第一步、计算领域本体中两个概念a和b之间的语义相似度,过程如下:

步骤(1.1)若概念a和b是相同的或者它们被声明为equivalentclasses,则概念a,b的相似度simconcept为1,否则进行步骤(1.2);

步骤(1.2)若概念a直接或间接为概念b的一个子类,则概念a,b的相似度simconcept计算公式如下:

其中prop(a)与prop(b)分别表示概念a与概念b的属性集合,size(prop(b))与size(prop(a))分别表示概念b和概念a的属性个数,否则进行步骤(1.3)

步骤(1.3)若概念b直接或间接为概念a的一个子类,则概念a,b的相似度simconcept计算公式如下:

否则进行步骤(1.4);

步骤(1.4)若概念a与概念b没有父子关系,但两个概念直接或间接有一个共同的父类概念c,则采用基于朴素贝叶斯模型的单词语义相似度度量方法,首先分别遍历概念a与概念b的各个属性,通过computefeature函数对概念a与概念b的属性名称进行特征提取,然后采用样本训练后的条件概率分布列和调整因子,计算概念属性之间的相似度simword,根据概念属性之间的相似度simword与相似判定因子η的比较,判断两个属性是否为同一属性并进行统计,最后计算出概念a,b的相似度simconcept;

步骤(1.5)若概念a和概念b的关系在上述情况中均不符合,则概念a,b的相似度simconcept设为0;

第二步、结合第一步的概念相似度计算方法,给出服务s1与服务s2输入相似度siminput的计算方法,过程如下:

步骤(2.1)创建服务输入参数相似度最大匹配数组insim并初始化,进行步骤(2.2);

步骤(2.2)将服务s1的输入参数数量减去服务s2的输入参数数量得到参数数量差值d,进行步骤(2.3);

步骤(2.3)若d小于或等于0,则将服务s1设为sshort,服务s2设为slong,否则将服务s2设为sshort,服务s1设为slong,进行步骤(2.4);

步骤(2.4)遍历slong中的输入参数,若遍历完成,则进行步骤(2.8),否则从slong中取出下一个输入参数longi,进行步骤(2.5);

步骤(2.5)遍历sshort中的输入参数,若遍历完成,则返回步骤(2.4),否则从sshort中取出下一个输入参数shortj,进行步骤(2.6);

步骤(2.6)根据第一步的概念相似度计算方法计算参数longi与参数shortj的相似度simij,进行步骤(2.7);

步骤(2.7)将simij与insim[i]进行比较,若simij大于insim[i],则将insim[i]的值设为simij的值,否则insim[i]值为原值,返回步骤(2.5);

步骤(2.8)计算服务s1与服务s2输入相似度siminput,计算公式如下:

其中size(slong.input)与size(sshort.input)分别表示服务slong的输入参数个数与服务sshort的输入参数个数,|d|表示两个服务的输入参数数量差值,insim为输入参数的相似度最大匹配数组;

第三步、结合第一步的概念相似度计算方法,给出服务s1与服务s2输出相似度simoutput的计算方法,过程如下:

步骤(3.1)创建服务输出参数相似度最大匹配数组outsim并初始化,进行步骤(3.2);

步骤(3.2)将服务s1的输出参数数量减去服务s2的输出参数数量得到参数数量差值d,进行步骤(3.3);

步骤(3.3)若d小于或等于0,则将服务s1设为sshort,服务s2设为slong,否则将服务s2设为sshort,服务s1设为slong,进行步骤(3.4);

步骤(3.4)遍历slong中的输出参数,若遍历完成,则进行步骤(3.8),否则从slong中取出下一个输出参数longi,进行步骤(3.5);

步骤(3.5)遍历sshort中的输出参数,若遍历完成,则返回步骤(3.4),否则从sshort中取出下一个输出参数shortj,进行步骤(3.6);

步骤(3.6)根据第一步的概念相似度计算方法计算参数longi与参数shortj的相似度simij,进行步骤(3.7);

步骤(3.7)将simij与outsim[i]进行比较,若simij大于outsim[i],则将outsim[i]的值设为simij的值,否则outsim[i]值为原值,返回步骤(3.5);

步骤(3.8)计算服务s1与服务s2输出相似度simoutput,计算公式如下:

其中size(slong.output)与size(sshort.output)分别表示服务slong的输出参数个数与服务sshort的输出参数个数,|d|表示两个服务的输出参数数量差值,outsim为输出参数的相似度最大匹配数组;

第四步、结合第二步与第三步求得的服务输入相似度siminput与服务输出相似度simoutput计算服务s1与服务s2的功能相似性functionalsim(s1,s2),计算公式如下:

functionalsim(s1,s2)=w1×siminput+w2×simoutput,其中权重w1和w2是0和1之间的实数值并且总和为1,它们表示服务消费者对输入相似性和输出相似性认定的重要性。

进一步,所述步骤(1.4)的步骤如下:

步骤(1.4.1)设变量i表示概念a与概念b中属性相同的个数并置初始值为0,进行步骤(1.4.2);

步骤(1.4.2)若概念a的属性集合prop(a)遍历完成,则进行步骤(1.4.7),否则从prop(a)取出下一个prop(a)j并将其从prop(a)中移除,进行步骤(1.4.3);

步骤(1.4.3)若概念b的属性集合prop(b)遍历完成,则返回步骤(1.4.2),否则从prop(b)取出下一个prop(b)k并将其从prop(b)中移除,进行步骤(1.4.4);

步骤(1.4.4)基于朴素贝叶斯模型,结合worknet英语词典,通过computefeature函数对prop(a)j与prop(b)k的属性名称进行特征提取进而得出l(prop(a)j,prop(b)k)和d(prop(a)j,prop(b)k),其过程如下:

计算每个属性名称的单词语义,由于每个单词对应一个或多个语义,那么每一单词对也就对应一个或多个语义对,将与单词对相应的所有语义对中距离最短的语义节点距离定义为该单词对距离l(prop(a)j,prop(b)k),并将语义节点距离最短的语义对深度定义为单词对深度d(prop(a)j,prop(b)k),已知属性名称prop(a)j存在于语义节点vj1,vj2,…,vjn的同义词组中,属性名称prop(b)k存在于语义节点vk1,vk2,…vkm的同义词组中,那么prop(a)j与prop(b)k的距离计算公式与深度计算公式如下:

其中l(vja,vkb)表示语义节点vja与语义节点vkb的距离,d(vja,vkb)表示语义对(vja,vkb)的深度;

进一步,依据朴素贝叶斯模型的训练集生成均值函数lw(i)和dw(o),再利用均值函数lw(i)和dw(o)计算条件概率分布列p(l(prop(a)j,prop(b)k)|c)和p(d(prop(a)j,prop(b)k)|c),其中c为单词类别分类,其值域为{u,n},其中u代表“一致”,n代表“不一致”,最后计算调整因子α和β,计算公式如下:

之后转入步骤(1.4.5);

步骤(1.4.5)基于朴素贝叶斯模型,将本体概念属性的特征l(prop(a)j,prop(b)k)和d(prop(a)j,prop(b)k)注入到步骤(1.4.4)所得的条件概率分布列中,并依次提取条件概率v1=p(l(prop(a)j,prop(b)k)=i|c=u),v2=p(d(prop(a)j,prop(b)k)=o|c=u),v3=p(l(prop(a)j,prop(b)k)=i|c=n)与v4=p(d(prop(a)j,prop(b)k)=o|c=n),最后结合步骤(1.4.4)中的调整因子α和β来计算prop(a)j与prop(b)k之间的相似度simword,计算公式如下:

simword(prop(a)j,prop(b)k)=(αv1×v2)/(αv1×v2+βv3×v4),进行步骤(1.4.6);

步骤(1.4.6)若simword大于或等于相似判定因子η,则prop(a)j与prop(b)k为同一属性并将变量i加1,返回步骤(1.4.2),否则返回步骤(1.4.3);

步骤(1.4.7)计算概念a,b的相似度simconcept,计算公式如下:

其中i表示概念a与概念b中属性相同的个数,prop(a)与prop(b)分别表示概念a与概念b的属性集合,size(prop(b))与size(prop(a))分别表示概念b和概念a的属性个数,进行步骤(1.5)。

本发明的有益效果是,在计算本体概念属性之间的相似度时,考虑了同种属性名称不同的情况,结合朴素贝叶斯模型的单词语义相似度度量方法来计算属性名称之间的相似性,从而在一定程度上避免了直接判断属性名称是否相等所带来的误差。此外,在计算输入(输出)相似度时,算法将参数数量差值d考虑在内,通过参数数量差值与参数数量的比率来增强数量差对于服务输入相似度的影响,能够合理地度量服务间的功能相似性。

具体实施方式

下面对本发明做进一步说明。

一种基于本体的web服务功能相似性度量方法,功能相似性度量考虑服务间输入和输出的领域本体概念,输入(输出)之间的匹配主要指与输入(输出)相关的概念的匹配。为了计算两个概念a和b的相似性,需要考虑领域本体中两个概念之间的关系。

领域本体是描述指定领域知识的一种专门本体,这里的“领域”是根据本体构建者的需求来确立的,它可以是一个学科领域,可以是某几个领域的一种结合,也可以是一个领域中的一个小范围。若领域本体中两个概念具有不同的名字但拥有相同的个体集合,则它们被称为等价类(equivalentclasses)。

所述度量方法包括以下步骤:

第一步、计算领域本体中两个概念a和b之间的语义相似度,过程如下:

步骤(1.1)若概念a和b是相同的或者它们被声明为equivalentclasses,则概念a,b的相似度simconcept为1,否则进行步骤(1.2);

步骤(1.2)若概念a直接或间接为概念b的一个子类,则概念a,b的相似度simconcept计算公式如下:

其中prop(a)与prop(b)分别表示概念a与概念b的属性集合,size(prop(b))与size(prop(a))分别表示概念b和概念a的属性个数,否则进行步骤(1.3)

步骤(1.3)若概念b直接或间接为概念a的一个子类,则概念a,b的相似度simconcept计算公式如下:

否则进行步骤(1.4);

步骤(1.4)若概念a与概念b没有父子关系,但两个概念直接或间接有一个共同的父类概念c,则采用基于朴素贝叶斯模型的单词语义相似度度量方法,首先分别遍历概念a与概念b的各个属性,通过computefeature函数对概念a与概念b的属性名称进行特征提取,然后采用样本训练后的条件概率分布列和调整因子,计算概念属性之间的相似度simword,根据概念属性之间的相似度simword与相似判定因子η的比较,判断两个属性是否为同一属性并进行统计,最后计算出概念a,b的相似度simconcept,步骤如下:

步骤(1.4.1)设变量i表示概念a与概念b中属性相同的个数并置初始值为0,进行步骤(1.4.2);

步骤(1.4.2)若概念a的属性集合prop(a)遍历完成,则进行步骤(1.4.7),否则从prop(a)取出下一个prop(a)j并将其从prop(a)中移除,进行步骤(1.4.3);

步骤(1.4.3)若概念b的属性集合prop(b)遍历完成,则返回步骤(1.4.2),否则从prop(b)取出下一个prop(b)k并将其从prop(b)中移除,进行步骤(1.4.4);

步骤(1.4.4)基于朴素贝叶斯模型,结合worknet英语词典,通过computefeature函数对prop(a)j与prop(b)k的属性名称进行特征提取进而得出l(prop(a)j,prop(b)k)和d(prop(a)j,prop(b)k)。其中朴素贝叶斯模型是最为广泛的两种分类模型之一,worknet是由普林斯顿大学认识科学实验室在心理学教授米勒的指导下建立和维护的英语词典。具体计算过程如下:

计算每个属性名称的单词语义,由于每个单词对应一个或多个语义,那么每一单词对也就对应一个或多个语义对。将与单词对相应的所有语义对中距离最短的语义节点距离定义为该单词对距离l(prop(a)j,prop(b)k),并将语义节点距离最短的语义对深度定义为单词对深度d(prop(a)j,prop(b)k),已知属性名称prop(a)j存在于语义节点vj1,vj2,…,vjn的同义词组中,属性名称prop(b)k存在于语义节点vk1,vk2,…vkm的同义词组中,那么prop(a)j与prop(b)k的距离计算公式与深度计算公式如下:

其中l(vja,vkb)表示语义节点vja与语义节点vkb的距离,d(vja,vkb)表示语义对(vja,vkb)的深度。

进一步,依据朴素贝叶斯模型的训练集生成均值函数lw(i)和dw(o),再利用均值函数lw(i)和dw(o)计算条件概率分布列p(l(prop(a)j,prop(b)k)|c)和p(d(prop(a)j,prop(b)k)|c),其中c为单词类别分类,其值域为{u,n},其中u代表“一致”,n代表“不一致”。最后计算调整因子α和β,计算公式如下:

之后转入步骤(1.4.5);

步骤(1.4.5)基于朴素贝叶斯模型,将本体概念属性的特征l(prop(a)j,prop(b)k)和d(prop(a)j,prop(b)k)注入到步骤(1.4.4)所得的条件概率分布列中,并依次提取条件概率v1=p(l(prop(a)j,prop(b)k)=i|c=u),v2=p(d(prop(a)j,prop(b)k)=o|c=u),v3=p(l(prop(a)j,prop(b)k)=i|c=n)与v4=p(d(prop(a)j,prop(b)k)=o|c=n)。最后结合步骤(1.4.4)中的调整因子α和β来计算prop(a)j与prop(b)k之间的相似度simword,计算公式如下:

simword(prop(a)j,prop(b)k)=(αv1×v2)/(αv1×v2+βv3×v4),进行步骤(1.4.6);

步骤(1.4.6)若simword大于或等于相似判定因子η,则prop(a)j与prop(b)k为同一属性并将变量i加1,返回步骤(1.4.2),否则返回步骤(1.4.3);

步骤(1.4.7)计算概念a,b的相似度simconcept,计算公式如下:

其中i表示概念a与概念b中属性相同的个数,prop(a)与prop(b)分别表示概念a与概念b的属性集合,size(prop(b))与size(prop(a))分别表示概念b和概念a的属性个数,进行步骤(1.5);

步骤(1.5)若概念a和概念b的关系在上述情况中均不符合,则概念a,b的相似度simconcept设为0;

第二步、结合第一步的概念相似度计算方法,给出服务s1与服务s2输入相似度siminput的计算方法,过程如下:

步骤(2.1)创建服务输入参数相似度最大匹配数组insim并初始化,进行步骤(2.2);

步骤(2.2)将服务s1的输入参数数量减去服务s2的输入参数数量得到参数数量差值d,进行步骤(2.3);

步骤(2.3)若d小于或等于0,则将服务s1设为sshort,服务s2设为slong,否则将服务s2设为sshort,服务s1设为slong,进行步骤(2.4);

步骤(2.4)遍历slong中的输入参数,若遍历完成,则进行步骤(2.8),否则从slong中取出下一个输入参数longi,进行步骤(2.5);

步骤(2.5)遍历sshort中的输入参数,若遍历完成,则返回步骤(2.4),否则从sshort中取出下一个输入参数shortj,进行步骤(2.6);

步骤(2.6)根据第一步的概念相似度计算方法计算参数longi与参数shortj的相似度simij,进行步骤(2.7);

步骤(2.7)将simij与insim[i]进行比较,若simij大于insim[i],则将insim[i]的值设为simij的值,否则insim[i]值为原值,返回步骤(2.5);

步骤(2.8)计算服务s1与服务s2输入相似度siminput,计算公式如下:

其中size(slong.input)与size(sshort.input)分别表示服务slong的输入参数个数与服务sshort的输入参数个数,|d|表示两个服务的输入参数数量差值,insim为输入参数的相似度最大匹配数组;

第三步、结合第一步的概念相似度计算方法,给出服务s1与服务s2输出相似度simoutput的计算方法,过程如下:

步骤(3.1)创建服务输出参数相似度最大匹配数组outsim并初始化,进行步骤(3.2);

步骤(3.2)将服务s1的输出参数数量减去服务s2的输出参数数量得到参数数量差值d,进行步骤(3.3);

步骤(3.3)若d小于或等于0,则将服务s1设为sshort,服务s2设为slong,否则将服务s2设为sshort,服务s1设为slong,进行步骤(3.4);

步骤(3.4)遍历slong中的输出参数,若遍历完成,则进行步骤(3.8),否则从slong中取出下一个输出参数longi,进行步骤(3.5);

步骤(3.5)遍历sshort中的输出参数,若遍历完成,则返回步骤(3.4),否则从sshort中取出下一个输出参数shortj,进行步骤(3.6);

步骤(3.6)根据第一步的概念相似度计算方法计算参数longi与参数shortj的相似度simij,进行步骤(3.7);

步骤(3.7)将simij与outsim[i]进行比较,若simij大于outsim[i],则将outsim[i]的值设为simij的值,否则outsim[i]值为原值,返回步骤(3.5);

步骤(3.8)计算服务s1与服务s2输出相似度simoutput,计算公式如下:

其中size(slong.output)与size(sshort.output)分别表示服务slong的输出参数个数与服务sshort的输出参数个数,|d|表示两个服务的输出参数数量差值,outsim为输出参数的相似度最大匹配数组;

第四步、结合第二步与第三步求得的服务输入相似度siminput与服务输出相似度simoutput计算服务s1与服务s2的功能相似性functionalsim(s1,s2),计算公式如下:

functionalsim(s1,s2)=w1×siminput+w2×simoutput,其中权重w1和w2是0和1之间的实数值并且总和为1。它们表示服务消费者对输入相似性和输出相似性认定的重要性。默认情况下,w1和w2均设置为0.5。

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