统表明,机床设备和测量设备是互斥的(即交集为空),接着,计算系统给出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组成一个层次 化的结构。 <owl: Class rdf ID="Grape">. </owl: Class> <ow: Class rdf: ID="Wine Grape"> <rdfs sub Classof rdf resource="&food; Grape"/> <ow: Class> 在第一个例子中,通过指定名字定义了一个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 组成一个层次 化的结构。 <owl:Class rdf:ID="Grape"> ... </owl:Class> <owl:Class rdf:ID="WineGrape"> <rdfs:subClassOf rdf:resource="&food;Grape" /> <owl:Class> 在第一个例子中,通过指定名字定义了一个 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 <ow: Datatype Property rdf: ID="yearValue"> <rdfs: domain rdf resource=#VintageYear/> <rdfs range rdf resource="&xsd; positiveInteger"/> c/owl: Datatype Property> <owl: ObjectPropertyrdf ID="made FromGrape <rdfs domain rdfresource="#Wine <rdfs range rdf: resource=#Wine Grape"/> c/owl: ObjectProperty? 第一个例子定义了一个 datatype property,它的值域是正整数。第二个例子定义 了一个 object propety,它的值域是 Wine Grape Individual描述数据的个体,是组成Cass的元素, Individual通过使用 rdf: Type 来将自己绑定到某个Cass上 例子 <owl: Thing rdf: I D="CentralCoastRegion"/> <oW: Thing rdf: about=#CentralCoastRegion"> <rdf type rdf resource=#Region> </owl: Thing> 在第一个例子中定义了一个名字为 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。 <owl:DatatypeProperty rdf:ID="yearValue"> <rdfs:domain rdf:resource="#VintageYear"/> <rdfs:range rdf:resource="&xsd;positiveInteger"/> </owl:DatatypeProperty> <owl:ObjectPropertyrdf:ID="madeFromGrape"> <rdfs:domain rdf:resource="#Wine"/> <rdfs:range rdf:resource="#WineGrape"/> </owl:ObjectProperty> 第一个例子定义了一个 datatype property,它的值域是正整数。第二个例子定义 了一个 object propety,它的值域是 WineGrape。 z Individual Individual 描述数据的个体,是组成 Class 的元素,Individual 通过使用 rdf:Type 来将自己绑定到某个 Class 上 例子: <owl:Thing rdf:ID="CentralCoastRegion" /> <owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/> </owl:Thing> 在第一个例子中定义了一个名字为 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 <ow: Class rdf: ID="Process"> <rdfs comment> The most general class of processes </rdfs comments <rdfs subClass of rdf resource="&time #IntervalEvent"/> owl unionOf rdf: parse Type="Collection"> <ow: Class rdf about=#AtomicProcess" <owl: Class rdf: about ="#Simple Process"/> ow: Class rdf about=#Composite Process"/> </ow: unionOf> </owl: Class> 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"> <rdfs: label> This is the top level process for BravoAir </rdfs: label> <process: composedof> <process: components rdf parse Type="Collection"> <process: AtomicProcess rdf: about=#SelectAvailableFlight">
3.2 Service Model Service Model 主要是服务提供者用来描述服务的内部流程。一个 Service 通常被称之 为一个 Process(过程)。首先定义 Process 的 Ontology: 图 6 Top level of process ontology Process 分为三类:Atomic Process,Composite Process,Simple Process。 <owl:Class rdf:ID="Process"> <rdfs:comment> The most general class of processes </rdfs:comment> <rdfs:subClassOf rdf:resource="&time;#IntervalEvent"/> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#AtomicProcess"/> <owl:Class rdf:about="#SimpleProcess"/> <owl:Class rdf:about="#CompositeProcess"/> </owl:unionOf> </owl:Class> Atomic Process(原子过程)是不可再分的过程,可以直接被调用。每一个原子过程 都必须与提供一个 grounding 信息,用于描述如何去访问这个过程。 Composite Process(复合过程)是由若干个原子和复合过程构成的过程。每个过程 由一个 ControlConstruct 定义。ControlConstruct 定义了复合过程中每个子过程的执行顺 序。OWL-S 中定义的控制流有 Sequence,Split,Split+Join,Unordered,Choice, If-Then-Else,Iterate,Repeat-Until 这几种。 下面这个例子是复合过程“航班预定服务”的描述: <process:CompositeProcess rdf:ID="BravoAir_Process"> <rdfs:label> This is the top level process for BravoAir </rdfs:label> <process:composedOf> <process:Sequence> <process:components rdf:parseType="Collection"> <process:AtomicProcess rdf:about="#GetDesiredFlightDetails"/> <process:AtomicProcess rdf:about="#SelectAvailableFlight"/> 9