CN103425646A - 一种web服务发现方法及其装置 - Google Patents

一种web服务发现方法及其装置 Download PDF

Info

Publication number
CN103425646A
CN103425646A CN2012101490140A CN201210149014A CN103425646A CN 103425646 A CN103425646 A CN 103425646A CN 2012101490140 A CN2012101490140 A CN 2012101490140A CN 201210149014 A CN201210149014 A CN 201210149014A CN 103425646 A CN103425646 A CN 103425646A
Authority
CN
China
Prior art keywords
character
web service
word
wsdl
web
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012101490140A
Other languages
English (en)
Inventor
黄华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2012101490140A priority Critical patent/CN103425646A/zh
Publication of CN103425646A publication Critical patent/CN103425646A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开一种WEB服务发现方法及其装置,所述方法为:接受用户的WEB服务发现请求;基于一WSDL索引通过搜索引擎对所述用户的请求进行查询,将查询获得的WEB服务列表返回给所述用户,所述WSDL文档是基于互联网上的WEB服务而被建立的。本申请能够高精确、范围广地搜索到WEB服务。

Description

一种WEB服务发现方法及其装置
技术领域
本申请涉及互联网技术,尤其涉及一种WEB服务发现方法及其装置。
背景技术
WEB服务(WEB Service)是一种面向服务的架构的技术,通过标准的WEB协议提供服务,目的是保证不同平台的应用服务可以互操作。从表面上看,WEB service就是一个应用程序,它向外界暴露出一个能够通过WEB进行调用的应用程序接口(API),该API通过网络执行客户所提交服务的请求。如图1所示,WEB服务提供者采用WSDL(WEB service descriptionlanguage)语言对其所提供的WEB服务进行服务描述,并将该WEB服务发布到UDDI(Universal Description Discovery and Integration)注册中心,然后服务请求者通过UDDI(Universal Description Discovery and Integration)注册中心发现该服务,并通常基于SOAP协议进行通信。
UDDI注册中心是用来发布和搜索WEB服务,通过它服务请求者可找到目标WEB服务。举例而言,航空行业发布了一个用于航班比率检测和预订的WEB服务,航空公司就可以把它们的服务注册到一个UDDI中心的目录中。然后旅行社就能够搜索这个UDDI目录以发现航空公司预订服务。当此预订服务被发现之后,旅行社可通过SOAP协议与此服务进行通信,从而可以直接使用一套定义良好的预订功能。
由于现有的WEB服务发现基于UDDI注册中心,从而所有的客户端都依赖一个UDDI注册中心,在性能上存在一定的瓶颈,而某些大的UDDI注册中心早在几年之前就宣布永久关闭,这更大制约了WEB服务发现的发展。
并且,随着WEB服务技术的不断发展,网络上部署的WEB服务越来越多,现有的基于UDDI的WEB服务发现依赖用户向其注册库中添加WEB服务注册信息,而很多用户因为各方面原因没有向其中注册WEB服务,这样的WEB服务在基于UDDI方式下是不能成为WEB服务发现目标的;有的WEB服务可能已经下线,但是UDDI中依然保留其信息,这样可能会导致无效的WEB服务被发现。
不仅如此,上述UDDI注册中心是基于关键字的匹配方式进行WEB服务发现,匹配的结果会比较粗糙,同义、近意、或者语义相似度比较高的WEB服务都不能被发现。
发明内容
为了解决上述问题,本申请提供一种WEB服务发现方法,能够高精确、范围广地搜索到WEB服务。
因此,本申请所提供的WEB服务发现方法,包括:接受用户的WEB服务发现请求;基于一WSDL索引通过搜索引擎对所述用户的请求进行查询,将查询获得的WEB服务列表返回给所述用户,所述WSDL索引是基于互联网上的WEB服务而被建立的;
其中,通过下述步骤建立所述WSDL索引:S1,从互联网上抓取WEB页面;S2,从所述抓取的WEB页面中解析出其包含的WSDL文档的链接URL,并以此链接URL取得相应的WSDL文档;S3,从解析出的WSDL文档中抽取与WEB服务相关的信息;S4,将所抽取出的WEB服务相关信息建立WSDL索引。
根据本申请的一个实施例,在所述步骤S2中,对所抓取到WEB页面之中的每个链接作遍历测试,如果其为有效链接,则以该链接作为WSDL文档的链接URL,并对该链接对应的WSDL页面内容进行解析处理,建立该链接的WSDL文档,如果该链接是无效链接,忽略该链接,继续处理下一个链接。
根据本申请的一个实施例,在所述步骤S3中,所述与WEB服务有关的信息包括WEB服务的服务名、服务描述、操作名、操作描述以及操作的输入输出参数。
根据本申请的一个实施例,在所述步骤S4中,以WEB服务中的每个操作作为一个文档,分别将服务名、服务描述、操作名、操作描述、输入类型、输出类型、WSDL链接URL作为七个域建立WSDL索引。
根据本申请的一个实施例,在所述步骤S4的建立WSDL索引过程中,对所述与WEB服务有关的信息内容使用了切词处理,具体包括下述步骤:S31:判断所述与WEB服务有关的信息是否为有效字符串,是则进行步骤S32,否则退出该切词处理算法不进行切词处理;S32:根据WEB服务的命名规范,建立一正则表达式,利用该正则表达式对所述有效字符串进行第一次切词处理,建立切词表;S33:根据单词之间的拼写规范,依次对所述切词表中的每个字符串进行二次切词处理,将所切出的单词加入到切词集合中。
根据本申请的一个实施例,在所述步骤S33中,根据单词之间的拼写规范,进行二次切词处理的步骤具体为:S331:依次取得切词表中的每个字符串,判断字符串的长度是否大于零且该字符串的第一个字符为小写,是则进行步骤S332,否则转入步骤S333;S332:依次取得所述第一个字符后面的字符,直到当前字符为大写,则切出一个从所述第一字符到所述当前字符的字符串,将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理S333:判断当前字符串的长度是否大于1,是则进行步骤S334,否则转入步骤S335;S334:在所述当前字符串的第二个字符为小写情况下,依次取得其后面的字符,直到当前字符为大写时,切出一个从第一字符到所述当前字符的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;在所述当前字符串的第二个字符为大写情况下,依次取得其后面的字符,直到当前字符为小写时,切出一个从第一字符到当前字符的前一位置的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;S335:直接将该字符串追加到前一切分词的末尾。
根据本申请的一个实施例,在所述步骤S5中,所述对用户请求的查询序列做查询扩展包括基于同义词和领域本体的两阶段查询扩展,具体包括下述步骤:S41:读取用户请求的查询序列,对该查询序列进行分析,得到初步的查询词集合;S42:依次取得所述查询词集合中的每个查询关键词,基于同义词库对每个查询关键词进行同义词扩展,获得同义词集合;S43:依次取得所述同义词集合中的每个关键词,查找每个关键词是否出现在领域本体库中,是则转入S44,否则转入S45;S44:对于那些出现在领域本体文件中的关键词,计算该关键词与其它概念的概念相似度,将那些概念相似度满足一定阈值的概念名称加入到最终的查询关键词集合之中;S45:对于那些不能在领域本体文件中找到的关键词,直接纳入到最终的查询关键词集合中。
根据本申请的一个实施例,在所述步骤S41中,对用户提交的查询序列进行切词处理分析,并且移除查询序列中的标点符号和停用词,从而获得所述初步的查询词集合。
根据本申请的一个实施例,在步骤S44中,所述计算该关键词与其它概念之间的概念相似度具体包括下述步骤:A1:依次读取所述领域本体文件中的每个概念,将每个概念封装成一个节点对象,将所述领域本体文件转化为概念树,并将该节点对象加入到概念列表中;A2:查找该关键词在所述概念列表中的所在节点和该节点以外的其他节点的比较概念;A3:判断其它节点是否为该关键词所在节点的子节点,如果是,直接计算其概念相似度为1,否则转入A4;A4:根据节点列表和节点的数据结构,计算该关键词所在节点与比较概念所在节点之间的语义距离,计算该关键词和比较概念之间的层次差的绝对值;计算该关键词和比较概念之间的语义重读度,其中语义重复度的计算方法是二者到根节点的路径上的经过的节点的并集的元素个数除以其交集的元素个数;A5:根据语义距离、层次差绝对值以及语义重复度,计算该关键词和比较概念之间的语义相似度,其计算公式为语义重复度除以语义距离再除以层次差绝对值,将该结果保存在语义相似度值中。
本申请还相应提供一种WEB服务发现装置,所述装置包括:接收模块,用于接受用户的WEB服务发现的请求;服务发现模块,用于基于所述WSDL索引通过搜索引擎对所述用户的请求进行查询,将查询获得的WEB服务列表返回给所述用户;
根据本发明的一个实施例,通过一索引建立模块建立所述WSDL索引,所述索引建立模块包括:抓取单元,从互联网上抓取WEB页面;解析单元,从所述抓取的WEB页面中解析出其相应的WSDL文档;抽取单元,从解析出的WSDL文档中抽取与WEB服务相关的信息;构建单元,将所抽取出的WEB相关信息建立WSDL索引。
根据本申请的一个实施例,解析单元可对所抓取到WEB页面之中的每个链接作遍历测试,如果其为有效链接,则以该链接中的字符串作为WSDL文档的URL,并对该链接中的页面内容进行解析处理,建立该链接的WSDL文档,如果该链接是无效链接,忽略该链接,继续处理下一个链接。
根据本申请的一个实施例,在抽取单元中,所抽取出的与WEB服务有关的信息可包括WEB服务的服务名、服务描述、操作名、操作描述以及操作的输入输出参数等信息。
根据本申请的一个实施例,构建单元可以WEB服务中的每个操作作为一个文档,分别将服务名、服务描述、操作名、操作描述、输入类型、输出类型、WSDL链接URL等作为七个域建立WSDL索引。
根据本申请的一个实施例,在索引建立模块建立WSDL索引过程中,对所述与WEB服务有关的信息内容使用了切词处理,因此,所述索引建立模块还包括切词处理单元:判断所述与WEB服务有关的信息是否为有效字符串,是则进行下一处理,否则退出该切词处理算法不进行切词处理;根据WEB服务的命名规范,建立一正则表达式,利用该正则表达式对所述有效字符串进行第一次切词处理,建立切词表;根据单词之间的拼写规范,依次对所述切词表中的每个字符串进行二次切词处理,将所切出的单词加入到切词集合中。
根据本申请的一个实施例,其中在切词处理单元中,根据单词之间的拼写规范,进行二次切词处理具体为:依次取得切词表中的每个字符串,判断字符串的长度是否大于零且该字符串的第一个字符为小写,是则进行下一处理,否则依次取得所述第一个字符后面的字符,直到当前字符为大写,则切出一个从所述第一字符到所述当前字符的字符串,将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;判断当前字符串的长度是否大于1,是则进行下一处理,否则直接将该字符串追加到前一切分词的末尾;在所述当前字符串的第二个字符为小写情况下,依次取得其后面的字符,直到当前字符为大写时,切出一个从第一字符到所述当前字符的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;在所述当前字符串的第二个字符为大写情况下,依次取得其后面的字符,直到当前字符为小写时,切出一个从第一字符到当前字符的前一位置的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理。
根据本申请的一个实施例,服务发现模块分别通过同义词扩展单元和语义扩展单元对用户请求做查询扩展包括基于同义词和领域本体的两阶段查询扩展,同义词扩展单元和语义扩展单元的功能参见上述所描述的方法。
本申请通过对互联网上WEB服务建立WSDL索引而直接在互联网上进行WEB服务发现,从而不依赖UDDI中心就可实现WEB服务的发现,并且由于本申请的这种基于搜索引擎的WEB服务发现方式直接从互联网上发现并获取WEB服务,能够保证所获得的WEB服务列表的有效性,并且其搜索范围扩展到整个互联网,可获得更大的召回率和准确率。
附图说明
图1为示出了相关技术的WEB服务发现的示意图;
图2为本申请的技术方案的整体规划图;
图3为本申请的WEB服务发现方法的示意性流程图;
图4为本申请的建立WSDL索引的示意性流程图;
图5为在本申请中所使用切词处理算法的一种示例的示意性流程图;
图6为在本申请中所使用查询扩展算法的一种示例的示意性流程图;
图7为在本申请中基于语义扩展算法的一种示例的示意性流程图;
图8为本申请的WEB服务发现方法所适用的硬件的结构框架图;
图9为本申请的WEB服务发现装置的示意性结构图。
具体实施方式
下面将详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。
图2为本申请的技术方案的整体规划图。如图2所示,本申请在进行WEB服务发现时的处理分为4个层次,包括用户接口层、核心逻辑层、算法层以及数据层。
在用户接口层进行来自服务请求者(用户)的查询请求处理,对该查询请求的处理则在核心逻辑层进行,核心逻辑层的这些处理包括抓取服务文档、页面解析、服务抽取、服务索引以及服务搜索等功能,这些处理功能是基于算法层所提供的各种算法以及数据层所提供的数据进行的,因此,在算法层为核心逻辑层中的各处理提供算法支持,例如包括查询扩展处理和切词处理。
切词处理算法将在计算机看来是一个整体的单词切成若干个自然单词,比如将searchEngine切分成search Engine,由于将一个物理单词进行切词处理之后再对其建立索引,这样可以大大提高WEB服务匹配的成功率,稍后会对切词处理算法进行详细描述。查询扩展算法处理用户的查询请求,根据数据层提供的同义词库和领域本体库找到用户请求相近或者相关的概念,以此对用户请求进行扩展,可以在一定程度上提高WEB服务发现的召回率和准确率。
数据层为算法层和业务逻辑层提供数据支持,包括WSDL索引、同义词库以及领域本体库等。其中WSDL索引是从WSDL文档中抽取出的WEB服务相关信息索引而成,用于后续的WEB服务搜索;同义词库可采用的是WordNet,以此取得概念的同义概念;领域本体库用于提供某个领域之上的知识描述,用来计算概念之间的语义相似度。
下面,将结合附图详细描述本申请的WEB服务发现方法,如图3所示,本申请的WEB服务发现方法具体为:接收用户的WEB服务发现请求,基于一WSDL索引对用户的请求通过搜索引擎在互联网上进行查询,将获得WEB的服务列表返回给用户,其中所述WSDL文档是基于互联网上的WEB服务而被建立的。
在上述WEB服务发现方法中,参考图4,主要通过步骤S1-S4建立上述WSDL索引,下面将详细描述各步骤S1-S4。
(1)抓取服务文档的步骤S1:抓取互联网上的WEB页面。
在本申请中,建立WSDL索引需预先获得互联网上的WEB页面。从互联网上获得WEB页面的方式很多,在本申请的一个实施例中,选用了Nutch搜索引擎作为抓取工具来抓取互联网上的WEB页面。由于Nutch搜索引擎是一种开源的框架,其能够提供运行自己的搜索引擎所需的全部工具,包括全文搜索和WEB爬虫,相对于那些商用的搜索引擎,Nutch作为开放源代码的搜索引擎会更加透明,因此这里选用Nutch作为本申请的搜索引擎,当然本申请不局限于此种搜索引擎,其它的开源性搜索引擎也可用作抓取互联网上的WEB页面。
(2)页面解析的步骤S2:从上述所抓取的WEB页面中解析出包含有WSDL文档的URL,并以此URL取得相应的WSDL文档。
在上述步骤S1中,通过搜索引擎抓取到大量的WEB页面,这些WEB页面仅是一些基本的WEB页面,而并不具备WEB服务的特征,因此在本步骤S2中需要对所抓取的每个WEB页面进行解析,查找其是否包含有与WEB服务相关的关键词,以获得WEB服务的相关WSDL文档。
例如,在步骤S2中,解析所抓取到WEB页面之中的每个链接,如果链接中包含例如“.wsdl”或者“?wsdl”的字符,则认为该链接可能链接到一个包含WSDL链接的页面,然后处理该链接对应的内容,以该链接作为WSDL文档的URL,并对该链接对应的WSDL页面内容进行解析处理,建立该链接的WSDL文档。这里,本申请可以基于WSDL4J工具来进行WSDL文档的解析处理,即,基WSDL URL并通过WSDL4J来获得WSDL文档,当然本申请不局限于这种工具进行WSDL文档的解析。
但是上述通过Nutch所抓取的页面中的每个链接,不能预先知道其中是否包含“.wsdl”或者“?wsdl”的链接,只能对所抓取页面中的链接的内容做遍历测试,在解析出页面中超级链接的内容的基础上用httpclient向链接发出http请求,如果有该类链接则开始解析处理WSDL链接,否则,认为该链接是无效链接,忽略该链接,继续处理所抓取WEB页面中的下一个链接,然后进行解析处理。
(3)服务抽取的步骤S3:从解析出的WSDL文档中抽取与WEB服务相关的信息。
在步骤S3中,对上述解析出的WSDL文档进行抽取,以获得与WEB服务相关的内容。
由于WSDL文档是描述WEB服务的语言,而一个WSDL文档可定义多个服务,每个服务包含多个元素,对于WEB服务发现而言,只需其中的一些元素即可,因此,在本步骤S3中,可仅抽取WEB服务的例如服务名、服务描述、操作名、操作描述、操作的各个输入输出参数类型等元素。
WSDL文档的抽取关键在于WEB服务的操作的输入输出参数的抽取,由于WSDL文档中的输入输出类型是一个树形结构,这里需将一个操作的输入输出类型的整个树形结构全部抽取出来。因此,根据一个实施例,在解析时,需要定义一个参数树的类,用来记录一个输入或输出的类型,该类的数据成员描述如表1。
表1
Figure BDA00001636700900081
由于一个WEB服务会提供多个操作,因此,需要逐个抽取WEB服务的多个操作,从而在抽取WSDL文档的过程中为每个操作都建立一个输入参数树和输出参数树,该参数树能够体现输入输出参数的各层参数类型,例如,解析URL为“http://footballpool.dataaccess.eu/data/info.wso?WSDL”所对应的WSDL文档时,其中一个操作operation的参数树如下所示,其中的层次结构体现了参数类型之间的树形关系。
name:GameResultCodesResponse type:null
name:element:GameResultCodesResult type:ArrayOftGameResultCode
name:element:tGameResultCode type:tGameResultCode
name:sCode type:string
WSDL文档中的服务名、服务描述、操作名、操作描述等元素的抽取在实现上很简单,基于现有的方法就可实现,因此,这里忽略其详细描述。
(4)服务索引建立的步骤S4:将所抽取出的WEB相关信息建立WSDL索引。
由于本申请所实现的WEB服务发现是基于搜索引擎进行的,而基于搜索引擎的搜索是以关键字的方式来进行搜索的,在搜索引擎中数据是以关键字的方式进行存储的,因此,现有的搜索引擎不能理解对于WEB服务中的各参数的树形结构,使用现有的搜索引擎不能实现直接对互联网上的WEB服务进行搜索,因此需要建立适用于现有搜索引擎的WEB服务的WSDL索引。
在上述步骤S3中,对WSDL文档进行信息抽取,获得了WEB服务的一些元素信息,在本步骤S4中,则基于这些抽取出的元素信息建立WSDL索引。
WSDL文档是一个操作对应一个功能的实现,而不是一个服务对应一个功能,因此根据步骤S3中所抽取出的结果,将服务中的每个操作索引成一个文档,以抽取出的各元素构成该文档的域,从而以WEB服务发现所使用的搜索引擎中的常用索引方式(例如倒排索引)建立包含多个不同索引域的文档索引。根据本申请的一个实施例,上述文档的索引域可包括服务名(SVCNAME)、服务描述(SVCDESC)、操作名(OPNAME)、操作描述(OPDESC)、输入类型(INTYPE)、输出类型(OUTTYPE)以及WSDL链接URL(WSDL URL)等七个域。
例如,对于一个能够提供某个银行的个人网上银行服务的WEB服务,该WEB服务可能会包含多个操作,例如转账和汇款等操作,在建立该WEB服务的WSDL文档索引时,则以转账和汇款等操作为该WSDL文档建立索引,从而建立以操作为单位的WSDL索引文档。以操作为单位的WSDL索引文档包含多个索引域,例如转账对应的服务名(即,个人网上银行服务)、服务描述(即,为个人提供网上自助银行服务)、操作名(即,转账操作)、输入类型(例如,转帐账号)、输出类型(例如,转账成功信息)以及WSDL链接等。
为了尽可能地在一个索引文档中包含更多的信息,将上述在抽取过程所建立的操作的参数树的整个内容经过切词处理后全部索引到一个文档的不同域中。
因此,在建立索引的过程中,对在步骤(3)所解析出的参数树结构使用切词处理算法。
切词处理算法基于几种常见程序设计语言编程规范设计,这是因为WEB服务的实现通常采用Java或者.net实现,这里只关注Java或者.net中的有关命名规范。在Java或者.net中,常见的对切词规则有影响的命名规范有以下几个:
(a)方法名一般以小写字母开头,多个单词之间以大写字母、数字、连接线、下划线分隔开,方法名一般在WEB服务中对应操作名;
(b)如果命名中存在某个比较常见概念,一般全部大写该概念,例如“connectDB”;
(c)用数字连接几个单词的情况下,一般的该数字对于搜索引擎来说没有意义的,比如说用“2”表示“to”,用“4”表示“for”,这些词汇单元都是无实际意义的,也就是说数字对应的单词是出现在搜索引擎的停用词表中;
(d)类名通常以大写字母开头,多个单词之间一般用大写字母分开,这和方法名类似,类名在WEB服务中对应输入输出的类型。
下面基于上述命名规范,说明切词处理算法的基本流程。图5示出了在本申请中所使用的切词处理算法一种示例的流程。如图5所示,本申请所使用的切词处理算法包括下述步骤:
S31:判断输入的字符串是否为有效字符串,即判断字符串的长度是否大于零,是则进行步骤S32,否则退出该切词处理算法不进行切词处理;
在这里,输入的字符串为所抽取出的信息中的字符串,例如操作参数树中的内容。
S32:根据WEB服务实现的程序语言设计的命名规范,建立一正则表达式,利用该正则表达式对所述字符串进行第一次切词处理,建立一个切词表。
在步骤S32中,通过使用该正则表达式对该字符串进行字符匹配来进行第一次切词处理。该正则表达式的建立是基于上述的命名规范。例如,多个单词之间以数字、连接线、下划线的方式分隔开,因此所建立的正则表达式例如可为“([0-9]|_|-)+”,利用该正则表达式对输入的字符串进行匹配,切分成一个切词表splitedList,其对应的数据结构是List<String>。
S33:根据单词之间的拼写规范,依次对所述切词表中的每个字符串进行二次切词处理,将所切出单词加入到切词集合中。
在步骤S33中,根据单词之间的拼写规范,例如第一个单词以小写字母开头,后续的单词以大写字母开头(示例如generalSearchEngine),进行二次切词处理的步骤具体为:
S331:依次取得切词表中的每个字符串,判断字符串的长度是否大于零且该字符串的第一字符为小写,是则进行步骤S332,否则转入步骤S33;
S332:依次取得第一个字符后面的字符,直到当前字符为大写,则切出一个从第一字符到当前位置的字符串,将该切出的字符串加入到切词集合中,然后对其它的字符串进行递归处理;
S333:判断该字符串的长度是否大于1,是则进行步骤S334,否则转入步骤S335;
S334:在当前字符串的第二个字符为小写情况下,依次取得其后面的字符,直到当前字符为大写时,切出一个从第一字符到当前字符的字符串,并将该切出的字符串加入到切词集合,然后对其它的字符串进行递归处理;在当前字符串的第二个字符为大写情况下,依次取得其后面的字符,直到当前字符为小写时,切出一个从第一字符到当前位置的前一位置的字符串,并将该切出的字符串加入到切词集合,然后对其它的字符串进行递归处理;
S335:直接将该字符串追加到前一切分词的末尾。
基于以上切词处理算法,这里设计了几组测试用例,测试该切词处理算法的执行情况,测试结果如表2,从表中结果看来,该切词处理算法满足了需求,以上的几组测试数据包含了WEB服务中的服务名、操作名、输入、输出类型。
表2
  切词前   切词后
  DateOfLastGameResult   Date Of Last Game Result
  getSemanticDistance   get Semantic Distance
  connectDB   connect DB
  ip2location   ip location
  ip2Location   ip Location
  get-semantic-distance   get semantic distance
