本体论是什么?从康德的形而上学到企业软件的知识图谱

3 阅读8分钟

随着帕兰蒂尔在AI时代的爆火,本体(Ontology)这个词冲出学术圈,重新成了技术圈的热门词。很多人的反应是,这不是哲学系的东西吗?

这个困惑是合理的。Ontology 作为哲学术语,可以追溯到十七世纪,德国哲学家戈克莱尼乌斯在 1613 年的著作里第一次用这个词,指的是"研究存在本身的学问",什么东西存在,存在意味着什么,存在物之间的关系是什么。康德在《纯粹理性批判》里花了大量篇幅讨论这些问题,把它推向了哲学史上最复杂的领域之一。然后这个词出现在了软件工程里,含义似乎变化了很多,但核心直觉没有变。

回顾:哲学里的本体论在问什么

康德之前,本体论的核心问题是:现实世界的基本构成单元是什么?

亚里士多德的答案是"实体"(substance)——世界由具体的事物构成,每个事物有它的属性,属性依附于实体存在。一匹马是一个实体,它的颜色、重量、速度是它的属性。实体之间可以有关系:这匹马属于这个农场主,这匹马比那匹马跑得快。

康德的真正转折在于重新定义了“知识”的构成条件。在他之前,知识被理解为心灵对客观世界的被动映照;康德把这个关系颠倒了过来——我们能认识的从来不是“物自体”(Ding an sich),而是经过认知框架过滤之后的现象。时间、空间、因果这些范畴,不是世界本身的属性,而是人类理解世界时必须戴上的、摘不掉的“镜片”。

这就意味着,所谓“知识”,从来不是一个裸的现实在头脑中的复刻,而是现象材料经过先验框架组织之后的产物。换句话说,没有框架,就没有知识。这个结论在哲学上是革命性的,但它也引出了一个和信息科学直接相关的推论:不同的框架,会组织出不同的知识。那么,当多个系统、多个主体要共享“同一件事”的知识时,他们必须先共享那个让知识得以成立的框架。信息的“语义互操作性”问题,哲学上已经在这里埋下了根。

从哲学到信息科学:语义互操作性问题

这个问题在信息科学和计算机科学的早期并不是什么严重的问题,毕竟绝大多数真实世界中的元素都没有被纳入计算机的管理范围。但时间到了 1990 年代,互联网开始大规模扩张,更多现实元素被引入了计算机系统,一个具体的工程问题浮现出来,存在交集的不同系统之间怎么共享数据?

不是数据格式的问题,XML 和 JSON 能解决格式。问题是语义,一个系统里叫"客户"的概念,在另一个系统里叫"买方",它们是同一件事吗?一个系统里的"订单状态=2"和另一个系统里的"订单状态=confirmed",是同一个状态吗?这个问题被称为"语义互操作性"(semantic interoperability),它在医疗、政府数据、科学研究领域尤其严重。不同机构多年独立建设的系统,用不同的词描述同一个概念,整合数据时要消耗大量人工去对齐。

为此,信息科学借用了哲学里的"本体"这个词,赋予了它一个信息科学中具有可操作性的定义:对特定领域中一套共享概念及其相互关系的形式化表达。

注意这个定义里的每个词都有重量:

  • 特定领域:本体不试图描述整个世界,只描述某个范围内的事物
  • 共享:本体不是一个私有的、不被共享的“形式化概念集”,后者更接近一个本地数据字典或模式(schema)
  • 形式化:用机器能处理的方式表达,不是自然语言描述
  • 概念及其相互关系:不只是列出概念,还要明确概念之间怎么连接。

OWL 和知识图谱:工程化的本体

2004 年,W3C 发布了 OWL(Web Ontology Language)标准,给本体的形式化表达提供了一套语法。用 OWL 写的本体可以被推理引擎处理,比如给定已知的事实和规则,自动推导出新的结论。

举一个简单例子。在一个描述企业组织结构的本体里:

Class: 员工
Class: 经理
SubClassOf: 经理 → 员工
ObjectProperty: 汇报给
Domain: 员工
Range: 经理

有了这个本体,推理引擎可以自动得出:所有经理也是员工;如果张三汇报给李四,则李四是经理。这些推论不需要手动编写,它们从本体的结构中自动涌现。

谷歌在 2012 年发布知识图谱(Knowledge Graph)时,背后的基础设施就是这类结构化的本体。当你搜索"爱因斯坦",返回结果里有他的生卒年、国籍、主要成就、相关人物。这些信息不是从网页文本里临时抽取的,而是存在一个预先构建的结构化图里,每个节点是一个实体,每条边是一个关系。帕兰蒂尔的 Foundry 平台是企业级本体实践的标杆,它以 Ontology 层将企业数据资产组织为对象和关系网络。其最新发布的 AIP,正是利用这个本体层为 AI 提供可靠的操作地基。

AI 时代的本体:宽容度更高,目标更务实

传统 OWL 本体有一个工程上的问题:它的逻辑严格性要求很高。定义一个类,必须明确它的所有必要和充分条件;声明一个关系,必须精确指定它的域和值域;引入任何新概念,都要保证整个本体的逻辑一致性。

这对于构建一个"正确"的知识体系是好的,但对于帮助 AI 完成具体任务,这个严格性有时候是负担。一个字段的含义即便描述得不够精确,只要大方向对,AI 通常能处理。过度追求形式逻辑的完整性,会让本体的建设和维护成本变得很高,远超过它带来的收益。

AI 时代的本体实践,在工程上做了一个重要的让步:宽容度更高,硬性逻辑约束不是必须的。

它的核心目标不是维护一个逻辑上完备的知识体系,而是给 AI 提供足够的结构化信息,让它能正确地操作系统。仅需为AI提供操作语境的话,你不需要用 OWL 写出一个能通过推理引擎验证的本体,你只需要用机器可读的方式描述清楚这个系统里有哪些概念,这些概念有哪些属性,可以对它们做哪些操作,操作的规则是什么。

这个降低了的门槛,让本体从"需要专门知识工程师维护的学术基础设施"变成了"软件开发团队可以自己构建和维护的工程产物"。这是一个非常值得关注的点,从这里开始,本体将会与软件开发人员紧密相关。

本体、RAG与微调:不同层次的分工

本体不是文本,而是关系图;它不在模型里,而在模型外,可以独立更新;它不依赖 AI 去猜测概念之间的关系,因为这些关系已经被明确定义了。我们现在可以把之前两篇文章中提到的方案放在一起比较,差异在于它们各自在哪个层面解决问题。

  • RAG 在推理时临时检索文本片段,信息是平面的、碎片化的,片段之间的关系靠 AI 自己猜。
  • 微调把知识压进模型权重,但知识和系统的变化不同步,维护成本随迭代线性增长。
  • 本体在系统和 AI 之间建立了一个显式的、结构化的语义层。

三者的关系不是替代,而是分层配合:本体定义关系,微调内化基本模式,RAG补救临时性、长尾知识。

更重要的是,这个方向和人类学习新领域的认知结构是吻合的——这也是第六篇里讨论 Ausubel 先行组织者的背景。人类学习一个新系统,第一步不是读所有的操作文档,而是先建立概念地图。这个系统里有哪些核心对象,它们之间是什么关系,能做哪些操作。有了这张地图,具体的操作细节才能被正确地安放和理解。

给 AI 一个结构化的本体,本质上是给它提供了这张地图。


本文是"企业AI落地"系列的第8篇。下一篇用一个更具体的思想实验,把本体的四个核心要素(实体、属性、动作、关系)说清楚。