时间需要一分一秒的过,事情需要一点一滴的做!

渴望!勇气!自信!坚持!

博客园 首页 新随笔 联系 订阅 管理
在介绍 Semantic Web 技术的同时,Naveen Balani 将向我们展示组织如何充分利用基于 ontology 的开发技术。Semantic Web 可以帮助进行有效的知识管理,并且能够充分利用产品的生命周期自动化来进行快速的开发和集成。

通常,semantics(语义) 就是对意义的学习。(单词“semantic”来自于希腊文 semantikos,即“重要意义”,派生于 sema,即“符号”。)Semantic Web 技术可以帮助分离数据、文档内容或应用程序代码的意义,它使用了基于开放标准的技术。如果一台计算机可以理解文档的 语义,那么它就不会认为这只是构成这个文档的一系列字符了:它可以很好地理解文档的 意义

Semantic Web 提供了一个通用的框架,可以在应用程序、企业和社区之间共享和重用数据。可以认为 Semantic Web 是一种在 WWW 上有效地表示数据的方法,或者是一个采用机器可以理解的方式从全局上链接到 Web 文档的内容的数据库。Semantic 技术使用 ontology 来表示意义,并通过使用这些 ontology 表示的关系、规则、逻辑和条件来进行推理。

构成 Semantic Web 的技术

要实现 Semantic Web,需要使用以下技术:

  • 全球命名模式(URI)
  • 采用一种标准的语法来描述数据(RDF)
  • 采用一种标准的方法来描述数据的属性(RDF Schema)
  • 采用一种标准的方法来描述数据项之间的关系(使用 OWL Web Ontology Language 定义的 ontology)

下面让我们详细地介绍一下这些技术。

全球命名模式:URI

URI 只是一个 Web 标识符,就像是在网络上经常看到的使用 httpftp 开头的字符串一样。任何人都可以创建一个 URI,URI 的所有者已经清楚地声明了,因此它们构建了一种理想的技术基础,可以在此基础上构建一个全球 Web。实际上,WWW 就是这样一种东西:任何具有 URI 的东西都可以认为是“在 Web 上”的。Semantic Web 中的每个数据对象和每个数据模式/模型都必须具有一个唯一的 URI。

统一资源定位符(URL) 是一个 URI,除了定义一个资源之外,它还提供了一种方式来操作或获得这种资源的表示,这可以通过描述其主要访问机制和网络位置实现。例如,URL http://www.webifysolutions.com 是一个 URI,它表示了一个资源(Webify Solutions 的主页),并且可以通过 HTTP 从一个网络主机(www.webifysolutions.com)上获得这个资源的表示(例如主页的当前 HTML 代码作为编码的字符表示)。

统一资源名(URN) 是一个 URI,它使用特定命名空间中的一个名字来标识一个资源。例如,URN urn:ISBN:1-0-7666-98-0 就是一个 URI,就像是一个 ISBN 书号表示了一本书,但是它并没有表示可以从什么地方以及如何获得一份拷贝。

一种用来描述数据的标准语法:RDF

RDF 是一种规范,它为表示世界而定义了一个模型,并且采用一些语法来对这个模型进行序列化和交换。W3C 已经为 RDF 开发了一系列的 XML。RDF XML 是 Semantic Web 上 RDF 所采用的一种标准交换格式,但是这不是唯一的一种格式。例如,Notation3 就是 RDF XML 的一个很好的普通文本替代品。

RDF 提供了一种一致的、标准的方法来描述和查询互联网资源,从文本页和图形到音频和视频文件。它提供了语义协作,并提供了一个基本层来构建 Semantic Web。RDF 定义了一种直连图的关系。这些都是使用对象-属性-值三元组来表示的 —— 即,对象 O 具有一个值为 V 的属性 A。

清单 1 给出了一个 RDF XML 的例子。


清单 1. 一个 RDF XML 的例子
<?xml version="1.0"?>
            <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:contact="http://www.w3.org/2000/05/contact#">
            <contact:Company rdf:about="http://www.w3.org/Organization/contact#WebifySolutions">
            <contact:name>Webify Solutions</contact:name>
            <contact:mailbox rdf:resource="mailto:info@webifysolutions.com"/>
            <contact:phone>1-800-4WEBIFY</contact:phone>
            </contact:Company>
            </rdf:RDF>
            