根据上述切词处理算法对所抽取的WSDL参数树进行切词处理,从而建立了包括多个不同域的WSDL文档索引。这些域在建立索引的时候都需要进行存储,但是不是这些域在WEB服务发现时都需要进行查询分析。如表3所示,在进行WEB服务发现时不对WSDL URL的域进行查询分析,而其它的域都进行查询分析,这是因为在进行WEB服务发现时会对除了WSDL URL之外的其它域进行搜索。
表3
需要说明的是,这里所说的查询分析是搜索引擎中一个比较重要的概念,其功能在于将文本(Text)处理成一个个的词汇单元(Token),一个词汇单元携带了一个文本内容和其他一些元数据,有了这些词汇单元有助于后续的索引和搜索。在分析处理的同时会包含进行一些处理逻辑:比如可能将所有的大写字母转换成小写,可能会移除一些无意义的助词等,例如“Fire in the hole”这个文本会被分析成“fire hole”这两个词汇单元。
通过上述步骤S1-S4对互联网上的WEB服务建立其对应的WSDL索引,所建立的WSDL索引会随着互联网上不断更新的WEB服务而得到不断更新。基于所建立的WSDL索引文档,使用搜索引擎进行对用户请求的WEB服务的搜索发现。
在基于WSDL索引文档进行WEB服务搜索时,通过在上述WSDL索引文档的索引域中对用户提交的请求服务进行搜索,例如从上述六个域进行搜索(除了WSDL URL域),如果在这六个域中搜索到其相应的WEB服务信息,则将搜索到WEB服务信息返回给用户,然后用户根据需求确定是否与该WEB服务建立通信连接。
在本申请中,在接受用户请求进行WEB发现搜索时,是以关键词的方式对用户请求进行搜索,而WSDL索引文档的每个索引域中可能包括多个可能与所查询WEB服务相关的查询关键词,因此基于用户提出的有关各域的查询条件,根据用户的关注情况,允许用户选择查询关键字在该域中是必须出现(MUST)还是可选出现(SHOULD),因为要同时对七个域进行组合查询,这里可以基于例如Lucene搜索引擎选择合适的查询表达式。
优选地,为了使用户能够得到更高召回率的WEB服务列表,本申请在查询过程中还可应用查询扩展进行扩放大搜索范围。
例如,假设需要查询的表达式的正则表达式形式是a(b|c|d)(e|f)g,对应的全部的一般表达式是abeg,abfg,aceg,acfg,adeg,acfg。对应的b、c、d是一个词汇单元的三个同义词或者经过本体扩展的词汇,e、f也是如此。这里以Lucene搜索引擎为例说明对用户所请求的查询关键词进行查询扩展的方法。在Lucene搜索引擎中,需要将这些扩展之后的关键词封装成Query进行查询,这是因为在Lucene搜索引擎看来不管是同义词扩展的还是语义扩展的关键词,最终都是一个封装之后的关键词。在Lucene搜索引擎中,如果使用一般的Query,上面示例出的应用场景则需要6个Query,然后用BooleanQuery查询将这几个Query用逻辑或的关系组合起来,然后基于Lucene搜索引擎中search包下面有一个类MultiParseQuery可以对一个域中可能出现多个查询关键字的情况进行查询,能比较简单的实现查询扩展的需求。
因此,在上述七个不同域进行组合查询时,可使用BooleanQuery实现。在查询实现过程中,用户可以选择WSDL文档中的某个域中的条件是必须满足、而某些域的条件是选择性满足的,基于这个最终建立的BooleanQuery可以实现WEB服务搜索。
在上述搜索过程中应用到了词汇的查询扩展算法,对用户提交的查询关键词进行基于同义词和领域本体的两阶段查询扩展,返回扩展后的查询关键词序列。
图6为在本申请中所使用查询扩展算法的一种示例的示意性流程图,如图6所示,下面介绍查询扩展算法的具体实现。
本申请所涉及的查询扩展算法包括两个阶段的扩展,即同义词的查询扩展和基于领域本体的查询扩展,具体地,包括下述步骤:
S41:读取用户提交的查询序列,对该查询序列进行分析,得到初步的查询词集合;
在步骤S41中,这里可以使用搜索引擎的内置分析器StandardAnalyzer对用户提交的查询序列进行切词处理,并且移除查询序列中的标点符号、停用词等,得到查询词集合QueryCollection,其数据结构为List<String>;这里所述的对查询序列进行的切词处理例如可以采用上述的切词处理算法。
然后进行步骤S42,对初始处理之后所获得查询词集合进行查询扩展算法的第一个阶段,即基于同义词的查询扩展。具体地,在步骤S42中,依次取得查询词集合中的每个查询关键词,基于一同义词库对每个查询关键词进行同义词扩展,获得每个查询关键词的同义词集合;
在步骤S42中,可基于一同义词库例如WordNet获得每个查询关键词对应的同义词,并将该查询关键词和其对应的同义词一起纳入到同义词集合synCollection中。这里,每个查询关键词和其对应的同义词构成一个数据结构为List<String>的集合,而同义词集合的数据结构则为List<List<String>>。
接下来,进行查询扩展的第二阶段,即对所获得的同义词集合进行基于领域本体的查询扩展,具体地,该第二阶段包括以下步骤:
S43:依次取得同义词集合中的每个关键词,查找每个关键词是否出现在一领域本体文件中,是则转入S44,否则转入S45;
S44:对于那些出现在领域本体中的关键词,计算该关键词与其它概念的概念相似度,将那些概念相似度满足一定阈值的概念加入到最终的查询关键词集合之中;
S45:对于那些不能在领域本体中找到的关键词,直接纳入到最终的查询关键词集合中。
在步骤S44中,在计算关键词和领域本体文件中的其它概念中即任意两个概念之间的概念相似度的这个过程中,需要Jena中相关类库的支持,这里利用Jena读取OWL(Web Ontology Language)领域本体文件,解析其中概念和概念之间关系,如图7所示,具体算法如下(原来的算法是对领域本体库中的两个概念计算概念相似度,修改后的算法是对外部输入的概念与领域本体库中的概念之间的相似度和相关度进行计算):
A1:依次读取领域本体库中的每个概念,将每个概念封装成一个节点对象,将领域本体库转化为概念树,并将所封装的节点对象加入到概念列表中,对于概念的每个子概念,递归该过程;
A2:查找当前关键词在领域本体库概念列表中的所在节点,并查找该所在节点以外的其它节点的比较概念;
A3:判断其它节点是否为当前关键词所在节点的子节点,如果是,直接计算其概念相似度为1,否则转入A4;
A4:根据节点列表和节点的数据结构,计算当前关键词所在节点和比较概念所在节点的语义距离,即distance[currentnode][comparenode]计算当前概念和比较概念之间的层次差的绝对值,即levelDifference=|level(currentConcept)-level(compareConcept)|;计算当前关键词和比较概念之间的语义重复度,其中语义重复度的计算方法是二者到根节点的路径上的经过的节点的并集的元素个数(sameCount)除以其交集的元素个数(unionCount);
A5:根据语义距离、层次差绝对值以及语义重复度,计算当前关键词和比较概念之间的语义相似度,其计算公式为语义重复度除以语义距离再除以层次差绝对值,即Similarity[currentConcept][compareConcept]=sameCount/(unionCount*distance*levelDifference),将该结果保存在语义相似度值中。
在步骤S45中,阈值的选择由查询的精确度和广度来决定,如果需要精确的WEB服务发现,则阈值的选取需要设定得高一些,反之,如果需要进行较大范围的WEB服务发现,则阈值的选取需要设定得低一些。例如,本申请可以选取的概念相似度的阈值是0.3,按照这个标准进行查询扩展。
下面,本发明以一个2006世界杯相关WEB服务为例说明如何建立WSDL索引的过程。
首先,通过抓取工具以www.xmethods.com作为种子URL从互联网上抓取WEB服务描述文档(WSDL),随着爬虫的深度遍历,找到一个具有如下地址的WEB页面为:
http://www.xmethods.com/ve2/ViewListing.po;jsessionid=WEyiG9AeAC-Y LLih 1fwJ4TW?key=473905
然后,解析所抓取的页面,即从抓取的页面中找出包含“WSDL”的链接,例如,从上述页面中基于WSDL4J可解析出包含有?WSDL的一个URL:http://footballpool.dataaccess.eu/data/info.wso?WSDL,然后根据该URL获得一个WSDL文档;
接下来,再从http://footballpool.dataaccess.eu/data/info.wso?WSDL对应的WSDL文档之中抽取出web服务相关信息,例如,从上述WSDL文档中解析出一个具有如下服务描述的服务:This Visual DataFlex Web Service exposesfunctions for the current football pool,其中有一个操作如下:
Figure BDA00001636700900161
Figure BDA00001636700900171
对上述操作建立该操作对应的参数树,参数树的形式参照上面描述的形式。然后对该参数树进行切词处理,由此可以生成五个域:服务描述(ThisVisual DataFlex Web Service exposes functions for the current football pool),操作名(all player names),操作描述(Returns an array with theid,name,country andflag reference of all players),输入(All Player Names Soap Request),输出(AllPlayer Names Soap Response)。最后,根据搜索引擎的框架,将所建立的5个域索引成WSDL索引。
在使用上述建立的WSDL索引进行WEB服务发现时,例如用户提交了一个根据服务名和操作名进行web服务查找的请求,并且提交的关键字是football,操作名提交的是players,那么上述操作将会被查询到,并且将查询到的该操作信息返回给用户,返回的主要信息包含:WSDL文档URL,服务描述,操作名,操作描述,输入名,以及输出名。
下面根据本申请的一个实施例,来描述实现本申请上述技术方案的硬件装置。如图8所示,包括抓取引擎服务器、WEB服务发现引擎服务器以及WEB服务发现客户端。图8所示的本申请硬件实现装置仅是示意性的一种结构形式,并非限制本申请。
例如,用两台计算机作为WEB页面的抓取引擎,分别使用两个不同的种子URL抓取WEB文档,如果使用Nutch搜索引擎作为抓取工具,则这两台计算机的操作系统环境是Linux,而且都需要配置Tomcat作为WEB服务器,对外提供http服务。
WEB服务发现引擎,实现上述页面的抽取、解析、索引建立以及服务发现,即用来分别向抓取引擎请求数据,解析以http://开头并且以“?wsdl”或“.wsdl”结尾的字符串,并且去除二者里有重复的,然后依次向此URL发出请求,解析返回的数据,从数据中解析出WEB服务相关的内容,并将此内容索引到WSDL索引文件,然后基于该索引文件进行WEB服务发现。
WEB服务发现客户端,可以为PC、WEB等服务请求者向WEB服务发现引擎发出搜索WEB服务请求。这里,WEB服务发现引擎可对用户查询进行一定查询扩展,以查询扩展后的请求提交到服务发现引擎,并向WEB服务发现客户端返回最终的WEB服务列表。
本申请还相应提供一种WEB服务发现装置,如图9所示,所述装置包括:索引建立模块,用于对互联网上的WEB服务建立一WSDL索引;接收模块,用于接受用户的WEB服务发现的请求;服务发现模块,用于基于所述WSDL索引通过搜索引擎对所述用户的请求进行查询,将查询获得的WEB服务列表返回给所述用户。
其中本申请的索引建立模块包括:抓取单元,从互联网上抓取WEB页面;解析单元,从所述抓取的WEB页面中解析出其包含的WSDL文档的链接URL,并以所述链接URL取得相应的WSDL文档;抽取单元,从解析出的WSDL文档中抽取与WEB服务相关的信息;构建单元,将所抽取出的WEB相关信息建立WSDL索引。
根据本申请的一个实施例,解析单元可对所抓取到WEB页面之中的每个链接作遍历测试,如果其为有效链接,则以该链接作为WSDL文档的URL,并对该链接对应的WSDL页面内容进行解析处理,建立该链接的WSDL文档,如果该链接是无效链接,忽略该链接,继续处理下一个链接。
根据本申请的一个实施例,在抽取单元中,所抽取出的与WEB服务有关的信息可包括WEB服务的服务名、服务描述、操作名、操作描述以及操作的输入输出参数等信息。
根据本申请的一个实施例,构建单元可以WEB服务中的每个操作作为一个文档,分别将服务名、服务描述、操作名、操作描述、输入类型、输出类型、WSDL链接URL等作为七个域建立WSDL索引。
根据本申请的一个实施例,在索引建立模块建立WSDL索引过程中,对所述与WEB服务有关的信息内容使用了切词处理,因此,所述索引建立模块还包括切词处理单元:判断所述与WEB服务有关的信息是否为有效字符串,是则进行下一处理,否则退出该切词处理算法不进行切词处理;根据WEB服务的命名规范,建立一正则表达式,利用该正则表达式对所述有效字符串进行第一次切词处理,建立切词表;根据单词之间的拼写规范,依次对所述切词表中的每个字符串进行二次切词处理,将所切出的单词加入到切词集合中。
其中在切词处理单元中,根据单词之间的拼写规范,进行二次切词处理具体为:依次取得切词表中的每个字符串,判断字符串的长度是否大于零且该字符串的第一个字符为小写,是则进行下一处理,否则依次取得所述第一个字符后面的字符,直到当前字符为大写,则切出一个从所述第一字符到所述当前字符的字符串,将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;判断当前字符串的长度是否大于1,是则进行下一处理,否则直接将该字符串追加到前一切分词的末尾;在所述当前字符串的第二个字符为小写情况下,依次取得其后面的字符,直到当前字符为大写时,切出一个从第一字符到所述当前字符的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;在所述当前字符串的第二个字符为大写情况下,依次取得其后面的字符,直到当前字符为小写时,切出一个从第一字符到当前字符的前一位置的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理。
根据本申请的一个实施例,服务发现模块分别通过同义词扩展单元和语义扩展单元对用户请求做查询扩展包括基于同义词和领域本体的两阶段查询扩展,同义词扩展单元和语义扩展单元的功能参见上述所描述的方法。
本申请相对于现有技术具有下述优点:
1、本申请通过直接抓取部署在互联网上的WSDL文档,解析WSDL文档之中包含的WEB服务相关信息从而建立WSDL索引,基于WSDL索引通过搜索引擎进行WEB服务发现,从而不再依赖UDDI注册中心。
2、现有技术中基于关键字的匹配方式进行WEB服务发现,匹配的结果比较粗糙,同义、近意、或者语义相似度比较高的WEB服务都不能被发现;本申请将语义特征融入到搜索引擎之中,对搜索引擎进行一定程度的扩展,使其在文档匹配的时候能够考虑同义概念、近义概念以及语义相似度比较高的概念,相比而言,这种方式进行WEB服务发现更精准确。
3、现有的基于UDDI的WEB服务发现依赖用户向其注册库中添加WEB服务注册信息,而很多用户因为各方面原因没有向其中注册WEB服务,这样的WEB服务在基于UDDI方式下是不能成为WEB服务发现目标的;有的WEB服务可能已经下线,但是UDDI中依然保留其信息,这样可能会导致无效的WEB服务被发现;本申请基于搜索引擎的WEB服务发现方式将以搜索引擎的方式从互联网上抓取WSDL文档,这样完全可以在很大程度上保证抓取的WEB服务信息的有效性,并且搜索引擎可以定时启动抓取任务,这样可以在很大程度上保证数据库中WEB服务信息都是最新的。
虽然已参照几个典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

