语义网(一) 概述

Download Report

Transcript 语义网(一) 概述

语义网(Semantics Web)
语义网概述
 RDF
 本体
 语义网描述语言

语义网概述
什么是语义网
 语义网体系结构
 当前语义网的主要研究内容

什么是语义网


语义网不是一个独立的网络,而是当前的这个网络的
扩展。在语义网中信息被赋予了明确界定的意义、从
而能更好地使计算机和人协调工作。把语义网纳入现
有网络结构中的首批步骤已经在着手进行之中。在不
远的将来.计算机处理并“理解”那些现今它们只能显示
的数据的能力将会大大提高,这样语义网建设的进展
就将有助于创造出引人注目的全新功能。
[Tim Berners-Lee(Web和语义网的创始人), 语义
网——科学美国人,2001]
要点
◦ 是当前Web的延伸;
◦ 加入计算机可以理解的语义
什么是语义网

起源:目前Web的缺陷。HTML仅仅用
以表示数据显示的布局,HTML所表达
的页面信息和组织方式,主要面向用户
直接阅读,没有将信息的表现形式、内
在结构和表达内容相分离,没有提供计
算机可读的语义信息,因而非常不利于
计算机直接阅读和处理。
什么是语义网
契机:90年代中期,XML的出现,将数据的
内容与布局区分开来,为语义更丰富、更自
然的网上内容表达打开了新的局面。
 语义网的目标是:为Web上的信息提供具有
计算机可以理解的语义,从而满足智能代理
(Agent)对Web上异构、分布信息的有效检
索和访问,实现网上信息资源在语义层上的
全方位互联,并在此基础上,实现更高层的
基于知识的智能应用。

语义网概述
什么是语义网
 语义网体系结构
 当前语义网的主要研究内容

语义网体系结构

在学术界,Tim Berners-Lee提出的语义网层
次结构如图所示。该结构从底层到高层依次
为Unicode(统一字符编码)和URI
(Universal Resource Indicator,统一资源定
位符)、XML、RDF和RDF Schema(简称
RDFS)、本体(Ontology)、逻辑(Logic)、
验证(Proof)和诚信(Trust)。在语义网七
层结构中的XML、RDF和Ontology三层,主
要用于表示Web的语义,因而是系统的核心
和关键所在。此外,数字签名用来检测文档
是否被篡改过,以证实其真实可靠性。
与语义网有关的标准和技术
规则
诚信
数据
能自描述
的文献
验证
数据
逻辑
实用分类系统词表
资源描述框架
可扩展置标语言
名域
国际码
数
字
化
签
名
资源描述框架结构
可扩展置标语言结构
统一资源标识
语义网体系结构

Unicode和URI层
Unicode和URI是整个语义Web的
基础,其中Unicode处理资源的编码,
保证使用的是国际通用字符集,实现网
上信息的统一编码。URI是URL
(Universal Resource Locator)的超集,
URI支持语义网上的对象和资源的精细
标识,从而使精确信息检索成为可能。
语义网体系结构

XML+Name Space+XML Schema层
XML层具有命名空间(Name Space)
和XML Schema(XML模式)定义,通
过XML标记语言将网上资源信息的结构、
内容与数据的表现形式进行分离,确保
语义网的定义,并支持与其他基于XML
的标准进行无缝集成。
语义网体系结构

RDF+RDF Schema层
该层用于描述万维网上的资源及其
类型,为网上资源描述提供了一种通用
框架和实现数据集成的元数据解决方案。
最底层的URI标识网上的对象,RDF和
RDFS层则可对URI标识的对象进行陈述
(Statement)。
语义网体系结构

本体层
该层用于描述各种资源之间的联系,本
体揭示了资源本身以及资源之间更为复杂和
丰富的语义信息,从而,将信息的结构和内
容相分离,对信息作完全形式化的描述,使
网上信息具有计算机可理解的语义。因为本
体定义了不同概念间的关系,所以本体层能
够对字典(或词汇,Vocabularies)的变迁提
供支持。
语义网体系结构
逻辑层
逻辑主要提供公理和推理规则,为
智能推理提供基础。该层用来产生规则。
 验证(Proof)
证明注重于提供认证机制,证明层
执行逻辑层产生的规则,并结合信任层
的应用机制来评判是否能够信赖给定的
证明。

语义网体系结构

诚信(Trust)
顶层的诚信注重于提供信任机制,
以保证用户代理Agent在网上进行个性
化服务和彼此间交互合作时,更安全与
可靠。
当前语义网的主要研究内容

XML
XML允许用户加入任意结构到他们的
文档但没有指明这种结构的意义是什么。

RDF
◦ 把意义编码在“三元组”集合中:实体有可以
赋值的属性
◦ 实体、属性和值都有截然不同的URI
当前语义网的主要研究内容

本体(ontology)
◦ 数据库A和数据库B可以用不同的字段来容纳‘邮政
编码’
◦ 本体拣选输出
◦ Ontology = ‘一个文档或文件,它形式化定义术语
之间的关系’

代理(Agent)
“基于计算的代理出现是作为一个适当的范例,
它工作在一个复杂的世界里,用多个本体、片段和
多个推理引擎。”
语义网(Semantics Web)
语义网概述
 RDF
 本体( Ontology )
 语义网描述语言

资源描述框架(RDF)
RDF基础
 RDF/XML
 RDF Schema

RDF基础
什么是RDF
 RDF的基本思想

什么是RDF
RDF(Resource Description Framework),
资源描述框架
 资源描述框架(RDF)是由W3C开发的一个资
源描述规范。其最初的目标就是解决不同元
数据的互操作问题。
 资 源 描 述 框 架 (Resource Description
Framework, 简称 RDF)是一个用于表达关于
Web资源的元数据,比如Web页面的标题、作
者和修改时间,Web文档的版权和许可信息,
某个被共享资源的可用计划表等。


在“Web资源(Web resource)”这一概
念一般化后,RDF可用于表达关于任何
可在Web上被标识的事物的信息,即使
有时它们不能被直接从Web上获取。比
如关于一个在线购物机构的某项产品的
信息(例如关于规格、价格和可用性信
息),或者是关于一个Web用户在信息
递送方面的偏好的描述。
RDF不仅用于显示信息,更重要的是用于信息
的处理,RDF提供了一种用于表达信息、并使
其能在应用程序间交换而不丧失语义的通用
框架。
 既然是通用框架,应用程序设计者可以利用
现成的通用RDF解析器(RDF parser)以及通
用的处理工具。
 能够在不同的应用程序间交换信息意味着对
于那些并非信息的最初创建者的应用程序也
是可利用这些信息。

RDF并不直接定义自己的元数据语词,
相反,它提供一个框架,在这一个框架
内,可以利用其它元数据的元素对资源
的语义进行描述。
 换句话说,RDF本身并不对各种不同的
元数据进行语义定义,而是提供一种框
架体系,使不同的人能够在这一框架下
定义他们自己的元数据的元素。

RDF使用了XML语言,RDF在XML基础之上,
以一种标准的、能够相互操作的方式揭示数
据的深层语义。
 RDF和XML是相互补充的。RDF主要关注于
元数据模型的建立,而有关编码方式、字符
集等等方面的问题,RDF依赖于XML。
 还 应 当 了 解 到 , 基 于 XML 的 RDF 仅 仅 只 是
RDF 的 一 种 应 用 模 式 , 除 XML 语 法 之 外 ,
RDF还允许有其它的语法模式。



目前来看,RDF已成为元数据处理的基础,它提供
应用程序间的互操作能力,可以在Web上实现机器
能够“理解”的信息交换。
RDF强调对Web资源的自动化处理机制,可以应用
于许多领域:
 如应用于资源发现领域,以提高搜索引擎的性能;
 应用于编目领域,可以对Web站点、页面、数字图书馆的内容进
行揭示,并对各种相关关系进行描述;
 应用于智能软件代理之中,促进知识的共享和交换;
 应用于内容评价,可以保护儿童或使自己的私有权利不被侵犯;
 应用于知识的组织,使这些页面能够成为合乎逻辑的一篇文章;
 描述Web页面的知识产权;
 表述用户或网站的隐私保护权利。

W3C甚至认为RDF和数字签名是创建“诚信Web”的关
键技术,它将被应用于电子商务、网际合作等相
关领域。
RDF基础
什么是RDF
 RDF的基本思想
 RDF的三元模型

