ARTICLE · 1324358
本体不是文档:判断一套本体是否成立的四条标准
三百二十页的《企业本体模型说明书》,Visio 画的业务对象关系图,四十七个核心实体,每个实体配一段定义、一段业务说明、一段关系描述。评审会上,专家给了"优秀"。
一年后我再去,问这套本体现在谁在用。
项目组已经解散了。文档躺在共享盘的一个文件夹里,最后一次修改时间停在验收那个月。
业务方说了一句很实在的话:"那个东西写得挺好,但我要查数据,还是得找小王。"
这就是"文档型本体"的典型命运:它满足了交付,但没有进入生产。
问题出在验收标准上。我们验收文档,看的是厚度、完整性、规范不一致;而本体这种东西,验收标准只有一个——它能不能被程序调用。
这篇给四条标准,一条比一条难。

标准一:可执行
第一条也是最硬的一条:规则和口径必须以程序能执行的形式存在。
对照一下两种写法。
文档写法:
有效订单指已完成签收且未发生全额退款的订单,退款金额以实际到账金额为准。
本体写法:
valid_order := order.status == 'SIGNED' AND refund.settled_amount < order.payable_amount 区别不在美观,在能不能跑。
前一句,机器读到"已完成签收"要猜:签收状态字段叫 status 还是 order_state?值域是 'SIGNED' 还是 'S' 还是 3?"全额退款"是等于还是大于等于?"实际到账"和"申请退款"用哪个?
每一个模糊点,都是一次错误的可能。四五个模糊点叠起来,答案基本不可用。
后一句,机器不用猜。字段在哪、值是什么、比较关系是什么,全写死了。错了也能定位到具体是哪一行错。
可执行的反面不是"不专业",而是"不可验证"。 一段中文口径,你没法自动检查它有没有被实现、有没有跑偏。一个表达式,你可以。
标准二:可追溯
第二条:每一条语义,都要能追到人和版本。
具体追三样东西:
追到人——这个对象谁负责、这条规则谁定的、这个口径争议谁裁决的。没有责任人,本体就是个无人认领的公共品,改起来没人敢动,错起来没人认。
追到版本——这条规则从什么时候生效、上一版是什么、为什么改。业务口径是活的,"销售额"三年改两次很正常。没有版本,历史数据对不上账时,你连"当时按哪版算的"都说不清。
追到数据——这条语义绑的是哪张表、哪个字段、哪个系统。追不到物理层,本体就悬在空中:它描述了一个理想世界,而真实数据在另一个世界。
有个很实用的检查办法:随便挑一条规则,问"这条规则是谁在什么时候定的,上一版是什么,现在哪个系统在按它算"。 三个问题有两个答不上来,说明追溯链断了。
标准三:可校验
第三条:语义和实现之间的偏差,要能被自动发现。
这是最容易被跳过的一条,也是本体能不能长期活着的分水岭。
现实中的偏差长什么样?
- •
标准说"订单金额含税",系统里存的是不含税金额,报表层又乘了一次税率
- •
本体说"客户编码全局唯一",某个并购进来的子公司还在用自己的编码规则
- •
规则说"退款金额不超过订单金额",但历史数据里有一批超额退款没清理
这些偏差,靠人肉比对永远查不完。必须有机制:定期跑一遍语义规则,把不符合的记录和不符合的映射揪出来。
业界的做法一般是三层:
- 1.
结构校验——对象必需的属性是否都绑定了字段,有没有孤儿对象
- 2.
规则校验——把本体的约束翻译成 SQL 或规则引擎,定期跑,出通过率
- 3.
映射校验——物理字段的实际值域、分布,是否还符合本体里声明的类型和枚举
第三层最容易被忽略。本体里写"状态枚举有五个值",实际系统悄悄加了个第六个值,没人更新本体,Agent 就会在这个值上出错。
没有校验的本体,寿命一般是六个月。
标准四:可维护
第四条:变更成本要低到业务方愿意提需求。
这条听起来最软,实际最致命。
本体的死法,很少是被推翻,多是"没人更新"。
一个典型过程:业务改了口径,找到数据团队,数据团队说改本体要评估影响范围,评估了两周,业务等不及,直接让开发在报表里写死了一段 SQL。三个月后,报表和本体各说各话。半年后,没人再相信本体。
要让本体活得久,得解决三件事:
变更影响可见——改一个对象,能立刻列出影响哪些指标、哪些报表、哪些 Agent。这件事靠血缘和依赖关系图,不能靠人记。
变更流程短——小改(加属性、加枚举值)走快速通道,大改(动关系、动规则)才走评审。所有变更都走同一条重流程,等于逼着大家绕开。
责任落到域——不是所有本体都归一个中央团队管。业务域内的对象,域内的人有维护权;跨域的关系,才需要上升裁决。

一份可以拿去用的验收清单
把四条标准翻译成可勾选的条目:

九项里过六项,算及格;过八项,这套本体能进生产。
📝 总结
判断一套本体成不成立,不看它有多厚,看它四件事:规则能不能跑、语义能不能追、偏差能不能查、变更能不能改。
四条都满足,它就是资产。缺一条,它就开始向文档退化。
系列:《本体:让机器读懂业务的最后一层》















































































