750 likes | 895 Views
语义网若干基本问题的讨论. 申思 2003 年 5 月. 目录. 语义网的由来 Web 上的知识表示 XML(S) 和 RDF(S) XML 和 RDF 进行 Web 知识表示的比较 Ontology 一个语义网应用的描述 研究热点和展望. 一 . 语义网的由来. 当前 Web 所存在的问题 更好的通讯模式 什么是语义网 语义网同现有网络的区别 语义网所要解决的问题. 当前 Web 的特点. WWW 是最大的信息资源仓库, 包含几乎任何领域内的文档和媒体资源,并且这些数据可以在瞬间被个人和组织访问
E N D
语义网若干基本问题的讨论 申思 2003年5月
目录 • 语义网的由来 • Web上的知识表示 • XML(S)和RDF(S) • XML和RDF进行Web知识表示的比较 • Ontology • 一个语义网应用的描述 • 研究热点和展望
一 . 语义网的由来 • 当前Web所存在的问题 • 更好的通讯模式 • 什么是语义网 • 语义网同现有网络的区别 • 语义网所要解决的问题
当前Web的特点 • WWW是最大的信息资源仓库, 包含几乎任何领域内的文档和媒体资源,并且这些数据可以在瞬间被个人和组织访问 • 其成功很大程度来自于分布式设计,即Web页可以存放于任何一台主机,通过超链可以访问本机或远程的页面 • 具有无限的潜力,然而尚未发挥出来,困难在于Web页上的信息内容很难抽取
当前Web存在的问题 • Web的大小使得很难定位相关的信息资源 • 目录服务(Yahoo)和搜索引擎(Google)提供了一些帮助,但远不能满足用户的需求 • 进一步的,用户更难以让Web作更多的、功能远远超过目录和搜索的事情,比如让Web为用户安排一个完美的度假 • 其根本的障碍在于一个事实:Web不是设计给机器处理的
人类之间的通讯 • 人类的交流建立在语义的基础上,通过指称把客观世界和意识世界联系起来 语言 主体A 主体B Common Knowledge
当前Web上的通讯 • 主体A把信息放到网页中,Web在主体B的浏览器端显示出来,实际上仍然是人之间的通讯,Web并不理解网页中的内容 Web页面 主体A 主体B World Wide Web Common Knowledge
语义网上的通讯 • Web携带语义信息,使机器能够理解Web页面,从而实现强大的功能。 • 需要一个人和机器都能理解的Ontology 主体A 结构化Web页面 Machine Ontology
如何让机器理解Web • 两种途径: • 1. 自然语言理解技术,然而仍然有很多关键问题没有解决 • 2. 用知识表达语言来描述Web页,即构造一种新的Web--语义网
什么是语义网 • Tim Berners-Lee的定义: • The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation.
Semantic Web - Layers • 最底层是URI和Unicode层,该层是整个语义网的基础,其中Unicode处理资源的编码,URI负责标识资源。 • 第二层是XML+NS+XMLSchema层,用于表示数据的内容和结构。 • 第三层为RDF+RDFSchema,用于描述资源及其类型。 • 第四层为Ontology 层,它用于描述各种资源之间的联系。 • 第五层到第七层是在下面四层的基础上进行的逻辑推理操作。 • 其中核心层为XML,RDF,Ontology,这三层用于表示Web信息的语义。
A scenario by Berners-Lee • 彼得的妈妈需要进行理疗,让代理来安排这个预约。给语义网络代理下指令后,代理立即从医生的代理处查到了妈妈的治疗处方,在诊所清单中进行查找,从中找出那些在母亲家方圆20英里的范围内,在信用评级服务中评级为出色或很好,在母亲的保险计划范围之内的诊所。然后,它将可能的预约时间(由各家诊所通过其网页提供)和彼得日程进行匹配。 • 几分钟之后,代理给他们提供了一个方案。彼得对此不太满意。从母亲家到这个医院要横穿整个城镇,而他从医院返回的时间又恰好是交通高峰时间。他设置了更多的时间和地点方面的限制,让自己的代理重新进行搜索。 • 几乎一瞬间,新的方案又出来了:医院离家近了,时间也提前了。但是,同时有两点警告。首先,彼得要重新安排他的一些不太重要的预约。彼得查了一下,没什么问题。另一点是,这家医院不在保险公司的理疗医院的清单上。代理为解除彼得的顾虑,说, “通过其他方式,可以保证予以确认服务类型和保险计划,需要细节内容吗?” • 彼得表示同意,事情就这么定下来了。
语义网同当前Web的区别 • 大多数当前的Web是设计给人浏览的,语义网是设计给机器处理的 • 当前的计算机可以解析Web的显示,处理header,链接到其他页面,但是他们无法处理语义:比如这个页面是张先生的主页,这个链接会指向孙小姐的简历等等。
语义网所要解决的问题 • 搜索引擎的缺陷,不理解词语的语境和检索词之间的关系 • 代理在处理Web服务时必须依赖于一些预先定义的Web页面 • 推系统在匹配用户Profile和Web页相关性时的不准确 • 通过对Web信息的抽取,可以支持对更复杂内容的可视化
二 . Web上的知识表示 • 传统的知识表示结构 • Web上知识表示相对于传统知识表示的特点
传统的知识表示结构 • 语义网络 • 在一个语义网络中,每一个概念用一个节点来表示,互相关联的概念由箭头连接起来 • 语义网络使用特别的箭头来表示抽象概念,一个is-a箭头,表示一个概念是另一个概念的子类,而instance-of表示一个概念是另外一个概念的实例。这些箭头同基本的集合理论相关:is-a类似于子集关系,instance-of类似于元素关系。 • is-a的集合定义了类序,这个类序通常称为分类法或类继承。分类法用来用一个概念来归纳很多的抽象类,或者为很多抽象概念定义一个类。Yahoo和Open Direcotry的流行已经证明,分类法在辅助用户定位信息的时候非常有用
传统的知识表示结构 • 框架系统 • 这个系统中,一个框架是一个数据对象,有一些槽,每个槽表示这个对象的一个属性。 • KRL是一个早期使用在框架系统中的语言。KRL的基本实体是单元,由一个唯一的名称,一个目录类,和一些槽构成。每个类都有一个原型个体,代表类的典型成员。一个有趣的特征是,KRL可以从不同的角度来看一个个体。比如,the age from Person G0043 可能是整数,而the age from Traveler G0043可能是一个集合中的元素{Infant,Child,Adult}. • KL-One继承了框架系统的传统,同时派生出了描述逻辑。描述逻辑关注词的定义,以提供比语义网络和框架系统更精确的语义。词的定义通过比较概念和其作用而形成。描述逻辑系统的一个重要的特征是处理自动分类的能力,即自动把一个给定的概念插到分类表中合适的位置
Web上知识表示的特点 • 语义网依赖于将内容同形式化的意义表示对应起来。这一点上,知识表示领域为设计语义网的语言提供了一个很好的起点,因为它的研究一直在努力的将知识形式化。然而,Web的特性对传统的知识表达工作是一个挑战,需要我们从一个新的角度来看这个问题。Web的一些重要特征所带来的影响主要有:
Web上知识表示的特点 • Web是分布式的 • Web的发展的推动力量就是自由而非集中控制。然而,由于Web是许多个人的产物,缺少集中控制对信息的推理带来了很大的挑战: • 不同的组织可能会使用不同的词表,导致了同义和一词多义现象 • 缺少审查和质量控制,可靠性是个问题,有相当数量的Web欺骗,其发布信息的目的是为了误导 • 由于没有一个全球统一的信息合成,Web上不同来源的信息可能会发生冲突。
Web上知识表示的特点 • Web是动态的 • Web以惊人的速度变化着,没有任何一个用户或是智能代理可以跟的上 • 随着新的页面不断增加,已有页面的内容也在不断变化。一些页面相对稳定一些,另外一些则定期或不定期的更新,这些变化可能会完全改变内容 • 一个Web代理必须清楚它的数据会并且经常会过期
Web上知识表示的特点 • Web的数量巨大 • 虽然每个Web页可能只有一点代理可以收集的知识,但是累计起来的数据库将使推理很难进行 • Web是开放的 • 大多数情况下,代理应该假设它只采集了相当少的,并不完备的知识。然而,为了推断更多的事实,许多推理系统用来完整世界假设,即那些没有收到知识库中的都认为不真。
三 . XML(S)和RDF(S) • 从HTML说起 • XML和DTD(XML Schema) • RDF和RDF Schema
从HTML说起 • Berners-Lee开发HTML的初衷是使用超文本作为组织分布式文档系统的一种方式,Html的标签主要是面向显示的,但其一直在努力增加一些标签来提供语义: • HTML2.0引入了META元素和REL属性。META元素以名称、值的形式规定了元数据。META一个流行的用法是表示关键字,比如<META name = “kewyords” content=“Semantic Web”>,这样会帮助搜索引擎标引这个页面。 • HTML3.0增加了Class属性,可以被任何标签使用来建立该元素的子类,不过这个语义标记很少被使用,不过即使被使用了,他们所提供的语义也是很有限的。 • 为了解决HTML的语义局限性,Dobson and Burrill试着将其同ER关系模型结合。这就是超级HTML,它由一系列简单的标签定义了文档中的实体,文档体的标记部分作为这些实体的属性,然后定义从实体的外部实体的关系。这是正式为Web页面增加结构数据的首次尝试,从而为解决这个问题提供了一种方法,也是之后XML设计的动机。
从HTML说起 • 尽管非常流行,HTML存在两大问题: • 任何人只要发现HTML不足以满足其需求的时候,他们就简单的增加标签到他们的文档里,结果导致大量的非标准的HTML的出现 • 因为HTML主要设计成显示给人看的,它很难让机器抽取内容以及执行自动的文档处理。为了解决这两个问题,W3C开发了XML。RDF和XML成为开发语义网需的两个主要技术
XML • XML让每个人都能创建自己的标签,例如<姓名>,从而支持应用程序将这些标签运用到复杂的应用中。也即XML允许用户在文档中加入了任意的结构 • 由于结构任意,XML交换的双方需要一个使用上的一致性,这样的一致性描述就是DTD(XML Schema) • 然而,XML并不提供标签的意义。标签<p>可能意味着分段(paragraph),也可能意味着一部分(part)。这需要通讯双方事先达成理解的一致
DTD&XML Schema • DTD仅仅提供了一个简单的结构描述:他们定义了元素出现的结构,位置,可能的属性等等。 • XML Schema被设计来代替DTD。XML Schema有几个优于DTD之处: • XML Schema提供了一个丰富的语法来描述元素的结构,比如你可以定义元素出现的次数,默认值; • XML Schema提供支持数据类型。比如你可以定义电话号码是一个五位数字; • XML Schema提供了包含和继承机制,使你可以重用共同的元素定义,也可以将存在的定义运用于新的应用 • XML Schema以XML作为其编码的语法(因为XML是一个元语言),使得工具的开发变简单了,因为文档和文档定义都使用了相同的语法。
DTD&XML Schema • 尽管DTD为XML文档提供了一个语法规范,DTD并不提供语义信息。也就是说,DTD中的一个元素的意义,或者是由人根据在DTD中的自然语言描述的名称和注释来理解,或者在DTD之外再编写一个文档中来专门描述意义。 • 这样,XML文档的交换就必须要求交换的实体事先在DTD的使用和意义理解上都达成一致。 • 如果只是固定的合作实体之间,可能不会有问题,但是如果是在Web上……
DTD&XML Schema • Web的一个很重要的目标是建立互操作关系,从而我们无法预知信息的使用者,从而也不可能向每一个使用者解释DTD的语义 • 这就产生了一个信息合成的问题,由于软件工具无法获取语义,它们就不可能通过DTD来合成信息资源
DTD&XML Schema • 当然,如果我们在一个普遍的DTD上达成一致,DTD之间的映射问题就不存在了; • 但是即使在一个企业,数据标准化也是很困难和很耗时的,而Web上的数据标准化就更不可能了。 • 即使可能有一个理解普遍的DTD,它会大到没法使用,也没法维护,修改它
RDF • RDF定义了一个简单的模型,用于描述资源,属性和值之间的关系。资源是可以用URI标识的所有事物,属性是资源的一个特定的方面或特征,值可以是另一个资源,也可以是字符串。总的来说,一个RDF描述就是一个三角:一个对象,一个属性,一个值。 • 在RDF中,文档中的声明通常是某个事物——人、网页或其他任何东西对于某些值——另一个人、另一网页拥有某些属性(例如……是……的父母,……是……的作者)。
RDF • RDF是一个机制,用于描述数据。它不是一个语言,而是一个模型,用于表达Web上数据。 • RDF是忽略语法的,它仅仅提供一个模型用于表达元数据。这种可能的表达可以是有向图,列表或其他,当然XML也可以是一种可选的表达。 • 以下是几个RDF的简单示例
RDF • 用XML表示的RDF示例: • <rdf:Description about=“www.books.org/ISBN0012515866”> <rdf:type rdf:resource=“http://description.org/schema/#book”> </rdf:Description>
RDF • 用列表表示的RDF示例: • Object Attribute Value ========================== http://w3.org/ created_by #anonymous # anonymous name "John" # anonymous phone "477738"
RDF • 用属性-值三角的形式表示的RDF示例: • hasName ( "http://www.ddddddddddd", "jime lenr") authorof ("http"//www.ddddddddddd", "http://book/ieiei") hasPrice ("http://book/ieiei", "$83")
RDF • 用有向图的形式表示的RDF示例: John name http://www.w3.org 匿名对象 Created By phone 48382
RDF • 虽然可以有很多种方式来表示RDF数据,RDF数据的交换必须由一个固定有序的语法来支持。XML是一个选择,而RDF规范使用的正是它。 • 然而,RDF数据模型并没有被帮定到一个特定的语法上,它可以用任何语法来表示,它也可以从非RDF的数据资源中抽取。用XML序列语法来表示的RDF很难理解,而RDF应用程序接口使开发者可以不管序列语法的具体细节,而把RDF数据当作是图表来进行处理。
RDF • RDF被设计用来为元数据提供一个基本的对象、属性、值的数据模型。 • 对于这些语义,RDF并没有预先建模,同XML一样,RDF数据模型没有提供声明属性名的机制。 • RDF Schema和XML Schame,提供了一个词汇定义的方式,还可以定义哪些属性可以应用到哪些对象上。换句话说,RDF Schema为RDF模型提供了一个基本的类型系统。
RDF Schema • RDF Schema,使用了一些预先定义的词汇集,比如class,subpropertyof,subclassof,来指定特定的schema。 • RDF Schema是一个有效的RDF表达,就像xml Schema是一个有效的xml表达 • subclassof允许开发者去定义每一个类的继承机制,subpropertyof对属性是一样的。属性的限制可以用domain和range结构来实现,这个结构可以用来扩展词汇表,下面是一些简单的示例:
RDF Schema 定义类及子类 • <rdfs:Class rdf:ID=“Wine” /> //定义类Wine • <rdfs rdf:ID=“RedWine”> • <rdfs:subClassOf rdf:resource=“#Wine”/> • </ rdfs :Class> //定义Wine的子类RedWine • <rdfs :Class rdf:about=“#WhiteWine”> • <rdfs:comment>no wine is both a red and a • white wine</rdfs:comment> //注释 • <rdfs :disjointWith rdf:resource=“#RedWine”/> • </rdfs :Class> //定义子类WhiteWine及相斥关系
RDF Schema 定义类的实例 • <RedWine rdf:ID=“MyFavoriteDrink”> <rdfs:label>MyFavoriteDrink</rdfs:label> <rdfs:comment>MyFavoriteDrink is a RedWine.</rdfs:comment> • </RedWine> //RedWine的实例 • <RedWine rdf:ID=“MariettaZinfandel”> <rdfs:label>MariettaZinfadel</rdfs:label> • </RedWine>
RDF Schema 定义类的属性 • <rdf:Property rdf:ID=“hasWineColor”> //定义属性ID • <rdfs:range rdf:resource=“#WineColor”/> //属性所属的类 • <rdfs:domain rdf:resource=“#Wine”/> //属性所赋予的类 • </ rdf:Property >
四 . XML和RDF进行Web知识表示的比较 • Web知识表示对表示语言的要求 • 使用XML进行知识表示 • 使用RDF进行知识表示
知识表示对语言的要求 • 普遍的表示能力。因为无法预测可能用途,一个基于Web的交换格式必须可以用来表达任何格式的数据。 • 语法的互操作行。应用程序必须能够抽取数据,并将其用于开发。软件模块(比如Parser和查询API),应该可以在不同的应用程序之间尽可能的重用。当用来操作数据的Parsers和APIs很容易获得时,语法的互操作行就是很高的。 • 语义的互操作性。数据交换格式的一个最重要的需求时数据可以被理解。语法互操作性是关于解析数据的,语义互操作性是关于定义语言到内容之间的映射,因而需要内容分析。
使用XML进行知识表示 • XML完全满足普遍的表示能力需求,因为一个语法所能定义的任何数据,都可以用XML来编码。 • 它也满足语法的互操作性,因为一个XML的Parser可以解析任何XML文档,它也可以作为一个重用的模块。 • 但是在语义的互操作性上,XML就有了弱点。 • XML的主要局限性在于它仅仅描述语法。我们没有办法从一个XML文档中识别一个语义单元,因为XML的目标是文档的结构,而没有对文档中使用的数据附加任何的解释。
使用XML进行知识表示 • 假设两个组织之间要交换数据,那么他们必须使用相同的DTD(或Schema)。因此,就必须首先分析他们相关的领域和对象模型,然后通过对象关系表述出来,再将其转换为DTD • 而且,重要的一点,他们必须都同意并且使用DTD所给出的文档结构的隐含意义,否则就无法利用XML数据。 • 如下图:
使用XML进行知识表示 • 但是,由于同样的域模型可以构造出很多不同的DTD,这样就丢失了从域模型到DTD之间的直接对应 • 丢失这种直接对应,一是名称使用习惯上的差别。比如,元素<PERSON> and <INDIVIDUAL> 可能是同义词;类似的,元素<SPIDER>可能是一词多义的,这里可能是爬行软件,那里可能指蜘蛛。而且名字问题在属性名称中同样存在。 • 另一个困难是结构的差别。XML的灵活性使得DTD的作者可以有很多选择。设计者对于同样的概念可以有很多种方式来描述。
使用XML进行知识表示 • 也就是说,在域模型和DTD之间并没有直接的联系。因此就不可能从一个DTD来推断概念以及概念之间的关系,即很难从DTD中重建域模型 • 考虑到这一点,使用XML的优点就只有解析模块的重用性了。这只在组织间固定通讯,并且事先有一致认识时有用。而忽略了Web通讯的需求,即很多的合作者,而且他们不断的更新。 • XML在应用程序都知道数据是什么的时候,进行数据交换非常有用,但是它并不适合新的通讯对象不断变化的情况。而在Web上,新的信息资源不断的涌现,新的合作伙伴不断的加入。因此减少这种通讯成本就非常重要。 • 一个域模型不能被简单的映射为另一个域模型,是因为他们都以DTD的形式编码。基于不同DTD的直接映射是很困难的,因为这不是简单的语法映射,而是一个领域到另一个的映射。
使用RDF进行知识表示 • RDF的对象-属性-值的结构满足我们普遍表示能力的需求。而独立于应用程序的RDF Parser也可以得到,因此RDF满足语法的互操作性。 • 在语义的互操作性方面,明显优于XML。 • RDF的对象-属性结构自然的给出了语义单元,而所有的对象都是实体。 • 定义了兴趣领域中的对象和关系的域模型,可以用RDF自然表达。域模型到RDF有着直接的映射关系,因此两个RDF就可以直接进行语义的转换