RDF的基本思想

RDF基于这样的思想:
◦ 用Web标识符(称作统一资源标识符,
Uniform Resource Identifiers或URI)来
标识事物
◦ 用简单的属性(property)及属性值来描
述资源。
◦ 这使得RDF用资源标识-属性类型-属性值这
样的表示模型来定义一个或多个关于资源。
◦ 这种模型就是RDF的三元模型
RDF的三元模型
RDF可以将一个或多个关于资源的简单陈述表
示为一个由结点和弧组成的图(graph),其
中的结点和弧代表资源标识、属性类型或属性
值。
 对于某一资源的描述,我们可以用自然语言进
行描述。例如“资源
http://www.example.org/index.html 的创建
者是John Smith”
 这一句话可以用资源标识-属性类型-属性值三
元组的方式进行表示如下:

 资源标识,也就是句子描述的对象是
http://www.example.org/index.html
 属性类型,也就是资源的属性是Creator
 属性值,也就是资源属性的值是John Smith

资源-属性类型-属性值关系图
Creator
http://www.example.org/index.html
John Smith
这是一个由两个节点和一条弧线构成的图,其中一个节点是资源,另
一个节点是属性值,弧线从资源指向属性值,表明资源具有某一属性
类型的属性值。

从另一个角度来看,语句“资源
http://www.example.org/index.html 的创建
者是John Smith”这一句话可以由主语、谓语、
宾语构成。其中:
◦ 主语是URL http://www.example.org/index.html
◦ 谓语是词"creator"
◦ 宾语是"John Smith“

在RDF中,
◦ 用于识别事物的那部分就叫做主语
◦ 用于区分语句对象主语的各个不同属性(譬如:作
者,创建日期,语种等等)的那部分叫做谓语
◦ 用于区分各个属性的值的那部分叫做宾语

尽管这种主语、谓语、宾语关系和自然语言
语法中的主语、谓语、宾语关系还不完全一
样,但这足以构成RDF存在的逻辑基础:
◦ 语句可以对资源进行描述;
◦ 语句由主语、谓语、宾语组成;
◦ 语句中的主语、谓语、宾语可以被一个可被标识
的资源,此资源的属性描述(如名称、创建时间、
出版者等)和资源的属性值所替代。
◦ RDF基于资源标识-属性类型-属性值的三元模型提
供了对资源进行描述的框架。

RDF的三元模型可以对资源进行描述,但为了
使其能够被计算机处理,还需要考虑:
◦ 一整套计算机可以处理的标识,这些标识能够对
所描述的资源、属性类型和属性值进行标识,并
且使这些资源标识、属性类型和属性值具有一个
明确有指示意义,没有二意性,这个标识符系统
不会和其他人可能在Web上使用的相似的标识符系
统混淆
◦ 一种计算机可以处理的语言,以描述这一模型,
并且可以在应用系统之间交换这些信息。

第一个问题(一整套计算机可以处理的标识)
◦ RDF使用了URI和命名空间作为其标识机制(用于
标识陈述中的主体、谓词和客体)的基础。
◦ 更准确地说,RDF使用的是URI参照( URI引用)
(URI references)
◦ 一个URI参照(或“URIref”)是一个在尾部附加了
可选的“片段识别符(fragment identifier)”的URI。
比如,URI参照(URIref)
http://www.example.org/index.html# section2由URI
http://www.example.org/index.html 和(由符号#分
隔的)的section2 (片段标识符)组成。

第二个问题(一种计算机可以处理的语言)
◦ 为了用一种机器可处理的(machine-processable)
方式来表示RDF陈述(RDF statements),RDF采
用了XML
◦ XML允许任何人来设计他们自己的文档格式,并
可用这种格式书写文档。
◦ RDF定义了一个特殊的XML标记语言(称为
RDF/XML)来表示RDF信息和在机器间交换这些
信息。
( URI参照)
 例如上例子中的资源、属性类型和属性
值,可以用下面的URI参照表示如下:

◦资
源
http://www.example.org/index.html
◦ 属性类型
http://purl.org/dc/elements/1.1/creat
or
◦ 属性值
http://www.example.org/staffid/85740

如果利用了URI参照,则上面的图也应当改为:
http://www.example.org/index.html
http://purl.org/dc/elements/1.1/creator
http://www.example.org/staffid/85740
在前一个图中,利用了方形来表示属性值
“John Smith”,而在后一个图中,则利用椭
圆来表示属性值
“http://www.example.org/staffid/8574”。
 二者不同之处在于John Smith是常量值(在
RDF中,被称为文字值,literal),而
http://www.example.org/staffid/8574是一
个URI参照。
 在RDF中,属性值可以是URI参照或常量值。

在RDF中,利用URI参照的好处是能够非常明确
地表示语句的主题,例如使用了
http://www.example.org/staffid/85740,而
不是John Smith,它能够明确地表明,此页面
的创建者不是字符串“John Smith”,也不是成
千上万个名为“John Smith”的人,而是一个与
特定URI参照相关的John Smith。
 另一方面,由于这是一个指向特定John Smith
的URI参照,因此,它其实也是一个完全具备
其它资源所具有的属性的资源,我们可以增加
信息,以进一步描述这个John Smith(这个资
源)。所做的工作仅只需将指向John Smith的
URI参照作为一个需要描述的对象即可,如下
图中,我们增加了对John的名字和年龄的说明。

http://www.example.org/index.html
http://purl.org/dc/elements/1.1/creator
http://www.example.org/staffid/85740
http://www.example.org/terms/name
John Smith
http://www.example.org/terms/age
27
(RDF/XML)
 为了使RDF便于计算机处理,RDF利用了XML语
言作为支持。实际上RDF是XML语言的一个特
殊应用,它遵守XML的语法规则,这种基于
XML语法的RDF被称为RDF/XML。
 正如前面我们所说的,RDF本身不定义元数据
元素(语词体系),在RDF/XML中,为了唯一地
引用某一元数据(如DC、P3P或PICS)的元素,
RDF充分借助了XML名字空间。名字空间的应
用,使得我们可以用更加简洁的方式描述RDF
中资源、属性类型和属性值的唯一性。

使用了名字空间的XML元素被称为XML修
饰名(XML Qualified name,Qname)。
 Qname由一个指向名字空间URI的前缀,
紧接一个冒号(:),再接一个名字空
间中的本地名称组成。


完全的URI参照可以用Qname进行表示。例如
上例中的属性类型
◦ http://purl.org/dc/elements/1.1/creator

在这种情况下,可以将DC作为一个前缀指定
给名字空间为
◦ Xml:DC= http://purl.org/dc/elements/1.1/

则DC:creator就能够代表指向
http://purl.org/dc/elements/1.1/creator
的URI参照 。

下面是几个比较著名的名字空间
◦ 前缀rdf:,名字空间URI:
http://www.w3.org/1999/02/22-rdf-syntax-ns#
◦ 前缀rdfs:,名字空间URI:
http://www.w3.org/2000/01/rdf-schema#
◦ 前缀dc:,名字空间URI:
http://purl.org/dc/elements/1.1/
◦ 前缀owl:,名字空间URI:
http://www.w3.org/2002/07/owl#
◦ 前缀xsd:,名字空间URI:
http://www.w3.org/2001/XMLSchema#

针对上例,我们再定义两个名字空间前缀:
◦ 前缀 ex:, 名字空间URI:
http://www.example.org/
◦ 前缀 exstaff:, 名字空间 URI:
http://www.example.org/staffid/

则上面的URI参照例子就可以简写为:
◦ 资源 ex:index.html
◦ 属性类型dc:creator
◦ 属性值 exstaff:85740
在上图中,利用了两个文字值来表示资源的姓
名和年龄。其中“John Smith”和“27”是两种不
同类型。“John Smith”是字符类型,而“27”是
数值类型。
 为了更确切地表示文字值的类型,RDF引入了
类型文字值(typed literal)的概念。RDF类
型文字值由字符串和URI参照组成,其中的URI
参照唯一标识了一个特定的数据类型。例如上
图中的“27”,可以表示如下:

◦ "27"^^http://www.w3.org/2001/XMLSchema#intege
r