Claims (20)

1.一种WEB服务发现方法,其特征在于,所述方法为:
接受用户的WEB服务发现请求;
基于一WSDL索引通过搜索引擎对所述用户的请求进行查询,将查询获得的WEB服务列表返回给所述用户;
其中,所述WSDL索引是基于互联网上的WEB服务而被建立的。
2.根据权利要求1所述的WEB服务发现方法,其特征在于,通过以下步骤建立所述WSDL索引:
S1,从互联网上抓取WEB页面;
S2,从所述抓取的WEB页面中解析出其包含的WSDL文档的链接URL,并以所述链接URL取得相应的WSDL文档;
S3,从解析出的WSDL文档中抽取与WEB服务相关的信息;
S4,对所抽取出的WEB服务相关信息构建WSDL索引。
3.根据权利要求1所述的WEB服务实现方法,其特征在于,在基于所述WSDL索引通过搜索引擎对所述用户的请求进行查询之前,所述方法还包括:对所述用户的请求进行查询扩展。
4.根据权利要求1所述的WEB服务发现方法,其特征在于,在所述步骤S2中,对所抓取的WEB页面之中的每个链接作遍历测试,如果其为有效链接,则以该链接作为WSDL文档的URL,并对该链接对应的WSDL页面内容建立该链接的WSDL文档,如果该链接是无效链接,忽略该链接,继续处理下一个链接。
5.根据权利要求1所述的WEB服务发现方法,其特征在于,在所述步骤S3中,所述与WEB服务有关的信息包括所述WEB服务的服务名、服务描述、操作名、操作描述以及操作的输入输出参数。
6.根据权利要求1所述的WEB服务发现方法,其特征在于,在所述步骤S4中,以WEB服务中的每个操作建立一个索引文档,所述索引文档包括操作对应的服务名、服务描述、操作名、操作描述、操作的输入参数、操作的输出参数以及WSDL链接URL的索引域。
7.根据权利要求1-6任一项所述的WEB服务发现方法,其特征在于, 在所述步骤S4的构建WSDL索引过程中,对所述与WEB服务有关的信息内容使用了切词处理,所述切词处理包括下述步骤:
S31:判断所述与WEB服务有关的信息是否为有效字符串,是则进行步骤S32,否则退出该切词处理算法不进行切词处理;
S32:根据WEB服务的命名规范,建立一正则表达式,利用该正则表达式对所述有效字符串进行第一次切词处理,建立切词表;
S33:根据单词之间的拼写规范,依次对所述切词表中的每个字符串进行二次切词处理,将所切出的单词加入到切词集合中。
8.根据权利要求7所述的WEB服务发现方法,其特征在于,在所述步骤S33中,根据单词之间的拼写规范,进行二次切词处理的步骤具体为:
S331:依次取得切词表中的每个字符串,判断字符串的长度是否大于零且该字符串的第一个字符为小写,是则进行步骤S332,否则转入步骤S333;
S332:依次取得所述第一个字符后面的字符,直到当前字符为大写,则切出一个从所述第一字符到所述当前字符的字符串,将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;
S333:判断当前字符串的长度是否大于1,是则进行步骤S334,否则转入步骤S335;
S334:在所述当前字符串的第二个字符为小写情况下,依次取得其后面的字符,直到当前字符为大写时,切出一个从第一字符到所述当前字符的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;在所述当前字符串的第二个字符为大写情况下,依次取得其后面的字符,直到当前字符为小写时,切出一个从第一字符到当前字符的前一位置的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;
S335:直接将该字符串追加到前一切分词的末尾。
9.根据权利要求3所述的WEB服务发现方法,其特征在于,所述对用户请求作查询扩展包括基于同义词和领域本体的两阶段查询扩展,具体包括下述步骤:
S41:读取用户请求的查询序列,对该查询序列进行分析,得到初步的查询词集合; 
S42:依次取得所述查询词集合中的每个查询关键词,基于同义词库对每个查询关键词进行同义词扩展,获得同义词集合;
S43:依次取得所述同义词集合中的每个关键词,查找每个关键词是否出现在领域本体库中,是则转入S44,否则转入S45;
S44:对于那些出现在领域本体文件中的关键词,计算该关键词与其它概念的概念相似度,将那些概念相似度满足一定阈值的概念名称加入到最终的查询关键词集合之中;
S45:对于那些不能在领域本体文件中找到的关键词,直接纳入到最终的查询关键词集合中。
10.根据权利要求9所述的WEB服务发现方法,其特征在于,在所述步骤S41中,对用户提交的查询序列进行切词处理分析,并且移除查询序列中的标点符号和停用词,从而获得所述初步的查询词集合。
11.根据权利要求9所述的WEB服务发现方法,其特征在于,在步骤S44中,所述计算该关键词与其它概念之间的概念相似度具体包括下述步骤:
A1:依次读取所述领域本体文件中的每个概念,将每个概念封装成一个节点对象,将所述领域本体文件转化为概念树,并将该节点对象加入到概念列表中;
A2:查找该关键词在所述概念列表中的所在节点和该节点以外的其他节点的比较概念;
A3:判断其它节点是否为该关键词所在节点的子节点,如果是,直接计算其概念相似度为1,否则转入A4;
A4:根据节点列表和节点的数据结构,计算该关键词所在节点与比较概念所在节点之间的语义距离,计算该关键词和比较概念之间的层次差的绝对值;计算该关键词和比较概念之间的语义重读度,其中语义重复度的计算方法是二者到根节点的路径上的经过的节点的并集的元素个数除以其交集的元素个数;
A5:根据语义距离、层次差绝对值以及语义重复度,计算该关键词和比较概念之间的语义相似度,其计算公式为语义重复度除以语义距离再除以层次差绝对值,将该结果保存在语义相似度值中。
12.一种WEB服务发现装置,其特征在于,所述装置包括: 
接收模块,用于接受用户的WEB服务发现的请求;
服务发现模块,用于基于所述WSDL索引通过搜索引擎对所述用户的请求进行查询,将查询获得的WEB服务列表返回给所述用户,其中所述WSDL索引是基于互联网上的WEB服务而被建立的。
13.根据权利要求12所述的WEB服务发现装置,通过一索引建立模块建立所述WSDL索引,所述索引建立模块包括:
抓取单元,从互联网上抓取WEB页面;
解析单元,从所述抓取的WEB页面中解析出包含有WSDL文档的链接URL,并以所述链接URL取得相应的WSDL文档;
抽取单元,从解析出的WSDL文档中抽取与WEB服务相关的信息;
构建单元,对所抽取出的WEB服务相关信息构建所述WSDL索引。
14.根据权利要求12所述的WEB服务发现装置,所述装置还包括查询扩展模块,用于对所述用户的请求作查询扩展。
15.根据权利要求12所述的WEB服务发现装置,其特征在于,所述解析单元对所抓取到WEB页面之中的每个链接作遍历测试,如果其为有效链接,则以该链接作为WSDL文档的URL,并对该链接对应的WSDL页面内容建立该链接的WSDL文档,如果该链接是无效链接,忽略该链接,继续处理下一个链接。
16.根据权利要求12所述的WEB服务发现装置,其特征在于,所述抽取单元抽取出的与WEB服务有关的信息可包括所述WEB服务的服务名、服务描述、操作名、操作描述以及操作的输入输出参数等信息。
17.根据权利要求12所述的WEB服务发现装置,其特征在于,所述构建单元以所述WEB服务中的每个操作建立一个索引文档,所述索引文档包括操作对应的服务名、服务描述、操作名、操作描述、操作的输入参数、操作的输出参数以及WSDL链接URL的索引域。
18.根据权利要求12-17任一项所述的WEB服务发现装置,其特征在于,在索引建立模块还包括切词处理单元,用于对所述与WEB服务相关的信息进行切词处理,
所述切词处理包括:
判断所述与WEB服务有关的信息是否为有效字符串,是则进行下一处 理,否则退出该切词处理算法不进行切词处理;
根据WEB服务的命名规范,建立一正则表达式,利用该正则表达式对所述有效字符串进行第一次切词处理,建立切词表;
根据单词之间的拼写规范,依次对所述切词表中的每个字符串进行二次切词处理,将所切出的单词加入到切词集合中。
19.根据权利要求18所述的WEB服务发现装置,其特征在于,其中所述切词处理单元根据单词之间的拼写规范进行二次切词处理具体为:
依次取得切词表中的每个字符串,判断字符串的长度是否大于零且该字符串的第一个字符为小写,是则进行下一处理,否则依次取得所述第一个字符后面的字符,直到当前字符为大写,则切出一个从所述第一字符到所述当前字符的字符串,将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;
判断当前字符串的长度是否大于1,是则进行下一处理,否则直接将该字符串追加到前一切分词的末尾;
在所述当前字符串的第二个字符为小写情况下,依次取得其后面的字符,直到当前字符为大写时,切出一个从第一字符到所述当前字符的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理;在所述当前字符串的第二个字符为大写情况下,依次取得其后面的字符,直到当前字符为小写时,切出一个从第一字符到当前字符的前一位置的字符串,并将该切出的字符串加入到所述切词表中,然后对其它的字符串进行递归处理。
20.根据权利要求14所述的WEB服务发现装置,其特征在于,所述查询扩展模块分别对用户请求作包括同义词扩展和语义扩展的查询扩展。 
CN2012101490140A 2012-05-14 2012-05-14 一种web服务发现方法及其装置 Pending CN103425646A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101490140A CN103425646A (zh) 2012-05-14 2012-05-14 一种web服务发现方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101490140A CN103425646A (zh) 2012-05-14 2012-05-14 一种web服务发现方法及其装置

