Summary

  • W3C Data Shapes 工作组于 2026 年 9 月 17 日发布《SHACL 1.2 Inference Rules》首份公开工作草案。2025 年 12 月已有名为《SHACL 1.2 Rules》的首份公开草案,因此不能把这次发布说成推理规则的首次出现。
  • 新文本把输入的基础图与新生成的推理图区分开来;引擎可以用 sh:sourceRule 指向产生某个三元组的规则,但规范使用的是“可以”,不是“一律必须”。
  • 首份公开工作草案尚非 W3C 推荐标准。草案还明确指出:通过现有测试不等于完全符合规范,规则运算也可能带来算力、内存与数据安全风险。

最容易被误读的不是算法,而是结果。某条 RDF 三元组被放进统一视图后,读者通常只看到主体、谓词和客体,看不出它是资料原本载明,还是引擎按规则推算。两者在格式上相同,在证据地位上却不同。若后来把推算结果用于分类、审查或资源安排,来源路径就不是可有可无的装饰。

9 月 17 日的发布为这个问题提供了具体技术文本。SHACL Core 主要处理形状与数据验证;《Inference Rules》讨论如何从已有三元组推导出新三元组。工作组在 2025 年 12 月已发布过《SHACL 1.2 Rules》草案,本次是以“推理规则”为名的公开草案节点,而不是从零发明这一功能。

草案把执行过程拆成基础图、推理图与供规则使用的评估图。规则可以分层、排序并迭代;某些中间三元组只在运算过程中可见,结束后会删除。这意味着最终导出的图不是完整的运算日记。它告诉使用者哪些陈述留下了,却未必告诉使用者每一步为何发生。

可选的署名边界

第 9 节提出 sh:sourceRule:引擎可以额外生成追踪三元组,把一条推导结果连到产生它的规则。规则标识宜采用 IRI;若生成这些追踪记录,它们不得反过来成为执行中规则可见的数据。后一限制防止“解释结果的记录”改变被解释的结果,是清晰的技术边界。

但草案没有要求每个引擎都开启此功能。即使规则名留了下来,它也不能单独说明输入是哪一版、规则集是哪一版、引擎支持哪些规则类型、是否触及运行上限,以及谁批准把结果用于现实决定。这些信息必须由使用该结果的系统与机构按用途保存。本文没有指称任何特定部署已经丢失它们。

草案对失败也有明确区分:遇到无法执行的规则类型,应报告失败;引擎还可以在迭代次数或生成三元组数量超过预设上限时报错。安全章节提醒,规则集可能消耗大量计算与内存,也可能创建任意应用数据。把未完成的执行当作完整结论,会把技术失败改写成治理失误。

文档地位同样不能被抬高。它处于 W3C 推荐标准轨道的首份公开工作草案阶段,W3C 明说这不代表本机构或成员认可,内容还可能修改。卢恒关于“运行代码优先”的论述在此只是编辑判断尺度:公开文本要与可重复观察的行为分开,不能代替 W3C 的技术证据。

Sources