清单 1 中给出的 RDF 片断声明了有关资源的信息,在这个例子中是公司 http://www.w3.org/Organization/contact#WebifySolutions。这个公司可以使用 URI http://www.w3.org/Organization/contact#WebifySolutions 来标识;它的名字是 Webify Solutions,e-mail 地址是 info@webifysolutions.com,电话号码是 1-800-4WEBIFY。

图 1 中给出的直连图关系就表示了这些信息。


图 1. 描述 Webify Solutions 联系信息的 RDF 图
描述 Webify Solutions 联系信息的 RDF 图

一种用来描述数据属性的标准方法:RDF Schema

RDF Schema 是 RDF 的一个语义扩展。它提供了一些机制来描述相关的资源组,以及这些资源之间的关系。

RDF Schema 类和属性系统与面向对象语言(例如 Java 语言)中的类型系统非常类似。RDF 与很多类似的系统都不相同。它不使用实例的属性来定义类,而是使用 RDF 词汇描述语言采用资源类(属性所适用的类)的术语来描述属性。

RDF 和 RDF Schema 是基于 XML 和 XML Schema 的。用来描述数据(RDF)和数据属性(RDF Schema)的方法有一定的标准,这使我们能够开发一组可用的工具来从多个数据源读取并利用数据。不同应用程序可以共享和利用数据的程度有时就称为 syntactic interoperability(语义协作能力)。对这些数据进行操作的工具的标准化程度越高,应用越广泛,语义协作能力也就越高,使用 Semantic Web 方法就越简单,也越容易吸引人们采用 Semantic Web 方法而放弃点到点集成方案。

完整的 W3C RDF Schema 数据模型和规范,请参阅 参考资料

一种用来描述数据项之间关系的标准方法:使用 OWL Web Ontology Language 的 Ontology 技术

在多个应用程序可以真正理解数据(并将其作为信息使用)之前,要求具有语义协作能力。语义协作能力就是要能够正确地分析数据。它需要在不同的术语之间进行映射,这又需要进行内容分析。

这种内容分析要求域名模型具有正式的、明确的规范,它要定义所使用的术语及其之间的关系。这种正式的域名模型有时称为 ontology。 Ontology 使用类、子类和属性的术语定义了数据模型。

使用 W3C 建议的 OWL Web Ontology Language,就可以表示 ontology。与 RDF 或 RDF Schema 相比,OWL(Ontology Working Language)增加了更多的词汇来描述属性和类:它可以描述类之间的关系(例如脱节)、数量特性(例如,“正好一个”)、等价性、丰富的属性类型以及属性的特性(例如对称)。

OWL Web Ontology Language 被设计为供那些需要处理信息内容的应用程序使用,而不是只向人们呈现这些信息。OWL 提供额外的词汇,并且与正式的语义一起协作,极大地改进了机器对 Web 内容的解释能力,超越了 XML、RDF 和 RDF Schema 所支持的内容解释能力。OWL 有 3 种子语言:按照表示能力的降序排列,分别是:OWL Full、OWL DLOWL Lite。

  • OWL Web Ontology Language 总体称为 OWL Full。OWL Full 使用所有的 OWL 语言原语,并且可以将这些原语与 RDF 和 RDF Schema 进行任意组合。OWL Full 可以与 RDF 完全向上兼容,不管语义还是语法都可以保持兼容:任何合法的 RDF 文档同时也是一个合法的 OWL Full 文档。这并不是说任何软件都可以支持 OWL Full 的每种特性,因为它提供了最大程度的表示能力以及 RDF 的语法自由,而不提供对计算能力的担保。

  • OWL DL 可以为那些希望将表示能力最大化而不丧失计算完整性的用户提供很好的支持。OWL DL 是 OWL Full 的一种子语言,它有一些限制,例如 类型分隔(type separation)(例如,一个类不能同时是一个个体或属性,一个属性也不能同时是一个个体或类)。

  • OWL Lite 可以为那些主要需要一种分类层次和简单约束特性的用户提供很好的支持。这种语言的优点是它比另外两种语言更容易理解和实现;然而,它的表示能力却有一定的限制。例如,OWL Lite 可以支持 cardinality 约束,但是 cardinality 的值只能是 0 或 1。

ontology 的例子包括在线购物站点(例如 Amazon.com)的商品目录;域特定的标准术语表,例如 UNSPSC(产品和服务所使用的一个术语表);或者 Web 上的各种分类法,例如“My Yahoo”分类。

接下来,我们将详细了解一下 OWL 的组件。



回页首


OWL Web Ontology Language 组件

OWL 的基本组件包括 类、属性个体,下面我们将逐一进行介绍。

