Lesson 01 · 入门

本体是什么

从关系表到三元组 —— 一次需要"卸载"的范式跃迁

你已经会建模了:实体-关系图(Entity-Relationship, 简称 ER)、关系表、行与列、外键、对象与数据库表的映射。所以这一课 不教你画更漂亮的图——而是帮你退一步,看清本体跟关系 schema 真正不同的那一件事。它不是一个更复杂的模型,而是一种不同的断言方式。


01你已有的心智模型

作为工程师,你习惯用 表 + 行 + 外键 表达一个领域。一张 Product 表、一张 Order 表,用 product_id 关联。这套模型的隐含承诺是:

关系数据库的默认

每一行都要落在既定结构里;某个 NOT NULL 列没有值,这一行就插不进去。查不到记录,就当作"没有"。这是闭世界的思维。

这套思维极其强大,但在"知识"这件事上是件天花板:它要求你先定好形状,再往里填数据;填不进去的,就得改表。而真实世界——尤其是供应链计划——充满了"我们还不确定、但有约束、能推理"的知识。

02一句话定义

知识工程界最常被引用的定义,来自 Tom Gruber(1993):

Gruber 定义

一个本体是对一项共享概念化(conceptualization)的显式说明。[1]

拆开这四个词,它其实在说:

词它排除掉的对照物在说
共享你私有的实现细节大家认同的一套概念,供复用
概念化数据存哪、怎么存世界里有哪些类的东西、如何关联
显式藏在代码里的约定用正式语言写清楚,人机都读得懂
说明模糊的领域口语一份独立成文的规范,而非散落注释
对你意味着什么:本体不是"更严谨的关系模型",而是把注意力从"数据怎么存"挪到"这个世界是怎么一回事"。这正是知识工程里本体的用途。

03本体的四件套

一个本体由四件事构成:类(class)、属性/关系(property)、个体(individual)、以及建立在它们之上的约束与推理。用你的供应链计划领域看一眼:

Product Material FinishedGood ⊑ ⊑ sku-447 instanceOf

图 1 · Material 与 FinishedGood 都是 Product 的子类(⊑);sku-447 是 FinishedGood 的一个个体。

04三元组:最小的陈述

在本体里,一切知识都是 主语 谓词 宾语 这种三元组。每条三元组断言一条事实。先看它在供应链计划里长什么样:

:order-1042 a :Order ; # 1024 号订单,是个「订单」 :order-1042 :requiresProduct :sku-447 . # 它需要物料 447 :sku-447 :hasLeadTime "14" . # 447 的提前期是 14 :forecast-jun :targetsProduct :sku-447 . # 六月预测指向 447

Turtle 语法:每个被空格分开的 x y z 都是一个三元组。前缀 : 是本体的命名空间。

order-1042 sku-447 "14" 天 requiresProduct hasLeadTime

图 2 · 一汪事实的图:订单需要物料,物料有提前期。每条箭头=一条三元组。

注意这里的语法即语义——三元组本身就是一句话,不需要你预先定义"哪个表、哪一列"。想新增一条知识?再加一个三元组即可,不必改表结构。

05关键一跃:闭世界 vs 开放世界

这是你作为工程师最需要"卸载"的一次。关系数据库是闭世界:没存的就是没有。本体是开放世界:我没说的 ≠ 不成立,它只是"我还不确定"。

关系 schema(闭世界)本体(开放世界)
缺值插不进去 / 视为不存在允许;不知道 也是合法状态
查无就是没有可能是"尚未断言"
推理基本不做可从已知推出未写的事实
一致性约束强制,违反即报错允许暂时的"矛盾/未决",交给推理器
这就是差别

关系模型回答:"这个值该存进哪个表哪一列?"本体回答:"这句话在这个世界里是真的、假的、还是暂时未知?"前者规划存储;后者表达事实并允许推理。[3]

例子:供应链(Supply Chain, 简称 SC)系统里某产线的产能 capacity 今天还没定值。关系表忍不了——得给个默认或填个 0(扭曲语义);本体里你只需不断言这条,以后补上即可,系统照常知道"有这条属性、只是还未知"。

06这跟检索增强生成(RAG)有什么关系

扯回你的使命。检索增强生成(Retrieval-Augmented Generation, 简称 RAG)的痛点是:大模型不懂你的领域词汇、检索到的是碎块、无法保证一致性。一个本体能提供:

近两年的研究(如 OG-RAG、OntoRAG)正是把本体接进检索增强生成,以降低幻觉、提升领域一致性。[6][7] 这一课只是打了个底,后面几课我们会具体拆"怎么把供应链计划领域建成本体、再接进检索增强生成"。

07检查你的理解

三题小测,马上反馈。每题四个字左右,别靠猜,试着先想再点——这正是把知识变成记忆的时刻。

在知识工程里,「本体」最接近下面哪一句?

关系表的 NOT NULL 列缺值时会被拒绝。这背后是哪种假设?

要表达「库存单元(Stock Keeping Unit, 简称 SKU)-447 的提前期是 14 天」,哪个三元组正确?

本课主来源 · 值得一读 Ontology Development 101 —— Noy & McGuinness protege.stanford.edu 用 30 分钟读完,你会看到"为什么、何时、以及怎么建一个本体"的完整答案;也是继续往下几课的理想铺垫。

想更工程化、更贴近数据建模的深读?见 Semantic Web for the Working Ontologist(Allemang & Hendler)。


[1] Gruber, T. R. (1993). A translation approach to portable ontology specifications.

[3] (Applied Ontology) Ontology and database schema: What's the difference? — 系统对比本体与 schema 的 25 个特征。

[6] OG-RAG: Ontology-grounded Retrieval-Augmented Generation for Large Language Models(2025;收录于 EMNLP,即 Empirical Methods in Natural Language Processing 自然语言处理实证方法会议)。

[7] OntoRAG: Ontology-Driven RAG(开源框架)。

有疑问?问 agent

这一课允许你只抓住一个核心直觉:本体的天职是表达世界如何、允许推理,而非规定数据存哪。哪里卡住、或想把某个例子落到你的真实业务,直接问我。