如果采用了Qname的方式,可表示为:
◦ "27"^^xsd:integer
至此可以看到,RDF本质上很简单,它是由节
点和弧线组成的图,通过URI参照,能够被解
释成为对某个事物的某些特性的说明。
 另外,在这一模式中,需要提供一种方法来
唯一地描述资源、属性类型、属性值以及属
性值的类型。URI参照的应用,提供了这种描
述的唯一性。在实际应用中,通过Qname来替
代URI参照。

资源描述框架(RDF)
RDF基础
 RDF/XML
 RDF Schema

RDF/XML
如上所述, RDF的概念模型是节点和弧
线组成的图。
 RDF提供了一个XML语法以实现RDF模型
的记录和交换,被称为RDF/XML。
RDF/XML是书写RDF的规范语法。
 在本节中,将对RDF/XML语法进行说明。


我们还以“资源
http://www.example.org/index.html 的创建
者是John Smith”这一个句子为例。对于这一
个句子,可以利用RDF表示如下:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#"
xmlns:dc="http://purl.org/dc/elements/1.1/ ">
<rdf:Description
rdf:about="http://www.example.org/index.html">
<dc:creator >John Smith</dc:creator>
</rdf:Description>
</rdf:RDF>

这是一个XML文件。对于这个例子,需要注意
三点:

(1)
根元素RDF
◦ 这个根元素以及其它所有的RDF元素通常都放在
http://www.w3.org/1999/02/22-rdf-syntax-ns#
名字空间中 , 这个名字空间要么利用前缀rdf引
用,要么被设置成为缺省名字空间。如果使用显
示前缀的方式,则空的RDF元素如下所示:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22rdf-syntax-ns#" >
<!- rdf:Description element will go here>
</rdf:RDF>
◦ 如果使用缺省名字空间,则表示如下。
<?xml version="1.0"?>
<RDF xmlns ="http://www.w3.org/1999/02/22rdf-syntax-ns#" >
<!- rdf:Description element will go here>
</RDF>

(2)描述元素Description
◦ 谈及RDF的statement时,显而易见, statement
是一种“description(描述)”。并且,它是一种
“about(有关)”语句主体的描述。RDF/XML采用了
rdf:about 属性来指定主体资源的URIref。
◦ 在RDF/XML中,Description元素的出现表示对资
源描述的开始,被描述的资源由Description元素
的“about”进行唯一标识。而资源的其它属性元素
被嵌套在Descrition元素之内,表示这些属性是
“about”所指示资源的属性。
<rdf:Description
rdf:about="http://www.example.org/index.html">
<dc:creator >John Smith</dc:creator>
</rdf:Description>

在上面的片段中,表示
http://www.example.org/index.html 所指示资
源的创建者是John Smith。

(3)名字空间
◦ RDF本身不定义自已的元数据语词,它通过
URI参照利用其它元数据的语词来对资源属
性进行说明。
◦ 在RDF/XML中,利用名字空间来实现URI参
照。如例子中的creator元素,就是引用了
DC元数据元素,它在根元素中,通过
xmlns:dc=”http://purl.org/dc/elements
/1.1/” 语句指明。

以下是更多的实例

对资源多个属性的描述
◦ 下面的例子,增加了另一个名字空间,对资源的多个属性进
行了描述。
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description
rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16,1999</exterms:creation-date>
<exterms:language>English</exterms:language>
<dc:creator
rdf:resource="http://www.example.org/staffid/85740"/>
</rdf:Description>
</rdf:RDF>

注意,在dc:creator元素中,使用了空
元素,在这个空元素中,使用了
rdf:resource属性,指出属性元素的值
是另一个由URI参照指定的资源。

文字值类型的使用
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description
rdf:about="http://www.example.org/index.html">
<exterms:creation-date rdf:datatype=
"http://www.w3.org/2001/XMLSchema#date">1999-08-16
</exterms:creation-date>
</rdf:Description>
</rdf:RDF>

在上面的例子中,使用了文字值类型,在
exterms:creation-date属性元素中,增加了
一个rdf:datatype属性,这一属性的值是一个
指向一个日期类型的URI参照。

多资源描述
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description
rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
</rdf:Description>
<rdf:Description
rdf:about="http://www.example.org/index.html">
<dc:language>en</dc:language>
</rdf:Description>
</rdf:RDF>

容器的使用
◦ 当RDF元素使用同类型的多个属性来描述一
个资源时,容器就可以将这些属性组织起
来。
◦ 例如描述一门课程有多个学生上课时,各
个属性具有相同的属性类型,但各自的属
性值各不相同。在RDF中,利用容器,可以
整体上描述这一组同属性的元素,同时还
可对各属性值之间的关系进行揭示。
◦ RDF 定 义 了 三 种 类 型 的 容 器 : rdf:Bag ,
rdf:Seq,rdf:Alt。其中
 Bag容器中的属性没有先后顺序
 Seq容器中的属性需要按顺序排列
 Alt容器中的属性只能任选其一
◦ 下面的例子,描述 “课程Course 6.001的
学 生 有 Amy, Mohamed, Johann, Maria 和
Phuong”这样一个句子。
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#"
xmlns:s="http://example.org/students/vocab#">
<rdf:Description
rdf:about="http://example.org/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li
rdf:resource="http://example.org/students/Amy"/>
<rdf:li
rdf:resource="http://example.org/students/Mohamed"/>
<rdf:li
rdf:resource="http://example.org/students/Johann"/>
<rdf:li
rdf:resource="http://example.org/students/Maria"/>
<rdf:li
rdf:resource="http://example.org/students/Phuong"/>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
其中用到<rdf:Bag>容器。<rdf:Bag>
元素被嵌入在<s:students> 属性元素
之内,对于<rdf:Bag> 元素内的各个子
元素,以rdf:li元素进行进行描述。元
素rdf:li取自于HTML中的list item之
意。
 <rdf:Seq>容器与<rdf:Bag>容器的用法
相似,不同之处在于<rdf:Seq>中的各
个子元素是以一定的顺序出现的。


下例是一个使用了容器rdf:Alt的例子。
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#"
xmlns:s="http://example.org/packages/vocab#">
<rdf:Description
rdf:about="http://example.org/packages/X11">
<s:DistributionSite>
<rdf:Alt>
<rdf:li rdf:resource="ftp://ftp.example.org"/>
<rdf:li rdf:resource="ftp://ftp1.example.org"/>
<rdf:li rdf:resource="ftp://ftp2.example.org"/>
</rdf:Alt>
</s:DistributionSite>
</rdf:Description>
</rdf:RDF>

它表示“X11的源代码可以被在
ftp.example.org, ftp1.example.org,或在
ftp2.example.org”上找到。
资源描述框架(RDF)
RDF基础
 RDF/XML
 RDF Schema

RDF Schema
RDF Schema概述
 类及其描述
 描述属性

RDF Schema概述
通过已经命名的属性类型和属性值,RDF提供
了一种简单的方式对资源进行说明。但是,
在某些情况下,用户希望能够根据需要自定
义一些词汇,然后用这些词汇来描述资源。
 这些词汇表明用户正在描述某种资源,并且
会采用某些特定的特性来描述。RDF本身并不
能针对特定应用需求来定义一些类和特性。
这些类和特性被称为RDF词汇,它们需要通过
RDF词汇描述语言:RDF Schema(RDF的一种
扩展语言) 来定义。

例如某个经营帐篷的公司,需要对帐篷的型
号、重量、包装、大小进行描述的时候,需
要定义一个类来描述帐篷,定义一些属性来
描述帐篷的型号、重量、包装大小等。
 RDF本身并不能够定义这种针对特定应用的类
和属性,但是这种类和属性可以被当成是RDF
的语词进行描述,当然这需要对RDF进行扩展,
而这种扩展是由RDF语词描述语言——RDF
Schema提供的。

RDF Schema是RDF的语义扩充。
 RDF Schema本身也不是具体去指定一个
针对应用的语词体系,如上面所的帐篷、
型号、重量、包装大小等,实际上,它
提供一种机制去描述这些类和属性,并
指明这些类和属性之间的种种关系,例
如什么哪些类具有哪些属性,哪些属性
需要一起应用等等。

另一方面,RDF Schema为RDF提供了一个类型
系统。
 RDF Schema的类型系统可能与面向对象语言
