本体论|一种知识表达的方法

在人工智能领域,数据是抽象的内容,独立时没有含义;信息是经过收集和处理的数据;而知识是经过人为的解读和经验充实的信息。知识是智慧、创造力的前提。这段时间看文献,对知识表达产生了兴趣,它是人工智能的一个核心环节。从数据到信息,从信息到知识,知识必须被人类和计算机理解,才能产生所谓人工智能。目前,知识表达的形式非常多,最常见的就是IF...THEN的形式,这种表达十分简单,但是表达能力有限。这里我想向大家介绍一种叫做“本体”的知识表达方式。我想对哲学比较了解的朋友,听说过“本体”这两个字,没错,“本体”就是来源于哲学。那么,且从哲学中的“本体”讲起。

(1)柏拉图和亚里士多德对于“存在性”的理解
本体论是形而上学的一个分支,是研究和讨论“存在性”问题的。关于“存在性”的讨论,柏拉图和亚里士多德的理论对后世的影响比较大。柏拉图提出了“理念”这一词,和具体的现象相对应。他认为拥有同一个名字的不同个体之间肯定存在着同一种理念,例如“床”这个概念就是“理念”,各式各样的个体的床是现象。在他看来,“理念”真正存在的实体,是独立于任何心灵而存在的,是上帝创造出来的完美体;而现象是“理念”的不完美的、残缺的复制品,没有“理念”的事物是不存在的。这就好比“理念”是上帝做的模子,而现象只是从这个模子里复制出来的残缺品(这个比方来自《苏菲的世界》,可能不太准确)。

为了说明这个道理,柏拉图打了一个著名的比喻,叫“洞穴之喻”。设想在一个地穴中有一批囚徒;他们自小呆在那里,被锁链束缚,不能转头,只能看面前洞壁上的影子。在他们后上方有一堆火,有一条横贯洞穴的小道;沿小道筑有一堵矮墙,如同木偶戏的屏风。人们扛着各种器具走过墙后的小道,而火光则把透出墙的器具投影到囚徒面前的洞壁上。囚徒自然地认为影子是惟一真实的事物。如果他们中的一个碰巧获释,转过头来看到了火光与物体,他最初会感到困惑;他的眼睛会感到痛苦;他甚至会认为影子比它们的原物更真实。如果有人进一步拉他走出洞穴,到阳光下的世界,他会更加眩目,甚至会发火;起初他只能看事物在水中的倒影,然后才能看阳光中的事物,最后甚至能看太阳自身。到那时他才处于真正的解放状态,会开始怜悯他的囚徒同伴、他的原来的信仰和生活。如果他返回去拯救他的囚徒同伴,他得有一段时间去适应洞中的黑暗,并且会发现很难说服他们跟他走出洞穴。

在这个比喻里面,柏拉图重在说明存在两个世界: 现象世界和理念世界。现象世界是我们感知的世界,是囚徒们看到的墙壁上的影子,其实是虚幻的,不存在的。而理念世界是通过理性思考所得,是山洞外面的世界,那才是完美的、真正存在的。普通人都陷在现象世界不可自拔,只有通过教育和理性思考才能把他们拉出洞穴,让他们看看真实存在的理型世界。

可见柏拉图把“理念”和“现象”分离了,所以说他的理论是“二元论”。基于此,他留下了著名的著作,《理想国》。

亚里士多德是柏拉图的学生,他在继承老师的思想的基础上,对老师部分思想进行了批判,并予以发展,发明了“共相论”。亚里士多德认为,“共相”的意思就是可以用于描述许多主体的东西,共相论要讨论的是泛指的、一类事物的名词。而与“共相”对应的是“实体”,它指个别的、唯一的、独立的个体。往往说“这类”指的是共相,而“这个”指的是实体。

从这里可以看出亚里士多德的理论和他老师的有所不同。在亚里士多德看来,理念并不是存在的实体,而实体是具体的个别事物。也就是不存在永恒和超验的理念世界,在他看来,理念内化在事物本身,所以理念和物质是不可分离的。亚里士多德把“理念”理解为事物普遍性的一面,是由所有同一类型事物分享的本质统一。这里的“理念”也即亚里士多德所谓“共相”。

这些就是柏拉图和亚里士多德关于“存在性”的讨论,非常的无聊,看起来这些讨论毫无意义,但是他们的这些无聊的讨论却影响了整个西方国家的宗教、文化的发展。

后来19世纪90年代,亚里士多德“共相”的理论被引入到人工智能领域,就是所谓“本体工程”,用来定义领域内的一些概念,以达到知识共享的目的。