Publications (1)

Publication Number Publication Date
CN103425646A true CN103425646A (zh) 2013-12-04

Family

ID=49650408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101490140A Pending CN103425646A (zh) 2012-05-14 2012-05-14 一种web服务发现方法及其装置

Country Status (1)

Country Link
CN (1) CN103425646A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731893A (zh) * 2015-03-17 2015-06-24 北京京东尚科信息技术有限公司 一种基于dubbo的web服务查找方法、装置和系统
CN106294396A (zh) * 2015-05-20 2017-01-04 北京大学 关键词扩展方法和关键词扩展系统
CN107105008A (zh) * 2017-03-21 2017-08-29 浙江工业大学 一种基于柔性描述模型的Web服务调用方法
CN109948150A (zh) * 2019-03-01 2019-06-28 北京航空航天大学 一种多域环境中基于知识图谱的高性能服务语境发现方法
CN110633348A (zh) * 2019-07-30 2019-12-31 中国人民解放军国防科技大学 一种基于本体的高性能计算资源池化索引查询方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217044A1 (en) * 2002-05-15 2003-11-20 International Business Machines Corporation Method and apparatus of automatic method signature adaptation for dynamic web service invocation
TWI329816B (en) * 2003-12-11 2010-09-01 Inst Information Industry System, method and machine-readable storage medium for automated web service match based on semantics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217044A1 (en) * 2002-05-15 2003-11-20 International Business Machines Corporation Method and apparatus of automatic method signature adaptation for dynamic web service invocation
TWI329816B (en) * 2003-12-11 2010-09-01 Inst Information Industry System, method and machine-readable storage medium for automated web service match based on semantics

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄华: "基于搜索引擎和语义的Web服务发现研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731893A (zh) * 2015-03-17 2015-06-24 北京京东尚科信息技术有限公司 一种基于dubbo的web服务查找方法、装置和系统
CN106294396A (zh) * 2015-05-20 2017-01-04 北京大学 关键词扩展方法和关键词扩展系统
CN107105008A (zh) * 2017-03-21 2017-08-29 浙江工业大学 一种基于柔性描述模型的Web服务调用方法
CN107105008B (zh) * 2017-03-21 2019-12-03 浙江工业大学 一种基于柔性描述模型的Web服务调用方法
CN109948150A (zh) * 2019-03-01 2019-06-28 北京航空航天大学 一种多域环境中基于知识图谱的高性能服务语境发现方法
CN110633348A (zh) * 2019-07-30 2019-12-31 中国人民解放军国防科技大学 一种基于本体的高性能计算资源池化索引查询方法
CN110633348B (zh) * 2019-07-30 2021-05-04 中国人民解放军国防科技大学 一种基于本体的高性能计算资源池化索引查询方法

