Semantic Web Services 沈坚shenjian@net.pku.edu.cn 隋鑫SHIXIn@ebusiness.pku.edu.cn 罗引luoyin@aiab,pku.edu.cn 王彬wbin@pku.edu.cn 摘要本文主要介绍了目前 Semantic Web services研究领域的一些研究成果和相关技术。 Semantic Web Services是将 Semantic Web技术应用到 Web services领域,实现 Web services的自动发现,调用和 组装。本文分三部分,首先简单介绍 Semantic Web的知识和技术:然后介绍OWL-S规范,这是Web Service的 Ontology,用来描述具有语义信息的 Web service:最后介绍如何利用OMS来实现服务 发现,调用和组装的自动化。附录1包括了对于OWLS白皮书的一些理解和认识 关健词 Semantic Web, Web services,OWLS 1.引言 Web services是一种新兴的分布式技术。传统Web应用技术解决的问题是如何让人 来是来使用Web应用所提供的服务,而 Web services则要解决如何让计算机系统来使用 Web应用所提供的服务。而在 Web services中加入语义的支持,使得计算机之间能够理 解互相通信的内容,从而实现自动化。首先看一个 Web service应用场景, DAML S/UDDI Matchmaker 囵 图1语义Web服务的一个应用场景 要参加一个 DAML P会议,我们希望设计一个会议安排 agent来实现诸如机票预定, 汽车租赁等功能。我们通常会到网上搜索提供相应服务的 Service,然后 hard coding到我 们的 agent中。理想的,我们希望在这个过程中不需要人的参与,也就是说,这个 agent 能自动的去寻找符合要求的 Service,自动的把那些服务组合起来,自动的按序调用执行, 完成我们想要的功能。 要实现Web服务发现,调用和组装的自动化,有两个关键问题。首先,对于服务发 现,不能仅仅依赖关键词搜索,而需要按照服务所提供的功能搜索,这样才能找到确实需 2004年 Web services课程讨论报告
Semantic Web Services 沈坚 shenjian@net.pku.edu.cn 隋鑫 suixin@ebusiness.pku.edu.cn 罗引 luoyin@ailab.pku.edu.cn 王彬 wbin@pku.edu.cn 摘要 本文主要介绍了目前 Semantic Web Services 研究领域的一些研究成果和相关技术。Semantic Web Services 是将 Semantic Web 技术应用到 Web Services 领域,实现 Web Services 的自动发现,调用和 组装。本文分三部分, 首先简单介绍 Semantic Web 的知识和技术; 然后介绍 OWL-S 规范, 这是 Web Service 的 Ontology, 用来描述具有语义信息的 Web Service;最后介绍如何利用 OWL-S 来实现服务 发现,调用和组装的自动化。附录 1 包括了对于 OWL-S 白皮书的一些理解和认识。 关键词 Semantic Web, Web Services, OWL-S 1. 引言 Web Services 是一种新兴的分布式技术。传统 Web 应用技术解决的问题是如何让人 来是来使用 Web 应用所提供的服务,而 Web Services 则要解决如何让计算机系统来使用 Web 应用所提供的服务。而在 Web Services 中加入语义的支持,使得计算机之间能够理 解互相通信的内容,从而实现自动化。首先看一个 Web Service 应用场景。 图 1 语义 Web 服务的一个应用场景 要参加一个 DAML PI 会议,我们希望设计一个会议安排 agent 来实现诸如机票预定, 汽车租赁等功能。我们通常会到网上搜索提供相应服务的 Service,然后 hard coding 到我 们的 agent 中。理想的,我们希望在这个过程中不需要人的参与,也就是说,这个 agent, 能自动的去寻找符合要求的 Service,自动的把那些服务组合起来,自动的按序调用执行, 完成我们想要的功能。 要实现 Web 服务发现,调用和组装的自动化,有两个关键问题。首先,对于服务发 现,不能仅仅依赖关键词搜索,而需要按照服务所提供的功能搜索,这样才能找到确实需 2004 年 Web Services 课程讨论报告 1
要的服务,服务的功能不可能依靠若干关键词完整表达。其次,对于服务调用和服务组装 自动化,需要基于语义的互操作,也就是说,服务之间必须能够理解互相交换的信息。即 使一个服务的输出参数和另一个服务的输入参数名字相同,类型也相同,也不能将它们连 接起来,因为,我们无法保证两个参数的含义是相同的。 这都需要语义的支 目前语义eb服务的主要方法是利用 Ontology来描述Web服务,然后通过这些带 有语义信息的描述实现Web服务来实现服务的自动发现,调用和组装。 Semantic Web和 Web services是语义Wveb服务的两大支撑技术。OW-S是连接两大技术的桥梁,目前 Semantic Web Services的研究主要围绕OWLS展开。 本文将按照如下方式讨论,首先介绍 Semantic Web的相关技术,然后重点介绍 OMLS,最后介绍目前的一些利用OMS来实现服务自动发现,调用和组装的研究。由 于OWLS的早期版本称为 DAML-S,而本文的一些引用资料中仍然使用DAML-S,我们 不区分OWL-S和 DAML-S。 2. Semantic Web 21今天的Web 随着 Internet的发展,人们已经习惯于在web上获得各种各样的信息。人们借助于搜 索引擎,门户网站来查询自己想要的信息。然而,由于今天的Web的内容基本上都是只 有人才能读懂的,而web上的数据却急剧的上升,使人淹没在数据的海洋中,却难以找到 想要的信息,搜索引擎返回的结果也多到人们不能逐一的进行挑选。所谓的web,实质是 个URI的空间,在这个空间中,任何一个UR都可以连接到另一个URI上,而毫无限 制和说明。Web的这种模型,一方面是它成为一个可以包容万物的普遍的模型,另一方面 却使机器难以加入其中来帮助人们找到和处理所需的信息,而不是淹没在数据的海洋中。 人们设计Web的初衷是使它成为一个信息空间,它应该不仅适用于人与人之间的交流 更应该能使机器加入进来以帮助人们。为了这个目标, Tim berners-Lee提出了 Machine-Understandable information Semantic web 2.2 What is semantic Web? Semantic Web并不是抛开今天的Web的另一条道路,而是今天的Web的扩展。它 使包含在它内部的信息拥有明确定义的语义,而这种语义能够使机器与人进行更好的合作。 具体地说 “Web”是一个可导航的空间,在其中每一个URI都映射到一个资源。“ Semantic”意味 着机器可处理的,对于数据来说, Semantics告诉了机器在这些数据上所能做的操作。那 自然语言适不适合表达这种 Semantics呢?虽然自然语言有很强的表达能力,但由于它的 歧义性,使它不能满足机器可处理的要求 23 Semantic Web的结构 Semantic Web的发明人 Tim Berners-Lee提出了 Semantic Web的一种层次化的结 构,如下图:
要的服务,服务的功能不可能依靠若干关键词完整表达。其次,对于服务调用和服务组装 自动化,需要基于语义的互操作,也就是说,服务之间必须能够理解互相交换的信息。即 使一个服务的输出参数和另一个服务的输入参数名字相同,类型也相同,也不能将它们连 接起来,因为,我们无法保证两个参数的含义是相同的。 这都需要语义的支持! 目前语义 Web 服务的主要方法是利用 Ontology 来描述 Web 服务,然后通过这些带 有语义信息的描述实现 Web 服务来实现服务的自动发现,调用和组装。Semantic Web 和 Web Services 是语义 Web 服务的两大支撑技术。OWL-S 是连接两大技术的桥梁,目前 Semantic Web Services 的研究主要围绕 OWL-S 展开。 本文将按照如下方式讨论,首先介绍 Semantic Web 的相关技术,然后重点介绍 OWL-S,最后介绍目前的一些利用 OWL-S 来实现服务自动发现,调用和组装的研究。由 于 OWL-S 的早期版本称为 DAML-S,而本文的一些引用资料中仍然使用 DAML-S,我们 不区分 OWL-S 和 DAML-S。 2. Semantic Web 2.1 今天的 Web 随着 Internet 的发展,人们已经习惯于在 web 上获得各种各样的信息。人们借助于搜 索引擎,门户网站来查询自己想要的信息。然而,由于今天的 Web 的内容基本上都是只 有人才能读懂的,而 web 上的数据却急剧的上升,使人淹没在数据的海洋中,却难以找到 想要的信息,搜索引擎返回的结果也多到人们不能逐一的进行挑选。所谓的 web,实质是 一个 URI 的空间,在这个空间中,任何一个 URI 都可以连接到另一个 URI 上,而毫无限 制和说明。Web 的这种模型,一方面是它成为一个可以包容万物的普遍的模型,另一方面 却使机器难以加入其中来帮助人们找到和处理所需的信息,而不是淹没在数据的海洋中。 人们设计 Web 的初衷是使它成为一个信息空间,它应该不仅适用于人与人之间的交流, 更应该能使机器加入进来以帮助人们。为了这个目标,Tim Berners-Lee 提出了: Machine-Understandable information: Semantic Web 2.2 What is semantic Web? Semantic Web 并不是抛开今天的 Web 的另一条道路,而是今天的 Web 的扩展。它 使包含在它内部的信息拥有明确定义的语义,而这种语义能够使机器与人进行更好的合作。 具体地说: “Web”是一个可导航的空间,在其中每一个 URI 都映射到一个资源。“Semantic”意味 着机器可处理的,对于数据来说,Semantics 告诉了机器在这些数据上所能做的操作。那 自然语言适不适合表达这种 Semantics 呢?虽然自然语言有很强的表达能力,但由于它的 歧义性,使它不能满足机器可处理的要求。 2.3 Semantic Web 的结构 Semantic Web 的发明人 Tim Berners-Lee 提出了 Semantic Web 的一种层次化的结 构,如下图: 2
Rules Trust Data Proof Data Logic Ontology vocabulary RDF rdfschema XML NS+ xmlschema Unicode URI 图2语义Web的层次结构 下面是各层的描述 URI Uniform Resource Identifiers) 作为资源(任何东西都可以看作资源)标识机制,提供对资源的标准化的名字描述; Unicode 提供世界上各种语言的统一的字符编码标准 XML(EXtensible Markup Language) 了结构化的数据描述方式,是数据互操作的语法基础,但没有包含任何特殊 义。看下面的例子 从这个图中可以看出,虽然我们对数据加了标记,但其他人却不知道他多代表的 意义。 ● Names 提供将名字分类的机制,使得重名但含义不同的资源能够一起使用, ●RDF, RDF Schema RDF( Resource Description Framework)是描述数据语义的基础。它定义了 描述资源以及陈述事实的基本方式:主语、谓语、宾语的三元组
图 2 语义 Web 的层次结构 下面是各层的描述: z URI(Uniform Resource Identifiers) 作为资源(任何东西都可以看作资源)标识机制,提供对资源的标准化的名字描述; z Unicode 提供世界上各种语言的统一的字符编码标准 z XML(Extensible Markup Language) 定义了结构化的数据描述方式,是数据互操作的语法基础,但没有包含任何特殊 的语义。看下面的例子 从这个图中可以看出,虽然我们对数据加了标记,但其他人却不知道他多代表的 意义。 …… ….. z Namespace 提供将名字分类的机制,使得重名但含义不同的资源能够一起使用。 z RDF,RDF Schema RDF(Resource Description Framework)是描述数据语义的基础。它定义了 描述资源以及陈述事实的基本方式:主语、谓语、宾语的三元组。 3
http:/nWw.example.org/index.html http://purl.org/dclelements/1.1/creator ttp /mWww. example. org/staffid/85740 图3RDF示例 这是RDF陈述一个的简单例子,在这个例子中,主语是 htt/ ww.example. org/ ndex htm这个网页,谓语是htp/ purl. org/ dc. elements /1.1/creator,而宾语是http://www.example.org/staffid/85740 RDF Schema是一种RDF词汇描述语言,在RDF之上定义了一个最小的语义模 型(词汇集)支持复杂词汇的建模,包括 Resource, Class, Property, sub Classof, subProperty of, range, domain等基本元素。 Ontology Vocabulary 为什么需要 Ontology Ontology提供了一种明确的定义语义的方式,通过 Ontology的定义的语义, 使机器能够进行互操作,使机器能够理解数据的语义。从而达到 Semantic Wveb的数据是机器可理解的要求。 Ontology的定义 Ontology is a formal, explicit specification of a shared conceptualization. 在上面的定义中: conceptualization是指通过识别出世界上的一种现象的相 关概念来对这种现象所建立的抽象模型。 Explicit是指所识别的这些概念的类 型,和他们使用上的限制是清晰的定义了。 Formal指 ontology是机器可处 理的。 Shared是指 an ontology捕获的是一种普遍的知识,也就是说,它应 该被多数人所接受。 建立一个 ontology o OWL(Web Ontology language) OWL( Web Ontology Language)是W3℃提出的一种本体描述语言, OML源自于DAML+OL,保持了DAML+OL的框架和大多数语法 语义特征,同时针对不同的应用范围(不同的表示能力和计算能力)做了 扩充和限制,形成了三个子语言: OWL FU, OWL DL和 OWL Lite 三个子语言的限制由少到多,其表达能力依次下降,但可计算性(结论可 由计算机通过计算自动得出)依次增强。如下图
图 3 RDF 示例 这 是 RDF 陈述一个的简单例子,在这个例子中,主语 是 http://www.example.org/index.html这个网页,谓语是http://purl.org/dc.elements /1.1/creator,而宾语是http://www.example.org/staffid/85740。 RDF Schema 是一种 RDF 词汇描述语言,在 RDF 之上定义了一个最小的语义模 型(词汇集)支持复杂词汇的建模,包括 Resource,Class, Property,subClassOf, subPropertyOf, range, domain 等基本元素。 z Ontology Vocabulary 为什么需要 Ontology Ontology 提供了一种明确的定义语义的方式,通过 Ontology 的定义的语义, 使机器能够进行互操作,使机器能够理解数据的语义。从而达到 Semantic Web 的数据是机器可理解的要求。 Ontology 的定义 Ontology is a formal, explicit specification of a shared conceptualization. 在上面的定义中:conceptualization 是指通过识别出世界上的一种现象的相 关概念来对这种现象所建立的抽象模型。Explicit 是指所识别的这些概念的类 型,和他们使用上的限制是清晰的定义了。Formal 指 ontology 是机器可处 理的。Shared 是指 an ontology 捕获的是一种普遍的知识,也就是说,它应 该被多数人所接受。 建立一个 ontology OWL(Web Ontology language) OWL(Web Ontology Language)是 W3C 提出的一种本体描述语言, OWL 源自于 DAML+OIL,保持了 DAML+OIL 的框架和大多数语法、 语义特征,同时针对不同的应用范围(不同的表示能力和计算能力)做了 扩充和限制,形成了三个子语言:OWL Full,OWL DL 和 OWL Lite; 三个子语言的限制由少到多,其表达能力依次下降,但可计算性(结论可 由计算机通过计算自动得出)依次增强。如下图: 4
OWL DI OWL Lite 图4OM语言的分类 OWL FU:提供最丰富的表达能力和最大的RDF语法自由度,支持OML 的全部语法结构,但没有可计算性保证。OWL允许本体扩大预定义词 汇的含义,但 OWL FI基本上不可能完全支持计算机自动推理。 OWL Lite: OWL Lite提供最小的表达能力和最强的语义约束,适用于 只需要层次式分类结构和少量约束的本体,例如词典。因为其语义较为 简单, OWL Lite比较容易被工具支持 OWL DL: OWL DL得名于它的逻辑基础——描述逻辑。 OWL DL处 于 OWL Ful和 OWL Lite之间,兼顾表达能力和可计算性。 OWL DL 支持所有的OML语法结构,但在 OWL FU之上加强了语义约束,使得 能够提供计算完备性( computational completeness,即任何结论都能 确保通过计算得到)和可判定性( decidability,所有结论都保证在有限 时间内得到)。 ◆建立一个 ontology的步骤 具体的建立一个 ontology,一般分为以下几步 1.定义 ontology中的 Class,,cass指的就是概念。 2.把这些Cass组织成一个层次化的结构。 3.填充 Property在相应的cass上的值 4.定义 Property和描述这些 Property对相应的cass的限制。 Logic Layer 逻辑层在本体所描述的知识之上提供逻辑推理能力(基于规则)。例如,定义 这样一个规则,任何月销售额超过100万元的销售人员将被评为明星销售员 Mike上月销售额为120万元。于是逻辑系统能够推理得出:Mike是明星销售员 ● Proof Layer: 有了对事实的逻辑描述,就能够提供对事实的复杂的“证明”。例如,销售记 录Mike上月一共卖出63万元的机床设备和58万元的测量设备,而产品管理系
OWL Full OWL DL OWL Lite OWL Full OWL DL OWL Lite 图 4 OWl 语言的分类 OWL Full:提供最丰富的表达能力和最大的 RDF 语法自由度,支持 OWL 的全部语法结构,但没有可计算性保证。OWL 允许本体扩大预定义词 汇的含义,但 OWL Full 基本上不可能完全支持计算机自动推理。 OWL Lite:OWL Lite 提供最小的表达能力和最强的语义约束,适用于 只需要层次式分类结构和少量约束的本体,例如词典。因为其语义较为 简单,OWL Lite 比较容易被工具支持。 OWL DL: OWL DL 得名于它的逻辑基础——描述逻辑。OWL DL 处 于 OWL Full 和 OWL Lite 之间,兼顾表达能力和可计算性。OWL DL 支持所有的 OWL 语法结构,但在 OWL Full 之上加强了语义约束,使得 能够提供计算完备性(computational completeness,即任何结论都能 确保通过计算得到)和可判定性(decidability,所有结论都保证在有限 时间内得到)。 建立一个 ontology 的步骤 具体的建立一个 ontology,一般分为以下几步: 1.定义 ontology 中的 Class,Class 指的就是概念。 2.把这些 Class 组织成一个层次化的结构。 3.填充 Property 在相应的 Class 上的值。 4.定义 Property 和描述这些 Property 对相应的 Class 的限制。 z Logic Layer: 逻辑层在本体所描述的知识之上提供逻辑推理能力(基于规则)。例如,定义 这样一个规则,任何月销售额超过 100 万元的销售人员将被评为明星销售员, Mike 上月销售额为 120 万元。于是逻辑系统能够推理得出:Mike 是明星销售员 工。 z Proof Layer: 有了对事实的逻辑描述,就能够提供对事实的复杂的“证明”。例如,销售记 录 Mike 上月一共卖出 63 万元的机床设备和 58 万元的测量设备,而产品管理系 5
统表明,机床设备和测量设备是互斥的(即交集为空),接着,计算系统给出63+ 58=121,并且121>100,就能得出这样一个证明:Mike是明星销售员工。在 Semantic Web的开放环境中进行推理是一个困难的任务,因为任何一个推论都 可能涉及到大量信息的处理。研究者由此提出了语义网总线( Semantic Web bus) 的设想。如图3所示,语义网中充斥着各种信息处理器(图中圆形所示 Aaron Swartz,2002],其中一些仅仅提供本体数据( ontology&data)供其它处理器使用 另外一些则根据这些本体数据构建逻辑规则,启发式引擎则负责根据本体、数据 和逻辑规则进行推理,得到“结论( Proof,并把这种结论返回到逻辑规则和本体 数据中去。 ● Trust Layer 在之前所有层次的基础之上,会形成无数对于某一事实的陈述,这些陈述合 理与否依赖于它们所处的上下文环境。因此当人或计算机访问这些陈述时,需要 根据上下文和自己的需求自行判定该陈述是否可信( Trust。采用加密技术和数字 签名技术(渗透到每个层次的规范中去)是实现判定可性的一个重要手段,并可以 由此形成一个信任的 Web(Web of Trust)。例如,John声明:所有一级代理商有 权委托二级代理商,而Jane是我公司的一级代理商之一。Jane的声明是:所有 与我公司有三年以上合作关系的,将获得二级代理商资格,Joe是我公司一个有 4年合作关系老伙伴。同时,所有这些声明都有数字签名保证了是可信的,于是, 可以得出结论:Joe将获得John公司的二级代理商资格 由于后面会用到OWL,所以下面先对OWL做一个简介。 24oWL语法简介 Classes Classes提供了组织具有相似特征的资源的一种抽象方式。每一个OWL Cass联系到一个 individual的集合,这个集合叫做它的外延,集合中的 individual 叫做它的 instance。可以通过指定一个 Class名字或说明 名的 Class的外 延来描述一个Cass。另外,可以使用rdfs:subC| assef将 Classes组成一个层次 化的结构。 . 在第一个例子中,通过指定名字定义了一个cass,即 Grape,在第二个例
统表明,机床设备和测量设备是互斥的(即交集为空),接着,计算系统给出 63+ 58= 121,并且 121>100,就能得出这样一个证明:Mike 是明星销售员工。在 Semantic Web 的开放环境中进行推理是一个困难的任务,因为任何一个推论都 可能涉及到大量信息的处理。研究者由此提出了语义网总线(Semantic Web Bus) 的设想。如图 3 所示,语义网中充斥着各种信息处理器(图中圆形所示)[Aaron Swartz,2002],其中一些仅仅提供本体数据(ontology&data)供其它处理器使用, 另外一些则根据这些本体数据构建逻辑规则,启发式引擎则负责根据本体、数据 和逻辑规则进行推理,得到“结论”(Proof),并把这种结论返回到逻辑规则和本体 数据中去。 z Trust Layer: 在之前所有层次的基础之上,会形成无数对于某一事实的陈述,这些陈述合 理与否依赖于它们所处的上下文环境。因此当人或计算机访问这些陈述时,需要 根据上下文和自己的需求自行判定该陈述是否可信(Trust)。采用加密技术和数字 签名技术(渗透到每个层次的规范中去)是实现判定可性的一个重要手段,并可以 由此形成一个信任的 Web(Web of Trust)。例如,John 声明:所有一级代理商有 权委托二级代理商,而 Jane 是我公司的一级代理商之一。Jane 的声明是:所有 与我公司有三年以上合作关系的,将获得二级代理商资格,Joe 是我公司一个有 4 年合作关系老伙伴。同时,所有这些声明都有数字签名保证了是可信的,于是, 可以得出结论:Joe 将获得 John 公司的二级代理商资格 由于后面会用到 OWL,所以下面先对 OWL 做一个简介。 2.4 OWL 语法简介 z Classes Classes 提供了组织具有相似特征的资源的一种抽象方式。每一个 OWL Class 联系到一个 individual 的集合,这个集合叫做它的外延,集合中的 individual 叫做它的 instance。可以通过指定一个 Class 名字或说明一个匿名的 Class 的外 延来描述一个 Class。另外,可以使用 rdfs:subClassOf 将 Classes 组成一个层次 化的结构。 ... 在第一个例子中,通过指定名字定义了一个 class,即 Grape,在第二个例 6
子中通过 rdfs subClass将 Wine Grape class定义为 Grape的 subclass。 ●P Property提供描述 Class间关系的抽象机制,它可看作 Class之上的二元关系。 而 Property之间可以通过 SubPropertyof形成层次化的关系 OWL里有两类 property. object property的值域是cass的 individual, datatype property的值域是数值类型的值(整数、字符串,日期等,由 xml schema定义)。在 OWL Fu里, object propety和 datatype property不互斥,因为数值类型的值也可以 看作是一个 individual e c/owl: Datatype Property> c/owl: ObjectProperty? 第一个例子定义了一个 datatype property,它的值域是正整数。第二个例子定义 了一个 object propety,它的值域是 Wine Grape Individual描述数据的个体,是组成Cass的元素, Individual通过使用 rdf: Type 来将自己绑定到某个Cass上 例子 在第一个例子中定义了一个名字为 CentralCoastRegion的 Individual,而在第二 个例子中通过 rdf:about对它添加了描述,而没有重新定义它。另外,在第二个例子 中通过 rdf: type指明 CentralCoastRegion的cass是 Region 3. OWL-S OWL-S( Web Ontology Language for Services),是用OWL语言描述的 Web service 的 Ontology。它也是一种具有显式语义的无歧义的机器可理解的标记语言( markup language),用来描述 Web service的属性和功能。OM-S的早期版本叫做 DAML-S ( DARPA Agent Markup Language for Services,基于DAML+OL)。本文主要介绍OWLS 10版。 DAML-S/OWS的版本演化 7
子中通过 rdfs:subClassOf 将 WineGrape class 定义为 Grape 的 subclass。 z Property Property 提供描述 Class 间关系的抽象机制,它可看作 Class 之上的二元关系。 而 Property 之间可以通过 SubPropertyOf 形成层次化的关系。 OWL 里有两类 property。object property 的值域是 class 的 individual,datatype property 的值域是数值类型的值(整数、字符串,日期等,由 xml schema 定义)。在 OWL Full 里,object propety 和 datatype property 不互斥,因为数值类型的值也可以 看作是一个 individual。 第一个例子定义了一个 datatype property,它的值域是正整数。第二个例子定义 了一个 object propety,它的值域是 WineGrape。 z Individual Individual 描述数据的个体,是组成 Class 的元素,Individual 通过使用 rdf:Type 来将自己绑定到某个 Class 上 例子: 在第一个例子中定义了一个名字为 CentralCoastRegion 的 Individual,而在第二 个例子中通过 rdf:about 对它添加了描述,而没有重新定义它。另外,在第二个例子 中通过 rdf:type 指明 CentralCoastRegion 的 class 是 Region。 3. OWL-S OWL-S(Web Ontology Language for Services),是用 OWL 语言描述的 Web Service 的 Ontology。它也是一种具有显式语义的无歧义的机器可理解的标记语言(markup language),用来描述 Web Service 的属性和功能。OWL-S 的早期版本叫做 DAML-S (DARPA Agent Markup Language for Services,基于DAML+OIL)。本文主要介绍OWL-S 1.0 版。 DAML-S / OWL-S 的版本演化: 7
200311:OMS10 2003-05: DAML-S0.9 2002-10: DAML-S07 2001-12: DAML-S0 2001-05: DAML-S0.5 Resource Service Described By ServiceProfile Service Grounding What the ServiceModel service does How to access it How it works K 5 Upper ontology for services 上图是 Service的上层 Ontology。在OWS中,一个 Service由三部分来描述 Service Profile, Service Model, Service Grouding。简单来说, Service Profile描述服务是 做什么的, Service Model描述服务是怎么做的, Service Grounding描述怎么访问服务。 个 Service最多被一个 Service Model描述,一个 Service Grounding必须和一个 Service 相关联。以下将详细描述这三个部分 3.1 Service Profile Service profile描述一个服务主要包含三方面信息 首先,服务提供者的白页和黄页信息。比如服务提供者的联系方式 其次,服务的功能信息。主要是指服务的OPE:nput, Output, Precondition, Effect OPE是OWLS中的主要内容之一,在 Service Mode中还会详细描述 最后, Service Profile可以提供服务的所属的分类,服务QoS信息。 Service Profile 也提供了一种机制来描述各种服务的特性,服务提供者可以自己定义 Service profile最大的特点就是双向的,服务提供者可以用 Profile描述服务的功能 服务请求者可以用 Profile描述所需服务的需求。这样服务发现时, matchmaker可以利用 这种双向的信息进行匹配。 另一方面, Service profile是 registry-model-neutral的,也就是说, Profile支持各种 各样的 registry model,最常用的 registry model比如UDD|的基于服务注册中心的集中式 解决方案。而在特殊情况下,比如某个服务供不应求,那么可以建立服务请求的注册中心, 对每个服务请求进行注册,当服务响应完一个请求后,从注册中心中取出下一个进行响应。 这与UDD|是完全相反的一个过程。由于 Service Profile是双向的,它完全支持这种方式 的 registry model对于P2P方式的 registry model,没有统一的注册中心, Service Profile 也能够支持。 8
• 2003-11: OWL-S 1.0 • 2003-05: DAML-S 0.9 • 2002-10: DAML-S 0.7 • 2001-12: DAML-S 0.6 • 2001-05: DAML-S 0.5 图 5 Upper ontology for services 上图是 Service 的上层 Ontology。在 OWL-S 中,一个 Service 由三部分来描述 ServiceProfile,ServiceModel,ServiceGrouding。简单来说,ServiceProfile 描述服务是 做什么的,ServiceModel 描述服务是怎么做的,ServiceGrounding 描述怎么访问服务。 一个 Service 最多被一个 ServiceModel 描述,一个 ServiceGrounding 必须和一个 Service 相关联。以下将详细描述这三个部分。 3.1 Service Profile Service Profile 描述一个服务主要包含三方面信息。 首先,服务提供者的白页和黄页信息。比如服务提供者的联系方式。 其次,服务的功能信息。主要是指服务的 IOPE:Input,Output,Precondition,Effect。 IOPE 是 OWL-S 中的主要内容之一,在 Service Model 中还会详细描述。 最后,Service Profile 可以提供服务的所属的分类,服务 QoS 信息。Service Profile 也提供了一种机制来描述各种服务的特性,服务提供者可以自己定义。 Service Profile 最大的特点就是双向的,服务提供者可以用 Profile 描述服务的功能, 服务请求者可以用 Profile 描述所需服务的需求。这样服务发现时,matchmaker 可以利用 这种双向的信息进行匹配。 另一方面,Service Profile 是 registry-model-neutral 的,也就是说,Profile 支持各种 各样的 registry model,最常用的 registry model 比如 UDDI 的基于服务注册中心的集中式 解决方案。而在特殊情况下,比如某个服务供不应求,那么可以建立服务请求的注册中心, 对每个服务请求进行注册,当服务响应完一个请求后,从注册中心中取出下一个进行响应。 这与 UDDI 是完全相反的一个过程。由于 Service Profile 是双向的,它完全支持这种方式 的 registry model。对于 P2P 方式的 registry model,没有统一的注册中心,Service Profile 也能够支持。 8
3.2 Service model Service Model主要是服务提供者用来描述服务的内部流程。一个 Service通常被称之 为一个 Process(过程)。首先定义 Process的 Ontology Conditio◆ Process Profile computedlinp Atomi Process ontrolconst ProcessComponent Process U Controlconstruct 6 Top level of process ontology Process分为三类: Atomic Process, Composite Process, Simple Process The most general class of processes owl unionOf rdf: parse Type="Collection"> ow: Class rdf about=#Composite Process"/> Atomic process(原子过程)是不可再分的过程,可以直接被调用。每一个原子过程 都必须与提供一个 grounding信息,用于描述如何去访问这个过程。 Composite Process(复合过程)是由若干个原子和复合过程构成的过程。每个过程 由一个 Controlconstruct定义。 Controlconstruct定义了复合过程中每个子过程的执行顺 序。OⅥL-S中定义的控制流有 Sequence, Split, Split+Join, Unordered, Choice, -Then-Else, Iterate, Repeat-Until这几种。 下面这个例子是复合过程“航班预定服务”的描述 process: Composite Process rdf: ID="BravoAir Process"> This is the top level process for BravoAir
3.2 Service Model Service Model 主要是服务提供者用来描述服务的内部流程。一个 Service 通常被称之 为一个 Process(过程)。首先定义 Process 的 Ontology: 图 6 Top level of process ontology Process 分为三类:Atomic Process,Composite Process,Simple Process。 The most general class of processes Atomic Process(原子过程)是不可再分的过程,可以直接被调用。每一个原子过程 都必须与提供一个 grounding 信息,用于描述如何去访问这个过程。 Composite Process(复合过程)是由若干个原子和复合过程构成的过程。每个过程 由一个 ControlConstruct 定义。ControlConstruct 定义了复合过程中每个子过程的执行顺 序。OWL-S 中定义的控制流有 Sequence,Split,Split+Join,Unordered,Choice, If-Then-Else,Iterate,Repeat-Until 这几种。 下面这个例子是复合过程“航班预定服务”的描述: This is the top level process for BravoAir 9
/process: composedof /process: Composite Process> 该过程由三个子过程组成: GetDesiredFlightDetails, SelectAvailable Flight, BookFlight.它们按照顺序执行 Simple process是一个抽象概念,它不能被直接调用,也不能与 grounding绑定。观 察一个服务通常可以有不同的粒度,当我们需要关心一个服务的内部细节时,可以将这个 服务定义成 Simple Process。一个 Atomic Process可以 realizes一个 Simple Process 一个 Composite Process可以 collapseR一个 Simple Process。 OPE是OWLS中一个非常重要的概念。OPE是指 nputs, Outputs, Preconditions, Effects。类似于程序设计语言中的相应概念。 Inputs和 Outputs是指服务的输入和输出, 可以理解为数据的变换; Preconditions和 Effects是指服务的前提条件和效果,即服务执 行前应该满足的条件和服务执行后实际产生的效果,可以理解为状态的改变。OWL-S中 可以定义条件式 Outputs和 Effects,即只有在某种条件满足的情况下, Outputs和 Effects 才能产生。例如 Selling Service的OPE可以如下定义 Selling service credit card numbe Precondition d Output Effe the card is charged be able to connect to bank 图7|OPE实例 下面一个例子是用OW-S描述一个“航班预定确认服务”: rdf resource="#Confirm In"/> rocess: hasOutput rdf resource=#Preferred Flightltinerary_ Out"/> df: resource="##AcctName Out"/> <process Input rdf ID="ReservationID In
该过程由 三个子过 程组成: GetDesiredFlightDetails , SelectAvailableFlight , BookFlight。它们按照顺序执行。 Simple Process 是一个抽象概念,它不能被直接调用,也不能与 grounding 绑定。观 察一个服务通常可以有不同的粒度,当我们需要关心一个服务的内部细节时,可以将这个 服务定义成 Simple Process。一个 Atomic Process 可以 realizes 一个 Simple Process, 一个 Composite Process 可以 collapseTo 一个 Simple Process。 IOPE 是 OWL-S 中一个非常重要的概念。IOPE 是指 Inputs,Outputs,Preconditions, Effects。类似于程序设计语言中的相应概念。Inputs 和 Outputs 是指服务的输入和输出, 可以理解为数据的变换;Preconditions 和 Effects 是指服务的前提条件和效果,即服务执 行前应该满足的条件和服务执行后实际产生的效果,可以理解为状态的改变。OWL-S 中 可以定义条件式 Outputs 和 Effects,即只有在某种条件满足的情况下,Outputs 和 Effects 才能产生。例如 Selling Service 的 IOPE 可以如下定义: Selling service Input: credit card number Precondition: valid credit card Output: receipt Effect: the card is charged Condition: be able to connect to bank 图 7 IOPE 实例 下面一个例子是用 OWL-S 描述一个“航班预定确认服务”: 10