中的程序设计语言相似,例如RDF Schema认
为资源是一个或多个类的实例。另外,RDF
Schema也可以以一种层次化的结构来组织类。
例如ex:Dog(狗)类可以作为ex:Mammal(哺
乳动物)的子类。但是,RDF类和属性在某些
地方与程序设计中的类和属性有很大的差异。
我们将在后面看到。

RDF Schema 所具有的这些能力本身也
是以 RDF词汇形式提供的。也就是说,
这些RDF 词汇是一组带有特殊含义的、
预定义的RDF资源。
 这些资源的(RDF Schema词汇)URI带
有前缀
http://www.w3.org/2000/01/rdfschema# (QName通常采用前缀
rdfs:)。

采用RDF Schema 语言所定义的词汇描述
(schemas)也是合法的RDF图。
 因此,即使一个软件不是专为处理新加的RDF
Schema词汇而开发的,它仍然可以将schema解
释为一个包含了各种资源和特性的合法RDF图
 但是这个软件并不能“理解”新添加的RDF
Schema术语的内在含义。
 为了理解新加术语的含义,RDF 软件必须能够
处理一种扩展语言。这种扩展语言不仅仅包含
rdf:前缀的词汇,而且还包含了rdfs:前缀的
词汇,以及这些词汇的内在含义。

类及其描述

最基本的描述过程是标识需要描述的事物,
通常是从划分被描述事物的种类开始的。RDF
将这些事物的种类称之为类。
◦ RDF Schema中的类相当于某类事物的总体概念,
如同Java程序中的类一样。RDF类可以代表几乎所
有事物,如Web页面、人、文件类型、数据库或其
它抽象概念。

类的描述使用RDF Schema中的:
◦ 资源(rdfs:Class和rdfs:Resource),和
◦ 属性(rdf:type和rdfs:subClassOf)
◦ 在RDF Schema中,首先要确定类,属于某一类的具
体资源是这个类的实例。
◦ 在RDF Schema中,一个类是任何具有rdf:type属性、
并且该属性的值为rdfs:Class的资源。
◦ 如描述一个交通工具的类,并为这个类指定一个URI
参照为ex:MotorVehicle,则需要指出这个类的
rdf:type属性为rdfs:Class。如:
 ex:MotorVehicle
rdf:type
rdfs:Class
◦ rdf:type用于指示资源是类的一个实例。因此,在
定义了一个类ex:MotorVehicle之后,资源
exthings:companyCar可以通过RDF语句被描述作一
种交通工具。
 exthings:companyCar
rdf:type
ex:MotorVehicle
◦ 在RDF Schema中,rdfs:Class本身也是资源,而
且也有一个rdf:type属性并且该属性的值为
rdfs:Class。一个资源可以是一个或多个类的实
例。
◦ 我们还可以对更特殊的交通工具进行描述,如可
以将卡车、货车的资源作为一个类进行描述。
 ex:Van
 ex:Truck
rdf:type
rdf:type
rdfs:Class
rdfs:Class
◦ 类与类之间的特化关系(specialization
relationship)可以用预定义的属性
rdfs:subClassOf来描述。例如,可以通过编写下
面这条RDF声明来描述ex:Van是一种特殊的
ex:MotorVehicle
 ex:Van
rdfs:subClassOf
ex:MotorVehicle
◦ 如果资源ex:MiniVan是ex:Van的一个实例, 如:
 ex:MiniVan
rdf:type
ex:Van
◦ 则可以推断ex:MiniVan同样是ex:MotorVehicle的
一个实例。

下面是以RDF/XML书写的交通工具Schema
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/schemas/vehicles">
<rdf:Description rdf:ID="MotorVehicle">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="PassengerVehicle">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="Van">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="MiniVan">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#Van"/>
<rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdf:Description>
</rdf:RDF>
描述属性
除了描述特定的类之外,用户团体还需要能
够描述特定的事物的某些属性(如MiniVan的
座位数)。
 在RDF Schema中,利用RDF类rdf:Property以
及RDF Schema的rdfs:domain, rdfs:range和
rdfs:subPropertyOf,可以对属性进行描述。
 在RDF中,所有的属性都是类rdf:Property的
实例。对于新的属性,可以通过指定其
rdf:type为rdf:Property URI参照进行声明。
如

 exterms:weightInKg
rdf:type
rdf:Property

除了rdf:Property 之外,RDF Schema还提供
了语词以描述在RDF数据中如何对类下的属性
进行声明。其中最重要的是利用RDF Schema
的rdfs:range和rdfs:domain属性,来进一步
描述应用程序专用的属性。

rdfs:range属性用来指定某一属性值是某个
类的一个实例。例如,当需要指定属性
ex:author的值是ex:Person的实例时,需要
按以下的RDF进行声明。
 ex:Person
 ex:author
 ex:author
rdf:type
rdf:type
rdfs:range
rdfs:Class
rdf:Property
ex:Person
◦ 一个属性可以有多个range,如下所示:
 ex:hasMother
 ex:hasMother
rdfs:range
rdfs:range
ex:Female
ex:Person

对于上面的ex:hasMother属性,如果指定了
下面的语句
◦ exstaff:frank
ex:hasMother
exstaff:frances
◦ 则表示exstaff:frances同时是ex:Female 和
ex:Person的实例。

rdfs:range属性还可以用于指示属性值是一
个类型文字值。例如,如果指定ex:age是一
个属性,并且其值为XML Schema的数据类型
xsd:integer,则可以用以下RDF语句声明。
 ex:age
 ex:age
rdf:type
rdfs:range
rdf:Property
xsd:integer
◦ 其中XML Schema中的xsd:integer数据类型,还可
以用RDF Schema的类rdfs:Datatype进行显性的说
明。如下所示:
 xsd:integer
rdf:type
rdfs:Datatype .

rdfs:domain属性用于指定特定的属性适用于某个特
定的类。例如如果需要指出属性ex:author适用于类
为ex:Book的实例,则可利用以下RDF语句进行说明:
 ex:Book
 ex:author
 ex:author
rdf:type
rdf:type
rdfs:domain
rdfs:Class
rdf:Property
ex:Book
◦ 这些语句说明ex:Book是一个类,ex:author是属性,并且属
性ex:author是ex:Book实例的一个属性。
◦ 一个属性也可以有多个domain,如下例表明exterms:weight
属性可以适用于 ex:Book 和 ex:MotorVehicle类。
 exterms:weight
 exterms:weight
rdfs:domain
rdfs:domain
ex:Book
ex:MotorVehicle

在此,可以利用range和domain来为
MotorVehicle增加新的属性:
ex:registeredTo和 ex: seatNumber,
◦ ex:registeredTo 属性适用于任何
ex:MotorVehicle并且其值为ex:Person。
◦ ex: seatNumber适用于ex:PassengerVehicle,它
的值是一个xsd:integer,表明座位数。
◦ 其RDF语句片段如下所示:
<rdf:Property rdf:ID="registeredTo">
<rdfs:domain rdf:resource="#MotorVehicle"/>
<rdfs:range rdf:resource="#Person"/>
</rdf:Property>
<rdf:Property rdf:ID="seatNumber">
<rdfs:domain rdf:resource="#PassengerVehicle"/>
<rdfs:range rdf:resource="&xsd;integer"/>
</rdf:Property>
<rdfs:Class rdf:ID="Person"/>
<rdfs:Datatype rdf:about="&xsd;integer"/>

RDF Schema通过rdfs:subPropertyOf属性,
可以指定两个属性之间的关系。例如
ex:primaryDriver 和 ex:driver都是属性,
并且属性ex:primaryDriver是属性
ex:driver的一个特例,可以用RDF声明如下:
 ex:driver
 ex:primaryDriver
rdf:type
rdf:type
rdf:Property.
rdf:Property
 ex:primaryDriver
rdfs:subPropertyOf
ex:driver