Similar Documents

Publication Publication Date Title
US8515969B2 (en) Splitting a character string into keyword strings
US8463593B2 (en) Natural language hypernym weighting for word sense disambiguation
US7890493B2 (en) Translating a search query into multiple languages
US8140579B2 (en) Method and system for subject relevant web page filtering based on navigation paths information
US10409803B1 (en) Domain name generation and searching using unigram queries
US8706728B2 (en) Calculating reliability scores from word splitting
US8682646B2 (en) Semantic relationship-based location description parsing
US8150848B2 (en) Geocoding multi-feature addresses
US20120239667A1 (en) Keyword extraction from uniform resource locators (urls)
WO2006133538A1 (en) System and method for ranking web content
KR20160124079A (ko) 인-메모리 데이터베이스 탐색을 위한 시스템 및 방법
US10380210B1 (en) Misspelling identification in domain names
CN102163234A (zh) 一种基于纠错相关度对查询序列进行纠错的设备和方法
US10380248B1 (en) Acronym identification in domain names
CN103425646A (zh) 一种web服务发现方法及其装置
US20110219017A1 (en) System and methods for citation database construction and for allowing quick understanding of scientific papers
WO2019172153A1 (ja) インデックスを用いた情報検索システム及び情報検索方法
CN102156749B (zh) 一种地图网站的自动搜索判别方法、系统及其分布式服务器系统
US20210349959A1 (en) Recommending domains from free text
US7343372B2 (en) Direct navigation for information retrieval
EP3103029A1 (en) A query expansion system and method using language and language variants
US20090192987A1 (en) Searching navigational pages in an intranet
JP5688754B2 (ja) 情報検索装置及びコンピュータプログラム
KR102428046B1 (ko) 유사 발명 기술 문서를 통합한 가상 복합 기술문서를 이용한 발명 기술 검색 시스템 및 방법
CN103544139A (zh) 一种基于中文检索的正向分词方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1189061

Country of ref document: HK

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131204

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1189061

Country of ref document: HK