一种基于本体学习的Web服务语义提取方法

文档序号:6471381阅读:99来源:国知局

专利名称::一种基于本体学习的Web服务语义提取方法
技术领域
:本发明涉及一种Web服务语义提取方法,尤其涉及一种基于本体学习的Web服务语义提取方法。技术背景随着Web服务技术的日趋成熟,业界开始广泛使用Web服务作为新的分布式软件构件,然而Web服务的广泛使用也使得网络上可用的Web服务数量急剧增加,如同Web—样,用户对Web服务的査找、访问以及维护变得越来越困难。目前,Web服务基本上都采用WSDL文件描述,并有UDDI(统一描述、发现和集成方法)技术支持Web服务的发布、存储和查找。这种技术主要依靠服务的名字和描述进行关键字査找,它丢失了许多服务描述文件中原有的信息,用户查询服务的效率较低,无法实现Web服务的自动化,更不能满足服务自动组合的需求。Web服务急需一种新的方式。为此,研究者们针对提高Web服务的高效性和准确性展开了研究,这些研究主要从两个不同的方向考虑。一类是为Web服务引入语义网技术,采用本体对服务的属性进行描述,保证服务语义的精确和一致性,同时在服务的查找过程中采用语义推理,弥补了关键字查找不能区分同名异义和异名同义的缺点,但并没有统一的本体模型和很好的语义Web服务开发工具,因此在工程实践中存在一定困难,一直没有得到很好的推广。另一类研究则建立在目前的现实状况之上,使用标准的WSDL语言进行服务。这类研究主要使用WSDL文件中的关键字和XML文档的结构对服务进行聚类分析。虽然它们中也提到了基于语义的匹配,但是它们通常只能提取概念而无法获得概念之间的关系,这与目前使用本体的语义描述方法还存在着相当大的差别。而本体学习的方法可以从一定程度上解决上述问题。综上所述,虽然Web服务已经有许多相关的研究,但是在现实中实用化的技术很少,Web服务应用的实际情况和前沿理论研究之间还存在巨大的鸿沟,如何解决现实问题并且向前推动Web服务技术的发展应该成为现在研究的重要内容。
发明内容本发明的目的在于克服上述现有技术的缺点,提供了一种基于本体学习的Web服务语义提取方法,本发明能够实现从Web服务描述文件中自动获取本体,并以此为基础为Web服务添加语义,从而减少程序开发人员手工加入语义的负担,提高服务效率。为达到上述目的,本发明采用的技术方案是1)读取需要解析的WSDL文件,建立类型集合并初始化一个空本体集合用于暂存从该WSDL文件中获取的本体,进入步骤2);2)从类型集合中取出一个未处理标签,查找本体集合中是否存在与当前要处理的标签同名的本体,如果存在则进入步骤4),否则以该标签作为本体的名字构造一个新的本体对象并将其加入本体集合,进入步骤3);3)首先分析该标签的语法结构,根据其对应的语义关系建立相应的本体以及本体之间的关系,并将新建立的本体加入本体集合;然后在类型集合中查找该标签对应的文档节点,分析其文档结构,如果存在子元素则对子元素标签进行步骤2)处理,之后根据文档结构对应的语义关系建立本体之间的关系;4)如果类型集合中还存在未处理类型,取该类型的标签进入步骤2),否则依次取本体集合中的本体进入步骤5);5)从本体集合中取一个未存储本体,在本体库中査找是否存在与该本体同名的本体,如果存在则合并这两个本体,进入步骤7);否则将此本体存入本体库,进入步骤6);6)取出与该本体具有相同祖先或者与该本体包含有相同本体的本体,依次取出这些本体与该本体进行比较,根据比较结果建立这些本体的关系,进入步骤7);7)如果本体集合中还存在未存储本体,进入步骤5),否则进入步骤8)8)解析WSDL文件中的服务相关信息,根据操作输入输出对应的类型参数为服务添加语义信息。本发明步骤3)具体过程如下3.1预处理将标签进行分词处理,得到一个有序的英文单词词组,然后再查找其中每个单词词性;3.2如果存在介词,则根据介词的位置将本体分割成小段,如果标签第一个词为动词,则分割第一小段,经过分割后,各个小段都成为名词短语,以每个小段为名建立本体,并根据常见语法结构及其对应语义关系中的策略建立本体之间的联系;3.3对各个小段,如果词的个数大于l,查询最后的名词,分割短语,以各段为名建立本体,按照常见语法结构及其对应语义关系中的策略建立本体之间的联系;3.4判断是否存在单词个数大于1的名词短语,若有则返回步骤3.3);3.5根据标签的名字在类型集合中查找相应文档元素,判断这个元素的类型是element、simpleType还是complexType,若不存在则结束对该标签的语义分析,element、simpleType禾口complexType者P是XMLSchema中的元素类型;3.6如果是element类型,看其中是否有type属性即看其类型是否在类型集合中存在,如果存在则取type属性对应的标签为当前标签,进入步骤2)并将此本体与类型名对应的本体建立等价关系,然后看是否有子元素;如果没有type属性,则直接看是否有子元素,如果有子元素则进入步骤2),并使用相应的策略建立语义关系,否则结束对该标签的语义分析;3.7如果是simpleType类型,取其标签为当前处理标签,进入步骤2),然后看其是使用哪种形式构建,根据常见文档结构及其对应语义关系中的策略建立语义关系,之后结束对该标签的语义分析;3.8如果是complexType类型,取其标签为当前处理标签,进入步骤2)然后取其子元素,看构建方式是扩展还是自定义,如果是扩展,取base属性对应的标签为当前标签,进入步骤2),然后根据常见文档结构及其对应语义关系中的策略建立两者的包含关系;如果是自定义,看其是否有name属性,如果有,取name属性对应的标签为当前标签,进入步骤2,并根据常见文档结构及其对应语义关系策略建立语义关系;否则查看是否有子元素,如果有子元素,继续取子元素进行分析,如果没有仍未分析过的子元素,结束对该标签的语义分析。所说的步骤5)在本体库中查找是否存在与该本体同名的本体,如果存在则合并这两个本体,在合并的过程中比较当前的本体与其他本体之间的关系与数据库中先前存储的关系,若有新的关系则在数据库中插入新数据,若没有新关系,则看是否比较完所有关系,若没有比较完所有关系则返回取一个未比较的关系继续进行比较,若比较完所有关系,则进行第7)步骤,看是否有未存储的关系,如果有则存入数据库,处理完后该本体存储过程结束,到步骤7;如果不存在同名的本体,则将此本体存入本体库,进入步骤6。所说的步骤6)整个比较过程包括对本体名称的比较及对本体内部包含关系的比较,过程如下所示,记Cl为两个本体相似的置信度,C2为两本体等价的置信度,0.5〈Cl〈C2〈1:6.1取两本体名称进行分词,获取词性,然后根据査词典确定包含词汇的词性,并按词汇顺序排列;6.2如果本体包含的词汇存在介词则将词汇分割成小段,并取两个本体第一小段进行比较,若没有介词转入6.3;6.3从小段的最后开始往前依次比较名词和动词,看对应的词语是否相似,如果末尾的名词已不相似,可以置相似词的个数为零并到下一步,按公式Score=synNum/max(size(Al),size(Bl)),Al,Bl为相应本体名称中的第一小段,计算相似程度,结果为sl;6.4使用词典比较的方法比较两个本体所有词汇的相似性,记录相似词的个数,用公式Score二synNum/max(size(A2),size(B2)),A2,B2为相应本体包含的全部词,计算相似程度,结果为s2;6.5比较sl,s2和C2,如果sl,s2都大于C2,则两本体等价,返回结果;如果sl,s2其中一个大于Cl,则两本体相似转入步骤6.6;否则两本体不相似即无新关系转入步骤6.6;6.6为每个本体建立存储集合set—1和set_2,进入步骤6.7;6.7取本体的父类,如果这个本体没有父类则把该本体自身加入集合,否则继续求其父类,直至其父类不存在,完成后步骤6.8;6.8如果该本体包含有其他本体,对这些本体分别执行步骤6.6,之后将获得的集合返回并将集合加入set—n,n为当前处理本体的序号,所有包含的本体处理完后,进入第6.9步;6.9按步骤6.66.8取另一个本体set一2的核心部分;6.10求两本体核心部分set一l和set—2重合的个数,记为interNum,使用公式C二interNum/size(On)分别计算交集和两个本体的覆盖程度,On本体l或本体2,size(On)为该本体核心部分包含本体的个数,如果两个本体的交集覆盖度都大于C2,则判定两个本体等价,如果一个大于C2而另一个小于C2,则判定一个本体覆盖另一个本体,即小于C2的本体成为另一个本体的父类,否则如果两个本体的覆盖度都大于Cl的话,则判定两个本体相似,否则不生成新的关系。本发明通过对WSDL(Web服务描述语言)文件进行本体学习,自动获取Web服务中的语义信息,从而减少程序开发人员手工加入语义的负担,提高服务效率。图l是本发明的整体流程图。图2是本发明中语义提取流程图。图3是本发明中语义精炼流程图。表i.常见语法结构及其对应语义关系<table>tableseeoriginaldocumentpage11</column></row><table>^2.常见文档结构及其对应语义关系<table>tableseeoriginaldocumentpage11</column></row><table>groupIallIchoiceIsequence表示此元素包含多个部分,部分为此元素的子元素和子属性(注表l、表2只列出了常见语义对应规则,实际使用中可以添加自定义规则)具体实施方式下面结合附图对本发明作进一步详细说明。参见图l,若要根据WSDL文件提取该Web服务语义时,需要进行以下的再生步骤1)读取需要解析的WSDL文件,建立类型集合并初始化一个空本体集合用于暂存从该WSDL文件中获取的本体,进入步骤2);2)从类型集合中取出一个未处理标签,査找本体集合中是否存在与当前要处理的标签同名的本体,如果存在则进入步骤4),否则以该标签作为本体的名字构造一个新的本体对象并将其加入本体集合,进入步骤3);3)首先分析该标签的语法结构,根据其对应的语义关系建立相应的本体以及本体之间的关系,并将新建立的本体加入本体集合;然后在类型集合中查找该标签对应的文档节点,分析其文档结构,如果存在子元素则对子元素标签进行步骤2)处理,之后根据文档结构对应的语义关系建立本体之间的关系;4)如果类型集合中还存在未处理类型,取该类型的标签进入步骤2),否则依次取本体集合中的本体进入步骤5);5)在本体库中查找是否存在与该本体同名的本体,如果存在则合并这两个本体,在合并的过程中比较当前的本体与其他本体之间的关系与数据库中先前存储的关系,若有新的关系则在数据库中插入新数据,若没有新关系,则看是否比较完所有关系,若没有比较完所有关系则返回取一个未比较的关系继续进行比较,若比较完所有关系,则进行第7)步骤,看是否有未存储的关系,如果有则存入数据库,处理完后该本体存储过程结束,到步骤7;如果不存在同名的本体,则将此本体存入本体库,进入步骤6。6)取出与该本体具有相同祖先或者与该本体包含有相同本体的本体,依次取出这些本体与该本体进行比较,根据比较结果建立这些本体的关系,进入步骤7);7)如果本体集合中还存在未存储本体,进入步骤5),否则进入步骤8)8)解析WSDL文件中的服务相关信息,根据操作输入输出对应的类型参数为服务添加语义信息。参见图2,本发明的步骤3)具体过程如下3.1预处理将标签进行分词处理,得到一个有序的英文单词词组,然后再査找其中每个单词词性;3.2如果存在介词,则根据介词的位置将本体分割成小段,如果标签第一个词为动词,则分割第一小段,经过分割后,各个小段都成为名词短语,以每个小段为名建立本体,并根据常见语法结构及其对应语义关系中的策略建立本体之间的联系;3.3对各个小段,如果词的个数大于l,查询最后的名词,分割短语,以各段为名建立本体,按照常见语法结构及其对应语义关系中的策略建立本体之间的联系;3.4判断是否存在单词个数大于1的名词短语,若有则返回步骤3.3);3.5根据标签的名字在类型集合中查找相应文档元素,判断这个元素的类型是element、simpleType还是complexType,若不存在则结束对该标签的语义分析,element、simpleType禾卩complexType都是XMLSchema中的元素类型;3.6如果是element类型,看其中是否有type属性即看其类型是否在类型集合中存在,如果存在则取type属性对应的标签为当前标签,进入步骤2)并将此本体与类型名对应的本体建立等价关系,然后看是否有子元素;如果没有type属性,则直接看是否有子元素,如果有子元素则进入步骤2),并使用相应的策略建立语义关系,否则结束对该标签的语义分析;3.7如果是simpleType类型,取其标签为当前处理标签,进入步骤2),然后看其是使用哪种形式构建,根据常见文档结构及其对应语义关系中的策略建立语义关系,之后结束对该标签的语义分析;3.8如果是complexType类型,取其标签为当前处理标签,进入步骤2)然后取其子元素,看构建方式是扩展还是自定义,如果是扩展,取base属性对应的标签为当前标签,进入步骤2),然后根据常见文档结构及其对应语义关系中的策略建立两者的包含关系;如果是自定义,看其是否有name属性,如果有,取name属性对应的标签为当前标签,进入步骤2,并根据常见文档结构太其对应语义关系策略建立语义关系;否则査看是否有子元素,如果有子元素,继续取子元素进行分析,如果没有仍未分析过的子元素,结束对该标签的语义分析。参见图3,本发明的步骤6)整个比较过程包括对本体名称的比较及对本体内部包含关系的比较,过程如下所示,记C1为两个本体相似的置信度,C2为两本体等价的置信度,0.5<Cl<C2<1:6.1取两本体名称进行分词,获取词性,然后根据查词典确定包含词汇的词性,并按词汇顺序排列;6.2如果本体包含的词汇存在介词则将词汇分割成小段,并取两个本体第一小段进行比较,若没有介词转入6.3;6.3从小段的最后开始往前依次比较名词和动词,看对应的词语是否相似,如果末尾的名词已不相似,可以置相似词的个数为零并到下一步,按公式Score=synNum/max(size(Al),size(Bl)),Al,Bl为相应本体名称中的第一小段,计算相似程度,结果为sl;6.4使用词典比较的方法比较两个本体所有词汇的相似性,记录相似词的个数,用公式Score=synNum/max(size(A2),size(B2)),A2,B2为相应本体包含的全部词,计算相似程度,结果为s2;6.5比较sl,s2和C2,如果sl,s2都大于C2,则两本体等价,返回结果;如果sl,s2其中一个大于Cl,则两本体相似转入步骤6.6;否则两本体不相似即无新关系转入步骤6.6;6.6为每个本体建立存储集合set—1和set_2,进入步骤6.7;6.7取本体的父类,如果这个本体没有父类则把该本体自身加入集合,否则继续求其父类,直至其父类不存在,完成后步骤6.8;6.8如果该本体包含有其他本体,对这些本体分别执行步骤6.6,之后将获得的集合返回并将集合加入set一n,n为当前处理本体的序号,所有包含的本体处理完后,进入第6.9步;6.9按步骤6.66.8取另一个本体set—2的核心部分;6.10求两本体核心部分set—1和set—2重合的个数,记为interNum,使用公式OinterNum/size(0n)分别计算交集和两个本体的覆盖程度,On本体l或本体2,size(On)为该本体核心部分包含本体的个数,如果两个本体的交集覆盖度都大于C2,则判定两个本体等价,如果一个大于C2而另一个小于C2,则判定一个本体覆盖另一个本体,即小于C2的本体成为另一个本体的父类,否则如果两个本体的覆盖度都大于Cl的话,则判定两个本体相似,否则不生成新的关系。权利要求1.基于本体学习的Web服务语义提取方法,其特征在于1)读取需要解析的WSDL文件,建立类型集合并初始化一个空本体集合用于暂存从该WSDL文件中获取的本体,进入步骤2);2)从类型集合中取出一个未处理标签,查找本体集合中是否存在与当前要处理的标签同名的本体,如果存在则进入步骤4),否则以该标签作为本体的名字构造一个新的本体对象并将其加入本体集合,进入步骤3);3)首先分析该标签的语法结构,根据其对应的语义关系建立相应的本体以及本体之间的关系,并将新建立的本体加入本体集合;然后在类型集合中查找该标签对应的文档节点,分析其文档结构,如果存在子元素则对子元素标签进行步骤2)处理,之后根据文档结构对应的语义关系建立本体之间的关系;4)如果类型集合中还存在未处理类型,取该类型的标签进入步骤2),否则依次取本体集合中的本体进入步骤5);5)从本体集合中取一个未存储本体,在本体库中查找是否存在与该本体同名的本体,如果存在则合并这两个本体,进入步骤7);否则将此本体存入本体库,进入步骤6);6)取出与该本体具有相同祖先或者与该本体包含有相同本体的本体,依次取出这些本体与该本体进行比较,根据比较结果建立这些本体的关系,进入步骤7);7)如果本体集合中还存在未存储本体,进入步骤5),否则进入步骤8)8)解析WSDL文件中的服务相关信息,根据操作输入输出对应的类型参数为服务添加语义信息。2、根据要求1所述的基于本体学习的Web服务语义提取方法,其特征在于所说的步骤3)具体过程如下3.1预处理将标签进行分词处理,得到一个有序的英文单词词组,然后再查找其中每个单词词性;3.2如果存在介词,则根据介词的位置将本体分割成小段,如果标签第一个词为动词,则分割第一小段,经过分割后,各个小段都成为名词短语,以每个小段为名建立本体,并根据常见语法结构及其对应语义关系中的策略建立本体之间的联系;3.3对各个小段,如果词的个数大于l,査询最后的名词,分割短语,以各段为名建立本体,按照常见语法结构及其对应语义关系中的策略建立本体之间的联系;3.4判断是否存在单词个数大于1的名词短语,若有则返回步骤3.3);3.5根据标签的名字在类型集合中査找相应文档元素,判断这个元素的类型是element、si卿leType还是complexType,若不存在则结束对该标签的语义分析,element、simpleType和complexType都是XMLSchema中的元素类型;3.6如果是element类型,看其中是否有type属性即看其类型是否在类型集合中存在,如果存在则取type属性对应的标签为当前标签,进入步骤2)并将此本体与类型名对应的本体建立等价关系,然后看是否有子元素;如果没有type属性,则直接看是否有子元素,如果有子元素则进入步骤2),并使用相应的策略建立语义关系,否则结束对该标签的语义分析;3.7如果是simpleType类型,取其标签为当前处理标签,进入步骤2),然后看其是使用哪种形式构建,根据常见文档结构及其对应语义关系中的策略建立语义关系,之后结束对该标签的语义分析;3.8如果是complexType类型,取其标签为当前处理标签,进入步骤2)然后取其子元素,看构建方式是扩展还是自定义,如果是扩展,取base属性对应的标签为当前标签,进入步骤2),然后根据常见文档结构及其对应语义关系中的策略建立两者的包含关系;如果是自定义,看其是否有name属性,如果有,取name属性对应的标签为当前标签,进入步骤2,并根据常见文档结构及其对应语义关系策略建立语义关系;否则查看是否有子元素,如果有子元素,继续取子元素进行分析,如果没有仍未分析过的子元素,结束对该标签的语义分析。3、根据权利要求l所述的基于本体学习的Web服务语义提取方法,其特征在于所说的步骤5)在本体库中査找是否存在与该本体同名的本体,如果存在则合并这两个本体,在合并的过程中比较当前的本体与其他本体之间的关系与数据库中先前存储的关系,若有新的关系则在数据库中插入新数据,若没有新关系,贝瞎是否比较完所有关系,若没有比较完所有关系则返回取一个未比较的关系继续进行比较,若比较完所有关系,则进行第7)步骤,看是否有未存储的关系,如果有则存入数据库,处理完后该本体存储过程结束,到步骤7;如果不存在同名的本体,则将此本体存入本体库,进入步骤6。4、根据权利要求1所述的基于本体学习的Web服务语义提取方法,其特征在于所说的步骤6)整个比较过程包括对本体名称的比较及对本体内部包含关系的比较,过程如下所示,记Cl为两个本体相似的置信度,C2为两本体等价的置信度,0.5<Cl〈C2〈1:[6.1]取两本体名称进行分词,获取词性,然后根据查词典确定包含词汇的词性,并按词汇顺序排列;[6.2]如果本体包含的词汇存在介词则将词汇分割成小段,并取两个本体第一小段进行比较,若没有介词转入6.3;[6.4从小段的最后开始往前依次比较名词和动词,看对应的词语是否相似,如果末尾的名词已不相似,可以置相似词的个数为零并到下一步,按公式Score=synNum/max(size(Al),size(Bl)),Al,Bl为相应本体名称中的第一小段,计算相似程度,结果为sl;[6.4使用词典比较的方法比较两个本体所有词汇的相似性,记录相似词的个数,用公式Score=synNum/max(size(A2),size(B2)),A2,B2为相应本体包含的全部词,计算相似程度,结果为s2;[6.5比较sl,s2和C2,如果sl,s2都大于C2,则两本体等价,返回结果;如果sl,s2其中一个大于Cl,则两本体相似转入步骤6.6;否则两本体不相似即无新关系转入步骤6.6;[6.6为每个本体建立存储集合set—1和set—2,进入步骤6.7;v6.7取本体的父类,如果这个本体没有父类则把该本体自身加入集合,否则继续求其父类,直至其父类不存在,完成后步骤6.8;[6.8如果该本体包含有其他本体,对这些本体分别执行步骤6.6,之后将获得的集合返回并将集合加入set』,n为当前处理本体的序号,所有包含的本体处理完后,进入第6.9步;[6.9按步骤6.66.8取另一个本体set_2的核心部分;[6.10求两本体核心部分set—1和set—2重合的个数,记为interNum,使用公式C4nterNum/size(0n)分别计算交集和两个本体的覆盖程度,On本体l或本体2,size(On)为该本体核心部分包含本体的个数,如果两个本体的交集覆盖度都大于C2,则判定两个本体等价,如果一个大于C2而另一个小于C2,则判定一个本体覆盖另一个本体,即小于C2的本体成为另一个本体的父类,否则如果两个本体的覆盖度都大于C1的话,贝,定两个本体糊以,否则不生成新的关系。全文摘要基于本体学习的Web服务语义提取方法,首先提取当前WSDL文件中的语义信息通过读取WSDL文件中的类型定义信息,对每个类型依次进行语法结构以及类型定义结构的解析,建立相应的本体结构;其次在完成对当前WSDL文件的解析后,将所获取的本体存入数据库中并完成对本体的精炼过程依次取解析后获取的本体,在本体库中查找相同或相关的本体,通过本体直接的比较,获取本体间隐含的关系,丰富本体结构,完成此过程后将此本体及比较结果存入数据库中;最后通过对当前WSDL文件中服务相关信息的解析,建立服务与本体之间的关系。本发明通过使用本体学习的方法,为无语义信息的服务自动的添加相应的语义信息,可以用于服务发现领域,提高服务发现效率。文档编号G06F17/30GK101398858SQ200810232198公开日2009年4月1日申请日期2008年11月7日优先权日2008年11月7日发明者徐东红,沈林峰,坚王,罗元盛,勇齐申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1