漫谈计算机领域的本体论(ontology)
提要:计算机科学或信息技术领域的“本体论”(ontology,常简称本体)概念实际上与哲学形而上学背道而驰。其“本”(不再分之个体)是相对的、权宜的,取决于应用目的。计算机应用的本体论创建过程,是将特定域上的概念空间实体映射到计算空间的建模过程。从世界观的角度看,计算机本体论术语的来源,反而像是某种陷阱;计算机领域的本体论体现的哲学,不是哲学形而上学的本体论,而是基于模型的实在论。
尽管计算机科学或信息技术领域的概念“本体论”(ontology,常被简称为本体,下文也会这样用)是从哲学中借鉴而来,但它很具体和实在,且建立在相对性基础上,这与形而上学的本体论背道而驰。可以从两个方面去理解它:首先是一种方法学——以确立独立存在的概念(对象或实体)为基本目的,尽量采用精确的、计算机可处理的(或形式化的)表达方法。其二,指用上述方法学所建立的体系,所谓概念化体系,或直接将它们称为“本体”(ontologies)。建立这种体系,通常是作为一种约定,从而对特定领域上的(计算机)表达与处理建立一个明确的基础。
按照本体论的方法与准则建立一个本体论(体系)的过程,是一种抽象过程。而且,可能将愈加证明这是一种想当重要的、基础性的建模活动,这个过程的输出,是一种重要的模型(这个称为“本体”似乎更自然些,对应ontologies)。从物理、概念与计算的三种空间来看,一种本体的建立,是针对概念空间上特定的域(domain),建立计算空间实体(或包括辅助的,概念空间的描述,和其它辅助设施,例如关联的程序等)。换言之,计算机应用的本体论的创建过程,是将特定域上的概念空间实体映射到计算空间的建模过程。
在一个本体论系统中,对概念说明到何种程度有很大弹性,其中个体要素的选择是相对性的,作为一种应用技术,它取决于建立这个本体的目的。与此相关,如何说明/表示概念,同样是富有弹性的。但无论如何,概念空间实体——即概念的识别总是必须和优先的。这些概念可能对应于物理空间实体(所谓具体概念),也可能不具体对应特定的物理空间实体(所谓抽象概念),但首要的表达问题无疑是“名”的问题,规定概念的名称。同时,一个本体论体系不是罗列术语定义,而是一个领域内的概念体系的完整说明,包括概念之间的关系。
在一些讨论中,有一种观点,认为本体论不包含动词,是一种缺陷,显示了个体(名词)在先的,原子论的世界观。这种对本体论的认识似乎不是孤立的,它有明确的理由(比如基于这个词的来源:哲学本体论)——这也许可归于一种类似“原教旨主义者”的本体论界定倾向,但并不代表这个领域的全部。例如包括名词、动词和形容词等等在内的在线词典WordNet,一方面常被当作本体论应用的典型例子,但也有人争议它算不算一个本体论体系。我猜想,争论者其中就有本体论的“原教旨主义者”吧。
维特根斯坦的早期思想也被称为“逻辑原子主义”。但它是还原论吗?在离散空间中,不存在任何有内涵的实体,一切意义皆存于点集及其关系之中。有一种断言:我们所能积累的一切知识,或有效的认知,都可以在离散空间中表达——记得在多年前的网络讨论时曾经说过,我们每经过一天,都在为此积累新的证据:因为每天都在用数字化计算机处理更多更复杂的问题……。这些是否可以认为是一种原子论世界观或还原论呢。计算机本体论丝毫不妨碍对存在的关系本质这样理解:我们所能够认知的一切事物,都是体现在某种关系之中……对事物关系本质的追溯,最终将到达有与无(1, 0)……从数学的角度,就是离散度量空间上点的关系……一切可以谈论的存在都可抽象地表现在点集的拓扑之上……关系模型以及……实体联系模型……模型论……这是一副明晰、连贯的图景。这里概括的东西很多很多,但也很具体(相对于哲学),或很抽象(涉及数学基础问题)。要说是什么世界观的话,重视个体、基于离散空间建模,似乎和原子论很接近,但我看它们真就没什么关系。由此联系到哲学,我私下称之为“我的构建主义”,特别强调或重视这种世界观与还原论的区别。建构和还原,字面上看上去是相反的操作,但我认为这两种“哲学”之间并没有往复工程,它们并非互逆的过程。这里涉及到的问题,在系统理论常常被称为“涌现”,还有所谓的“整体”不等于部分之和。
可以看到,信息技术领域的本体研究,和软件工程领域的基本思路,特别是DSL方面的研究,具有互补性。传统而言,语言一直是主角——本体论的出现恰恰补充了在这个大背景下曾经相对忽略的东西。所谓“名词”优先、静态关系为主的特征,也与这个有关:软件编程语言就是用来描述/制造“动词”的。近年热的 DSL 概念,与传统的通用语言相比,其最明显的特征也可以说,就是本体论部分得到了加强,也可以解释成“领域本体+语言”。至于建模语言,比如最具代表性的 UML,没有及时、充分地借鉴/融入本体论的成果,或许是一种缺憾。后来发展的 profile,就很接近于一种本体论的扩充。
在讨论中提到“关系本体论”,我不太清楚在本体论研究领域中它处于什么地位,但我认为,作为应用技术或方法学的本体论(而不是哲学),个体在先或关系在先,只是一个相对方便的选择。更明确地说,本体论之“本”(不再分之个体)是相对的、权宜的。能够解析为关系和是否解析为关系,取决于应用目的。例如,作为一种相当经验性的法则,在进行所谓数据(或信息/概念)建模时,将关系分解到什么程度,完全是基于系统整体需求的一种权衡——学究一点,问题域的边界条件和推理的需求决定了什么程度的分解是最方便的。这对于认知理论也具有示范价值。这种折中的选择,反映的正是认知的一个本质方面:寻找确定性,在无限的世界中寻找有限性。从世界观的角度看,计算机本体论术语的哲学来源,反而像是某种陷阱;计算机领域的本体论体现的哲学,不是哲学形而上学的本体论,而是基于模型的实在论。
评论
yushan 2012-02-12 • 21:00
我们所能够认知的一切事物,都是体现在某种关系之中……对事物关系本质的追溯,最终将到达有与无(1, 0)……从数学的角度,就是离散度量空间上点的关系……一切可以谈论的存在都可抽象地表现在点集的拓扑之上……关系模型以及……实体联系模型……模型论……这是一副明晰、连贯的图景。
非常好,希望能再给些直观说明或者论证。yushan 2012-02-12 • 21:08
在离散空间中,不存在任何有内涵的实体,一切意义皆存于点集及其关系之中。有一种断言:我们所能积累的一切知识,或有效的认知,都可以 在离散空间中表达——记得在多年前的网络讨论时曾经说过,我们每经过一天,都在为此积累新的证据:因为每天都在用数字化计算机处理更多更复杂的问题……。
我以为,计算机的确处理了许多问题,但是它的表达恐怕语义上不是自足的,没有达到形式化所要求的水平,还是要靠人的参与才能完成。就像自然语言,我们不是也靠它表达解决了所有的问题吗?yushan 2012-02-12 • 21:22
传统而言,语言一直是主角——本体论的出现恰恰补充 了在这个大背景下曾经相对忽略的东西。所谓“名词”优先、静态关系为主的特征,也与这个有关:软件编程语言就是用来描述/制造“动词”的。近年热的 DSL 概念,与传统的通用语言相比,其最明显的特征也可以说,就是本体论部分得到了加强,也可以解释成“领域本体+语言”。
非常好。从建模角度看,就是业务模型与数据模型的关系,它们都是由自然语言(业务语言)完成描述的,所以我说可以从术语角度来引入动词,这样才完整了表达 了企业模型。如果从术语概念的语言角度,为什么要把动词部分排除在外呢我倾向于把它们结成一个体系来研究,因为它们之间有着不可分割的密切的语义关系。TY 2012-02-13 • 20:13
好的,三条评论,我按顺序逐一来回答:
- 关于理论图景。一向以来的讨论都没有离开过这条线,最近也正在陆续发一些稍微深入的阐述。余山兄应该是了解最多的人了。我希望这辈子能够尽可能阐述清楚一些东西,特别是,希望得到承认。其实,我已经发的东西里,已经披露了相当实质的东西……我刚刚发出的“model as use”是又一个非常实质(接近核心)的东西。我看过几十篇科学哲学、计算机科学(软件工程)领域专门讨论了模型概念的一手文献,和更多的相关文献、讨论,清楚这点东西的独到之处,但……
- 自然语言永远不会被淘汰。这和计算机正在和将会处理更多的问题最终达致智能的顶层没有任何矛盾。至于“形式化”,我谈论过它背后陷阱的意味。在这里用一个简单的例子说,就是所谓自然语言和形式语言之间并没有大多数人以为的鸿沟。
- 这一轮关于本体论的讨论,和我讨论其它概念一样,重点是考察它独特的价值和定位在什么位置,我们怎样对待它,所以,和余山的探索方向并没有任何矛盾——只是希望我们不再去探索别人已经达成的东西,而是在现有知识体系的基础上建设。
原始发表:企业工程论坛,2012-02-08,
http://www.ee-forum.org/wp/pub/ty/2012-02-p3197.html
(调整了原文链接)
作者印:dcb442
相关阅读