是 OWL ontology 的基本构造组件。类是域中的一个概念。类通常包括一个分类层次(一个子类-超类层次)。

类是使用 owl:Class 元素定义的。OWL 提供了两个预定义的类:owl:Thingowl:Nothingowl:Thing 是最通用的类,它包括了一切东西;owl:Nothing 是一个空类。您所定义的每个类都是 owl:Thing 的子类,并且是 owl:Nothing 的超类。一个银行类的例子可能包括 AccountCustomer

清单 2 给出了一个 OWL 类的例子。


清单 2. OWL 类的例子

            <owl:Class rdf:ID="SavingsAccount">
            <rdfs:subclassOf rdf:resource="#Account"/>
            </owl:Class>
            

清单 2 中的代码指定 SavingAccount 是一个类,它是 Account 的一个子类。

OWL 支持 6 种主要的方法来描述类。其中最简单的方法是 有名(named) 类,其他方法有 交叉(intersection) 类、联合(union) 类、补充(complement) 类、限制(restrictions)穷举(enumerated) 类。清单 2 给出了两种描述类的方法:一个限制将 SavingAccount 定义为有名类 Account 的一个子类。完整的 W3C OWL 类规范,请参阅 参考资料

属性

属性主要有两种:

  • 对象属性,将个体与其他个体关联在一起。
  • 数据类型属性,将个体与其他数据类型关联在一起,例如整型、浮点型和字符串。OWL 使用 XML Schema 来定义数据类型。

属性可以有一个相关的域和范围。每个属性都可以划分为以下类别之一:

  • Functional(唯一):对于一个给定的对象,这个属性只有一个值。例子包括一个人的年龄、身高和体重。
  • Inverse functional(互斥):两个不同的个体不能具有相同的值。例如,bankNumberSSN 属性对于每个人来说都是唯一的。
  • Symmetric(对称):如果一个属性将 A 链接到 B 上,那么就可以推论说 B 也可以链接到 A 上。对称属性的例子包括“兄弟” 或“等同”。
  • Transitive(传递):如果一个属性将 A 链接到 B 上,而 B 又链接到 C 上,那么我们就可以推论说 A 也可以链接到 C 上。例如,如果 A 比 B 高,而 B 比 C 高,那么 A 就比 C 高。

可以对类和属性应用各种限制。例如,cardinality 限制指定了一个类中的个体可以参与的关系的个数。

完整的 W3C OWL 规范,请参阅 参考资料

个体

个体 是类的实例,属性可以将一个个体与其他个体关联在一起。例如,可以将一个名为 Smith 的个体描述为类 Person 的一个实例,并且可以使用属性 hasEmployerSmith 与个体 Webify Solutions 关联在一起,从而表示 Smith 是 Webify Solutions 公司的一名员工。

清单 3 给出了一个 OWL 个体的例子。


清单 3. OWL 个体

            <owl:Thing rdf:about="SmithAccount">
            <rdfs:type="#Account"/>
            </owl:Class>
            

rdf:type 是一个 RDF 属性,它将一个个体与其所属的类关联起来。清单 3 说明 SmithAccountAccount 类型的一个实例。

图 2 阐述了 OWL ontology 的基本构造块。


图 2. 描述 Webify Solutions 组织的 OWL ontology
描述 Webify Solutions 组织的 OWL ontology


回页首


ontology 的商业价值

IT 系统使用关系数据模型、大文件、面向对象模型和私有数据模型来对意义进行组织。随着时间的流逝,业务需求的变化要求您向关系数据模型或面向对象模型中添加新的实体和关系。

此外,如果一个组织使用了各个供应商提供的很多应用程序,就可能在应用程序数据库之间复制相同的模型。比如说,一个银行提供了很多产品来为各种类型的客户服务。企业客户可能需要防骗机制,而普通客户可能只使用在线银行的功能。通常,会有多个供应商为银行提供应用程序,但是每个应用程序都会在应用程序特有的数据库中复制相同的通用信息:帐号、客户等等。随着组织不断增加产品来满足日益增长的业务需求,相同的冗余信息在企业中会变得更加分散。

有很多服务对于正在开发的所有应用程序来说都是通用的 —— 例如查看银行交易和电汇款项。每个服务都要复制成应用程序所喜欢使用的方式,这就需要点到点地进行集成。

