Toward Principle for the Design of Ontologies used for Knowledge Sharing摘要

学习摘要:Toward Principle for the Design of Ontologies used for Knowledge Sharing

Thomas R. Gruber

Stanford Knowledge Systems Laboratory, 701 Welch Road , Building C. Palo Alto , CA 94304 , USA . Email: Gruber@ksl.stanford.edu

介绍(Introduction

该文主要讨论将本体论用于知识共享与表达的问题。

本文对于知识的表达基于这样一个概念:涉及的对象、概念和其它实体都存在于一个感兴趣的领域,并且在它们之间存在着相应的联系。概念化则是对我们依特定目的所想描述对象的抽象和简单的观点。不管是显式的还是隐含的,所有基于知识的系统,或者具有知识的智能代理都存从于这样的概念化。

将本体论作为描述机制(Ontologies as a specification mechanism

本体论则是概念化的显式表达。“本体论”借用于哲学词汇。本体是对存在实物的系统化的描述。对于人工智能而言,“存在”则意味着可以被表达。当某个领域的知识以形式化的方式表达时,能够被表达的一组对象被称为论域。这一组对象及其之间的相互关系,反映在由基于知识的程序所表达的知识的词汇表示中。因此,在人工智能的上下文中,我们可以通过定义一组相互联系的术语来描述程序的本体论。在一个这样的本体论中,各种定义将论域中各个实体的名字联系起来(也就是,各个类别、关系、函数或者对象),并采用的是说明各名字意义的人类可以阅读的文本的方式进行的。精心组织的,约束这种解释的正式公理也使用这些术语。因此正规的说,本体论是逻辑理论的陈述。

对于一组代理而言,我们采用常规的本体论来描述本体论约定(ontological commitments),以便这些代理能够仅仅在它们的领域中进行通讯,而不需要在一个全局共享的理论平台基础上进行这些工作。如果一个代理的可观则的行为与本体论的定义相一致,我们则说该代理是符合本体论的。本体论约定(ontological commitments)的思想基于知识水平的观点。知识水平是对代理知识的描述的水平,这种描述独立于代理内部使用的符号水平的描述。知识是通过观察代理的行为来表现的,如果一个代理似乎具有某种信息并理智地向着目标前进,则这个代理就“知道”点什么。代理的行为,包括基于知识库服务器和基于知识库系统的,可以通过问答式的交互界面观察到,这样的交互在客户和代理间通过逻辑的问答进行。

从实用主义的角度讲,常规的本体论定义了在代理之间进行问题和断言交换的词汇  本体论约定 ontological commitments)是以一致的方式使用这些共享词汇的协议。代理间共享词汇而不需要共享知识库,每个代理都知道其它代理不知道的事情,使用本体论的代理并不需要回答可以用共享词汇表达的所有问题。

简言之,使用常规的本体论是对使用基于本体论定义词汇描述问题和断言的一致保证,但不是完全的保证。

本体论设计标准(Design criteria for ontologies

进行本体论设计时,我们需要用本体论来对事物进行再表达。此时,需要建立一些标准以使我们能够顺利地进行。以下是几个准则:

1.         清晰性:一条本体论应该清楚地传达所定义条目的确切意义。我们进行某个定义的动机也许来源于具体的社会环境或者计算需求,但定义应该独立于这个社会的或者计算的上下文。当定义可以用逻辑公理表示的时候,就应该采用公理表达。如果可能,尽量采用完全的定义(由充要条件定义的断言)而不采用部分定义(只由充分或者必要条件定义的断言)。所有的定义都应该采用自然语言的形式记录在文档上;

2.         一致性:一条本体论应该具有一致性。也就是,对它所作的推论应该与定义一致。至少,所有定义的公理应该在逻辑上是一致的。一致性也应该应用到非正式定义的概念,比如以自然语言描述的文档和例子。如果从公理中推论出来则子句与某个定义或者非正式的例子项冲突,则本体论不满足一致性;

3.         可扩展的:本体论应该设计得能够满足共享词汇的预期使用。它应该提供满足预期应用范围的概念上的基础,并且应该技巧地设计其再表达方式,以便能够无歧义地扩展和应用本体论。换句话说,应用这可以不需要修改现有的定义,使用现有的词汇来定义新的条目以满足其特定的需要;

4.         最小的编码误差:概念化应该定义知识水平上而不应该依赖于特定的符号水平的编码。当选择的再表达方式是纯粹地以符号或者执行的方便来确定时,编码误差就产生了。编码误差应该做到最小,应为代理共享的知识可能会采用不同的表达系统和表达风格;

5.         最小的本体论约定:一个本体论条目应该具有能够支持知识共享的最低的本体论约定。一个本体论条目应该对所描述的模型给出最少的声明,以便使用本体论的个体能够自由地按照自己的需要来将本体论专门化和实例化。因为本体论约束基于对词汇的一致性使用,本体论约束可以通过对于理论的最弱的描述(允许最多的模型)并且仅仅定义一些最基本的条目,这些条目能够完成最基本的一致性的理论知识的通讯,来进行本体论约束的最小化。

权衡(Tradeoffs

和其它的设计一样,进行本体论设计时,需要在各种标准间进行权衡。虽然这些标准并不总是奇怪和矛盾的。例如,如果想要更加清晰,其定义对条目的解释就应有更多的约束。然而,最小本体论约定则意味着更弱的理论描述,兼容尽可能多的模型。这两个目标并不是相互对立的。清晰性标准是关于条目的定义的,本体论约束则是关于概念化描述的。一旦决定一个定义值得制定,则应该给它实行最紧密的定义。

另一个显现的矛盾存在于可扩展性和本体论约束之间。一个预期适用于某个范围人物的本体论条目并不需要具有所有能够表达这些任务所有知识的词汇表(更大的词汇表需要增加约束)。而一个可扩展的本体论条目能够描述更具一般性的理论,但需要包括更多的表达机制去完成特定应用所需要的定义。

可扩展性和本体论约束都包含有充分或者足够的概念。因为一个本体论条目和知识库本身的目标是不同的,所以足够的表达(representational adequacy)的概念也是不同的。一个共享的本体论只需要描述所关注领域的词汇表,而知识库则可能需要包括解决该领域问题或者回答提问的知识。

本体论设计案例分析

本文给出了两个实际的例子。因为希望在知识水平的层次上进行描述,本文采用了不依赖于人和特殊数据格式和编程语言的知识交换格式KIFGenesereth & Fikes, 1992)。每个本体论条目都定义了一组与特定论域相关的类型,关系,函数和目标常量,并且包含一个约束解释的公理系统。最终形成的语言(基于KIF的基本逻辑+词汇表和基于本体论的理论)是对特定领域的概念的专业描述。

KIF的快速回顾

KIF是采用函数项和等式进行断言运算的前缀符号系统。由前缀?开始的自由变量广泛使用。材料的隐喻通过操作符=><=<=>表示。两个相等的量由=表示。成员关系表示了组成员间的联系,setof用来作为结构设置运算符。关系是论域中的第一类对象,定义为一组元组(tuples)。关系由常量所标示,它既作为断言符号也作为标示关系的对象。函数是一类特殊的关系,这里,一个n个参数的函数与一个有n+1个参数的关系是相当的,这最后一个参数是函数前n个参数的值。类由一元关系所描述。例如,子句(C, ?q)表示?q是类C的一个实例。定义由KIF的定义算子defrelationdeffunctiondefobject给出,它们分别与跟随着一组公理的关系、函数和对象相联系。在Lisp格式的语法中,常量的大小写没有意义,在分号后面的行将被忽略。

案例1:物理量,测量单位,以及工程代数

在第一个例子中,我们考虑工程系统的数学模型表达问题。工程师采用诸如一组等式这样的数学模型来分析物理系统的行为。在格式化的数学表达式和工程文本中通常隐含着许多信息需要理解。比如,在表达式f=kx+c中,谁是常量和变量并不明确,也不清楚它们表示的数字或者数量(比如,力或者长度?);这里是数字是实数还是向量;其数量是静态的值,还是时间的函数,或者是时间和空间的函数;其单位也已经假定。读者必须根据背景知识和上下文来解释这些符号。

为了建立一个可重用的工程模型库,具有良好定义的,与所解释问题的上下文无关的格式化符号系统是非常重要的。为此目的,Gerg Olsen和我建立了一套用于工程模型的规范化本体论。我们的目标是定义词汇表和概念函数,可以用来在计算机程序中共享设备行为的数学模型。这些本体论可以作为在分布和异构环境的工程工具间的交流通讯语言。

该套本体论中最重要的概念是物理量(即 3m 80km/h ),物理维数(长度,长度/时间),测量单位(mkm/h),各种不同的量(标量,向量,张量以及相关的函数),描述数学约束的代数运算(乘,求和,求幂,求导),采用元语言级别的概念作为对象来描述论域中的数学表达式(即判别一个表达式是否是封闭形式或者以系统方程的形式来描述因变量)。

这样,我们可以将注意力集中在对工程模型物理量的表达上。工程师常常用“量”这个词来描述世界上存在的事情,如某段铁路的长度(大约 3m ),也用来描述方程中的量,如等式模型中的参数X表示车在路上的位置。在工程本体论中,我们区分这两种概念。物理量是客观世界中独立存在事物的扩展属性,以确定如何对其进行测量或者表达(即,长度为 3m )。符号X是不具任何物理量的方程的符号。X表达的意义是元语言级别的,这里,工程模型中的参数和等式被处理为逻辑意义上的条目和子句的特例对待。元语言级的处理超出了本文讨论的范畴,我们将着重讨论物理量的对象及表达。

版本1

假设有一个我们将要评判和修正的对手。我们首先来定义物理量:由数字和测量单位所组成的对。以KIF格式将物理量定义为由一个数值和一个单位组成的对象,它们由单值函数quantity_magnitudequantity_unit所决定。定义规定,一个物理量必须有数值并且是双精度型的,其单位也必须在标准的单位列表之中。这些约束与对象-中心语言中的槽值的约束相似。因为定义是一个当且仅当的条件(<=>),也就是说,每一对这样的数值和单位都定义了一个物理量。

(defrelation PHYSICAL_QUANTITY

  (<=> (PHYSICAL_QUANTITY ?q)

      (and (defined (quantity.magnitude ?q))

          (double-float (quantity.magnitude ?q))

          (defined (quantity.unit ?q))

          (member (quantity.unit ?q)

                  (setoff meter second kilogram

                        Ampere Kelvin mole candela)))

physical-quantity是一个类(即一个单值关系是一个类的实例)。为了描述类的单个的实例,我们定义了构造函数the_quantity。表达式(the_quantity ?m ?u)表示一个物理量?q的值为?m单位为?u

(deffunction THE_QUANTITY

   (<=> (and (defined (THE_QUANTITY ?m ?u))

            (= (THE_QUANTITY ?m ?u) ?q))

        (and (physical_quantity ?q)

            (= (quantity.magnitude ?q) ?m)

            (= (quantity.unit ?q) ?u))))

physical_quantity的定义表明一个量是由数值和单位决定的。这个定义本身只是简单地添加词汇表以便能够表达特定的条目。比如,下面表示X是一个 3m 的量,而米是它可能的一个测量单位。

(=X (the_quantity 3 meter))

版本1分析:我们所提出的原始方案已经满足了本体论设计的一些约束。Physical_quantity是专门定义的,独立于任何程序。它内部是一致的,简单和清晰的。但是,它还不满足其它一些约束。首先,与其它相似的数据类型定义一样,双精度约束是进行数值编码时的精度规范,它与实际物理量的概念不同。这是编码误差的一个具体例子,因为它反映的是实际应用时的具体操作(精度位)而并非对本体论的知识水平代理级的部分。我们应该明白该物理量的数值是一个实数,而所有的程序必须尽量近似这个实数。

第二,对函数quantity_unit而言,测量单位的概念是定义一组可能的集合值。这同样也是一种编码手段而不是现实世界的体现,虽然它们之间的差别不像双精度和实数那样明显。物理意义上的量并不依赖于特定的单位集合,一组可能的单位集合不应该是物理量定义的一部分。

第三,一组特定的单位集合在扩展性上是有限制的。实际上有许多测量单位标准,在这一点上,本体论的目的(在使用的人,领域和工具间共享工程模型和理论)并不是赞同某一个具体的标准,因此,本题轮应该允许定义可选择的单位集合,并有相应的方法将它与现存的单位联系起来。

版本2

考虑如何才能改进上一个初始版本以去掉那些不恰当的地方。首先,我们构造物理量的定义使数值和测量单位的概念作为更清晰的独立的类,magnitudeunit-of-measure

(defrelation PHYSICAL-QUANTITY

    (<=> (PHYSICAL-QUANTITY ?q)

        (and (defined (quantity.magnitude ?q))

        (magnitude (quantity.magnitude ?q))

        (defined (quantity.unit ?q))

        (unit-of-measure (quantity.unit ?q))))))

现在我们可以定义数值类来包括所有的实数类型,而不用使用浮点格式的数字类。类real-number根据KIF的数字本体论构造。

(defrelation MAGNITUDE)

   (<= (MAGNITUDE ?x)

      (real-number ?x)))

注意上面的定义是不完全的。对关系的完全的定义应该包含该关系的充要条件。上面的定义给出了数值类的充分条件实数,而并非是必要条件。这样做的原因是预计在工程模型中还有其它类型的数值。

 

该部分还没有翻译……

 

案例2:图书目录共享本体

图书目录本体用于在现存的图书目录数据库间进行自动转换,以支持按参考资料格式构成的独立的数据库或程序,同时也提供一个知识水平层次的词汇表以实现在网络图书目录数据库中的检索。

该本体从特殊的视角描述了一个概念。该本体中,世界包含了信息。我们认为图书目录由参考资料(reference)组成。参考资料包含了区分和获得出版物的信息。参考资料包含了出版物的数据(data),但不是出版物本身。文档(document)是由作者建立,提供阅读、观看和收听的资料,书和杂志都是文档。在出版集中,一个文档的可能有多个出版物参考资料。文档由作者author建立,作者是人people或者代理agent。文档由出版商publisher在一定的时间点time points出版。作者和出版商都有字符串的名字name

图书目录本体对上述的每一个概念都定义了一个相应的类。比如,图书目录参考资料表达为reference类的实例。该类的定义包含了参考资料关联的文档和标题的必要条件,文档和参考资料的关系由函数ref.document表示,标题由函数ref.title表示。

(defrelation REFERENCE

; 图书参考资料是唯一确定出版物的相关描述,并提供获得相应文档的有关信息。

; 参考资料由下面的来识别……

(=> (REFERENCE ?ref)

(and (defined (ref.document ?ref))

(defined (ref.title ?ref)))))

(deffunction REF.DOCUMENT

; ref.document 提供对文档的映射

(=> (and (defined (REF.DOCUMENT ?ref)

(= (REF.DOCUMENT ?ref) ?doc))

(and (reference ?ref)

(document ?doc))))

(deffunction REF.TITLE

; ref.title 提供对标题的映射

(=> (and (defined (REF.TITLE ?ref))

(= (REF.TITLE ?ref) ?title))

(and (reference ?ref)

(title-name ?title))))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值