Lesson 01 · 入门
本体是什么
从关系表到三元组 —— 一次需要"卸载"的范式跃迁
你已经会建模了:实体-关系图(Entity-Relationship, 简称 ER)、关系表、行与列、外键、对象与数据库表的映射。所以这一课 不教你画更漂亮的图——而是帮你退一步,看清本体跟关系 schema 真正不同的那一件事。它不是一个更复杂的模型,而是一种不同的断言方式。
01你已有的心智模型
作为工程师,你习惯用 表 + 行 + 外键 表达一个领域。一张 Product 表、一张 Order 表,用 product_id 关联。这套模型的隐含承诺是:
每一行都要落在既定结构里;某个 NOT NULL 列没有值,这一行就插不进去。查不到记录,就当作"没有"。这是闭世界的思维。
这套思维极其强大,但在"知识"这件事上是件天花板:它要求你先定好形状,再往里填数据;填不进去的,就得改表。而真实世界——尤其是供应链计划——充满了"我们还不确定、但有约束、能推理"的知识。
02一句话定义
知识工程界最常被引用的定义,来自 Tom Gruber(1993):
一个本体是对一项共享概念化(conceptualization)的显式说明。[1]
拆开这四个词,它其实在说:
| 词 | 它排除掉的对照物 | 在说 |
|---|---|---|
| 共享 | 你私有的实现细节 | 大家认同的一套概念,供复用 |
| 概念化 | 数据存哪、怎么存 | 世界里有哪些类的东西、如何关联 |
| 显式 | 藏在代码里的约定 | 用正式语言写清楚,人机都读得懂 |
| 说明 | 模糊的领域口语 | 一份独立成文的规范,而非散落注释 |
03本体的四件套
一个本体由四件事构成:类(class)、属性/关系(property)、个体(individual)、以及建立在它们之上的约束与推理。用你的供应链计划领域看一眼:
图 1 · Material 与 FinishedGood 都是 Product 的子类(⊑);sku-447 是 FinishedGood 的一个个体。
- 类
Product—— 一个概念的集合,要被实例化,不是一张表。 - 子类
FinishedGood ⊑ Product—— 子类的每个个体自动也是父类的个体,这是推理的种子。 - 个体
sku-447—— 世界里的那"一个东西",不是一行记录。 - 属性/关系 —— 把个体连起来(见下)。
04三元组:最小的陈述
在本体里,一切知识都是 主语 谓词 宾语 这种三元组。每条三元组断言一条事实。先看它在供应链计划里长什么样:
Turtle 语法:每个被空格分开的 x y z 都是一个三元组。前缀 : 是本体的命名空间。
图 2 · 一汪事实的图:订单需要物料,物料有提前期。每条箭头=一条三元组。
注意这里的语法即语义——三元组本身就是一句话,不需要你预先定义"哪个表、哪一列"。想新增一条知识?再加一个三元组即可,不必改表结构。
05关键一跃:闭世界 vs 开放世界
这是你作为工程师最需要"卸载"的一次。关系数据库是闭世界:没存的就是没有。本体是开放世界:我没说的 ≠ 不成立,它只是"我还不确定"。
| 关系 schema(闭世界) | 本体(开放世界) | |
|---|---|---|
| 缺值 | 插不进去 / 视为不存在 | 允许;不知道 也是合法状态 |
| 查无 | 就是没有 | 可能是"尚未断言" |
| 推理 | 基本不做 | 可从已知推出未写的事实 |
| 一致性 | 约束强制,违反即报错 | 允许暂时的"矛盾/未决",交给推理器 |
关系模型回答:"这个值该存进哪个表哪一列?"本体回答:"这句话在这个世界里是真的、假的、还是暂时未知?"前者规划存储;后者表达事实并允许推理。[3]
例子:供应链(Supply Chain, 简称 SC)系统里某产线的产能 capacity 今天还没定值。关系表忍不了——得给个默认或填个 0(扭曲语义);本体里你只需不断言这条,以后补上即可,系统照常知道"有这条属性、只是还未知"。
06这跟检索增强生成(RAG)有什么关系
扯回你的使命。检索增强生成(Retrieval-Augmented Generation, 简称 RAG)的痛点是:大模型不懂你的领域词汇、检索到的是碎块、无法保证一致性。一个本体能提供:
- 统一词汇 —— 大家都用
Product/LeadTime,而不是"商品"/"备货期"各说各话。 - 结构化知识图 —— 把它落到图上,检索拿回的是事实与关系,而非孤立文本片段。
- 约束与推理 —— 用约束约束提示/输出,用推理补全未言明的事实。
近两年的研究(如 OG-RAG、OntoRAG)正是把本体接进检索增强生成,以降低幻觉、提升领域一致性。[6][7] 这一课只是打了个底,后面几课我们会具体拆"怎么把供应链计划领域建成本体、再接进检索增强生成"。
07检查你的理解
三题小测,马上反馈。每题四个字左右,别靠猜,试着先想再点——这正是把知识变成记忆的时刻。
在知识工程里,「本体」最接近下面哪一句?
关系表的 NOT NULL 列缺值时会被拒绝。这背后是哪种假设?
要表达「库存单元(Stock Keeping Unit, 简称 SKU)-447 的提前期是 14 天」,哪个三元组正确?
想更工程化、更贴近数据建模的深读?见 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(开源框架)。
这一课允许你只抓住一个核心直觉:本体的天职是表达世界如何、允许推理,而非规定数据存哪。哪里卡住、或想把某个例子落到你的真实业务,直接问我。