级别: 初级
Naveen Balani, 技术架构师, Webify Solutions
2005 年 12 月 12 日
Naveen Balani 在向您介绍组织如何利用基于存在论开发的同时,还探索了语义 Web 技术的基础。语义 Web 有助于有效的知识管理和有成本效益的产品生命周期自动化,实现更快的开发和集成过程。
一般来说,语义学(semantics) 研究的是意义。(“semantic”这个词来自希腊语 semantikos,或者说“显著意义”,派生于 sema ,或者说“标记(sign)”)。语义 Web 技术有助于利用基于开放标准的技术,从数据、文档内容或应用程序代码中分离出意义。如果计算机理解文档的语义,那么它就不仅仅是解释构成文档的一系列字符:它能够理解文档的意义。
语义 Web 提供了公共的框架,允许在应用程序之间、企业之间和社区边界之间共享和重用数据。可以把语义 Web 想像成在万维网世界中表示数据的有效途径,或者把它当成一种数据库,用某种能够由机器理解的方式,链接到全球 Web 文档中的内容。语义技术用存在论(ontology) 表示意义,并通过这些存在论中表示的关系、规则、逻辑和条件来提供推理。
构成语义 Web 的技术
要表示语义 Web,需要使用以下技术:
- 全球性的命名方案(URI)
- 描述数据的标准语法(RDF)
- 描述数据属性的标准机制(RDF Schema)
- 描述数据条目间关系的标准机制(用 OWL Web 存在论语言定义的存在论)
我们来深入研究这些技术。
全球性的命名方案:URI
URI 就是 Web 标识符,就像在万维网上经常看到的用 http
或 ftp
开始的字符串。任何人都可以创建 URI,而且 URI 的所有权委托得很清晰,所以它们构成了理想的技术基础,可以在其上构建全球性的
Web。实际上,万维网就是这样的:任何拥有 URI 的事物都被认为是“在 Web 上”。语义 Web
中的每个数据对象和每个数据模式/模型都必须拥有惟一的 URI。
统一资源定位符(URL) 是一种 URI,除了标识资源外,通过描述资源的主要访问机制或网络位置,URL 还提供了对资源的表示进行操作或获取的方式。例如,URL http://www.webifysolutions.com
是一个 URI,标识了一个资源(Webify Solutions 的主页),还代表这个资源的表示形式(例如主页目前的 HTML 代码,作为编码字符)是可以从名为 www.webifysolutions.com
的网络主机通过 HTTP 得到的。
统一资源名称(URN) 也是一种 URI,根据特定名称空间中的名称来标识资源。可以用 URN 表示资源,而不用指明资源的位置或者如何取消对它的引用。例如,URN urn:ISBN:1-0-7666-98-0
是一个 URI,像 ISBN 图书编号一样,它允许您谈到一本书,但是并未指明在哪里能实际得到它的拷贝和如何得到。
描述数据的标准语法:RDF
RDF
是一个规范,它定义了表达世界的模型,定义了序列化和交换这个模型的语法。W3C 已经开发了 RDF 的 XML 序列化。RDF XML 是语义
Web 上 RDF 的标准交换格式,虽然它并不是惟一的格式。例如,Notation3 是可以替代 RDF XML 的一种优秀的纯文本序列化方式。
RDF
提供了一致的、标准化的方式来描述和查询 Internet
资源,资源从文本页面和图片一直到音频文件和视频剪辑。它提供了句法的互操作性,还提供了构建语义 Web 的基础层。RDF
定义了关系的导向图。这些是由对象-属性-值三元组表示的 —— 即对象 O 拥有属性 A,属性 A 的值是 V。
清单 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,公司的电子邮件地址是 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)。这些数据操纵工具越标准化、越广泛,句法互操作性的程度就越高,那么使用语义 Web 方式取代点对点集成解决方案就越容易,也越有吸引力。
要获取全套 W3C RDF Schema 数据模型和规范,请参阅 参考资料。
描述数据项目间关系的标准机制:使用 OWL Web 存在论语言的存在论
在多个应用程序可以真正理解数据并把它当作信息之前,语义的互操作性是必需的。语义互操作性就是正确地解析数据。它要求术语间的映射,映射又要求内容分析。
这个内容分析要求正式和明确的域模型规范,规范定义了使用的术语和它们的关系。这类正式的域模型有时叫做存在论。存在论用类、子类和属性来定义数据模型。
使
用 W3C 推荐的 OWL Web 存在论语言,可以表示存在论。OWL(存在论工作语言)添加了比 RDF 或 RDF Schema
更多的词汇来描述属性和类:除了其他东西之外,它还能描述类之间的关系(比如剥离)、
基数(例如“确切的一”)、等价、更丰富的属性类型化,以及属性的特征(比如对称性)。
OWL Web
存在论语言设计用于的应用程序,不仅仅是向人类呈现信息,更需要处理信息的内容。OWL 既提供了正式的语义,又提供了附加的词汇,所以比起
XML、RDF 和 RDF Schema,对 Web 内容实现了更好的机器互操作性。OWL 有三个子语言:按表现能力降序排列,分别是 OWL Full、OWL DL、 和 OWL Lite。
-
OWL Web 存在论语言的总和叫做 OWL Full。OWL
Full 使用 OWL 语言的所有原始材料,并允许这些原生材料按任意方式与 RDF 和 RDF RDF Schema 组合。OWL Full
完全向上兼容 RDF,从句法上和语义上都兼容:任何合法的 RDF 文档也都是合法的 OWL Full 文档。要让推理软件支持 OWL Full
的每个特性是不太可能的,因为它提供了最大的表现力和 RDF 的句法自由,但是在计算上没有保证。
-
OWL DL 支持的用户需要在不损失计算完整性的前提下得到最大表现力。OWL DL 是 OWL Full 语言构造的子语言,但是有一些限制,比如类型分离 (例如,类不能还是个体或属性,而属性不能还是个体或类)。
-
OWL Lite 支持的用户需要分类层次结构和简单的约束特性。这个语言的优势在于理解和实现起来比前两个语言都容易;但是,它限制了表现力。例如,虽然 OWL Lite 支持基数约束,但是只支持基数值 0 或 1。
存在论的例子包括:Amazon.com 这样的在线购物站点的目录,UNSPSC (用于产品和服务的术语体系)这类特定域的标准术语体系,或者 Web 上各种各样的分类,比如“My Yahoo”分类。
接下来,我将进一步研究 OWL 的组成部分。
OWL Web 存在论语言的组成部分
OWL 基本组成部分包括类、属性 和个体,下面将依次介绍它们。
类
类 是 OWL 存在论的基本构建块。类是域中的概念。类通常构成分类的层次结构(子类-超类的层次结构)。
类是用 owl:Class
元素定义的。OWL 自带了两个预定义的类:owl:Thing
和 owl:Nothing
。owl:Thing
是最通用的类,它包含任何东西;owl:Nothing
是一个空类。所有自定义的类都是 owl:Thing
的子类,是 owl:Nothing
的超类。银行领域的类的例子可能包括 Account
或 Customer
。
清单 2 展示了 OWL 类的一个示例。
清单 2. OWL 类示例
<owl:Class rdf:ID="SavingsAccount"> <rdfs:subclassOf rdf:resource="#Account"/> </owl:Class>
|
清单 2 中的代码指定 SavingAccount
是一个类,而且是 Account
的子类。
OWL 支持 6 种主要的描述类的方式。最简单的一种是命名 类。其他方式是交叉 类、联合 类、补充 类、限制 类和 枚举 类。清单 2 演示了两种描述类的方式:限制把 SavingAccount
定义为命名类 Account
的子类。要获得全套 W3C OWL 类规范,请参阅 参考资料。
属性
属性有两大类:
-
对象属性,它把个体关联到其他个体。
-
数据类型属性,它把个体关联到数据类型的值,比如 integer、float 和 string 类型。Owl 利用 XML Schema 定义数据类型。
属性可以有关联的域和范围。每个属性可以属于以下一个类别:
-
功能的: 对于给定对象,属性只能有一个值。例子包括人的年龄、身高或体重。
-
反转功能的: 两个不同个体不能拥有相同的值。例如,
bankNumber
或 SSN
属性对每个人来说都是惟一的。
-
对称的:如果某个属性把 A 链接到 B,那么就可以推断 B 链接到了 A。对称属性的例子包括:“兄弟”或“相同”。
-
传递的:如果某个属性把 A 链接到 B,而 B 链接到 C,那么可以推断它也把 A 链接到了 C。例如,如果 A 比 B 高,B 比 C 高, 那么 A 比 C 高。
可以对类和属性应用不同的限制。例如,基数限制指定某类个体可以参与的关系的数量。
要获得全套 W3C OWL 规范,请参阅 参考资料。
个体
个体 是类的实例,属性可以把一个个体关联到其他个体。例如,可以把名为 Smith
的个体描述为 Person
类的实例,而且可能用 hasEmployer
属性把 Smith
关联到个体 Webify Solutions
,表明 Smith 是 Webify Solutions 的员工。
清单 3 提供了 OWL 个体的一个示例。
清单 3. OWL 个体
<owl:Thing rdf:about="SmithAccount"> <rdfs:type="#Account"/> </owl:Class>
|
rdf:type
是一个 RDF 属性,它把个体绑定到一个数字类。清单 3 表明 SmithAccount
是类型 Account
的一个实例。
图 2 表示了 OWL 存在论的基本构造块。
图 2. 描述 Webify Solutions 组织的 OWL 存在论
存在论的商业价值
IT 系统用关系数据模型、扁平文件、面向对象模型或专用的数据模型来组织意义。变化的业务需求不断地要求向关系数据模型或面向对象模型中添加新实体和关系。
而
且,如果组织采用了许多由不同开发商提供的应用程序,那么可能要在应用程序的数据库之间重复相同的模型。例如,银行公司提供了不同的产品,以服务不同类型
的客户。企业客户可能需要欺诈检测功能,而普通客户可能只使用在线银行功能。一般会有多个开发商为银行提供应用程序,但是每个应用程序都会在应用程序特定
的数据库中重复同样的公共信息 —— 帐户、客户,等等。当组织增加产品以满日益增长的业务需求时,相同的冗余信息就散落在整个企业中。
对于所有这些正在开发的应用程序来说,绝对有许多服务是公共的 —— 例如查看银行交易和电汇。每个服务都要用每种应用程序特定的方式重复,从而导致点对点的集成。
如
果银行采用了存在论驱动的方式,那么银行就可以用一种语言中立的形式来捕捉并表示它整体的产品知识,并把知识部署到中央仓库。使用这种共享的、适应性的存
在论,组织可以跨越应用程序,提供单一而统一的数据视图。这种统一的视图支持信息的精确检索和无缝的企业集成,同时业务过程和不同的数据源可以通过一个公
共的元模型彼此相互映射。这样,共享的存在论就消除了点对点集成,并简化了应用程序的集成,减少了数据冗余,在应用程序之间提供了相同的语义,从而方便了
银行的维护与升级。
语义 Web 对万维网的好处
万维网是有史以来创建的最大的信息仓库,而且各种语言和各个知识领域的内容还在不断增长。但是,从长远看,让这种内容有意义是极端困难的。搜索引擎可能会
帮助找到包含特定词语的内容,但是内容可能并不是您确切想要的。那么缺少什么呢?搜索是基于页面内容的,而不是基于页面内容或页面信息的语义。
一
旦语义 Web 存在,它就能够提供为 Web
内容做标记的能力,可以描述各部分内容是关于什么的,并给内容的项目提供语义。这样,搜索引擎会变得比现在更有效率,用户也会精确地找到所要寻找的信息。
提供不同的服务的组织可以给这些服务标记上意义;使用基于 Web 的软件代理,就可以动态地发现这些服务,并利用它们或让它们与其他服务协作。
语义技术在 SOA 中的角色和价值
要
想正确地建模和管理面向服务的架构(SOA),企业架构师必须维护企业可用服务的活动表示。具体来说,要发现和组织他们的服务,架构师就必须采用最佳实
践,用元数据来建模和组织他们的服务,把业务逻辑封装在元数据中进行动态绑定,并用元数据进行管理。存在论提供了非常强大和灵活的方式,可以聚合、可视化
和规范化这个服务元数据层。
存在论就是概念、关系和约束的网络,为数据、信息以及过程提供了上下文。存在论增强了服务发现、建
模、汇集、协调和语义互操作性。它们改善了人们浏览、探索复杂的元数据空间以及和它们交互的方式。业务存在论是业务概念和它们之间关系的正式规范,促进了
机器的推理和判断。业务存在论用元数据把系统捆绑在一起,非常像数据库把离散的数据片断绑在一起。这一抽象提供了敏捷性和灵活性,因为接口可以改变,新的
资源和订阅者可以容易地加入,即使系统正在运行也可以。
语义是面向服务集成的未来。语义技术提供了超越现有 IT
技术的抽象层,它支持跨越业务和 IT
领域之上的数据、内容和过程的沟通与互联。最后,从人类交互的角度来说,语义技术添加了新一级语义门户,比起目前使用的传统的点对点集成方式的基于门户的
信息发布,提供了更加智能、更加相关、上下文更敏感的交互。
结束语
在
这篇文章中,您了解了构成语义 Web 技术的核心标准,以及为什么企业可能要采用这些技术。利用语义 Web
技术,组织可以跨越应用程序提供单一而统一的数据视图,这可以支持信息的精确检索,简化企业和 SOA
集成,减少数据冗余,并在应用程序之间提供一致的语义。所有这些会简化整个企业的开发、维护和升级。
参考资料
学习
获得产品和技术
关于作者
|
|
|
Naveen
Balani 把自己的大部分时间花在设计和开发基于 J2EE 的框架和产品上。他为 IBM developerWorks
撰写了各种不同的文章,涉及的主题包括:ESB、SOA、JMS、Web 服务架构、CICS、AXIS、DB2、XML
Extender、WebSphere Studio、MQSeries、Java Wireless Devices and DB2
Everyplace for Palm、J2ME、MIDP、Java-Nokia、Visual Studio
.Net,以及无线数据同步。可以通过他的电子邮件 naveenbalani@rediffmail.com 与他联系。
|