前言 服务计算为一门新兴的交叉学科,包含了多种突破性的技术。本书将其划分成两部分内容,分别为服务管理与服务组合。事实上,服务管理研究的目的也是为服务组合过程提供技术支撑。对服务有效的分类管理有助于用户或系统快速、精确地查找服务。服务组合中的服务是指Web服务,而Web服务的实现理念是基于面向服务的架构的,发布于互联网上的Web服务,可被互联网上的任何机构和人所调用。这些Web服务通常具有一些简单的功能,其本质是软件模块。单独的一个服务是无法对复杂问题求解的,此时需要将服务进行组合以完成对复杂任务的求解。因此,服务之所以具有重要的研究价值,是因为它可以被组合形成流程,用于复杂问题求解。最理想的目标是在求解问题时,从互联网上调用服务,将这些服务按逻辑操作组合建立形成流程。这些操作只需通过图形化界面,将它们建立连接并运行,不理解服务技术背景的人也可以完成。但是现在的服务组合技术的发展还远没有达到这种阶段。随着Web服务的发展,流程中另一重要的要素人与工作流的交互也逐渐受到了重视,如2007年Web Services Human Task(WSHumanTask)规范的发布,它将与工作流交互的人需完成的任务定义为人工任务,包含了服务流程与人的交互。本书以服务流程为研究对象,以服务的已有技术、标准为研究基础,通过应用相关的理论与技术,主要包括语义、本体、分类算法、TFIDF算法、命题库、粒子群优化算法、遗传算法、Agent等,分阶段地探讨了服务计算的关键问题服务组合,以帮助实现服务流程。本书的特色在于: 将服务组合划分成多个阶段并分别做了介绍,且每部分的内容都有相应的提出的方法、实验与结论,分别为服务检索、服务选择、服务推荐,以及应用Agent技术构建服务组合流程的方法。在服务检索中,为了检索到满足用户功能需求的服务并提高服务检索的效率与准确率,在同一服务类别中,提出利用相似度建立服务间关系模型,并对个体服务的描述元素的内容进行语法结构分析,通过语法结构以及语义相似度以完成查询内容与检索服务之间的匹配。在服务推荐中应用用户组建形成的社会网络预测候选服务的信任值,为用户推荐满足其非功能需求的服务,还介绍了Protg平台支持的服务解析与组合的实现过程。Agent技术与服务的结合,则应用了BDI模型于分布式服务组合流程的构建。最后是对云计算模式下的未来发展趋势多云架构的介绍。本书的主要目标是在阐述服务计算的基础上,重点探讨服务管理与服务组合的内容及其实现技术。面向的读者是相关领域的研究人员、科技工作者、高年级的本科生与研究生。本书出版得到了浙江省高校人文社科重点研究基地管理科学与工程项目专著出版基金(No.ZX140204304001007)的资助,作者在此表示由衷的感谢。本书在编写过程中参考了大量的国内外文献,在此感谢这些作者。由于作者水平有限,书中难免存在一些不足之处,恳请读者批评指正。
编者2016年9月
第3章语义网与Web服务
服务计算的研究中除了Web服务是一大技术支撑外,语义是另一受到重视且被广泛应用的技术。本章首先介绍了作为下一代Web发展方向的语义网的定义,它的架构与优势等; 其次介绍了构建语义网的最主要的组成概念本体,主要包含了本体的定义、建模元语、描述语言、建模工具、已有的本体、本体的分类以及本体的应用范围,它被应用到Web服务中,因而有了基于本体的Web服务描述语言OWLS; 最后是对语义相似性的介绍,给出了一些常用的语义相似性算法,特别是基于本体WordNet的算法,用于计算词语word之间的相似性,语义相似性算法可被应用到许多领域中,包括本书的主题内容Web服务的相关研究中。3.1语义网语义网的概念刚出现的时候,大家都将其视为一个非常神奇的技术,并设想如果现在的万维网World Wide Web,WWW进化成语义网,信息检索将变得非常便利。它可以理解用户想要检索的事物,而不是停留在只是对文字机械地匹配的程度。语义网如今依然是非常流行并有待发展的技术。它的神奇之处主要表现在: 表达能力增强。现今的网络并没有建立词汇与词汇之间的联系,只是将其作为一个文档处理,而语义网则是将词汇间的关联进行定义并将其添加到WWW上,此时达到的目的就是计算机能理解词汇与词汇之间的语义,而这种定义的完成需要借助之后的小节中将要介绍的本体的能力。词汇与词汇之间的关联包含的内容颇广,比如词汇的属性、词汇的上下层关联的词汇等,以及文档与文档之间同样可以定义联系。 理解能力增强。计算机是不理解文档的语义的,但将语义添加到文档中有助于其理解语义,且它的定义文档是基于XML的语言,从而有助于计算机抽取、处理信息,以及高级的应用,如信息检索。 可扩展的内容。有了语义网之后,在它的定义基础之上可以扩展它的内容,如增加文档并用语义定义,且与已有的定义建立连接后兼容。由于万维网是庞大的且是不停动态增长的,因此可扩展的意义非常重要。与上述的优势相对应的便是如今网络所存在的局限性: 缺乏对信息的描述; 缺乏语义; 对信息的内容不理解; 检索是基于关键字、而非语义,由此Tim Berners Lee于2000年提出了语义网的概念。建立语义网的目标是使计算机能理解信息,并在理解的基础上能自动地处理信息,如信息代理、信息过滤等。通过给万维网上的文档HTML文档、XML文档添加能够被计算机所理解的语义元数据Meta data,从而使整个互联网成为一个通用的信息交换媒介。定义3.1语义网Semantic Web: 它包含了文档和文档的一些部分,描述了事物间的明显关系,且包含语义信息,以便于机器的自动处理[1]。语义网的层次结构如图3.1所示,总共包含7层。从底向上依次是:
图3.1语义网的架构图
(1) 资源的统一编码形式Unicode及资源的统一定位符Uniform Resource Identifier,URI。该层位于最底层,是整个语义网的基础,Unicode的职责是处理资源的编码; URI对资源进行标识。Unicode编码的好处是它支持所有主要语言的混合,如记事本.txt支持Unicode编码,URI可以唯一地标识网络上的一个概念或资源,如之后将要介绍的命名空间由URI索引确定。(2) 数据的内容表达XML、命名空间NameSpace,NS及XML结构定义XML Schema。该层从语法上表达数据内容和结构。XML作为通用标记语言用于内容表达,NS是为了对不同的事物采取不同的字符描述而定义,XML Schema是对文档类型的定义,采用XML语法,一旦定义,XML根据该结构书写文档,且它还提供数据校验机制。(3) 资源的通用描述框架RDF及资源类型的定义RDF Schema。RDF是对万维网上的资源信息进行描述的语言,作为本体的描述语言将在3.2.3节详细介绍。RDF Schema是以机器可理解的形式对资源描述的结构的定义,如XML文档由XML Schema框架定义,RDF语言由RDF Schema给出描述资源的词汇及结构的定义。(4) 本体词汇库: 该层位于RDF RDF Schema层之上,资源之间的关系用本体的语言表达,是对领域中的知识、资源、资源之间的关系进行详细、丰富的定义,也是建立领域本体的过程。(5) 描述逻辑Logic: 提供公理、规则等为推理应用提供支持,对建立的资源文档进行验证,判断是否符合一致性等。(6) 认证Proof机制: 提供数字签名。(7) 信任Trust机制: 通过交换数据签名建立信任关系,以证明语义网的可靠性等。
3.2本体在如图3.1所示的语义网架构图中,本体是学术界进行语义研究的重要工具。本体是描述世界存在中的类、类的属性及类之间关系的重要工具,它弥补了以前的研究中对这一描述的缺陷。语义网建立的目的是使计算机能理解信息,能理解词语、词语中包含的概念、词语之间的逻辑关系,从而达到人与计算机的交流更加灵活、流畅的目的。词语、概念、逻辑关系等便是通过建立的本体方式表达的,形成了本体库,将这样一些信息输入给计算机,从而使计算机能理解词语的含义、关系,根据词语之间的多层关系,计算机还能具有一定的推理、演化的能力。建立的本体可以将其看成一张图graph或者网。
图3.2本体实例wines的一部分
如图3.2所示为一经典的本体实例葡萄酒wines的本体,从图中得到的信息有:存在7个类Class,分别是THING、Meal course餐酒的数量、Winery酿酒厂、Consumable thing消费物、Drink酒、Wine葡萄酒和Dessert wine甜酒。:THING在本体里表示所有事物的父类,任何一个类都是: THING的子类。类之间的关系是: Meal course、Winery、Consumable thing都是: THING的子类,Drink是Consumable thing的子类,Wine是Drink的子类,Dessert wine是Wine的子类。可以看出,类的名称都是名词。
Whitehall Lane Primavera是Dessert wine的一个实例Instance,Whitehall Lane Primavera是一种甜酒。name是类Consumable thing的属性Property,它的值类型Value Type是字符型String。图3.2是在本体建模工具Protg下的本体,并利用其中的插件Ontoviz用图形化的形式显示了wines本体的一小部分,wine的整体是很庞大的,包含的类、属性、实例等并没有在图中完全显示。Protg将在本章后面做简要的介绍,关于类的图形化显示还可以使用插件OWLViz,在OWLS语言的介绍中类的显示便是使用的该插件。3.2.1本体的定义本体Ontology起源于哲学上的概念,用于研究客观事物的存在。在计算机科学领域中,对其的定义是Studer在Neches、Gruber、Borst等前人给出的定义的基础上的引申。定义3.2本体: 是共享概念模型的明确的形式化规范说明[2]An ontology is a formal, explicit specification of a shared conceptualization。该定义主要包含四个方面: 概念化conceptualization通过抽象出客观世界中一些现象的相关概念而得到的模型,即抽象模型。 明确explicit所使用的概念及使用这些概念的约束都有明确的定义。 形式化formal计算机可读的描述形式。 共享shared本体中体现的是大家共同认可的知识,反映的是相关领域中公认的概念集。对本体的分类有通用本体、顶层本体、领域本体、术语本体等。还有一些其他的本体类别,由于使用范围不广,在此不一一阐述。通用本体general ontology: 一般常识,大家公认的概念与概念之间的逻辑关系。顶层本体或上层本体upper level ontology: 在各种各样的领域本体之中都普遍适用的共同对象所构成的模型[3]。在OWLS中,它的上层本体由ServiceProfile、ServiceGrounding和ServiceModel三部分构成。领域本体domain ontology: 是对特定领域中概念的描述,领域本体的存在是非常必要的,也是被广泛使用的。主要原因是同一个词语在不同的领域之中会有不同的语义,当限定领域时,才能完全确定其语义。如disk在音乐领域中指唱片,在计算机领域中指硬盘、磁盘等。术语本体terminology ontology: 一些专业领域中的常用术语与术语概念之间的关系建立。3.2.2本体的建模元语Gruber[4]提出了本体的建立原则,通常需要满足: 清楚clarity本体必须清晰地说明所定义的术语的语义。定义应该是客观的,且独立于特定的环境,对术语尽可能给出自然语言描述的定义。如平均气温是一个模糊的概念,应详细、清楚地指出是日平均气温或月平均气温等。 一致性coherence本体应该是前后一致的,也就是说,由它包含的公理所推断出来的定义应该与本体中的定义相一致。相反,如果从一组公理中推断出来的结论与其中一个非形式化的定义或实例相矛盾,则这个本体是不一致的。 可扩展性extendibility指在本体原有提供的概念之上,定义新的术语或概念,以满足需求。原有的概念为该本体的概念基础。 编码偏好程度最小minimal encoding bias本体表达时应与特定的编码符号无关,它所属的层次应该是高于编码层的知识层。概念的描述不应依赖于某一特殊的表示方法,以将其应用于各种实际系统中。 本体约束极小的原则minimal ontological commitment本体的约束条件应该极小,只要能够满足特定的知识共享需求即可。也就是说,本体只给出最小的约束,而这些约束由本体的使用者共享,使用者根据其实践背景,在该本体之上进行实例化、专门化、推断等。Gruber指出,定义约束极小的公理可以通过只定义最基本的词汇来保证。对于一个已建立的本体是否满足上述的这些原则尚无统一的衡量与评价标准,只能由本体设计者根据实际的应用情况来灵活定义。用本体将信息组织起来,Perez等[5]提出的基本元语有: 类Class或概念Concept是一个抽象的概念,包含的事物很广泛,如图3.2中的葡萄酒、甜酒、消费品等都是类或概念,类可以理解为面向对象语言中的类,通常都是以名词命名。 关系Relation指在特定的领域中类与类之间的关系,下面给出本体描述中的基本关系,如part of、kind of等。这些关系并不是完全确定的,可以扩展关系的类型。 函数Functions指关系的前n-1个元素可以唯一决定第n个元素。如关系capitalOfA, B,城市B是国家A的首都,A决定B,实例: capitalOfChina, Beijing。 公理Axioms公理是永真的,不论处于任何条件都永远为真,如地球是椭圆体。 实例Instances类的一个具体例子。如图3.2所示,Whitehall Lane Primavera是Dessert wine的一个实例,以及图3.3中南京市是市的一个实例。在面向对象语言中,对象是类的实例,如学生类,对象张三是学生类的实例。所有的这些元语都可以运用到本体的建立中,或者某些本体的建立不一定会用到所有的元语。元语的使用,是为了约束要建立的本体中所包含的数据的解释。关系在其中显得非常重要,本体描述中包含的基本关系有: equivalent of等价关系,两个概念之间是相互等价的。 part of表示概念的部分与整体的关系。 kind of表示子类与父类间的关系,子类会继承父类的基本特征。 instance of表示实例与概念的关系。 attribute of表示一个概念是另一个概念的属性。如图3.3所示,用有向图表示的一个本体实例,描述了一个以中国行政单位为类的本体建立,省是国家的一部分,关系是part of; 南京市是市的实例,关系为instance of; 简称是南京市的属性,关系为attribute of; 简称是省的属性,关系为attribute of; 双箭头表示简称与简称之间是等价的关系,关系为equivalent of; 宁是简称的实例,关系为instance of。
图3.3对中国行政单位建立的本体结构
本体的描述中除了这些基本关系外,还允许扩展这些关系对结构化、非结构化关系进行描述。扩展的关系有传递Transitive、对称Symmetric、逆反Inverse、相交Intersection、函数Functional等。还是以wines本体为例,其中包含了属性produces生产和maker厂家。produces是类Wine的属性,域为Winery,表达葡萄酒Wine由指定的酿酒厂Winery生产。Maker是类Winery的属性,域为Wine,表达葡萄酒Wine的厂家maker是某一指定的酿酒厂Winery。因而,produces和maker的关系是逆反的Inverse。上述的扩展关系是本体建模工具Protg所支持的关系,丰富关系的描述使得本体的语义表达更加清晰,传递的关系等还可用于推理,将在3.2.4节介绍Protg。基于其描述,本体可以为软件应用程序的开发提供服务。例如,本体可以为面向对象的软件开发提供类的定义及对象,本体中类的定义可以转换为软件开发中类的定义。3.2.3本体的描述语言1 资源描述框架Resource Description Framework,RDF和RDF模式RDF Schema,RDFS,如图3.1中的层次结构,都为本体和语义网的建立提供技术支撑。RDF与RDFS是相辅相成的,两者都是基于XML的用于描述万维网上的资源的语言,可将其认为是本体语言,且已经是W3C所认定的标准。RDF的描述方式,将Web上的一切事物视作资源Resource,围绕资源描述信息,采用三元组的形式,即资源属性属性值用于描述资源,且所有的事物、个体、属性、属性值、种类等部分都用Web标识符Uniform Resoure Locator,URL来标识。如下所示为wines本体的RDF文件中Dessert_wine的描述。开头的部分,在DOCTYPE声明中,将ENTITY声明写入,为URIrefs提供简写形式,因此在后面的部分,''http:www.w3.org19990222rdfsyntaxns#''用rdf简写,rdf_、rdfs等也是如此。rdf:RDF作为文档的根元素,声明该文档是RDF文档,xmlns对RDF命名空间声明。对Dessert_wine的描述,用属性about标识资源Whitehall_Lane_Primavera,属性body酒体的值为LIGHT轻度,该酒的flavor风味为DELICATE清香,name为Whitehall_Lane_Primavera,sugar糖分为SWEET甜型。对于属性maker未给出其值,而是引用了一个资源resource来定义。
]
RDFS是对RDF的一种扩展,提供了描述应用程序专用的类和属性的框架,类似于面向对象编程语言中的类,可被重复使用。为了描述类、属性、类之间、属性之间、类与属性之间的关系,RDFS添加了描述元素: 类class、子类subClassOf、属性Property、子属性subPropertyOf、值域range和定义域domain。定义域和值域是对属性的约束,定义了主体和客体的取值范围,子类和子属性是类、属性的包蕴关系的定义。如下为wines本体的rdfs文件的一部分,前面声明部分的内容与作用与RDF文件类似。一个RDFS类就是一个RDF资源,类Dessert_wine是类Wine的子类。一个属性也当作一个资源对待,属性produces,它的值域为类Wine,定义域为类Winery。Comments为对该属性的文字描述。
]
This slot contains the wines produced by a particular winery. The maker of a Wine is its inverse slot.
RDF和RDFS的不足之处:虽然RDF和RDFS展现了多方面的描述内容,但也不能掩盖的是它的表达能力弱的事实。没有任何概念和关系相关的构造算子,不能创建新的概念、属性,RDFS中除了对定义域和值域可以定义外,没有提供其他可供建立的约束条件。RDF和RDFS中一切都是以资源为核心,有subPropertyOf、subClassOf等表述方式,子属性、子类的描述符合传递性,即B是A的子类子属性,C是B的子类子属性,则C是A的子类子属性。但这样一种逻辑表达能力尚没有被进一步丰富和发展。2 本体的描述语言: OWL Web Ontology Language是2004年W3C推荐的标准的本体描述语言。它是基于XML和RDFS的,其描述内容包含,类、类之间的关系、属性、属性之间的关系等。在定义类时有多种方式: 命名类: owl:Class。 属性约束: 对于属性的取值限制、基数的限制可以取几个值。如Dessert_wine类的取值限制。 集合操作构造新的类: 两个或多个类的交集owl:intersectionOf; 两个或多个类的并集owl:unionOf; 一个类的补集owl:complementOf。 类的公理: 可以定义的类与类之间关系。 包含关系rdfs:subClassOf: 其满足传递性,通过此推理构建本体中类的层次关系。 等价关系owl:equivalentClass: 声明两个类等价。 不相交owl:disjointWith: 指定两个类不相交。属性的描述有两种类型: 对象属性ObjectProperty和值属性DatatypeProperty,当属性值为一个类时,将该属性定义为对象属性; 当属性值为基本的数据类型时,如整型、字符串型等,该属性为值属性。对于属性的定义,还可以定义属性的定义域、值域、子属性形成属性的包含关系。与其他属性之间形成等价、逆的关系,如在wines本体中属性produces和maker的逆关系。根据以上所述,OWL语言的优点是:与XML、RDFS等语义网的底层语言相比,类的描述更加详尽,支持交运算、并运算、属性取值限制等。对属性的描述更丰富,还支持传递型、对称型、函数型等的定义。OWL是基于XML和RDFS的,但相较于XML、RDFS,其表达能力更丰富,且它的可读性强,站在让计算机理解的角度,OWL也更容易理解。以下wines本体的OWL语言描述片段,开头部分的定义与作用与RDFS类似,通过标签对类Dessert_wine定义,rdf:ID指一个具体的实例,是类Wine的子类,Wine是一个资源引用。定义Dessert_wine类,且给定了该类要满足的限制条件,该类的所有个体实例均满足属性sugar的取值是SWEET因为是甜酒。owl:onProperty指定需满足条件的属性为sugar,owl:hasValue指定需满足的具体的条件,即要有一个取值是SWEET。本体包含的所有类都以这样的描述方式列举出来。produces为一对象属性,与属性maker相逆owl:inverseOf,代表: produces的定义域是maker的值域; produces的值域是maker的定义域。在属性maker的描述中,同样也要指明,它的逆属性为produces。maker指定为FunctionalProperty函数型属性,是对属性的基数约束,指一个属性的任何实例的取值为1,在这里的意思即是任何一种酒的maker厂家只有一个。本体包含的所有属性在owl文件中都以这样的描述方式列举出来。
SWEET
Dessert wine
This slot contains the wines produced by a particular winery. The maker of a Wine is its inverse slot.
The maker of a wine a Winery. This slot has an iinverse - the slot produces at the Winery class
3.2.4本体的建模工具本体的建模工具: Protghttp:protege.stanford.edu.是斯坦福大学Stanford开发并提供的一个基于Java的免费的、开源的本体建模工具。在作为本体建模工具发展的同时,Protg已逐渐成为基于本体的开发平台,支持多种插件的扩展。由于其可视化的页面布局,并支持本体的创建、定义、声明、更改等行为,而得到广泛使用。其支持的语言存储格式有xml Schema、RDFS、OWL。Protg的编辑界面中包含的基本标签有元数据Metadata、类Classes、属性Properties、个体Individuals等。它支持对类的不相交性,属性对象属性和值属性的传递性、互逆性、取值范围的限制等的建立。它还支持插件的扩展,添加推理机可对已建立的本体进行包容性检验Subsumption checking、一致性检验Consistency checking、等价性验证Equivalence checking。通过ProtgOWL API,使用Java对本体直接操作,Protg也是支持的。第2章中给出人件服务描述时,采用的工具即是Protg。图3.4所示为pizza本体中包含的类的图形化表示,当本体文件是.owl文件时,可添加OWLVizTab,类之间的层次关系可如图显示。
OWLVizTab标签显示,需要预告安装Graphviz插件于Protg之上,便可查看类之间的关系。安装Graphviz时,与Protg的版本一定要匹配,目前试验成功的匹配版本有Protg3.2.1 Graphviz 2.1.4,Protg 3.3.1 Graphviz 2.2.8。Protg3.4也是较稳定的版本。
图3.4Protg中pizza本体包含的类的图形表示
Protg支持多种本体的存储格式,包括本节介绍的RDFS、OWL、XML等。Web服务的描述语言OWLS是基于本体的,在Protg上添加插件,owlstab可用于Web服务的显示、分析,将WSDL文件转换为OWLS文件等,具体将在3.3节中介绍。Protg由只是建立本体的工具逐渐发展为本体的开发平台,支持的插件逐渐增多,可存储的文件格式也很多,基于Java且免费、开源的优点,使得它在基于本体的研究中使用越来越广泛。3.2.5已有本体及其分类本节主要介绍一些典型的、已发展成熟的本体。WordNethttp:wordnet.princeton.edu.是英语语义的描述工具,将英语词典中的单词作为节点,建立它们之间的连接,从而形成一个大型网络,可被其他工具引用,从而被共享、重用。它是由普林斯顿大学Princeton University的认知科学实验室开发的一个大型英文词库,为此结合了多个领域的学者的思想,包括心理学家、计算机学家、语言学家。它是开源的,而且可免费在线使用或下载到本地使用。它包含了现有词典中的名词、动词、副词、形容词,创建了概念型的语义并构建了词汇之间的关系,有同义关系、反义关系、近似关系,其中名词网络的上位下位蕴含关系占据了整个WordNet关系的近80%,可见在名词的语义使用上占据极大的优势。基于WordNet的Lin算法,Jiang&Conrath算法、Resnik算法等的提出与使用,更方便了英语中词汇之间语义相似度的计算。在文本分析、信息检索、机器翻译等领域中应用也极广泛。国内的一些高校,如清华大学、东南大学等学者也在致力于开发中文版的WordNet。WordNet作为一个语义的查询、标注及相似度计算的工具而使用广泛。FrameNethttps:framenet.icsi.berkeley.edufndrupal.是基于Frame Semantic构建的英文词典,由加州大学伯克利分校University of California,Berkeley开发。在一个特定的文本情境下,将该情境中包含的所有概念抽象成一个Frame,以Frame为单位建立连接,从而形成一个网Net,连接包括有继承、子框架等。与WordNet中名词比重大相比,FrameNet更加注重动词的构建。参照英文的FrameNet汉语框架网Chinese FrameNet,CFN也在构建中,还有其他小语种的FrameNet。FrameNet基于它站在语义被计算机理解的角度,可应用的研究领域有自然语言处理、信息抽取、语义角色标注等。上述两种本体发展比较成熟,已被广泛使用。其他已有本体包括GUM、SENSUS、Mikrokmos等。3.2.6本体的应用本体需要手工建立,是一项庞大的工程,需要耗费人力与时间,而且对本体所属的领域要非常了解,需要领域专家的参与。但是成功建立的本体,可以被重用,在信息共享、知识应用等方面都拥有广阔的前景。1 本体可以为软件应用程序的开发提供服务。例如,本体可以为面向对象的软件开发提供类的定义及对象,本体中类的定义可以转换为软件开发中类的定义。2 语义网的建立,语义网作为万维网的未来发展方向,内容包罗万象,涉及各个领域,已经建立的本体形成本体库,可基于其构建语义网。3 信息检索。在已组织好的信息中查找有关的信息的技术,查找的整个过程是由计算机自动完成的,但没有语义的情况下,计算机无法理解信息的语义以及想要查找的语义。将本体应用于组织好的信息中,有助于信息检索的准确率提高,但同时也有降低检索效率的可能。4 推理。要达到计算机理解知识的目的,需要计算机拥有人所拥有的抽象能力,而推理便是典型的人拥有但计算机不拥有的能力。如前所述,本体的建立中支持子类、子属性、逆属性等描述方式,对这些描述方式构建推理规则可有助于计算机实现推理。5 Web服务中本体的应用,除了OWLS的服务描述语言外,还应用于服务的研究中,如服务匹配、服务检索。服务匹配的内容是前件服务的输出与后件服务的输入匹配组建服务流程,输入输出在语义上匹配即认为两个服务是匹配的。可以建立该流程的领域本体,匹配与否根据建立的本体计算相似性来判断。在服务检索中,对被检索的服务库的内容建立本体,确立本体中概念的定义及概念间关系,本体与本体之间的联系等。检索的过程为: 先对检索条件进行语义标注,再执行检索过程。服务检索的结果在很大程度上依赖于所建立的本体。6 本体还可以被应用到其他的高级研究领域中,如自然语言处理、数据挖掘等。3.3本体和Web服务3.3.1Web服务的本体语言
WSDL作为服务描述语言,已经包含了调用服务所需的元素。但是它还缺乏一些语义信息,来丰富服务的使用。OWLS是基于语义和服务的语言。如图3.5所示,OWLS将服务的信息分解为三个部分: ServiceProfile、ServiceGrounding和ServiceModel。Service类的对象属性有presents、describedby、supports,分别对应的属性的值域为ServiceProfile、ServiceModel和ServiceGrounding,通过属性值的方式将三个组件组合形成服务的整体。
图3.5OWLS的上层本体
图3.6OWLS中profile的描述
1. ServiceProfileServiceProfile表达presents服务包含什么样的信息。如图3.6所示,profile是它的子类,profile包含的值属性有service name、documentation、serviceClassification等,分别用于表示服务的名称、对服务的简单文本描述如服务可以提供什么样的功能、服务的分类信息等。同时,profile也包含了对象属性,包括contactInformation、has_process等,以及服务的联系信息一般为服务的提供者信息等。
2. ServiceModelServiceModel描述了describedby服务的工作信息。对Model类的描述如图3.7所示,包含子类Process,Process包含子类SimpleProcess、CompositeProcess和AtomicProcess。AtomicProcess表示原子过程,多个原子过程通过顺序、并行、选择等各种控制结构的组合可形成CompositeProcess,即组合过程。SimpleProcess是CompositeProcess的抽象表达,并不能被直接调用。
图3.7OWLS中Process的描述
子类AtomicProcess包含的对象属性有hasPrecondition、hasEffect和hasParameter。hasPrecondition的值域为expr:Condition,此服务执行需满足的前提条件是,用逻辑形式表达。hasEffect的值域为expr:Expression,逻辑表达服务执行后产生的效果,如增加了用户的信息。hasParameter包含子属性hasInput、hasOutput和hasLocal,分别表示输入的取值范围、输出的取值范围和本地提供的信息,如用户的信息数据库。输入输出前提条件效果InputOutputPreconditionEffect,IOPE是OWLS描述中的基本元素,常用于服务匹配,与WSDL的区别是增加了前提条件和效果两个元素,同时也丰富了语义表达。但在给出具体的服务描述时,并不是服务的每个process都具有这四个属性,hasInput与hasOutput为基本属性,其他两个属性可缺省。AtomicProcess,包含的属性及其描述分别与Profile描述中的hasInput、hasOutput、hasPrecondition和hasResult相一致。CompositeProcess中包含的属性有computedInput、computedOutput、computedPrecondition和computedEffect,其值域都为expr:Expression,表示它们的值域为一个复合的表达,如输入银行卡号或者信用卡号。在Process模型下,包含了控制结构ControlContruct的最小集合: Perform、Produce、Sequence、Split、SplitJoin、AnyOrder、Choice、IfThenElse和IterateRepeatWhile和RepeatUntil,用于组织AtomicProcess形成CompositeProcess。3. ServiceGroundingServiceGrounding支持supports如何调用服务信息。与WSDL描述中的Binding的功能是一致的,如图3.8所示,包括输入绑定与输出绑定,用于说明服务实现需遵守的通信协议、执行过程中产生的消息等。
图3.8OWLS中对Binding的描述
3.3.2OWLS与WSDLOWLS是在WSDL的基础上实现了服务描述的语义化。即OWLS保留了WSDL的所有部分,WSDL与OWLS之间可以相互映射,根据WSDL文件形成OWLS,而本体的建模工具Protg是支持这一转换的。前提是要安装插件OWLS Editor buildhttp:owlseditor.semwebcentral.orgdownload.shtml.,将其解压到Protg安装目录的plugins文件下,与Protg的版本要匹配。本书所用的是Protg3.2.1 OWLS Editor build23。OWLS与WSDL对应关系为AtomicProcess映射为操作operation,多个操作对应为多个atomicProcess,构成ProcessModel,当一个操作有多个不同的操作表达时,一个atomicProcess可与多个操作形成映射关系。OWLS中的Process的输入、输出集分别与WSDL描述中的消息集messages中的输入、输出相对应,类的映射如图3.9所示。
安装插件后,可在Protg的Project菜单下单击Configure命令,在Tab Widgets下选中Owlstab后,则OWLS Editor标签出现在Protg的标签栏。在OWLS Editor标签下,单击Generate OWLS instances from a WSDL document按钮,出现如图3.10a所示的对话框,在Enter URL栏里输入一个真实的WSDL服务文件的地址,图中为WeatherForecastService.wsdlhttp:www.restfulwebservices.netwcfWeatherForecastService.svc?wsdl。使用OWLS Editor对WSDL文件的自动解析功能,该天气预报服务包含了两个操作,分别是GetForecastByCity和GetCitiesByCountry。分别映射为OWLS服务描述中的两个atomicProcess,即GetForecastByCityProcess和GetCitiesByCountryProcess,它们的输入、
输出参数如图3.10b所示。对于消息,GetForecastByCityProcess的输入集为City、Country,输出集为GetForecastByCityResult,分别与WSDL中此操作的输入消息、输出消息互为映射关系。
图3.10WSDL与OWLS对应的服务解析
本体是对服务进行语义描述的有力工具,表现在:1 对服务的WSDL描述本身是基于XML语言的,而本体的OWL描述也是基于XML语言的,但比XML的表达能力更丰富;2 使用本体对服务重新描述,不论是对计算机还是对想要使用服务的用户来说,可读性和可理解性更强且更加直观;3 对服务的本体描述,基于各种嵌入本体描述的推理工具的发展,易于进行推理检验并发现不一致的表达,便于修正;4 服务的本体描述对服务的研究是很有用的,特别是基于IOPE的服务匹配方面。2.6.3节中参照OWLS给出了人件服务的本体描述,除了上述软件服务使用本体描述中所列的优势外,由于人件服务中包含了人的特点,语义的表达方式更易于系统与人件服务之间的相互理解。3.4语义相似性3.4.1语义和Web服务
在现在的Web的实践环境下,语义网的发展条件还不成熟,互联网环境还没有发展到到处是语义的情形,因此它的潜力还未完全展现。但是在研究领域,语义已经成为一种基本技术被广泛应用,因此,在Web服务大力发展的背景下,语义也自然成为Web服务的研究手段之一。Web服务的可重用性、平台无关性、松耦合等这些特性使得Web服务具有很好的发展前景。但单个服务不能完全满足用户的需求,Web服务研究的关键问题是服务组合,它使得服务能够解决的问题更加多样化。Web服务虽然已经有很多开发平台支持它的实现,但服务组合仍处于研究阶段,它还没有发展到可以傻瓜式组建的阶段,需要有技术知识背景的人才能使用。语义和Web服务作为热门的研究方向,将语义应用于服务研究中可以推动服务的发展,特别是服务语义相似性的计算应用于服务组合相关的部分。3.4.2语义相似性算法语义相似性算法用于计算任意两个词语之间的语义相似度,目前已有很多算法,下面介绍一些常用的算法。在语义相似性算法介绍之前,先了解一些常用的相似度算法,它们的计算公式并没有包含语义,但是在给出向量值时可融合语义。1. 余弦相似性算法计算两个向量的夹角余弦来衡量相似度。SimA,B=cos=AB‖A‖‖B‖余弦值范围在[-1,1]之间,可将其归一化到0与1之间以便于应用。当两向量的方向一致时,夹角趋向于0,余弦值趋近于1,表明它们的相似度也越高; 夹角为90时,余弦值为0,相似度为0。通常用于计算两个文本之间的相似性,将文本建立为向量,根据余弦相似性计算两个向量之间的相似性。但其局限性主要在于相似度计算的前提是概念A与B属于同一个本体。当两个概念不在同一本体中时,构建多个本体之间的联系。2. 欧氏距离算法两个向量之间的相似度可以采用它们之间的欧氏距离计算,取距离的倒数:
SimA,B=1sqrtni=1ai-bi2
A、B为两个向量,分别由元素ai、bi构成。
由于两向量之间距离的取值有可能为0,此时取倒数会上溢出,因此将公式修订为:SimA,B=11 sqrtni=1ai-bi2
3. 皮尔逊相关系数Pearson correlation coefficient算法SimA,B=A,B=1n-1ni=1Ai-ABi-B
皮尔逊相关系数同样是度量两个向量之间的相似度,它在协同过滤中应用广泛。它的取值范围在-1~1之间,可将其标准化到0~1之间。假设相似值的最大值与最小值分别为max和min,则规范化公式为Sim=Sim-minmax-min则Sim的值转换为[0,1]之间。皮尔逊相关系数对用户评级的量级不敏感,如某用户对所有物品的评价是5,而另一用户对所有用户的评价是1,在皮尔逊相关系数的计算里,这两个向量是相等的。WordNet作为一个已经成功建立的表示概念包含的信息内容、概念之间关联的本体,在相似性计算中被广泛应用,为相似度的计算提供了便利性与准确性。以下为根据WordNet本体所提出的语义相似性计算算法。4. Resnik算法[6]SimResc1,c2=IClcsc1,c2lcsc1,c2表示概念c1与c2的最近公共父节点least common subsumer,ICInformation Content表示概念所包含的信息内容。因此Resnik算法定义两个概念的语义相似度的计算为它们的最近公共父节点的IC。概念c的信息内容定义为该概念在语料库中的出现概率:ICc=-lgpc概念c的信息内容求解方法有两类:一类为统计概率在语料库的出现频率,其计算公式为pc=freqcNN是指语料库中按分类框架的词汇的总数,在WordNet中指名词同义词集合的数量,统计值为82115。另一类为根据WordNet中的树形结构,其计算公式为ICc=-lgpc=1-lghypoc 1lgmaxwn
hypoc表示概念c的所有子节点数,maxwn表示WordNet中概念c的总数。Resnik算法的缺点是具有相同的最近公共父节点的任何两个概念,它们的相似度也相等。5. Lin算法[7]Lin算法的思想同样是衡量两概念间的共有信息内容,其计算模型为:SimLinc1,c2=2IClcsc1,c2ICc1 ICc2=2SimResc1,c2ICc1 ICc2
与Resnik算法相比,除了lcs的信息内容外,还兼顾了两个概念各自的信息内容。基于WordNet的思路,概念包含的子节点越多,则它所包含的信息量越少,因而叶子节点包含的信息量最大,因此,公共父节点的信息内容值小于或等于其下层节点的信息内容。IClcsc1,c2IClcsc1IClcsc1,c2IClcsc2可得出:SimLinc1,c216. Jiang & Conrath算法[8]Jiang& Conrath算法通过测量语义距离给出语义相似度数值。SimJCc1,c2=ICc1 ICc2-2IClcsc1,c2
=ICc1 ICc2-2SimResc1,c2
相似度值是两个概念分别与它们的lcs的语义距离之和,而Lin算法计算的是比率。7. Lord算法[9]SimLordc1,c2=1-IClcsc1,c2=1-SimResc1,c28. Seco算法[10]SimSecoc1,c2=1-ICc1 ICc2-2IClcsc1,c22
Resnik、Lin、Jiang& Conrath、Lord、Seco等算法都是基于WordNet计算的语义相似性,其中的关键部分最近公共父节点lcsc1,c2也是在WordNet本体中查找获取的。Lin、Jiang& Conrath、Lord、Seco算法是在Resnik算法之上所提出的改进算法,类似的算法还有很多,不再一一列举。这些算法可以采用Java语言实现,前提是下载WordNet并安装,下载JWS包,它是Sussex大学所开发的Java编写的语义相似度计算包。在程序中声明import edu.sussex.nlp.jws.*,便可调用JWS以实现语义相似度计算。在该包的beta11版本中所包含的语义相似性算法如图3.11所示。
图3.11JWS beta11包
上述的算法都是基于信息内容计算相似性,下面的几种算法同样是在WordNet本体之上,涉及了概念所处的深度、概念之间的距离等,也就是说,是基于路径Path的算法。9. Wu& Palmer算法[11]它的计算模型为:
SimWPc1,c2=2depthlcsc1,c2lenc1,c2 2depthlcsc1,c2
depthc是指概念c的深度,如果c是根节点,则它的值为1。lenc1,c2指的是在WordNet中两个概念之间的最短距离,如果它们为同一概念,则值为0。10. Li算法[12]它的计算模型为:
SimLic1,c2=e-lenc1,c2edepthlcsc1,c2-e-depthlcsc1,c2edepthlcsc1,c2 e-depthlcsc1,c2
与是取值为0到1之间的两个参数,可在运行过程中根据实际情况指定。随着lenc1,c2的增加,相似度值递减,随着depthlcsc1,c2的增加,相似度值增加。即两个概念之间的距离越远,相似度也越小,而两个概念的最近公共父节点的深度越大,相似度值也越大。11. Leacock & Chodorow算法[13]SimLCc1,c2=-lglenc1,c22deep_max
deep_max是在指定的WordNet中两个概念所处的该分类树的最大深度。Wu&Palmer、Li和Leacock & Chodorow算法都是基于概念间距离、概念所处的深度计算相似度值。计算模型都符合随着概念间距离的增大,相似度值递减; 随着所处深度的增加,相似度值增加的规律。12. Tversky算法[14]它的计算模型为:SimTverc1,c2=C1C2C1C2 kC1C2 k-1C2C1
C1、C2分别是词汇c1、c2所处的特征集合。k是可调节的参数,取值范围为[0,1]。Tversky算法计算语义相似度与上述基于WordNet的算法都不相同,它没有去挖掘两概念的父节点、节点的深度等特征,而是强调该概念所处的集合。假设该概念所处的集合中的所有概念是一系列的特征集,去挖掘两概念间可能的相同特征。1~11的所有算法的语义相似性都满足对称性,但是Tversky算法不满足,即:SimTverc1,c2SimTverc2,c1
在该算法的计算模型中,C1和C2两个集合的相同特征越多,则c1和c2的相似度值越大; 相反,相同特征越少,则相似度亦越小。4~12的所有算法基于的本体都可以是WordNet。3.4.3语义在Web服务中的应用语义在Web服务中的应用,主要是两部分: 向服务的描述中添加语义; 服务组合中为了判断服务是否能够组合要频繁地进行服务匹配的计算。服务的描述有OWLS作为描述语言被广泛应用,在3.3节已详细阐述。在服务的描述中,操作是其重要组成元素。操作包含有输入、输出接口,在OWLS中,操作包含IOPE。服务匹配即是,前趋服务与后继服务的操作的输出与输入是否匹配的计算; 当有前趋与后继条件时,还需判断前趋服务的执行结果是否满足后继服务执行的前提条件。或者可以创造一些条件,使得前趋服务的输出可以转化为后继服务的输入。而判断服务之间是否匹配,可将其划分为以下几类[14]:完全匹配输出与输入完全一致,但实际中这种情况是较少的。包含匹配前趋服务的输出集包含了后继服务的输入集。被包含匹配前趋服务的输出集被包含于后继服务的输入集。交叉匹配前趋服务的输出集与后继服务的输入集存在交集。不匹配前趋服务的输出集与后继服务的输入集没有任何交集。判断是否匹配即是否可以组合一起完成任务,由以上内容得出,完全匹配与包含匹配是可以组合的。但其他情况不能保证服务组合后可以正常执行。有了语义相似性计算的方法后,匹配的判断不再只需表面上的匹配,而是只要满足语义匹配的条件,就将其认为是匹配的。例如,有些服务的输入、输出描述的表述不一致,但它所要表达的背后的语义是一致的,因为服务的提供者在定义服务时采用了不同的表达。采用用户选择的语义相似性算法计算即将要组合的服务输入与输出,如果相似性高即认为是匹配的,称其满足语义匹配。3.5总结语义与本体已经成为智能研究方面的重要支撑技术之一,除了Web服务之外,它的应用领域也非常广泛。本章介绍了语义网、本体的基础知识,基于本体的服务描述语言,以及在服务研究中语义被应用的最广泛的方法语义相似性算法。语义与Web服务两者的发展是相互促进的,虽然还没有发展到到处是语义环境、到处使用Web服务组建决策流程的阶段,但是两者具有巨大的发展潜力,被广泛应用后,将节省很大的人力、时间等,为系统实现、提供决策等提供便利。本章参考文献
[1]BernersLee T, Hendler J, Lassila O. The semantic web. Scientific American, 2001, 2845: 2837.
[2]Studer R, Benjamins V R, Fensel D. Knowledge engineering: principles and methods. Data & knowledge engineering, 1998, 251: 161197.
[3]Guarino N. Some organizing principles for a unified toplevel ontology. Proceedings of AAAI Spring Symposium on Ontological Engineering, 1997: 5763.
[4]Gruber T R. Toward principles for the design of ontologies used for knowledge sharing. International journal of humancomputer studies, 1995, 435: 907928.
[5]Corcho O, GmezPrez A. A Roadmap to Ontology Specification Languages. Springer Berlin Heidelberg, 2000.
[6]Resnik P. Using information content to evaluate semantic similarity in a taxonomy. Proceedings of the 14th International Joint Conference on Artificial Intelligence,1995: 448453.
[7]Lin D. An informationtheoretic definition of similarity. Proceedings of International Conference on Machine Learning, 1998: 296304.
[8]Jiang J J, Conrath D W. Semantic similarity based on corpus statistics and lexical taxonomy. Proceeding of International Conferenceon Research on Computational Linguistics, 1997: 115120.
[9]Lord P W, Stevens R D, Brass A, et al. Investigating semantic similarity measures across the Gene Ontology: the relationship between sequence and annotation.Bioinformatics, 2003,1910: 12751283.
[10]Seco N, Veale T, Hayes J. An Intrinsic Information Content Metric for Semantic Similarity in WordNet. Proceedings of Eureopean Conference on Artificial Intelligence, 2004: 10891090.
[11]Wu Z, Palmer M. Verb Semantics and Lexical Selection. Proceedings of Annual Meeting on Association for Computational Linguistics, 1995: 133138.
[12]Li Y, Bandar Z A, Mclean D. An Approach for Measuring Semantic Similarity between Words Using Multiple Information Sources. IEEE Transactions on Knowledge & Data Engineering, 2003, 154: 871882.
[13]Leacock C, Chodorow M. WordNet: An electronic lexical database. Combining local context and WordNet similarity for word sense identification. The MIT Press, 1998.
[14]Tversky A. Features of Similarity. Psycological Review,1977, 844: 327352.
[15]Paolucci M, Kawamura T, Payne T R, et al.Semantic Matching of Web Services Capabilities. Proceedings of International Conference on Semantic Web, 2002: 333347.