知识表示一页说明

知识表示是把世界结构译成机器可一致使用的形式:概念、关系、约束、推断与版本契约,缺一就semantic drift。

· Shuai · 5 分钟阅读
知识表示是把世界结构译成机器可一致使用的形式:概念、关系、约束、推断与版本契约,缺一就semantic drift。

模型「知道」很多字符串,不等于系统知道自己在操作什么对象

知识表示(KR)做的,就是把世界的关节翻译成可执行、可校验、可协作的结构。

一句话定义

知识表示是把对象、关系、约束与可推断边界写成机器与人都能对齐的合同。

它解决什么问题(四类典型痛)

  • 语义漂移:同一词在不同模块里指向不同实体,集成越久越像巴别塔。
  • 动作无锚:agent 能调工具,但对象身份前置条件没写清,表现为「好像对了又总偏一点」。
  • 检索相关但不准:向量近似代替了类型约束,检索回来的是「像」而不是「是」。
  • 规则与数据打架:业务规则在 prompt 里,真相在表里,两边从不编译到一起。

最小组成(像类型系统的五件套)

  1. 概念/类型:世界有哪些范畴(订单、患者、设备、合同条款……)。
  2. 属性:每个类型有哪些槽位,值域是什么。
  3. 关系:类型之间允许哪些边,基数与方向(一对多、互斥、依赖)。
  4. 约束:哪些组合非法,哪些状态迁移需要守卫条件。
  5. 可推断结构:哪些事实可由规则推导,禁止重复手写导致不一致。

工程形态速查(别混用层级)

  • 属性图 / RDF 三元组:强项是显式关系与约束查询;弱项是构建与治理成本。
  • 文档块 + 向量索引:强项是模糊相关;弱项是身份与否定(「不是 X」常被吃掉)。
  • JSON schema / 记录模型:强项是接口契约;弱项是跨系统语义对齐仍靠人肉。

成熟系统几乎都是混合栈:结构化核 + 非结构化翼。

为什么很多项目会失败(不是「没知识」)

  • 用词不统一user_idcustomerId 与「用户」混谈。
  • 结构太松:一切 key-value,约束全在 prompt 里随温度漂移。
  • 缺版本与血缘:知识更新后,下游 agent 仍引用旧世界。
  • 把表示当论文:ontology 开会半年,业务一个字段没落地。

什么时候真的需要「重表示」

满足任两条就该认真:

  • 多 agent 或多团队共享同一世界。
  • 生命周期,且错误代价高(医疗、金融、安全)。
  • 实体关系复杂到 SQL 已经需要十张表才能表达「谁在什么条件下可以对谁做什么」。
  • 合规要求可解释的关系链,而不是黑箱相似度。

什么时候不要过度上升

单团队、短周期、单一工作流、错误可快速人工兜底——先用 schema + 少量枚举 + 强测试,别先开本体工作坊。

用三个问题刹车:

  • 真实复杂度是否出现,还是焦虑先行?
  • 未来是否有多主体要读同一语义?
  • 约束冲突是否已经造成线上事故?

跨域锚:知识表示 ≈ API 合同 + 数据库约束 + 类型推断

prompt 是软类型;KR 是硬类型

软类型在 demo 里快,在规模里贵。

一句话结论

好的知识表示让系统更稳;坏的知识表示只是把混乱结构化地固化

若你下周要建知识库,先画一张只有类型与边的草图,再讨论 embedding 维度——顺序反了,后面全在还债。

返回博客