语义万维网的概念、方法及应用
朱礼军 1 陶兰 2 黄赤 3
(1,2 中国农业大学 信息与电气工程学院 北京 100083)
( 3 石油干部管理学院计算中心 北京 100086 )
(zhulj@sina.com)
摘要
近两年来,语义万维网(semantic web)的研究逐渐引起了知识表示、逻辑编程、信息系
统集成、web 开发等各个领域的广泛关注。本文作者在研究万维网环境下的领域知识表示及
语义共享模式的过程中,阅读了大量有关语义万维网的文献资料。作者认为,语义万维网的
研究将对传统 web 上信息的发布、存储和处理方式产生一场变革,但是语义万维网的概念、
思想、和方法还处于形成阶段,国内少有综述性的文献,对语义万维网及其相关技术的认识
比较模糊。本文分析了语义万维网的起源、概念、技术框架、总结了语义万维网及相关工具
的现状,并讨论了语义万维网技术在智能信息检索、企业间数据交换、知识管理以及万维网
服务中的应用。
关键词
语义万维网、资源描述框架、知识表示、本体
abstract
Research on semantic web has aroused more and more interests in the filed of knowledge
representation, logic programming, information integrating and web developing communities in
recent two years. The author reads a mount of materials on semantic web during the research on
web-based domain knowledge representation and semantic sharing model. The author predicates
that the research on semantic web will revolutionize the method of information publication,
storage, and process. But the concept, ideas and the tools are still in the forming phase and there is
no or very little overview material. This paper analyzes the origin, concept and framework of the
semantic web. The paper also provides a roadmap for semantic web developing tools and discuses
its relationship with Intelligent Information Retrieve, Data Interchange in Enterprise, Knowledge
Management and Web Service.
keywords
Semantic web、RDF/S、Knowledge Representation 、Ontology
1
1. 前言
万维网创始人 Tim Berners-Lee 将万维网的演化分为两个阶段[1],在第一个阶
段,万维网应该是一个有利于人们相互合作的强大工具。万维网最初十年的发展
基本上实现了这个目标:它以 HTML 页面的方式向人提供了大量的信息。在第
二个阶段,这种合作应该延伸到机器。也就是说,连接到万维网上的机器也应该
能够分析万维网上的所有数据——包括内容、链接以及人与机器之间的交互。如
何实现万维网的第二阶段目标正是目前学术界研究的热点。实现这一目标的难点
在于传统的 HTML 语言本身的固有缺陷,这种标记语言的标签集只是对内容的
显示格式做了标记,数据的表现格式和数据糅合在一起,缺乏针对数据内容的标
签[2]。HTML 语言的这种特点决定了万维网上的信息内容很难被机器所理解,从
而制约了一些需要对万维网上的海量数据进行自动化处理应用的开发。例如:搜
索引擎很难在查准率和查全率这两方面有所突破,搜索到的页面也只是和搜索关
键字相匹配的页面,造成一方面遗漏大量内容相关的页面,另外一方面找到太多
不相关页面[3];一些对万维网页面内容的提取程序只能针对特定站点的固定格
式,从中提取一些感兴趣的信息,如果站点的格式稍有变化,内容提取程序也要
做相应的调整[4]。虽然近年来在自然语言处理(NLP)、机器学习等领域对文本内
容的理解等方面做出了大量的努力,提出了基于概率、向量空间等各种方法来加
强对文本相关性的理解,但是从效果上看,还很难让人满意[5]。Web 上海量的数
据要求以一种能够理解数据语义的方式进行交换和管理,当前基于HTML的 web
技术却很难满足要求。
近年来出现的万维网新标准——可扩展标记语言(eXtensible Markup
Language, XML)最大的特点在于用户可以根据需要制订能够反映数据内容的标
签,实现数据内容和数据表现方式的分离[6~9]。XML 及其相关的技术,使传统万
维网上的信息内容从面向人浏览转为同时面向计算机自动处理迈出了非常重要
的一步。面向计算机自动处理的前提是机器可以理解数据的内容或者说对描述了
数据内容的一些概念的理解。人类理解了某个事物意味着他能够将这个事物与其
它早已熟知的事物相联系,而机器能够理解某个概念是指机器能够执行一些和这
个概念相关的查询或其它操作。语义万维网就是一个由大量机器可以理解的数据
所构成的一个分布式的体系结构,在这个体系结构中,数据之间的关系通过一些
术语表达,这些术语之间又形成一种复杂的网络联系,计算机能够通过这些术语
得到数据的含义,并且可以在这种联系上应用逻辑来进行推理,从而完成一些原
来不能直接完成的工作。
本文第二小节分析了语义万维网的概念、起源以及它和传统的人工智能知
识库系统(Knowledge Base System, KBS)之间的区别。第三小节分析了语义万维
网的基本技术框架,重点解释了语义万维网框架中的组成部分并剖析了这些组成
部分之间的联系以及它们在整个框架中的作用。第四小节总结了当前语义万维网
的支持工具及 ontology 语言的研究现状,介绍了进行语义万维网应用开发的一些
可用的工具和框架,第五小节讨论了语义万维网技术在智能信息检索、企业间数
据交换和知识管理以及万维网服务中的应用。
2
2. 语义万维网的概念和起源
什么是语义万维网并没有一个严格的定义,Tim.Berners-Lee 对语义万维网做
了如下的描述[10]:语义万维网并不是一个孤立的万维网,而是对当前万维网的扩
展,语义万维网上的信息具有定义良好的含义,使得计算机之间以及人类能够更
好的彼此合作。根据上面的描述,我们可以给语义万维网做出这样的定义:机器
可以理解数据含义的下一代万维网,称之为语义万维网,语义万维网中的语义表
示计算机对某一个概念、术语或者符号可以理解的“含义” 。
从语义万维网的发展起源来看,语义万维网是人工智能领域和 Web 技术相互
结合的产物。人工智能领域中的知识工程研究从孤立的知识库系统逐渐发展到基
于 intranet、extranet 的信息系统集成,最后扩展到整个 Internet,在这个研究过
程中,逐渐加深了对知识表示和推理的认识,并总结出了一些新的描述和推理方
法。另一方面,万维网经过十几年的发展,积累的海量数据需要一种新的,机器
可以自动完成的方式来处理和管理。因此,当两个领域的积累都比较成熟,而且
有了需求,就必然会走向结合。
从上面的分析,我们可以得出结论:语义万维网建立的基础,是知识的概念
化和形式化以及相应的推理,并且它和人工智能有着深厚的渊源关系。因此,许
多分析都需要从人工智能领域的角度来考察。但是由于两者的应用环境不同,还
存在着一些差异。例如:从人工智能的逻辑学派和认知学派的观点来看,知识与
概念化是人工智能的核心[11]。传统的人工智能系统,要求共同遵守一些公共概念
的完全一致的定义,并且一般都有它们各自狭义的,特有的用于信息推理的规则
集合。尽管数据能够从一个系统转换到另一系统,但由于系统间的推理规则通常
以完全不同的形式存在,而致使一个系统的规则不能用于其他系统。从这一点上
来看,传统的人工智能系统是一种集中、孤立(专有)的系统[10]。同样,语义万
维网也是以知识的概念化表示为基础展开的。语义万维网中的知识,就是一系列
对资源的建模及描述。资源,是一个非常广泛的概念,它可以是网站、网页、甚
至网页的某一个部分的内容。这种描述采用某种形式的符号和表达式对Web 上的
与该资源相关的其它资源,以及这些资源之间关系进行刻画。但是,和传统的人
工智能系统不同,语义万维网的知识表示的特殊性在于,它本身要符合 Web 的
分散性和通用性。知识的表示本身可能是由众多的独立团体或个人,以各种各样
的方式来提供[12],而这些知识却又要求能够被各种各样的应用实现共同理解,
并且在一定的逻辑规则的指导下进行推理。所以语义 web 上的知识具有创建上
的分散性,同时又具有应用上的通用性。这是语义 web 和传统的人工智能系统
的一个非常重要的区别。
本文后面的小节中,我们将详细地分析语义万维网的组成部分及其功能,从
中我们可以更为清楚地看出它和传统的人工智能知识库系统之间的联系和区别。
3. 语义万维网的组成
3.1 语义万维网层次图
由于语义万维网的知识表示具有创建上的分散性,同时又具有应用上的通用
3
性,所以需要一个统一的框架,这
个框架应该能够满足这种分散性以
及由这种分散性所带来的安全性,
满足这些知识跨应用、跨领域的可
互操作性。Berners-Lee 在 XML2000
大会上描述了这个体系结构(如图 1
所示)。下文对这个框架从底层到高
层,逐层地介绍了每一个部分的概
念和功能。
3.2 URIs 和 Unicode
Web 环境下的应用之间不可避免地需要相互通信,直接或间接地以机器可读
的格式传递发布信息。这些信息中很大一部分是对 Web 上资源的描述,因此,
首先应该以明确的方式来标识这些资源(对象)。语义万维网采用统一资源标识符
(Uniform Resource Identifiers, URI)来标识资源及其属性,URI 是一个 Internet 标准,
记载于 RFC2396[13]。它和万维网常用的统一资源定位符(Uniform Resource Locator,
URL)以及统一资源名称(Uniform Resource Name,URN)的区别在于 URI 泛指所有以
字符串标识的网络资源,包含了 URL 和 URN。另外由于语义万维网的最终目的
是要构建一个全球信息的网络,在这个网络上应该涵盖各种语言和文字的信息资
源,所以它采用统一编码 Unicode 作为字符的编码方案。这一层是整个语义万维
网的基石,它成功地解决了万维网上资源的定位和跨地区字符编码的标准格式的
问题。
3.3 XML、NameSpace、XML Schema
在 URI 和 Unicode 之上,是 XML 及相关技术层。XML 允许用户根据需要
自定义一些“有意义的” 标签对发布的内容进行标记,并使用文档类型定义
(Document Type Definition, DTD)或 XML Schema 来约束这些标签的结构[6~9]。由
于 XML 标签可以由用户根据自己的需要来定制,这样不可避免地会造成标签同
名的情况,为了避免这样的冲突,W3C 采用了 NameSpace 机制[8]。例如:用户
可以制定
标签:
它表明这个标签是在 K 所代表的 NameSpace:
http://foo.bar.com/xml/customer.dtd
中详细指明。这样即使其它人也自定义了标签,只要它们的 NameSpace
不同,也不会造成冲突。因此,这一层通过 XML 的特性,实现了文档对自身结构
的描述,实现了跨应用的语法互操作层,这是传统的 HTML 语言所无法完成的。
有一点值得注意,这个标签对人来说很容易理解,但是对计算机而言,
XML 标签和 HTML 标签没有本质上的区别,因为计算机并不能真
正理解 XML 标签的含义。也就是说,XML 是底层的数据交换格式,它
只是解决了文档内容的次序、结构的问题,并没有解决文档内容的语义、联系的
问题。标签的具体含义的定义和互操作要交给上一层去解决。
4
3.4 RDF、RDF Schema
XML 层的上一层是数据互操作层——资源描述框架(Resource Description
Framework , RDF)和 RDF schemas。RDF 本身并没有规定语义,但是它为每一个
资源描述体系提供一个能够描述其特定需求的语义结构的能力。从这个意义上来
说,RDF 是一个开放的元数据框架[14~17]。这个元数据框架定义了一种描述机器
可理解的数据语义的数据模型。该数据模型主要包含下面的三个对象类型:
• 资源(Resources):资源可能是整个网页;网页的一部分;或页面的全部集
合;或者是不能通过 web 直接访问的对象。
• 特性(Properties):特性是描述某个资源特定的方面、特征、属性或关系。
• 声明(Statements): 一个特定的资源和特性名称加上该特性的值一起构成
了一个 RDF 声明。
一个声明中的这三个部分分别称为:主体(subject)、谓词(predicate)和对象
(object)。从本质上说,RDF 定义 object-property-value 三元组作为基本建模原语
并为它们引入了标准的语法。如下例所示:
T i m B e r n e r s - L e e
上 面 的 例 子 声 明 了 http://www.faqs.org/rfcs/rfc2396.html (subject) 的 author
(predicate)为 Tim Berners-Lee(object)这样的事实。但是,RDF 所提供的都是
一些非常基本的建模原语。例如,上面的例子中并没有阐明 author 这个词汇应该
有哪些约束(author 应该是人)以及 Tim Berners-Lee 是作者的名称这样的事实。要
描述这样的事实,我们需要有更多能够表达语义的原语(primitive),RDF Schema
规范用 RDF 进一步定义了建模原语[18]。RDFS 中主要的类、特性和约束如下:
• 核心类 包括 rdfs:Resource、rdf:Property 以及 rdfs:Class。所有用 RDF 表
达式所描述的事物都被看成是 rdfs:Resource 的实例。Rdf:Property 是用来
刻画 rdfs:Resource 实例的所有特性的类。最后,rdfs:class 用来定义 RDFS
中的概念(concepts)。
• 核心特性 包括 rdf:type、rdfs:subClassOf 和 rdfs:subPropertyOf。Rdf:type
关系建立了资源和类之间的 instance-of 关系的模型。Rdfs:subClassOf关系
建立了类之间的包容层次模型。rdfs:subPropertyOf关系建立了特性之间的
包含层次关系模型。
• 核心约束 包括 rdfs:ConstraintResource、rdfs:ConstraintPropety、rdfs:range
和 rdfs:domain。 Rdfs:ConstraintResource 定义了所有约束的类。
Rdfs:ConstraintProperty 是 rdfs:ConstraintResource 和 rdf:Property 的子集,
它包括了所有用来定义约束的特性。
5
RDF Schema 机制提供了 RDF 模型中使用的一个基本类型系统。这个类型系
统有些类似于面向对象
的编程语言。从描述逻辑
(Description Logic,DL)
的观点来看,RDFS 相当
于 TBox(Terminology
Box),而 RDF 相当于
ABox ( Assertion Box)。
RDF 和 RDFS 共同描述
前面事实所用到的结构。
如图 2 所示。
RDF 和 XML之间的
关系一直是一个容易混
淆的问题,它们之间有着
明确的功能分工:RDF 解决如何无二义性地描述资源对象的问题,使得描述的
资源的元数据信息成为机器可以理解的信息。RDF 通过基于 XML 语法的明确定
义的模型来帮助建立语义协定(RDFS)和语法编码(XML)之间的桥梁,并以此来实
现元数据的互操作能力[19]。这部分解决了语义模型、和部分通用语义的问题,
但是 RDF/RDFS 描述语义的功能非常有限,需要进一步的扩展。
3.5 Ontology
RDF Schema 可以定义类、子类、超类,并且可以定义特性和子特性,以及
它们的约束如:领域(domain)和范围(range) 等,因此,在某种意义上说, RDF
Schema 本身就是一种简单的本体(ontology)语言。但是 RDF/RDFS 对特定应用领
域的词汇的描述能力比较弱,需要进行扩展,我们把这个 RDF/RDFS 之上的扩
展层称为 ontology 层。各种文献中对 ontology 的解释和用法有许多差异,T.
R.Gruber 等人[20] 对 ontology 给出的定义比较适用于语义万维网的研究:ontology
是一种明确的共享概念化的形式说明。概念化是指对现实世界中的一些事物进行
抽象建模,所建立的模型确定了该事物的一些相关的概念。明确意味着所使用概
念的类型以及它们使用上的约束都有显式的定义。形式说明则是指ontology 应该
是机器可以理解的。共享反映了这样的一种理念:ontology 表达双方都认可的知
识,也就是说,ontology 并不会仅仅局限于某些个体,而应该被一个群体所接受。
Fensel, D 等人认为[21]:ontology 逐渐引起人们重视的原因在于 ontology 能够在
人们和应用系统之间达成对术语含义的共享和共同理解。而对同一概念的语义共
享和共同理解恰恰是构建语义万维网的关键。
这一层在 RDF Schema 进行基本的类-特性描述之后,更进一步地描述了术
语和它们之间的联系,并且可以利用一些Ontology语言,如 SHOE[22] (Simple Html
Ontology Extensions)、OIL[23] (Ontology Inference Language)、DAML[24] (DARPA
Agent Markup Language)等,来对领域知识进行建模,定义一些面向领域的共享
词汇。
6
3.6 Logic、Proof &Trust
到目前为止,利用 RDF/RDFS 以及对 RDFS 进行扩展的一些 ontology 语言
可以对 Web 上的资源内容做出描述。仅有这些描述还远远不够,基于语义的web
应用还需要根据特定的规则从这些描述性的知识中进行推理。逻辑层的目标就是
提供一种方法来描述规则[25]。描述逻辑标记语言 (Description Logic Markup
Language, DLML )就是这样的一种方法,它用 DTD 封装了描述逻辑中的逻辑连
接词[26],可将基于描述逻辑的形式化知识嵌入到被描述的文档之中。
针对语义万维网上的各种不同类型的应用,逻辑层可能会采用多种逻辑语言
的实现形式,这一点就和互联网中的 TCP/IP 协议的模型中的每一层都会针对不
同的硬件和软件系统采用不同的实现类似。
Proof 和 Trust 这部分内容在概念上目前还没有一个成熟的说法。但是语义万
维网的研究者普遍认为 Proof 和 Trust 将是下一代 Web 的重要概念[27]。总的来说,
语义万维网环境下的应用在事实的基础上,通过应用逻辑推理,得出某种结论。
这种推理的每一步对用户来说,都应该是可见的,或者说应该是可查的。这个推
理的过程,就是一种证明,推理最后得出得结论也应该是可以信任的。首先我们
应该可以信任所见的数据,并且可以信任所做的推理过程,只有在这个基础上才
能最终信任我们得到的结论。
然而,就我们所见的数据而言,前面介绍的 RDF 模型允许任何人对任何资
源进行任何描述,不同观点的人对同样的资源可能会做出完全相反的描述。正是
因为 RDF 模型这种强大的描述能力,才有必要对这种描述进行身份认证并确保
声明没有被篡改。因此在 SW 的层次体系结构中,从 RDF 层以上,所有对资源
的描述都贯穿了数字签名技术[28]。数字签名技术就是对资源描述者的身份进行
认证的关键性技术,是建立可信任网页的基石。建立可以信任的推理过程需要一
个证明语言,证明语言提供了一种方法来描述我们从事实开始到得出结论中间的
步骤。这些证明步骤可以被验证、传递。文献[29]中给出了一个运用证明语言来
验证某个结论的例子。
在 XML、RDF\RDFS、Ontology 以及 Logic 层和 Proof 层之上,我们就可以
建立一些可以信任的应用了。
4 语义万维网开发的工具
前面的小节介绍了语义万维网技术的整体框架及其重要的组成部分,语义万
维网能否取得成功的关键因素在于是否有充足的工具来帮助开发人员建立体现
其价值的应用。本节将对支持语义万维网开发的工具现状做一个总结。当前的支
持工具主要可以分为两类:开发底层的应用编程接口(API)来向上层具体应用屏
蔽实现细节,降低语义万维网应用的开发难度;针对 RDF\RDFS 的不足进行扩
展,开发出基于不同逻辑的 ontology 语言及相应的支撑工具。
4.1 RDF 应用编程接口
有关 XML 的解析工具和各种语言的 API 接口,国内已经有许多文献报道,
这里就不再赘述。下面仅介绍一些 RDF API 的讨论和开发状况,文献[30]比较详
细地讨论了 RDF API 的模型和接口规范,目前实现的RDF API 主要有 GINF [31]、
Redland[32]、Jena[33] 、Mozila[34] 、RDF.net[35] 等。
7
通用互操作框架,GINF,使用 RDF 作为协议、语言、数据和接口的通用表
示。它使用的 RDF 接口不仅可以创建和操作 RDF 模型,而且还可以通过一个类
似 SQL 的查询界面来访问这些模型。在某种程度上,该接口是 W3C RDF 兴趣
小组推荐的 RDF API 建议的基础。
Redland 是支持高层面向对象的 RDF 接口库。Redland 用它自己的类实现了
每一个 RDF 概念。Redland 的模块化,面向对象的本质使得终端的用户能够插入
各种不同的解析器和合适的存储机制。Redland 提供了 C 语言的接口。
Jena,是由惠普公司开发的 Java RDF API。它同时支持以声明和资源为中心
的 RDF 模型的操作。并且在 Jena 所提供的工具箱中还提供了对 DAML ontology
的支持,但是目前只能对 ontology 进行一些简单的推理。
Mozilla 作为开放源代码 Web 浏览器的一部分而开发的 Mozilla API ,提供
了用 SWI-Prolog 实现的 RDF 解析器。
RDF.NET 是一个为 Microsoft.NET 平台解析和处理 RDF 模型的框架。目前
它只包含了 RDFReader 类,据称将来的版本将包括 RDFModel 类,通过该类应
用能够编程在内存中操作和查询 RDF 声明。
4.2 语言扩展
针对 RDF 在语义表示方面的不足,一些研究团体提出了不同的 ontology 语
言来描述万维网资源的语义。ontology 表示语言可以回溯到早期 AI 领域中的框
架语言及 IDEF(ICAM DEFinition method, IDEF)建模方法研究[36]。然而,设计一
种万维网上的 ontology 表示语言的有关努力则是近些年才开始。文献[37]认为适
用于万维网环境的 ontology 至少应该满足下面的一些要求:语义共享、演化能力、
可交互性、一致性检测、表示能力和扩展能力的平衡、易于使用、与其它标准的
兼容、语言国际化等。目前,这一领域最重要的成果就是 Ontobroker[38],SHOE[39],
OIL[23]、DAML-ONT[40],以及最近代替了 DAML-ONT 的 DAML+OIL[41]。
Ontobroker 语义基于框架逻辑,语法采用普通的 HTML 规范。框架逻辑的
规则可以使用谓词逻辑的连接词(蕴涵、析取、合取、非)来建立,变量可以是全
称量词或存在量词,因此表达能力比较强,但是在扩展能力方面有些不足,因此
适用范围应该是企业内联网。
SHOE 通过对 HTML 进行扩展来在 HTML 页面的头部或尾部加入一些基于
ontology 的元数据来对页面的内容进行标注。这种标注和页面的内容是分离的。
SHOE 采 用 Horn 逻 辑 作 为 它 的 规 则 语 言 , 表 达 能 力 和 基 于 框 架 逻 辑 的
Ontobroker 类似。
在这些 ontology 语言中,后面的三种语言在语义上都是基于描述逻辑,语法
则是以 RDF(S)为基础。OIL 的设计目标之一就是和 RDF 保持最大限度的兼容。
DAML 的前身是 DAML-ONT,后来改为了 DAML,OIL 和 DAML-ONT 的不同
点在于 RDF Schema 代理对于这两种语言所描述的 ontology 的内容所能理解的
程度,OIL 有更大的对 RDF 的向后兼容性。在 Time Berners-Lee 和 Fensel 等人的
努力推动下,DAML 结合了 OIL 的一些优点,形成了 DAML+OIL,它被认为是
最有潜力成为语义万维网的标准语言。
将来的 Web 应该是以机器可以理解的信息和服务为特征的语义万维网-真正
实现机器间合作的自由空间。但是可以预见将来万维网上的大多数ontology 不会
是由少数人工智能专家创建的形式非常规整的 ontology,而是和当前的万维网类
似,比较混乱;不会是大量用户共享的少量、复杂、协调的 ontology,而是和当
前创建万维网内容的方式相同,由用户开发大量小型的 ontology 组件。这些
8