下面是交通工具Schema的完整声明
<?xml version="1.0"?>
<!DOCTYPE
rdf:RDF
[<!ENTITY
xsd
"http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/schemas/vehicles">
<rdfs:Class rdf:ID="MotorVehicle"/>
<rdfs:Class rdf:ID="PassengerVehicle">
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Van">
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="MiniVan">
<rdfs:subClassOf rdf:resource="#Van"/>
<rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Person"/>
<rdfs:Datatype rdf:about="&xsd;integer"/>
<rdf:Property rdf:ID="registeredTo">
<rdfs:domain rdf:resource="#MotorVehicle"/>
<rdfs:range rdf:resource="#Person"/>
</rdf:Property>
<rdf:Property rdf:ID="seatNumber">
<rdfs:domain rdf:resource="#PassengerVehicle"/>
<rdfs:range rdf:resource="&xsd;integer"/>
</rdf:Property>
<rdf:Property rdf:ID="driver">
<rdfs:domain rdf:resource="#MotorVehicle"/>
</rdf:Property>
<rdf:Property rdf:ID="primaryDriver">
<rdfs:subPropertyOf rdf:resource="#driver"/>
</rdf:Property>
</rdf:RDF>

以上说明了如何利用RDF Schema描述类和属
性。如何利用这个Schema来描述资源?下面
是一个描述ex:PassengerVehicle实例的例子:
<?xml version="1.0"?>
<!DOCTYPE
rdf:RDF
[<!ENTITY
xsd
"http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax-ns#"
xmlns:ex="http://example.org/schemas/vehicles#"
xml:base="http://example.org/things">
<ex:PassengerVehicle rdf:ID="johnSmithsCar">
<ex:registeredTo
rdf:resource="http://www.example.org/staffid/85740"/>
<ex:seatNumber
rdf:datatype="&xsd;integer">5</ex:
ex:seatNumber >
<ex:primaryDriver
rdf:resource="http://www.example.org/staffid/85740"/>
</ex:PassengerVehicle>
</rdf:RDF>
语义网(Semantics Web)
语义网概述
 RDF
 本体(Ontology)
 语义网描述语言

本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

Ontology的概念
Ontology 本来是,哲学中研究 ‘being’的性质
及其内在关系的理论;ontology 是一种元理论,
它的理论让人们在认识上,能够区别开那些
本来是不同的beings,区别开beings之间关系
的差异。
 Ontology is the theory of objects and their ties .
An ontology is a specification of a
conceptualization
 An Ontology 是在一定知识范围内,对所谈
论的一组概念,对它们给出一种语义约定。

我们所说的Ontology来自人工智能的研究,被
用于促进知识的共享和重用。
 自20世纪九十年代以来,Ontology成为了一个
被知识工程、自然语言处理、智能信息系统、
知识管理等多个研究领域共同关注的一个重要
概念。
 Ontology是对某一领域可共享的、通用的理解,
其目标是使知识能够在人与人之间、人和系统
之间、以及各种异构系统之间进行广泛的交流。
 创建Ontology的目标就是提供一种机器可以处
理的信息资源语义描述机制,使得知识语义能
够在不同的智能代理(软件和人)之间传递和
交流。在一个知识系统中,问题解决方法描述
推理行为,而Ontology描述静态的领域知识。


近十几年来,关于Ontology的定义有多个。最
能描述Ontology本质的是斯坦福大学的Gruber
在1993年的定义:
◦ Ontology是一个对共享概念的形式化的、显性的规
定。
◦ “概念”指的是对现实现象的抽象
◦ “显性的”意味着对概念的类型、以及对概念的应用是
显性定义的
◦ “形式化的”意味着Ontology应当是机器可读的
◦ “共享”意味着一个Ontology揭示着广泛共享的知识,
也就是说,一个Ontology不仅仅被几个个体接受,
而需要被一个群体所接受的。

本质上讲,Ontology在知识工程中的角色在于
促进一个领域模型的建设。一个Ontology提供
了某个领域模型内语词和相互关系的描述。

其它定义
◦ Neches et al.(1991)指出:“一个本体定
义了组成主题领域的词汇的基本术语和关
系,以及用于组合术语和关系以定义词汇
的外延的规则。” 该定义只是给出了建立
一个本体的基本要素,即:要建立一个本
体,首先要识别所处理领域的基本术语和
这些术语之间的关系,而后识别组合这些
术语和关系的规则,并提供这些术语和关
系的定义。
◦ William 和Austin(1999)指出,本体是用
于描述或表达某一领域知识的一组概念或
术语,可用于组织知识库较高层次的知识
抽象,也可用来描述特定领域的知识。
◦ Chandrasekaran 等人(1999)认为本体是属
于人工智能领域中的内容理论,它研究特
定领域知识的对象分类、对象属性和对象
间的关系,为领域知识的描述提供术语。
从以上不同研究者的定义,可以看出本
体涉及到的概念为:术语(词汇)、术
语关系、规则、概念化、形式化的规格
说明、领域知识、表达和共享。
 可见,本体就是通过对于概念、术语及
其相互关系的规范化描述,勾画出某一
领域的基本知识体系和描述语言。

本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

Ontology的作用
(1) 本体可以在不同的建模方法、范式、
语言和软件工具之间进行翻译和映射,以实
现不同系统之间的互操作和继承。
 (2) 从功能上来讲,本体和数据库有些相
似。但是本体比数据库表达的知识丰富得多。
首先,定义本体的语言,在词法和语义上都
比数据库所能表示的信息丰富得多;最重要
的,本体提供的是一个领域严谨丰富的理论,
而不单单是一个存放数据的结构。

(3) 本体是领域内重要实体、属性、过程
及其相互关系形式化描述的基础。这种形式
化的描述可成为软件系统中可重用和共享的
组件。
 (4) 本体可以为知识库的构建提供一个基
本的结构。以描述对象的类型而言:有简单
事实及抽象概念,这些可以描述成一个本体
的静态实体部分,它们主要描述的是事物或
概念的各个组成部分以及这些组成部分之间
的静态联系;本体也可以描述事物或概念的
运动和变化。应用本体,知识库就可以运用
这类结构去表达现实世界中浩如烟海的知识
和常识。

(5) 对于知识管理系统来说,本体就是一
个正式的词汇表。本体可以将对象知识的概
念和相互间的关系进行较为精确的定义。在
这样一系列概念的支持下进行知识搜索、知
识积累、知识共享的效率将大大提高,真正
意义上的知识重用和知识共享也能成为现实。
 (6) 本体适合表示抽象的描述。而企业模
型是人们对企业或者企业的某些模型的抽象
描述,因此在企业逻辑建模中,本体的使用
可以帮助我们清楚地理解企业特定领域的相
关元素、关系和概念,让知识表达更加准确
便捷,帮助人们进行更好的企业决策。


本体在语义Web 和其它很多领域都有着
广泛的应用。本体的最大贡献在于它可
以将某个或多个特定领域的概念和术语
规范化,为其在该领域或领域之间的实
际应用提供便利。
本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

Ontology的类型

有组织的对象的集合可被认为是本体
(Wiederhold& Jannink, 1999)
◦
◦
◦
◦
目录和索引(信息获取领域)
E-R模型(数据库领域)
字典词典(计算语言学领域)
面向对象的类定义(软件工程领域)
本体分类

Uschold & Gruninger (1996) 和 Uschold (1996)分为三类
◦ 形式化程度




高度非形式化
结构非形式化
半形式化
严格形式化
◦ 目的
 通讯
 互操作
 系统工程 re-usability, knowledge acquisition, reliability, specification
◦ 描述对象
 特殊领域本体、一般世界知识本体
 问题求解本体、知识表示语言本体….等
本体分类

Guarino (1997)从两个方向为本体分类
◦ 细节的程度




元本体(frame ontology (Gruber, 1993a))
参考 (reference)本体
共享(shareable)本体
领域(domain)本体
◦ 独立的程度
 顶级(top-level)本体
 任务(task)本体
 应用程序(application)本体,
本体分类

Gomez-Perez & Benjamins (1999)
◦ 知识表示本体
(e.g 形式化本体 formal ontology)
◦ 常识本体
(e.g CYC ontology)
◦ 顶级本体(top-level) (e.g Sowa’s boolean lattice, PANGLOSS,
PenmanUpper Level, Mikrokosmos, WordNet upper level)
◦ metaontology/generic ontology/core ontology
(e.g., mereology ontology)
◦ domain ontology
(e.g., EngMath ontology, PhysSys, Enterprise,
TOVE, (KA)2, and so on)
◦ linguistic ontology (e.g., WordNet, Sensus, GUM)
◦ task ontology
(domain-task ontology, method ontology,
application ontology)

一种常用的分类
◦
◦
◦
◦
◦
通用本体(General Ontology)
领域本体(Domain Ontology)
任务本体(Task Ontology)
应用本体(Application Ontology)
Web Ontology

通用本体(General Ontology)
◦ 描述的是最普遍的概念及其概念之间的关系,如
空间、时间、行为、事件等,与具体的应用无关,
其它的Ontology均为其特例。

领域本体(Domain Ontology)
◦ 描述的特定领域中的概念及其概念之间的关系。

任务本体(Task Ontology)
◦ 描述的是特定任务或行为中的概念及概念之间的
关系。

应用本体(Application Ontology)
◦ 描述的是依赖于特定领域和任务的概念和概念之
间的关系。

Web Ontology

Web ontology:
◦ 为semantic web服务的ontology
◦ 表示语言:
 RDF schema
◦ 开放性 vs. 封闭性,
 整个web共享 vs. 系统内共享
 经常更新 vs. 系统建成后很少更新
本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

Ontology的组成

Gruber提出了一种四元素表示方法,
即一个本体中的四个主要元素是:
◦
◦
◦
◦
概念(concepts)
关系(relations)
实例(instances)
公理(axioms)

概念
◦ 概念表示某个领域中一类实体或事物的集合。通常
概念可以分成两大类,一类是简单概念(primitive
concepts),另一类是定义的概念(defined
concepts)。
◦ 简单概念是那些只有必要条件的类成员关系
(primitive concepts are those which only have
necessary conditions (in terms of their properties)
for membership of the class.)。
 例如:正方形是四个角都是直角的四边形。因此所有的正方
形的四个角都是直角,但允许一些四个角都是直角的四边形
不是正方形。
◦ 定义的概念是指关于一个事物是另一个类成员的既
充分、又必要的描述(Defined concepts are those
whose description is both necessary and sufficient
for a thing to be a member of the class.)。
 例如:“三好学生”是学习好、身体好、思想好的学生。三好
学生一定是学习好、身体好、思想好,而学习好、身体好、
思想好的学生就是三好学生。

关系
◦关系描述概念和概念的属性的交互
( Relations describe the interactions
between concepts or a concept‘s
properties.)。关系也可以分为两大类:一
种是树状分类学关系;另一种是联合关系。
◦ 分类学将概念组织成子类-超类状的概念树结
构 ( Taxonomies that organize concepts
into sub- super-concept tree structures.)。
最常见的分类形式是:
 专门化关系(Specialization relationships)通常
被认为是“××是一种××”的关系。例如:博士生是
研究生,而研究生是学生。
 部分关系(Partitive relationships)是描述一个概
念部分的是另一个概念。例如:部分博士研究生
是在职的工作人员。
◦ 联合关系是指树状结构概念之间的横向关系。
常见的联合关系如下:
 主格关系
 描述概念的名称(Nominative relationships describe the
names of concepts)。
 位置关系
 描述一个概念与其他概念的的相互位置关系(Locative
relationships describe the location of one concept with
respect to another)。
 结合的关系
 表示功能等(Associative relationships that represent, for
example, the functions, processes a concept has or is
involved in, and other properties of the concept)。
 还有一些其它的关系类型,如因果关系
(causative‘ relationships)、参照关系等。

与概念一样,关系也可以被组织成分类
树状的结构。关系也有属性,这些属性
可深入刻画、描述概念之间的关系。

实例
◦ 是概念表示的具体的事物,如:北京师范大学是概
念“大学”的一个实例。
◦ 严格的说,一个本体不应该包括任何实例,因为它
被假设为一个具体领域的概念化。一个本体与相关
的实例的组合就是我们如今所称呼的知识库
(knowledge base)。
◦ 然而判断一个东西是否是某个概念的实例实际上是
很困难的,通常它依赖于具体的应用。例如:化学
元素是个概念,钾是化学元素的一个实例。但是关
于钾是化学元素的一个实例的判定却是有争议的,
因为钾本身是一个概念,它表示不同的钾和钾的同
位素。这是本体研究中的一个重要问题。

公理
◦ 用来限制类和实例的取值范围,公理中包
括许多具体的规则和约束。
◦ 典型的是数据类型和取值范围
本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

开发Ontology的方法

一般过程
◦ (1)目标:确定ontology的目标,是为组织某一专业领域的知识
提供框架体系。
◦ (2)未加工的数据:这一步为ontology的构建提供未加工的数据。
在此,不止包含概念(例如:corn rootworm 玉米食根线虫、
peanut 花生、leaf 叶片),还有概念间的重要关系(例如:一种
特定害虫发生在一个叶片上,一种特定害虫引起一种特定的病
害)。
◦ (3)得到一份原始的词表清单:利用软件提取记号并完成简单
的统计计算,可以从未加工的数据中提取一份术语清单。应用统
计软件,可以得到出现在未加工文本中频率最高的记号样本。
 在这种分析中,被确定的术语也是用来构建ontology的概念基础。重
要的是区分术语,它们是用一种特定的自然语言表达的,还要区分表
达术语含义的概念。
◦ (4)鉴定、识别初始的分类法:利用前边确定的概念
清单形成初始的分类法。鉴定和识别对于维持分类法
的一致性很重要,分类体系的结构化需要调整每一个
概念。新概念(不是原始数据的一部分)的引入是为
了描述相关概念的类别。分类体系的顶部应该是最为
抽象的概念。
◦ (5)添加限制条件与公理:通过添加属性、属性限制
和公理表达的各个概念间的关系,分类体系中的概念
得到进一步的完善。例如,“plant”可以有“pest”属性,
这个属性必须是“pest”类目的成员。一种作物的组成部
分必须是“plant part”的成员。事件可以有描述代理和
对象的属性。
◦ (6)一致性检验:如果包含的关系集得到了正确的描述,
那么属性限制和公理集对于任何类的子类均为真。任何额
外的、强加在子类上的限制,必须与子类所继承的、对母
类的限制条件相一致。一致性可以得到自动检验。
◦ (7)ontology不断变化:当概念不断地添加进来,ontology
也随之变化。这种变化是一个可持续的过程。
◦ (8)评价ontology:部分观点认为,构建ontology的最初目
的一经满足,就算是完成了任务。在一个图像库ontology的
实例中,如果来自媒介汇编的图像通过附加在概念后得到
了分类,那么这个ontology还算是比较完备。通过查看用户
怎样利用这个ontology来定位特殊图像,可以进行相关评价。
本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

构建ontology的工具
Ontolingua Server (http://www.kslsvc.stanford.edu:5915)
 Ontosaurus
(http://www.isi.edu/isd/ontosaurus.html)
 WebOnto(http://webonto.open.ac.uk)
 PROTÉGÉ(http://protege.stanford.edu)
 OntoEdit(http://www.ontoprise.de/)


Ontolingua Server
◦ Ontolingua服务器和Ontosaurus提供的翻译程序能
够生成以期望的语言写成的ontology(第一版草
案) 。
◦ Ontolingua服务器是拥有最大的用户团体的工具。
其编写ontology的语言是Ontolingua语言。该工具
有一个保存ontology的文库,其中的ontology能够
被复用,以构建其它ontology,而且任何人均可向
文库中添加ontology并使它也可以被别人使用。因
此,世界各地不同的用户将能够协作构建ontology。
这种工具允许不同的用户在小组研讨会中同时对
一个ontology产生影响。除此之外,它还有良好的
教程软件。

Ontosaurus
◦ Ontosaurus是一个可以对用LOOM编写的知
识库进行浏览的Web浏览器。Ontosaurus的
文库中只有少量可以使用的ontology。
◦ 这种工具对初级用户来说不易于使用,且
一个ontology一次只能被一个用户编辑。
Ontology可以用不同的语言输入或输出。

WebOnto
◦ 用WebOnto构建的ontology是用OCML
(Operational Conceptual Modelling
Language:计算概念建模语言)编写的,
OCML是一种图形语言。WebOnto没有输
出功能,任何人一次只能编辑一个ontology
(当用户换人时这个ontology将被锁定)。

PROTÉGÉ
◦ PROTÉGÉ也拥有大型的用户团体,但是这
种工具只能局部安装。PROTÉGÉ v1.7能进
行ontology的创建,并且为了录入ontology
实例,系统会自动生成知识获取工具。
PROTÉGÉ没有协作或输出功能。对初级用
户而言,它非常易于使用,但它本身没有
ontology文库。PROTÉGÉ还提供ontology的
图形表达方法。

OntoEdit
◦ OntoEdit是分层构建ontology系统工程的工作平台,
是一种ontology工程环境,它利用图形手段支持
ontology的开发与维护。
◦ OntoEdit构建在一个强大的内部ontology模式之上。
这一内在的ontology模式可以通过XML的利用得到
串行化(一个接着一个),XML支持内部文档的
处理。
◦ OntoEdit的词形变化表尽可能地支持面向概念、关
系和公理的表达语言中立建模。包含在ontology中
的几种图形视窗支持ontology工程周期的几个不同
的建模阶段。
本体(Ontology)
Ontology的概念
 Ontology的作用
 Ontology的类型
 Ontology的组成
 开发Ontology的方法
 构建ontology的工具
 当前研究存在的问题

当前研究存在的问题

迄今为止,已有为数不少的ontology构建工
具和方法体系,但没有一个是完全成熟或者
已经拥有了权威团体客户的。因此,没有一
种成为现行标准。Web上也未出现一个非常成
熟完善的、可以进行真正的自然语言检索的,
基于ontology的语义检索工具。目前存在的
问题归结起来有以下几点:
◦ (1)缺乏构建Domain ontology(领域本体)的
成熟流程、方法和标准规范。
◦ (2)目前的很多基于ontology的系统其应用目的是
针对知识管理、语义网络和人工智能等方向,而针
对自然科学的ontology系统构建相对较少。这是由
于ontology的研究源于AI领域,而构建Domain
ontology不仅需要AI领域的本体工程师(ontology
engineering),更加需要领域专家参与知识体系的
构造、组织和完善,而这二者往往由于各自的专业
背景和目的不同而难以达成过程上的统一。
◦ (3)即使是构建Domain ontology,由于专业不同、
学科背景不同,应用目的不同,也会带来构建方式
和工艺流程上的差别,所以每个领域Domain
ontology的构建均有方法体系上的特殊性(即专业
特色)。即使构建同一领域的Domain ontology,由
于人员背景、思考角度不同,应用的框架体系不同,
也会生成不同结果。
◦ (4)研究ontology构建的技术体系与研究检索的
技术体系之间存在脱节问题。使得ontology对检
索系统的嵌入(登录)成为难点。这还导致了
ontology工程的生命周期不能顺利进行。
◦ (5)目前,国内还未有基于ontology检索系统投
入运行的报道。
◦ (6)构建基于ontology的检索系统,其瓶颈在于
基于ontology的语义标引仍停留在极为耗时的手
工标引阶段。某些自动化或半自动的标引手段未
能达到人工标引的精细水平。

所以,ontology的研究仍停留在理论研究日
趋成熟,应用研究相对滞后的阶段。
语义网(Semantics Web)
语义网概述
 RDF
 本体(Ontology)
 语义网描述语言

语义网描述语言
RDF
 OIL
 DAML
 OWL

RDF

RDF具有较强的表达能力,但作为语义网描述
语言,RDF还存在不足。
◦ 虽然RDF起源于知识表示,但RDF没有定义推理机
制,RDF可被看成是一个简单的框架系统,可在其
上建立推理机制。
◦ RDF没有说明包含特性,尽管名字空间
(namespaces)允许文档引用在另一个文档中定义
的术语,但没有明确是否包含引用术语的定义。
◦ RDF没有提供定义公理的机制,而公理可以提供更
强的语义,限制术语的可能语义,推导出没有明
确表示的信息,匹配相同概念的不同表示。如有
用的公理可定义属性subOrganization具有传递性
或ParentOf和childOf属性是相互可逆的。
◦ RDF的另一个潜在问题是尽管它提供了修改
schema的方法,它无法完全适应web迅速变化的特
点。从本质上讲,schema的每个版本都拥自己的
URI,被认为是资源的一个完全不同的schema,仅
通过rdfs:subClsssOf 和 rdfs:
subProPertyOf 与 class 和ProPerty的原始
定义联系。各版本间没有建立真正的等价关系。
如参考某个被修改schema的schema和资源要反映
这个变化必须分别进行修改使用新的URI。而且
RDF没有版本控制。
OIL

OIL
◦ Ontology Interchange Language 或
◦ Ontology lnference layer(本体推理层)
◦ 是在Web上描述本体的语言。OIL的语义基于描述
逻辑(description logic),语法建立在RDF之上。
◦ OIL的设计目标之一就是尽量与RDF应用结合,因
此,大多数RDF Schemas是有效的OIL ontology,
能够被RDF处理器所理解。与RDF不同的是OIL具有
良好定义的语义。
◦ OIL可分为四个层次,高层建立在低层上,在低层
上增加功能。
 OIL的核心是基本RDFS。
 标准OIL在核心OIL层增加了一系列的描述逻辑原语,是目
前OIL工作的核心。
 实例OIL(Instance OIL)应用RDF描述实例,增加了模型实
例的能力。
 Heavy OIL是一个未定义的层,用来包含未来对语言的扩
充。
◦ 这种分层的方法使得应用可以用语言预定子集来
管理复杂的OIL。

OIL建立在基本的RDF、类、属性原语上,有
两类基本类:
◦ 原语类和定义类





原语类是普通的RDF类
定义类为成员提供必要的和充分的条件。
定义类要求使用类表达式,布尔表达式是类
和槽限定的布尔组合。
OIL提供的标准布尔操作包括oil:AND、oil:
OR和oil:NOT。
槽限定用于限制类的实例必须是满足某些范
围限制的属性域实例。

槽限定包括
◦ oil:HasValue
◦ oil:ValueType
◦ oil:MaxCardinality和oil:MinCardinality。





oil:HasValue限定说明槽是特定类表达式的
一个成员,必须至少有一个值。
oil:ValueType限定说明槽的所有值必须是特
定类表达式成员。
势限定( oil:MaxCardinality和oil:
MinCardinality)说明对于特定槽至多(至少)
存在的实例值。
oil:hasProperty用来指出限定应用的属性,
oil:hasClass用于指明限定的类表示。
OIL槽是RDF属性,槽定义可使用RDF结构如
rdts: subelassOf、 rdfs: domain和
rdts: range。
 OIL还增加了属性和类对槽进行更精确的定义。

◦ oil:inverseRelationOf属性说明两个属性是逆
反关系。
◦ 如果属性是oil:TransNveProPerty类的实例,则
属性是传递的。
◦ 如果属性是oil:SymmetricProPeny的子类,则它
是对称关系。
除了定义类和槽,OIL ontology能用元
数据、输入模块描述自身并提供规则库。
 标准元属性集合基于都柏林核心集,包
括ontology名、ontology作者等。
 输入机制使用XML名字空间,在这方面
和RDF具有同样的缺憾。
 规则库试图为ontology提供公理和全局
限制,但此结构目前还未定义。


OIL的优势在于以描述逻辑为基础。
◦ 如果两个ontology在定义中使用相同的术语集,自
动得出包含关系来合并ontology。
◦ 此外,丰富的模型结构允许一致性检查,为构建高
质量ontology提供方便。

缺欠
◦ 由于实例化可引起语义网上的逻辑不一致,这方面
更难以控制,目前还没有处理这种不一致的方法。
比如,如果Person类为marriedTo槽定义oil:
maxCardinality为1,那如何处理不同的文档中都说
明不同的人和Mary结婚呢?
◦ OIL的另一个缺陷继承自RDF:没有明确的输入机制,
相对ontology发展支持不充分。
◦ OIL还不能合成ontologies所需的清晰匹配。比如
OIL不能表示类和属性的同义,不能表达同一概念的
不同结构间的匹配。
DAML
DAML(DARPA Agent Markup
Language) 是DARPA的主要项目,有
多个学术和工业组织参加。
 DAML力图包括RDF、OIL等语义网语
言的优点。
 DAML的最早版本称为DAML—ONT,
但后来与OIL紧密结合形成了DAML+
OIL。
 下面如不明确说明DAML指DAML+
OIL。

和OIL一样,DAML建立在RDF上,以描述逻
辑为基础。
 DAML允许类表示为一个单独类、组成类的
一系列实例、属性限制或类表示的布尔组合。

◦
◦
◦
◦
daml:intersectionOf
daml:unionOf 和
daml:complementOf
这些属性提供类表示的和取、析取和否定。

DAML属性限定由daml:Restriction类
指示,包括
◦ daml:onProperty属性
 说明被限定的槽和有关限定的信息,
◦ daml:toClass属性
 说明槽的所有值必须是特定类表示的成员。
◦ daml:hasClass属性
 说明槽的至少一个值必须是特定类成员。

DAML还有
◦ daml:hasValue属性
 说明槽的一个值必须是特定值。
◦ 和OIL一样,DAML包括势限制daml:
minCardinality和daml:maxCardinality,
◦ 由于DAML构成限定的方法不同,因此需要
 daml:hasClassQ
 daml:maxCardinalityQ和
 daml:minCardinalityQ属性
 用于特定的类表示。
DAML也提供定义属性原语。除了RDF本身所
有的原语,DAML增加了daml:inverseOf属性
和danml:TransitiveProperty类,这一点和
OIL一致。
 DAML有

◦ daml:UniqueProperty和
◦ daml:UnambiguousProperty类
 分别说明属性每个实例只有一个值和一个值只属于一个实
例。
DAML的daml:imports类是传递的,说
明输入文档的定义也使用当前ontology,
DAML可扩展ontology。
 DAML使用XML名字空间提供名字,名字
空间声明和daml:imports声明间有冗
余。

DAML的daml:equivalentTo属性用来说明两
个资源相同。
 由于类和属性都是资源,这可被用来说明其
他类。因此daml:equivalentTo提供了重命
名功能及说明两个实例相同的能力,后者在
Web上非常有用,因为网上资源以URL来标识,
不同的URL经常指向相同的资源,不同的用户
可能是用不同的ID值指向相同一资源,使用
daml:equivalentTo,两个资源的内容可被
有效的合并。

daml:versionInfo属性允许ontology
提供版本信息。但目前该属性的内容还
未定义,不能用来自动决定ontologies
的版本,而且没有办法指明向后兼容版
本。
 DAML还包含对XML Schema数据类型的支
持。所有的数据类型被看成是特殊的类,
每一数据类型有唯一的由其资源文档的
URL和名字构成的唯一标识。


因为DAML基于描述逻辑,它同样具有
OIL的优点。又因为它也建立在RDF之上,
也具有RDF的缺陷
OWL
OWL( Web Ontology Language)
 W3c的标准
 OWL旨在用于那些需要由应用程序而不是由人类来
处理文档中的信息的情形。
 OWL可被用来明确表示词汇表中术语的含义以及术
语间的关系。
 在表达含义和语义方面,OWL比XML、RDF和RDF-S
有更多的表达手段,因此在Web上表达机器可理解
内容的能力也比这些语言强。
 OWL是DAML+OIL Web本体语言的修改版,并吸取
了在DAML+OIL的设计和应用中得到的经验教训。


OWL语言标准有六个:
◦ OWL概述 (http://www.w3.org/TR/owl-features/)(OWL Overview),
 即本文,通过列出OWL的语言特征并给出其简要的描述,对OWL
进行了简单的介绍;
◦ OWL指南 (http://www.w3.org/TR/owl-guide/)(OWL Guide)
 通过一个扩展的例子说明如何使用OWL语言。同时也给出了这些
文档中用到的术语的解释;
◦ OWL参考 (http://www.w3.org/TR/owl-ref/) (OWL Reference)
 以一种系统的和简洁的方式(仍是非正式地)描述了OWL的所有建模
原语(modelling primitives);
◦ OWL语义和抽象语法文档(http://www.w3.org/TR/owl-semantics/)
 是对这个语言的最终的、形式化的规范性定义;
◦ OWLWeb本体语言测试用例文档(http://www.w3.org/TR/owl-test/)
 包含了这个语言的一个大量的测试用例集合;
◦ OWL用例和需求文档http://www.w3.org/TR/webont-req/)
 包含了一个Web本体语言的用例集合和关于OWL的需求集合。

OWL提供了三种表达能力递增的子语言,以分别用
于特定的实现者和用户团体
◦ OWL-Lite
◦ OWL-DL
◦ OWL-Full

主要的分类依据就是它们的表达能力。其中,
OWL-Lite是表达能力最弱的子语言,OWLFull具有最强的表达能力,而OWL-DL的表达
能力则在它们之间。我们可以认为OWL-DL
是OWL-Lite的扩展,而OWL-Full是OWL-DL
的扩展。

OWL-Lite
◦ 从语法上来说,OWL-Lite是三个之中最简
单的一个,当本体中类的层次结构很简单,
并且只有简单的约束(constraint)时适合
使用它来描述本体。例如,在需要把一个
已存在的辞典(thesauri)移植到另一个差
不多简单的概念层次时,OWL-Lite可以做
得又快又好。

OWL-DL
◦ 和OWL-Lite相比,OWL-DL的表达能力要丰富许
多,它的基础是描述逻辑(Description Logics,即
DL的由来)。
◦ 用于支持那些需要最强表达能力而需要保持计算
完备性(computational completeness,即所有的结
论都能够确保被计算出来)和可判定性
(decidability,即所有的计算都能在有限的时间内
完成)。
◦ OWL DL包括了OWL语言的所有语言成分,但使
用时必须符合一定的约束,例如,一个类可以是
多个类的子类时,但它不能同时是另外一个类的
实例。

OWL-Full
◦ OWL-Full是OWL的三种子语言中表达能力最强的
一个
◦ 支持那些需要尽管没有可计算性保证,但有最强
的表达能力和完全自由的RDF语法的用户。例如,
在OWL Full中,一个类可以被同时看为许多个体
的一个集合以及本身作为一个个体。它允许在一
个本体增加预定义的(RDF、OWL)词汇的含义。
这样,不太可能有推理软件能支持对OWL FULL的
所有成分的完全推理。

在表达能力和推理能力上,每个子语言都是
前面的语言的扩展。这三种子语言之间有如
下关系成立,但这些关系反过来并不成立。
◦ 每个合法的OWL Lite本体都是一个合法的OWL
DL本体;
◦ 每个合法的OWL DL本体都是一个合法的OWL Full
本体;
◦ 每个有效的OWL Lite结论都是一个有效的OWL
DL结论;
◦ 每个有效的OWL DL结论都是一个有效的OWL Full
结论。
OWL本体的组成

OWL有
◦ 个体(Individual)
◦ 属性(Property)
◦ 类(Class)

个体(Individual)
◦ 个体代表(领域中)我们实际感兴趣的那些对象,
◦ OWL不使用唯一命名假设(Unique Name
Assumption,UNA),也就是说,两个不同的名
称可以对应到同一个个体。例如“伊丽莎白女王”、
“女王”和“伊丽莎白.温莎”可能都对应同一个人。
◦ 在OWL里,必须明确的表达个体之间是否为相同
的,否则它们可能相同也可能不相同。
◦ 个体(Individual)有时也被称作实例(Instance),
个体相当于类的实例。

属性(Property)
◦ 属性是个体之间的二元关系,也就是说,属性把
两个个体连接在一起。例如
 属性hasSibling(兄妹)可能会把Matthew和Gemma这两个个
体连接起来,
 而属性hasChild会把Peter和Matthew这两个个体连接起来;
 属性可以有反向属性(Inverse),例如hasOwner的反向属
性是isOwnedBy;
 属性也可以被限制为只能拥有一个值,即所谓的函数属性
(functional);
 属性还可以是具有传递性(transitive)或是对称的
(symmetric)。

类(Class)
◦ OWL中的类代表一些个体的集合,OWL使用形式
化(数学的)的方法精确描述出该类中成员必须
具有的条件,例如,领域中全部猫的个体都属于
Cat类。
◦ 类可以通过继承关系组成层次结构,子类是父类
中的特殊情况,例如考虑Animal和Cat这两个类,
Cat可以是Animal的一个子类(即Animal是Cat的父
类),这就表示了:所有的猫都是动物,所有Cat
类的成员都是Animal类的成员,如果你是猫那么你
也是动物,Cat类被Animal类所包含,等等。
OWL-DL的一个重要特征就是父类和子类之间的
(包含)关系可以被推理机自动计算出来。
作业(二选一)
使用任意一种Web Services实现的工具
(例如Xfire、AXIS2)实现一个简单的
“Hello, World”Web Services,作业应
当包括相关的实现软件代码以及对应的
WSDL。
 使用RDF及vcard命名空间描述你本人的
姓名、昵称及电子邮件,作业应当以
RDF/XML格式提交。