如果银行采用一种 ontology 驱动的方法,就可以使用一种自然语言的方式来捕获并表示自己的全部产品知识,并将这些知识部署到一个集中的仓库中。使用这种共享的、适应性的 ontology,组织就可以为所有应用程序提供一种单一、统一的数据视图。采用这种统一的视图,我们就可以精确地检索信息,无缝地进行企业系统集成,因为业务处理过程和各种数据源都可以通过一种通用的元数据模型相互进行映射。因此,共享的 ontology 避免了点到点的集成,并简化了应用程序的集成过程,降低了数据的冗余性,并在应用程序之间提供了相同的语义意义,这可以降低银行的维护和升级成本。



回页首


Semantic Web 对于 WWW 的贡献

WWW 是迄今所创建的最大的信息仓库,各种语言、各种领域的知识内容都得到了迅速的增长。然而,在长时间运行之后,我们已经很难利用这些内容得出非常有意义的结果。搜索引擎可以帮助您找到包含特定单词的内容,但是这些内容可能并不是您想要的。我们到底缺少什么呢?搜索是基于页面内容进行的,而不是根据页面内容的 语义 或有关这个页面的信息进行的。

一旦 Semantic Web 出现了,它就可以提供对 Web 上的所有内容进行标记的能力,描述每部分信息是有关哪些内容的能力,以及为内容赋予语义的能力。这样,搜索引擎就可以比现在更加有效了,用户可以找到自己希望的确切信息。提供各种服务的组织可以为这些服务标注上非常恰当的意义;使用基于 Web 的软件代理,可以动态地发现这些服务,并利用这些服务的优点,或者与其他服务一起使用。



回页首


Semantic 技术在 SOA 中的作用和价值

要对面向服务的架构(SOA)正确地进行建模和管理,企业架构师必须对企业可用的活动服务进行维护。具体来说,要发现和组织这些服务,架构师必须利用最好的实践,使用元数据对服务进行建模和组装,在元数据中封装业务逻辑,从而进行动态绑定,并且对元数据进行管理。Ontology 提供了一种非常强大而且灵活的方式来对这个服务元数据层进行汇聚、可视化和规范化。

ontology 是概念、关系和约束的网络,它为数据、信息和过程提供了内容。ontology 增强了服务的发现、建模、组装、仲裁和语义协作能力。它们改进了用户浏览、探索并操纵复杂元数据信息空间的方法。业务 ontology 已经成为业务概念及其关系的一种正式规范,它们可以简化机器推理的过程。业务 ontology 使用元数据与系统绑定在一起,这非常类似于数据库与离散数据绑定在一起。这种抽象提供了非常好的灵活性,因为这种接口可以进行修改,而且新的资源和贡献者也很容易就可以添加,即使在系统运行时也是如此。

Semantic 是面向服务集成的发展方向。Semantic 技术在现有的 IT 技术之上提供了一层抽象,它跨越业务和 IT 仓库在数据、内容和过程之间架设了一座桥梁,使其可以相互连接在一起。最后,从人机交互的角度来看,Semantic 技术添加了一个新的语义门户层,与用于基于门户的信息发布的传统点到点集成方法相比,它提供了更智能化的、上下文敏感的交互。



回页首


结束语

在本文中,我们介绍了构成 Semantic Web 技术的关键标准,并了解了为什么有些组织可能希望采用这些技术。采用 Semantic Web 技术,组织可以为自己的所有应用程序提供一个单一、统一的数据视图,这样就可以精确地检索信息,简化企业和 SOA 的集成,降低数据的冗余性,并在应用程序之间提供统一的语义意义。所有这些都简化了企业信息系统的开发、维护和更新。



回页首


参考资料

学习

获得产品和技术
  • Webify Solutions 是 IBM On Demand Optimized 的一个合作伙伴,Webify 提供了一个 ontology 驱动的集成服务环境,它可以帮助公司解决管理和灵活性问题,同时可以在企业、应用程序和合作伙伴域之间实现并维护语义协同能力。

  • IBM Integrated Ontology Development Toolkit:在 IBM alphaWorks 上可以找到用于 ontology 驱动开发的工具包。



回页首


关于作者

 

Naveen Balani 将大部分时间都用在设计和开发基于 J2EE 的产品上。过去,他曾为 IBM 撰写过各种文章,涵盖的主题有 Web 服务、CICS、JMS、AXIS、J2ME、DB2 XML Extender、WebSphere Studio、MQSeries、Java Wireless Devices 和 DB2 Everyplace for Palm、Java-Nokia、Visual Studio .Net 以及无线数据同步。可以通过 naveenbalani@rediffmail.com 与他联系。

posted on 2007-05-21 23:35  冢边木  阅读(334)  评论(0编辑  收藏  举报