基于案例的 Web 服务推理
发现和选择
Alan De Renzis, Martin Garriga, Andres Flores, Alejandra cechich1.2
GIISCo 研究组
UNComa 大学信息学院
Nuequen,阿根廷
亚历山大 Zunino3
伊斯坦研究所
UNICEN 大学
Tandil,布宜诺斯艾利斯,阿根廷
摘要
Web 服务的发现和选择处理的是检索最合适的 Web 服务必需的功能。当只有功能描述时,
解决有效的解决方案仍然很困难提供的服务。本文提出了一种基于案例推理的求解方法通过
相似度函数来量化一对案例之间的相似性。我们展示了可行性通过引入一个新的案例,将基
于案例的推理应用于 Web 服务的发现和选择表示,学习启发式和三种不同的相似函数。我
们也进行了实验验证我们的提案使用 62 个真实 Web 服务的数据集,实现了众所周知的具有
竞争力的价值信息检索度量。
关键词:Web 服务;服务选择;服务发现;应用程序。
1 介绍
面向服务的计算(SOC)通过提供支持构建异构的分布式组织间应用程序环境[14]。软件行业大
多采用了 SOC 的使用方式 Web 服务技术。Web 服务是具有定义良好的接口的程序可以使用
标准 Web 协议[5]定位、发布和调用。
然而,SOC 范式的广泛使用需要有效的方法来实现允许从应用程序内部发现、选择、集成和
使用服务[29]。目前,开发人员需要手动搜索合适的服务然后为它们的程序集提供足够的“胶
水代码”,使其成为面向服务的程序集应用[9]。即使有一个庞大的候选列表,熟练的开发人
员也必须确定最适合使用者应用程序的服务。这意味着发现服务、分析检索的适用性的令人
望而却步的工作候选人(即。,并确定最终的调整集所选候选服务的集成。
在这一工作中,我们利用基于案例的推理(CBR) [1] - from the Artificial 智能(AI)领域——克服
上述网络问题服务发现和选择。基于案例的推理机通过使用来解决问题或者从旧的循环问题
[35]中调整解决方案。有时被称为相似搜索系统,CBR 系统最重要的特点是利用相似函数的
有效性来量化相似度在两种情况下,[25]。
我们的建议为基于案例的服务选择推理器建模,其中主要贡献有三方面。我们定义一个捕获
信息的案例表示在 Web 服务功能描述(通常是 WSDL)中。此外,我们画 CBR 中的关键步骤与
Web 服务发现问题之间的并行和选择。最后,我们为相似度函数提供了三种实现,从功能
服务描述中关注结构和语义方面。
本文的其余部分组织如下。第 2 节详细介绍了服务选择的过程。第 3 节介绍了 CBR 在服务
上下文中的应用选择。第 4 节详细介绍了相似函数的替代方法。第五节给出了该方法的实验
验证。第 6 节讨论有关工作。最后给出了结论和今后的工作。
2 服务选择
在面向服务的应用程序的开发过程中,一些组成软件可以通过连接到 Web 服务来实现各个
部分。在这种情况下,a 候选 Web 服务的列表可以通过使用任何服务发现来获得注册表。
然而,即使有一个庞大的候选名单,开发人员也必须这样做要有足够的技巧来决定最合适的
服务和塑造用于无缝集成所选服务的自适应构件。因此,作出这些决定需要可靠和实际的支
持。为此,在之前的工作[12,16]我们定义了一种服务选择方法。
服务选择方法基于接口兼容性评估的候选 Web 服务和(可能是部分的)规范所需的功能——
如图 1 所示。该过程与所需的匹配接口 IR 和由候选服务 S(以前)提供的接口发现)。将收集来
自这两个接口的所有可用信息在语义和结构层面进行评估。语义评估利用 WordNet 词汇数
据库[30]对标识符进行术语评估分离,停止单词删除,词干提取和术语相似(同义词和海波/
hyperonymy)。结构评估考虑了数据类型的等价性和子类型化。
这些计算的结果是一个接口匹配列表,其中包含每个操作 from IR 可能与来自 IS 的一个或多
个操作对应。此外,计算了两个评价值:相容性差(关于功能)),以及适应性差距——这反映了
可集成性所需的努力所选服务的。
3 基于案例的服务选择推理
该工作通过 CBR 方法扩展了接口兼容性方案[1]。主要的目标是从连续的过程中获取知识服
务选择以问题解决方案对的形式作为一组用例。图 2 展示了 CBR 方法(改编自[1])。
假设是包含一组初始案例的知识库知识库。每个案例包括一对(问题,解决方案):问题是对某
些功能的描述,相关的解决方案是实现此类功能的候选服务。一个新的 case C 是一个需要配
对的问题部分(必需的功能)及其相应的解决方案(候选服务)。对于这个,第一步比较根据一
个相似函数,用 KB 表示所有的问题部分。的这一步的结果是与 C(检索的情况)最相似的情况
-即。,两人(功能,服务)具有最相似的功能。
然后,通过组合检索到的用例,重用检索到的用例来生成解决的用例以新情况 C 为问题部分
的解部分。解出的情况是 a 配对(必需的功能、服务)。此时,将返回已解决的案例作为建议
的解决方案,可以由专家用户进行修改。如果建议解决方案在修订中成功,然后成为一个确
认的解决方案(测试用例)。如果失败,则丢弃该案例。
最后,最后一步决定是否包含已确认的解决方案
(测试用例)单位为 KB。学习案例决策可以依赖于不同的标准。在这种方法,我们使用一个阈
值(th)除以相似性函数相似度函数返回一个高于阈值的值,然后添加大小写 KB。
在下面的部分中,我们将描述 CBR 概念在 Web 上的应用服务发现和选择。
3.1 案例表示
首先,必须在上下文中定义适当的案例表示形式服务选择。我们使用了面向对象(OO)的案例
表示,其中用一组属性值描述的对象集合表示案例对。面向对象的表示适合于复杂领域不同
的案例结构可能出现[7]。图 3 显示了 OO 用例表示服务选择的结构。如前所述,Case 类分
为两个类
部分-即问题和解决方案。问题部分捕获候选程序需要实现的功能服务。所需的功能由三个
简单的属性组成以及一个复杂属性的集合。简单的属性是服务名称(字符串)、类别(字符串)
和操作数(包括正整数)零)。复杂属性是 Operations,它表示所需的操作。每个操作包含两个
属性——操作名称和返回类型(简单类型或复杂类型)-和两组复杂属性-参数和异常。参数包
含两个属性:参数名称和参数类型(简单类型或复杂类型)。
异常包含一个简单的属性:Type(String)。解决方案部分是一个简单的字符串属性候选服务,
它表示与问题描述关联的服务的名称。
3.2 案例检索
新案例以以下形式作为基于案例推理器的输入(图 2)所需的功能-即,问题部件(problem part,
Pn)。寻找解决新问题的方法在这种情况下,第一步计算相似函数(DIST)作为之间的距离新的
情况和知识库知识库中的每个情况-根据公式 1,从[25]。对于 case 表示中的每个属性,我们
都定义了具体相似函数 sim 和权值 wi(其中权值 wi 之和为)1) -以下各节将介绍。
服务名称和类别
服务名称和类别评估包含在比较字符串中这些属性在分析的新案例和问题部分之间的值对
于知识库中的每一种情况。相似度是用一种标识符算法来计算的在标识符中考虑术语语义的
求值——详细讨论在 4.2 节。服务名称和类别属性的给定权重很低(w = 0.1)因为它们不直接
表达功能方面。
操作数
运算数的计算包括数值的比较对于这种属性之间的新案例分析和问题部分 KB 中的每一种情
况。相似度根据公式 2 计算。候选人知识库中操作少于所需功能的服务(解决方案)(问题)被
认为是不相容的,作为潜在的解决方案被丢弃。该属性的给定权重更高(w = 0.3),因为它直
接表示了 a(即功能方面。,所需操作的数量)。
操作
操作评估计算这个复杂属性之间的相似性在新的情况下,以及类似的属性在问题部分的每个
情况,单位是 KB。由于我们的服务选择方法的主要标准是功能相似性,因此属性的权值最
高(w = 0.6),相似度最复杂在这种情况下函数的推理。的相似函数的详细信息 operations 属
性在第 4 节中给出。
3.3 案例重用与修订
我们使用第一个最近邻居(1-NN)策略进行案例适应,这意味着选择最相似的情况作为最佳解
[38]。因此,解决方案新情况的一部分将是解决方案的一部分,即。,候选服务-根据公式 1 检
索到的最相似的情况。
然后将解决的案例作为建议的解决方案返回(图 2),并且可以由专业用户修改。专家用户是
对……有较高知识的人域和正在构建的面向服务的应用程序。因此,一个专家用户决定解决
方案是否适合目标应用程序,还是与潜在的领域。否则,解决的案例将被拒绝。有关个案可
成为知识库初始状态的一部分。专家的反馈不是强制性的,而是必要的以提高推理机的性能,
并确定阈值到国家(即,则为在给定时间内的知识库的)。
3.4 案例培训
至此,基于案例的推理者已经将新案例与知识库中所有案例的问题部分,并且(预期地)找到
了解决方案根据前面几节中给出的属性相似性。此外,专家用户- -即,它是一个确认的解决
方案(测试用例)。下一步是决定是否测试大小写将被添加到知识库中。
一方面,太多的再训练案例会在评估中产生噪声,长期降低推理机的性能。另一方面,如果
没有新的案例被添加,没有学习发生,所以推理者将无法处理新病例。为了避免这些问题,
我们定义了一个阈值值(th)除以相似函数(DIST)。阈值决定是否在知识库中重新训练新案例
(学习案例)。如果相似度函数返回一个高于阈值的值,然后将大小写添加到 KB 作为一个新
的有意义的情况,否则它将被丢弃。
其目的是防止知识库的不可控增长,同时提高知识库的利用率推理机的性能。阈值是一个可
配置的常数取决于推理器的实现和初始案例数。如果可用病例的初始数量很低(例如,就总
数而言)),阈值也将被降低,允许推理者要增加新的案例和丰富知识库。如果是可用的情况
在某一时刻增长,阈值可以增加,只添加新的具有显著相似性的情况。
4 业务相似
如前所述,操作相似性是评估新案例的关键属性针对潜在的候选服务,作为案例包含在知识
库中。的操作相似度评价描述了从语义和结构方面提取的结果操作定义。结构方面涉及数据
类型等价(子类型),而语义方面涉及术语和标识符的概念。我们有为操作相似度定义了三种
主要不同的实现语义基础。这导致了操作的三个不同相似函数评估。在接下来的部分中,我
们将描述每种方法的相似度评估操作中的元素:标识符、操作名称(作为…的特殊情况计算)
标识符)、参数、返回类型和异常。
4.1 案例研究
我们概述了一个简单的案例研究,以说明我们的建议的关键步骤。我们考虑汽车租赁领域,
其中所需的特性是根据描述的因此,图 4a 显示了一个新的用例(newCase),其中包含一个名
为 RentaCar 的拟议服务的描述。这种接口定义了三种操作和三种复杂的数据类型。请注意,
newCase 的解决方案部分没有实例化,因为还没有实例化评估。
408/5000
所需接口的功能将通过第三方来实现 Web 服务。KB candidateCase 中的大小写包含该表示
服务的 CarRentalBrokerService。candidateCase 定义了四种操作
以及三种复杂的数据类型——如图 4b 所示。这两种情况都是通过采用来自汽车租赁的真实
Web 服务 4 和 5 构建的域来说明我们的建议。
4.2 标识评价
为了评估语义方面,相似性函数比较术语和标识符从操作。我们为这些功能实现了三个替代
方案。第一个二是利用 WordNet[30]。WordNet 是一个独立于域的词汇数据库在英语中,以
词法树的形式构成的。WordNet 组织方面在表示相同词汇概念的同义词集中。几个关系
连接不同的同义词集,如 hypo/hyperonyms、holonyms/meronyms 和反义词。所有层次结构
最终都向上到达根节点{entity}。可以通过不同的 Java 库访问 WordNet 结构,每个库都实现
了不同的指标和功能[15]。特别是在本工作中,我们使用了 JWI 6(在第一个相似函数)和
JWNL7(在第二个相似函数中)。这些库是最完整和易于使用的 WordNet 词汇树操纵[15]。
相似性函数的第三种选择是基于 DISCO [22], a 预计算的数据库的搭配和分布相似的词。迪
斯科的 Java library 8 允许检索任意单词之间的语义相似性。这种相似性是基于对大量文本集
合的统计分析得出的(如 Wikipedia),通过共现函数。每个单词对应一个 DISCO store 使用
Lucene 索引[19]的相关单词的一阶和二阶向量。来
确定两个单词之间的相似性,DISCO 检索相应的从索引中提取单词向量,并基于共现计算相
似度。
下面我们将描述使用 JWI、JWNL 实现的相似性函数和迪斯科舞厅。为了确定两个标识符之
间的相似性,这些实现共享两个基本的公共步骤。因此,最初有两个标识符预先处理的词分
离和停止词删除[12]:
项分离
在 ASCII 码中,标识符通常限制为一个或多个字母的序列代码、数字字符和下划线(“”)或
连字符(“-”)。该算法支持表 1 中的规则,即,通常的编程命名约定-加上一个语义级别来
考虑不遵循这些约定的标识符。术语分离步骤分析标识符,识别可能的术语(大写)序列和小
写序列)。然后,使用 WordNet 对所有这些进行分析并确定了最合适的潜在项和分离项。这
个词分离步骤是考虑将正确的术语作为语义输入的关键分析。
例如:设为来自汽车租赁域的标识符 GDSCode。这标识符并不严格遵循 Java bean 符号。初
始分析确定大写序列(GDSC)和小写序列(ode)。然后,序列 C + ode =代码作为 WordNet 的输入。
因为它是一个存在的词在 WordNet 字典中,代码被认为是一个术语,GDS 被认为是一个缩
略词(全球分销系统的缩写)也是一个术语。
停止词删除
停止字是在处理之前或之后过滤掉的无意义字自然语言数据(文本)[3]。我们定义了一个包含
停止单词的列表冠词,代词,介词,其他停词表中的单词和每个字母的字母。对上一步得到
的术语表进行分析删除属于停止单词列表的单词的任何出现。
例如:让我们考虑对应的标识符 AgencyHandledBy 租车示例的数据类型 AgencyData 中的字
段。根据在 Java bean 符号中,标识符分解为三个术语:[Agency,处理)。由于“By”属于“停
止单词”列表,他从术语列表中删除。
4.2.1 基于 jwi 的标识符评估
JWI 实现包括三个主要的附加步骤:词干提取、术语列出语义比较和标识符兼容性计算。
词干是将单词缩减到词干、词根或词根形式的过程。由于针对标准句法 stemmers[39]的常见
问题,我们对其语义进行了调整由 WordNet 提供的 stemmer。词干提取步骤接收作为输入
的术语列表。对于列表中的每个术语,验证它是否属于 WordNet 字典。如果
这样,相应的茎就会添加到结果列表中。否则,原始术语被添加到结果列表中,作为缩写或
缩写。
在生成这两个茎列表之后,考虑它们的兼容性进行计算语义信息。这个信息表示为整数 v =
的向量{t, e, s, h1, h2}包括:两个列表之间的总项(t),相同(确切)术语(e)、同义词(s)、高名词性
(h1)和低名词性(h2)。例如,顺其自然从案例中提取的标识符 GetReservation 和
GetCurrentBooking 第 4.1 节中租车的例子。根据术语列出语义比较,这些标识符表示:
•四个不同的术语:(Get, Reservation, Current, Booking)
•一个完全相同的术语:Get
•一个同义词:(预订,预订)
•没有海波/ hyperonyms
将向量 v 中的这些值作为输入,则标识符的兼容性值为根据公式 3 计算。
例如:提取标识符 GetReservation 和 GetCurrentBooking 从租车实例的接口中,通过替换其
中的值公式 3 得到:哪个表示标识符之间的兼容性值为 0.66GetReservation,GetCurrentBooking
-考虑到最大值当 ICV 值为 1 时,所得值为中强相容性之间的标识符。
4.2.2 基于 jwnl 的标识符评估
JWNL 实现根据两个 main 计算兼容性值附加步骤:生成归一化深度矩阵和项匹配最大化。
首先,生成归一化深度矩阵(ND)。深度定义为 WordNet 层次结构中两个术语之间的最短路
径。这些值按 WordNet 层次结构的最大深度进行规范化(16)。正式,归一化深度按公式 4 计
算。
例如:图 5 显示了 WordNet 层次结构的摘录,显示了不同的结果类型的车辆。说明了紧凑
与卡车概念之间的距离为 3,紧凑型与机动车辆长度为 2。这些值显示那辆小型汽车和机动
车辆比小型汽车和卡车更相似根据 JWNL。
考虑到长度的概念,让我们考虑两个标识符 GetReservation 和 GetCurrentBooking(在 4.2.1 节
中分析)。第二个矩阵是 a 包含标识符中每对项之间长度的 2x3 矩阵,如表 2 所示。注意
ND(Reservation,Booking) = 1 是 WordNet 层次结构中的同义词(它们的路径长度为零)。
在计算了 ND 矩阵后,得到了最佳的项匹配(在所有可能的配对中)
)必须选择-即,两项的组合
术语列表最大化了它们的兼容性。对于每一对可能的项在两个列表之间赋值(ti, tj),相似度
值由相应的基质细胞 NDij。每个可能匹配项的值为组成它的所有成对分配的和(assignSum)。
的匹配的实例,通过匈牙利方法[23]获得最大值分配的问题。最后,计算了使用 JWNL 的标
识符兼容性值(ICV alue)根据公式 5,该公式对项的两两赋值之和进行加权根据所分析的标识
符中的最大项数。
其中 n 和 m 是两项列表中的项数。
例如:考虑表 2 所示的 ND 矩阵,项匹配这将最大化标识符之间的兼容性,包括以下内容
双向作业:
•[Get,Get],存储在单元格 ND1 中,1 = 1.00
•[Reservation, Booking],存储在 cell ND2 中,3 = 1.00
然后,替换公式 5 中对应的值,即之间的相容性值标识符 GetReservation 和 GetCurrentBooking
计算如下:
4.2.3 基于磁盘的标识符评估
基于磁盘的实现根据以下内容计算兼容性值两个主要步骤:共现矩阵的生成和项匹配最大化。
首先,生成共现矩阵(Co)。这个矩阵包含两个术语列表中每个术语之间的相似值。这些值是
应用 DISCO 的共现相似概念的结果,前面解释过。在计算了 Co 矩阵后,在所有可能的两两
配对中,得到了最佳的项匹配必须选择组合)。类似于基于 jwnl 的实现,这一步使用 Co 矩
阵作为匈牙利算法的输入。匹配的与最高的值将是最兼容的。这种匹配也得到了通过 4.2.2
节中介绍的匈牙利法。最后,标识符使用 DISCO 的兼容性值根据公式 5 计算。
例如:让我们考虑上一节的标识符对—即 GetReservation GetCurrentBooking。Co 矩阵是一个
2x3 矩阵包含标识符中每对术语之间的共现值,如如表 3 所示。注意,当使用 DISCO 而不是
WordNet 时,同义词不显示 1 的共现值——可以看到这对(Reservation,预订)。
考虑表 3 中所示的 Comatrix,使标识符之间的兼容性包括以下两两分配:
•[Get,Get],存储在单元格 Co1,1 = 1.00 中
•【预约、预订】,储存在细胞 Co2 中,3 = 0.1
然后,替换公式 5 中对应的值,即之间的相容性值标识符 GetReservation 和 GetCurrentBooking
计算如下:
4.3 返回类型
数据类型等价
数据类型等价的条件包括子类型关系或子类型,这意味着在 Java 语言中内置类型的情况下
直接使用子类型[18],如表 4 所示。希望从 a 中键入操作新案例的精确度至少与候选操作的
类型相当服务(以 KB 为单位)。例如,如果 opN∈newCase 包括一个 int 类型相应的操作 opC∈
candidateService 不应该更小的类型(在数值类型中)如短字节或字节。但是,字符串类型是 a
特殊情况,它被认为是通配符类型,因为它通常用于程序员练习分配不同类型的数据[31]。
因此,我们认为字符串作为任何其他内置类型的超类型。
复杂数据类型
复杂的数据类型意味着包含字段的特殊处理必须与对应复杂类型的字段一对一等效。这
意味着,每个字段的一个复杂类型手术 opN∈newCase 必须匹配复杂类型的字段 opC∈
candidateService——尽管额外的字段 newCase 最初可能被排除在任何通信之外。返回类型相
似度值根据以下情况计算:
Ret = 3:返回类型相同。
Ret = 2:等效返回类型(子类型、字符串或复杂类型)。
Ret = 1:非等效复杂类型或精度损失。
Ret = 0:不兼容。
例如:图 6 显示了字段到字段的等价性(仅考虑数据类型)对于两个复杂类型的汽车租赁示例,
其中包含关于预订取消利率。CancelInformation 类型的三个字段有与三个字段的 cancel 覆盖
率一一对应的点箭头表示字符串类型之间可能的对应关系。对于这个返回类型相似度值 Ret
= 2。
4.4 参数评价
参数评价算法由三个矩阵计算组成:类型(T)、名称(N)和兼容性(Comp)。对于这三个矩阵,细
胞 Mij 表示 opN 的第 i 个参数与的相容性值,opC 的第 j 个参数——其中 opN 是所需功能的
操作,opC 是候选服务的操作(知识库中的 case)。在 T 矩阵中,结构数据类型等价和子类型
的概念用于评估参数类型。T 矩阵的目标是存储两个操作中所有参数类型对之间的关系。一
个细胞 Tij 包含第 i 个参数的 opN 类型与的兼容性值第 j 个参数的 opC 类型,由公式 6 可知。
N 矩阵包含每个参数名称之间的兼容性值和 opC 中每个参数的名称。底层基本原理类似于 T
矩阵。单元格 Nij 包含兼容性值在第 i 个参数 opN 的名称和第 j 个参数 opC 的名称之间。该
值是应用本文提出的标识符评价算法的结果在 4.2 节。因此,这些值取决于所选的相似性函
数实现——来自三个备选方案。
然后,由 T 和 N 个矩阵生成复合矩阵。的目标 Comp 矩阵是用来存储所有参数对之间的相容
性值操作 opN 和 opC,考虑结构和语义方面-收集在分别是 T 矩阵和 N 矩阵。每个 cell Compij
存储产品在 Tij 和 Nij 之间。因此:Compij = Tij∗ Nij。
计算了复合矩阵后,得到了最佳的参数匹配必须选择可能的成对组合),即,参数的组合
从 opN 和 opC 的兼容性最大化。这个步骤适用于匈牙利算法计算最佳的两两参数分配-
类似于基于 jwnl 的标识符求值中的匹配最大化(4.2 节)。
4.5 异常
例外情况的结构条件评估如下。首先,任何操作 opN 可以定义默认异常-即。,使用异常类型-
或特别,例外。同样,来自候选用例的操作 opC 可以定义错误(操作的非标准输出的 WSDL
名称)作为消息,包括一个特定的属性。的方法计算异常相似度值以下情况:
•Exc = 1: opN 和 opC 有相等的数量、类型和例外订单。
•Exc = 2: opN 和 opC 在列表中有相等的数量和类型作为异常。
•Exc = 3:如果非空 opN 异常列表,那么非空 opC 异常列表。
•Exc = 0: opN 和 opC 异常不兼容。
事实上,在 web 服务的上下文中,错误定义并不是常见的实践[8]。然而,基于案例的推理
器认为这个简单的模式分析异常。
例如:让我们考虑以下获取汽车费率的操作租赁时,根据不同车辆和条件(从情况中提出
4.1 节):
•getCarFee(requiredCarSupplements: CarSupplements): Fee
unavailableSupplementsException 扔;
•getRate(currencyCode: String, vehicle letypeid: long,
AutomaticGearPreference:
布尔):速率抛出 vehicle lenotfoundexception,
rateNotFoundException;
如果我们认为 getCarFee opN∈newCase 和 getRate opC∈candidateCase 异常分析分别显示,
所需的操作抛出一个在候选程序中可能有两个可能的异常(形式不同的类型)服务的操作—
—如 case(2)中定义的那样。
4.6 相似度值
根据公式计算两种情况(CN, CC)的相似度值 7.其中 N 是 CN 中的操作数,simOp 是最好的等价
值 simOpV 价值(该组织,opCj)适用于所有 opCj。
在 CC 操作 opN 和之间的操作相似性值(simOpV 值)根据公式 8 计算出一个潜在的兼容操作
opC。
例子。
让我们考虑 4.1 节中介绍的汽车租赁案例研究的完整案例。表 5 所示,为每个所需操作 opN
∈newCase,opC∈的操作具有更高兼容性(根据其 adapOpV 价值)的候选酶
候选 Web 服务的接口。计算是使用 WordNet 完成的通过 JWI 库访问语义基础。
当 sim 值越高(越好)为 8 时,得到的 sim 值(5.4)为中等到高的。在得到操作的相似值后,我
们可以计算距离根据公式 1,在 4 种情况下。表 6 显示了获取所需计算距离值的摘要。
设新 case CN =租车,候选 case CC =案例之间的距离是:
5 实验评价
本节描述用于服务选择的 CBR 的实验评估在前几节中介绍。实验的目的是测量 CBR 的三种
可选实现的总体性能以比较的方式选择服务。我们采用了经验的,自动化的和广泛使用的方
法学[6,16,28,36]。我们的假设是服务的 CBR 选择可以增加某些特定需求的最相关服务的可见
性功能。
5.1 实验配置
所考虑的数据集包括从[20]数据集提取的 62 个服务。我们已经为每个服务生成了一个用例
(通过我们组中开发的工具)根据面向对象的案例表示来确定初始知识库见 3.1。
首先,我们从 62 个相关服务中提取操作签名。每一个新案例包括三个表示所需功能的操作。
然后,我们应用接口突变技术[17]生成 506 个新案例(仅限问题)部分)。我们对每个操作签名应
用了 3 个突变:
•封装——将随机数量的参数封装为字段
一个新的复杂数据类型。
•扁平化-生成随机数量的复杂参数
复杂类型中的参数和字段一样多。
•上位——返回类型和/或随机数量的参数
上载到直接超类型或通配符字符串类型。
5.2 基于案例的推理执行
为了执行服务选择的 CBR,我们定义了一个要考虑的场景根据本节给出的相似函数有三种实
现[4]突变操作签名生成的 506 个新 case。考虑传统的服务检索和选择技术,我们也填充了
EasySOC 服务注册表[10]与相关的服务,然后查询这样的注册表具有操作签名。EasySOC 利用
向量空间模型(VSM)和 web 服务实例查询(WSQBE)来表示 web 服务描述和查询。
执行用于服务选择的三个版本的 CBR 对检索情况。最后,每一个新案例的结果都用两个来
衡量众所周知的信息检索指标:查全率和精确度。
5.3 结果
考虑到结果列表是每个查询检索的前 10 个用例,我们进行了比较结果根据精确度-at-n 和回
忆。
Precision-at-n
指示在不同的截止时间在哪个位置检索相关服务点。例如,如果前 5 个文档都与查询和
接下来的五个都是不相关的,精确度-at-5 是 100%,精确度-at-10 是 50%。在这种情况下,
对[1-10]中包含 n 的每个查询都计算了精确度 at-n。
回忆在形式上,回忆的定义为:在哪些情况下,结果列表中包含的相关服务的数量是相关的 R
是给定查询的相关服务的数量。特别地,对于这个实验回忆公式的分子可以是 0 或 1 -当相
关服务分别包含/不包含在结果中时-分母(检索到的)总是 10。
图 7a 为的累积平均精度 at-n (n=[1,10])CBR 方法的三种实现(基于 JWI-、基于 JWNL-和基于 dis
的)和 EasySOC 注册中心。用于服务选择的 CBR 获得了超过的精度值对于任何实现,结果的
第一个位置(n = 1)为 90%。同时,三种 CBR 实现的 at-n 精确度之间的差别并不大有很重要的
意义。服务选择的 CBR 优于 EasySOC 注册表之间结果列表的第一个位置为 20%和 40% (n=[1,4])。
图 7b 显示了基于 cpu 的三种实现的召回结果服务选择和 EasySOC 注册表。结果表明,该方
法的 CBR 为服务选择独立于底层提供高召回值(超过 98%)实现。这意味着给定问题的相关情
况是几乎总是检索。服务选择的 CBR 优于召回结果虽然 EasySOC 表现出了高度的竞争力,但
它的市场占有率仅为 10%左右召回值(超过 85%)。
5.4 讨论
实验结果表明,我们的服务选择 CBR 方法是可行的通过这三种可选的实现实现了高精确度