Lesson 08 · 工程取舍

何时不用本体

本体很强大,但不是银弹——知道什么时候别用它,才叫真会

前面七课都在讲本体多好。这一课唱个反调:在有些场景,硬上本体是"杀鸡用牛刀",甚至更糟。能把"该用、不该用"分清,是你真正的工程成熟度——也正好回你使命里"知道什么时候用关系数据库更省事"这一条。


01先看本体的"成本"

本体不是免费的。它为你换来语义、互操作、推理,同时也带来几笔账:

成本具体什么时候是负担
工具链要懂 Web 本体语言(OWL)/资源描述框架、推理器、图库团队没这经验时,学习成本高
性能SPARQL 查询与推理,在大数据量下比 SQL 慢高吞吐、强事务的系统
行为本体是声明式语义,先天不带方法/行为规则要在代码里原子化执行
一致性开放世界、可单调追加,不适配要"强一致性"的场景账务、事务型业务规则
一句话:本体的强项是"表达世界是什么、允许推理";弱项是"承载行为、高并发强事务"。

02该用 vs 不该用

✅ 该用本体❌ 别用本体(用关系库/领域驱动设计更合适)
需要跨系统共享语义、对齐行业标准单应用内部,schema 稳定,无跨边界共享
需要机器推理、开放/不完备/会演进的知识数据是闭世界、确定、静态,只需增删改查
要知识图谱支撑检索/多跳/给大语言模型接地核心是行为与事务(聚合、业务规则原子执行)
需要互操作、一致性校验、灵活演化的语义高吞吐、强一致、重事务的业务流水
判断口诀

本体的天职是"让不同系统对世界达成一致、并允许推理"。如果你的痛点不是"语义不齐",而是"跑得快、事务对、行为准",那多半该用关系库 + 领域驱动设计。

03更务实的心态:不一定是二选一

现实中,别把本体和关系库看成"你死我活"。更常见、也更聪明的做法是分层叠加、各司其职:

这正是你使命的答案

供应链计划里,订单/产能的权威数据与事务放在关系库(或领域驱动设计的聚合);而上层用本体提供跨系统一致语义、知识图谱支撑检索、公理做推理与校验——供大语言模型应用(GPT)使用。两者配合,而不是二选一。

04给你的供应链项目快速自检

拿你的场景,问这五句:

  1. 多个系统/团队对同一概念叫法一致吗?(不一致 → 本体词汇层有用)
  2. 需要"没写也能推出"的知识吗?(要 → 推理有用)
  3. 知识是否开放、不完备、会演进?(是 → 开放世界有价值)
  4. 核心是"执行+事务"还是"语义+互操作"?(后者 → 本体;前者 → 别硬上)
  5. 要喂给大语言模型、需要可解释结构化事实吗?(要 → 本体/知识图谱是底座)

前 3 句答"是"、且第 4 句偏"语义",那就在你项目里用本体;反之,先上关系库,别为"显得专业"而造本体。

05检查你的理解

下面哪种场景不适合硬上本体?

本体和关系库的务实关系是?

本体的一个重要先天短板是?

本课主来源 · 权威对比 《Ontology and database schema: What's the difference?》(Applied Ontology) journals.sagepub.com 这篇系统对比本体(重含义)与数据库模式(重数据)的差异,正好帮你判断"该用哪个、何时用哪个"。

想再看"为什么/何时建本体",回看 Ontology Development 101;逻辑层面见 本体是什么。


[1] 《Ontology and database schema: What's the difference?》—— 本体与数据库模式的系统性对比。

[2] 万维网联盟(World Wide Web Consortium, W3C),Web 本体语言(OWL)入门 —— 语义、推理与表达能力的权威来源。

有疑问?问 agent

这一课是"判断课"。拿你真实项目,告诉我"数据多稳、要不要推理、核心是语义还是事务、要不要喂大语言模型",我帮你判断该不该在这里用本体、以及用哪一层。