Lesson 02 · 类与推理
类、层次与推理
本体真正的力量,在于能从你没写的三元组里推出事实
上一课你看到三元组在"断言事实"。但真正的杠杆是:一旦有了类与约束,一个推理器(reasoner)能自动生成你没写、但逻辑上必然成立的三元组。这是关系数据库基本不做的事,也是本体在知识图与检索增强生成(Retrieval-Augmented Generation, 简称 RAG)里值钱的根源。[1]
01子类不是"子表",是一个逻辑陈述
在关系模型里,"子类型"常被实现为一张子表或一个判别字段。但在本体里,子类是一条逻辑规则:
若 A ⊑ B(A 是 B 的子类),那么A 的每个个体都自动是 B 的个体。这个"自动"是逻辑保证的,不是应用代码写的。
传递性:一次推导,链条生效
子类关系是可传递的:如果 SKU ⊑ FinishedGood(SKU 即库存单元 Stock Keeping Unit)且 FinishedGood ⊑ Product,那么 SKU ⊑ Product。你只需声明"紧邻"的一条,推理器帮你补全整条链。
在供应链计划里这很常见:
02domain 与 range:给属性写"类型签名"
别被"定义域/值域"唬住——它就是给属性标一个类型签名,像函数的参数类型:hasCapacity(主语: 资源, 宾语: 产能度量)。声明之后,推理器就能反过来补类型。
属性 hasDriver(有个司机)。问两句:谁能"有司机"?→ 车,所以它的 domain=车(管主语那端);那个司机是什么?→ 人,所以它的 range=人(管宾语/值那端)。
于是我只说一句 :X :hasDriver :alice,推理器就推出 :X rdf:type :Car 和 :alice rdf:type :Person——你没写类型,它补上了。
| 约束 | 管哪端 | 说人话 |
|---|---|---|
domain 定义域 | 主语 | "谁用这个属性,它就是哪一类" |
range 值域 | 宾语 / 值 | "这个属性连到的对象或值,是哪一类" |
换成供应链:是谁在"声明产能"?→ 资源(产线、机台、仓库),所以 hasCapacity 的 domain=资源;产能值是什么?→ 一个度量,所以 range=产能度量。看推理:
这就是 Web 本体语言(Web Ontology Language, 简称 OWL)里前缀 rdfs: 的资源:subClassOf / domain / range 都是资源描述框架模式(Resource Description Framework Schema, 简称 RDFS)的标准谓词。
hasCapacity 写一次这个"类型签名"。以后任何"有产能的东西"(产线、机台、仓库)都会被自动认成"资源",不用逐个写 rdf:type :Resource——把类型判断交给推理器,而不是写一堆 if/else。图 1 · 事实 + 属性约束 → 推理器补出类型。你只写了三行,第四行是它给的。
03推理的可信度,取决于你声明的粒度
你会立刻想到:这会不会推出错误结论?会,如果约束声明得太宽。所以推理不是"魔法",而是可放的承诺:
| 你声明 | 推理器承诺 | 供应链计划里 |
|---|---|---|
A ⊑ B | A 的个体也是 B 的个体 | 成品 / 产品 / 供应对象 |
p domain C | 用 p 的个体是 C | 用了 hasCapacity 即资源 |
p range C | p 的取值是 C | 提前期的取值是时长 |
04对检索增强生成(RAG)的意义
为什么推理对检索增强生成有价值?因为检索与回答都受益于补全:
- 归一化:两个系统一个写"成品"、一个写"产品",你只需声明
FinishedGood ⊑ Product,查询/检索就能把两者对齐。 - 补缺:检索时大模型问"7 号线是不是个生产资源?"——本体推理已给出
a :Resource,不必靠大语言模型(Large Language Model, 简称 LLM)猜。 - 约束输出:声明了 domain/range,知识图在注入提示词前就能做一致性检查。
05检查你的理解
若 FinishedGood ⊑ Product,且 sku-447 是 FinishedGood,推理器会自动得出什么?
声明 :hasCapacity 的 domain 为 :Resource 后,`:line-7 :hasCapacity 1200` 会推出什么?
子类关系的哪条性质,让"只需声明紧邻,链条自动补全"?
更工程化的深读:见Semantic Web for the Working Ontologist中的"subclass"与"property"相关章节。
[1] 万维网联盟(World Wide Web Consortium, 简称 W3C),资源描述框架模式(RDF Schema, 简称 RDFS)1.1 —— subClassOf / domain / range 是 RDFS 标准谓词,提供最基础的推理语义。
这一课抓住一个核心:推理器能把你声明过的约束兑现成你没写的事实——前提是声明得对。想自己出一题、或测某种约束会不会推出你要的结果,直接问我。