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) 了结构化的数据描述方式,是数据互操作的语法基础,但没有包含任何特殊 义。看下面的例子 <SLR> </SLR> 从这个图中可以看出,虽然我们对数据加了标记,但其他人却不知道他多代表的 意义。 ● Names 提供将名字分类的机制,使得重名但含义不同的资源能够一起使用, ●RDF, RDF Schema RDF( Resource Description Framework)是描述数据语义的基础。它定义了 描述资源以及陈述事实的基本方式:主语、谓语、宾语的三元组
图 2 语义 Web 的层次结构 下面是各层的描述: z URI(Uniform Resource Identifiers) 作为资源(任何东西都可以看作资源)标识机制,提供对资源的标准化的名字描述; z Unicode 提供世界上各种语言的统一的字符编码标准 z XML(Extensible Markup Language) 定义了结构化的数据描述方式,是数据互操作的语法基础,但没有包含任何特殊 的语义。看下面的例子 从这个图中可以看出,虽然我们对数据加了标记,但其他人却不知道他多代表的 意义。 <SLR> …… ….. </SLR> 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