(2) 人工智能领域对“本体”的定义及“本体”的基本要素。
在人工智能领域“本体”被定义为“a formal explicit specification of a shared conceptualization ”, 即一种共享的概念化,这种概念被形式化的、精确的定义。“形式化”意味着本体是可以被计算机理解的;“精确的”意味着概念以及概念被使用的约束要被精确的定义;“共享”意味着本体不是被针对某些个人的,而是被一个团体通常是一个领域所共享的;“概念化”是指对世界上某些现象的一种抽象模型,它指出了这种现象的相关概念。

说得简单些,“本体”就是精确定义了某一领域的一些概念,以及描述这些概念的特性、概念之间的关系的属性,以及属性的约束等,而这种定义和描述是可以被计算机理解的,且被领域所共同接受的。

讲这么多,其实我们只要明白“本体”的几个基本元素,就理解了什么是“本体”。之前在哲学里面已经讨论过“共相”的概念了,所以“本体”的两个最基本的元素就是“概念”和“实体”。基于亚里士多德关于“分类”的方法论,一个“概念”实际上也是一个“类”,所以“概念”和“类”在本体论中是同一个意思。为了描述概念或者实体的特性以及相互之间的关系,还有“属性”这么一个元素。实际上,“属性”包括两个元素,一个是“对象属性”,即描述类与类、类与实体、实体与实体之间的关系;另一个是“数据属性”,描述类或者实体的数据属性。除此之外,还有必要定义一些属性的约束,所以“约束”也是一个基本元素。

本体的构建过程,实际上就是定义上述几个基本元素的过程。当我们构建领域的本体知识时,我们可以考虑采用亚里士多德“分类”的方法论,从一个超类出发寻找下面的子类,再以此类推寻找更低一层的子类。例如生物这么一个类可以分为动物和植物,动物又可以分为人类和畜生,人类又可以分为男性和女性。

(3)一个简单的例子

这里举一个简单的例子,以便理解本体论的含义和基本元素以及本体的构建过程。Protégé是本体创建和编辑常用的开源软件,这里以该工具为例进行说明。
为了推动动物园管理智能化,于是全国动物园联合搞了个动物园领域的本体工程。
首先,对动物园的相关概念进行定义,例如“animal”、“plant”、“herbivore”、“carnivore”、“giraffe”、“lion”、“tree”、“branch”、“leaf”等。可以从图中看出,“herbivore”和“carnivore”是“animal”的子类。
然后定义一些对象属性,来描述类与类之间的关系,如图中的“eat”、“eated”、“partof”。“giraffe”“eat”“leaf”,这样就描述了类与类之间的关系了。

本体论|一种知识表达的方法_第1张图片
类与对象属性

为了把这个关系描述得更清楚,往往会加入一些约束,例如“giraffe”“only”“eat”“leaf”,这里的“only”就是约束。


本体论|一种知识表达的方法_第2张图片
属性约束

好了,接下来就是为类添加一些实体,例如有一个叫“wangwang”的长颈鹿,于是可以进行如下操作。


本体论|一种知识表达的方法_第3张图片
实体

那么,“wangwang”就是“giraffe”的一个实体了。对了,还有一个元素“数据属性”还没有提到的。例如下图,定义“address”和“tel”来描述动物园的地址和电话,这就是数据属性了。


本体论|一种知识表达的方法_第4张图片
数据属性的定义

在定义动物园的实体时,就可以为该实体填入数据属性的具体值了,例如下图动物园实体“上海动物园”的数据属性。


本体论|一种知识表达的方法_第5张图片
数据属性的值

通过这个例子,对本体的几个基本元素应该理解了。这个例子很简单,其实通过这种方式,可以定义非常复杂的本体,形成复杂的语义网络。而且本体是支持逻辑推理的,这种推理能力来源于描述逻辑。

(4)本体论和面向对象的异同
有编程经验的朋友可能会感觉,本体论和面向对象的意思差不多嘛。是这样的,它们都是对现实世界的抽象,也都来源于“共相论”。但是侧重点不一样,本体论侧重于对概念的定义,以及概念之间的联系;而面向对象侧重于类的功能的实现,或者说接口的实现。这是因为它们的用途是不一样的,“本体”是用来表达领域知识的,本体知识要便于计算机搜索到相关知识,并且便于计算机进行逻辑推理,所以它最重要的是描述概念或者实体之间相互的联系,以及约束。而面向对象实际上是要实现一定的功能的,它之所以用“类”的方法,是为了统一同一个类的接口,以实现代码的重用,所以它最重要的是要编码实现这些接口。

如果有需要用到知识表达的朋友,可以关注一下本体这种方法,或许会给你的项目或者论文帮上大忙。

你可能感兴趣的:(本体论|一种知识表达的方法)