在介绍 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 图

一种用来描述数据属性的标准方法: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

回页首

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 的集成,降低数据的冗余性,并在应用程序之间提供统一的语义意义。所有这些都简化了企业信息系统的开发、维护和更新。

回页首

参考资料

学习

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文
  • “The role of ontologies in autonomic computing systems”,L. Stojanovic、J. Schneider、A. Maedche、S. Libischer、R. Studer、Th. Lumpp、A. Abecker、G. Breiter、J. Dinger 著(IBM Research Journal,2004 年):介绍使用 ontology 描述与自主计算系统有关的知识和构造的好处。
  • “Jena 简介”,Philip McCarthy 著(developerWorks,2004 年 6 月):在采用 Jena Semantic Web Framework 技术的 Java 应用程序中使用 RDF 模型。
  • “知识管理的基本 XML 和 RDF 技术”,Uche Ogbuji 著(developerWorks,2002 年 3 月):了解知识管理技术的使用。
  • “使用 J2EE 技术设计面向服务的体系结构框架”,Naveen Balani 著(developerWorks,2004 年 1 月):在这里可以找到更多有关 SOA 编程的内容。
  • “用 DITA 和 SKOS 进行主题分类”(developerWorks,2005 年 10 月):学习有关 SKOS(Simple Knowledge Organization System)、管理主题问题的最新 Semantic Web 标准以及如何使用 SKOS 将正式语义与文档内容进行集成的知识。
  • developerWorks Web 体系结构专区:可以找到更多为 Web 体系结构开发人员准备的参考资料。
  • 参与 developerWorks blogs:加入 developerWorks 社区。
  • OWL 规范、RDF 规范 和 RDF Schema 规范:从 W3C 上获得这三个规范。
  • Notation3:研究这种简单的语言,可以使用它在 ASCII 会话(例如 e-mail)中加入 RDF 语句。

获得产品和技术

  • 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 与他联系。

转载于:https://www.cnblogs.com/todaysgp/archive/2007/05/21/754907.html

Web 的将来是语义的相关推荐

  1. web标准与HTML语义化

    说来惭愧,学习前端已经有了一段时间,但对最基本也是极其重要的一些网站设计的基础思想都不太清楚.最近写项目发现了很多自己的不足,特此写一些文章来记录自己最近看书了解的一些知识与感悟. Web标准-结构. ...

  2. 有关WEB前端中的语义化

    作天在变卖大学书籍时也不晓得怎么的就想起语义化这个概念,于是乎也就花点时间搞搞它.语义化标记对于刚学web前端脚本语言的童鞋来说往往都没太 在意,哇哈哈,其实我也就算只比较老的菜鸟而已,本文不是说教, ...

  3. 机器学习在本体中的应用研究文献综述

    机器学习在本体标注中的应用研究文献综述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office& ...

  4. 新一代Web的蓝图--语义web

    随着人们对网络上信息使用要求的不断提高,对网络上信息内容提出了更高要求.可以这样认为,网络只是给人们提供了一个信息共享和信息浏览的环境,人们可以在网络环境中找到自己想要的信息,而对这些信息的理解还需要 ...

  5. 语义Web简单综述(XML、RDF、OWL、知识库、知识图谱)

    摘 要 随着Web技术的发展,传统万维网正向着语义Web发展.语义Web试图让Web上的信息具有语义,能够被机器理解,使得Web上信息的获取更加智能快捷.本文在全面阐述语义Web基本概念和体系结构的基 ...

  6. 黄智生博士谈语义网与Web 3.0

    作者 黄智生,采访: 徐涵 发布于 2009年3月26日 下午6时0分 社区 Architecture, SOA 主题 语义网 标签 Web 2.0, 采访, 元数据, 语义网 近 两年来," ...

  7. 语义网技术综述(web3.0)

        欢迎关注微信公众号 语义网概念及技术综述 摘要:语义网是现有万维网的变革与延伸,是Web of documents向Web of data的转变.它的目标是让计算机可以像人脑一样理解信息的含义 ...

  8. 转载:语义网概念及技术综述

    本文写的非常好,读之获益颇丰,故转载以便反复阅之. 原创链接为: https://blog.csdn.net/zpcandzhj/article/details/21827045 语义网概念及技术综述 ...

  9. [收集] Web服务相关的, 介绍框架(framework)类的论文

    收集了部分Web服务相关的, 介绍框架(framework)类的论文 <RECORD 1> WSCF: A framework for web service-based applicat ...

  10. 从语义(semantic)GIS和知识表达谈起

    语义(semantic)及其语义Web 首先谈语义,个人理解,语义就是具有意义的信息,例如我们单独说"b-u-s",是没有任何意义的,但如果我们说"bus",在 ...

最新文章

  1. Quartz.Net 1.30的一些设置说明
  2. 我如何查看要使用git推送的内容?
  3. js parseInt()与Number()区别
  4. Vue3---安装Element-Plus组件库
  5. elasticsearch控制返回字段查询三(英文分词)match查询
  6. jquery cookie 本地不能工作的原因
  7. 人工智能__一种现代方法 绪论导读
  8. livereload_使用LiveReload节省编码时间和精力
  9. mmsegmentation自定义数据集
  10. ROS NOETIC 思岚激光雷达A2M8启动历程
  11. 森林防火系统集成解决方案
  12. 唐诗欣赏静夜思用html设计,静夜思-古诗翻译译文赏析-李白诗歌网
  13. 复合函数的共轭函数例子
  14. 交换机基本介绍(分类、性能指标、硬件构成及工作方式)
  15. Charles 4.5.6版本抓包工具的下载、注册与配置
  16. Cypress代理铁电存储器FM25V10-GTR中文资料
  17. Large Scale Machine Learning--An Engineering Perspective--0. 引言
  18. part 8: comparison between OOL and FL
  19. 你生日那天的宇宙有多美?Python制作小工具一键查询图片!
  20. Nwafu-OJ-1421 Problem S C语言实习题四——4.数据顺序调整

热门文章

  1. 从零开始的Python学习Episode 20——面向对象(3)
  2. 连接mysql的各种方式
  3. 《数据库系统概念》19-并发控制
  4. oracle中decode的用法(例子)
  5. 今天,启动MySQL服务器失败,
  6. 触发器中的 Inserted表和Deleted表
  7. gawk Notes(2)
  8. (转)Windows Phone7页面导航
  9. 今天开始学习ADO.NET中的Connection对象(一)--SqlConnection对象连接SQL Server
  10. 201621123041java程序设计第二周学习总结