Open Ontologies 是一个面向生产环境的本体工程工具,使用 Rust 编写并以单一二进制文件形式发布。其核心目标是让用户在生产本体上规划变更、在应用前查看所有后果,并向审查者提供无需信任即可复核的证明。
用途
该工具用于本体变更的生命周期管理:规划变更、应用变更、监控漂移、对引擎推导结果进行认证,以及在变更错误时回滚。它强调语义层面的影响分析,而非文本差异。工具本身不是本体编辑器,类层次结构的绘制应使用 Protégé 等工具;Open Ontologies 用于变更进入生产之前。
主要能力
- 语义化变更计划:类似 Terraform 的 plan/apply/rollback 流程,但计划是语义的而非语法的。文本 diff(如 git diff)无法展示语义后果,该工具可以。
- 影响范围报告:展示变更的所有后果,包括一个三元组变更可能带来的大量新推论。
- 证明证书:每次运行生成证书,包含两个制表符分隔的文件(asserted.tsv 和 derivations.tsv),记录断言和推导步骤。证书可由独立的 Lean 4 检查器验证,检查器有可靠性定理(OOCert.certificate_sound)。伪造的结论会被拒绝并指出违反的规则。
- 证书复核:持有证书文件的人可在任何时间独立复核,无需该软件的实例或网络。命令为
oo-cert asserted.tsv derivations.tsv。 - 摘要绑定:证书记录所用断言的摘要(asserted.sha256),持有存储的用户可运行
certificate-check <dir>验证摘要是否一致。该命令会说明其局限性:摘要绑定证书与字节,不绑定证书与世界状态。 - 推理与验证:支持 RDFS/OWL 推理,能检测不一致性。例如在 HQDM 文件上,tableaux 引擎找到 190 个可满足的命名类、39 个不可满足的类,与 HermiT 结果一致(但 HermiT 的结果在此仓库中仅作为意见,不构成证明)。
- 交叉映射(crosswalk)验证:对 SSSOM 格式的映射,引擎分别推理两侧,通过映射比较蕴含关系,报告证据支持的最紧匹配类型。不支持的 exactMatch 会被降级并给出原因,同时列出交叉映射未覆盖的术语。若翻译后的声明在目标中导致冲突,则报告为需要人工解决的分歧。
- 模块提取:
onto_module_extract计算基于签名的语法局部性模块,保证完整本体在签名上的每个蕴含也是子集的蕴含。该保证引用 Cuenca Grau 等人的定理(JAIR 2008),但工具不进行机器检查,报告会明确说明。在仓库的 pizza 本体上,模块为 1345 条公理中的 238 条,运行丢失 0 个结论(共 2583 个差异)。 - 保守性检查:
onto_conservative_check回答新增公理是否改变本体已使用名称上的任何结论。 - 矩阵证书:
oo-matcert从定义重新计算矩阵乘积,接受时打印 MatCert.mul_of_check。仅限整数。Freivalds 算法成本更低但给出概率,因此保持为带边界打印的意见。浮点报告容差,因为实数证明不适用于 IEEE-754。 - MCP 服务器:
serve命令启动 MCP 服务器,通过 stdin/stdout 使用 JSON-RPC,可与 Claude、Cursor 等客户端集成。
使用方式
工具以单一二进制发布。基本流程:规划变更、应用变更、监控漂移、认证推导、回滚。CLI 子命令如 open-ontologies validate <file.ttl>。MCP 服务器启动后看似停止,实则在等待客户端,这是正常行为。
连接 Claude:对于 Claude Code,在 ~/.claude/settings.json 添加配置块;对于 Claude Desktop,在 ~/Library/Application Support/Claude/claude_desktop_config.json 添加。重启客户端后,onto_* 工具可用。Cursor、Windsurf、Zed 和 VS Code 的配置见 docs/quickstart.md。
证书检查:oo-cert asserted.tsv derivations.tsv,退出码 0 表示接受。伪造结论会导致退出码 1 并指出规则。
适用场景
- 生产本体的变更管理,需要事前了解影响范围。
- 需要向审计人员提供可独立复核的证明,而非依赖信任。
- 本体对齐与交叉映射的质量验证。
- 模块化提取与保守性检查。
- 与 AI 客户端(Claude、Cursor 等)通过 MCP 集成进行本体操作。
限制
- 不是本体编辑器,不用于绘制类层次结构。
- 存储默认在内存中,除非设置
OPEN_ONTOLOGIES_STORAGE_MODE=persistent。加载后推理会从空存储开始,可能认证不了任何内容,工具会给出警告但容易被忽略。 --data-dir是标志而非环境变量,未指定时演示会写入~/.open-ontologies,可能影响真实工作。- 部分工具需要可选的 Cargo 特性:四个工具需要 embeddings,两个需要 plugins,两个需要 postgres 或 duckdb。发布的二进制和 GHCR 镜像使用默认特性集,因此不包含这八个工具。
- 证书摘要绑定字节而非世界状态,存储变更后恢复原状会得到相同答案。类型级形式的工作是决策 0010,尚在进行中。
- 模块提取的保证引用外部定理,工具不进行机器检查,lean/ 下没有关于局部性的文件。
- Python 包 open-ontologies-lite 是第二个引擎,纯 Python 推理,无需 Rust 工具链,其证书由相同的 Lean 二进制检查。两个引擎运行相同算法和规则表,其一致性主要排除转录错误,不能排除对 W3C 规则的共同误读;独立验证来自 Lean 检查器。
- 仓库还包含对齐、嵌入、PDDL 规划、临床交叉映射、插件市场和 CIVeX 等部分,各有独立文档和代码,本页不展开。
许可证与支持
引擎采用 MIT 许可证,并保持 MIT。托管平台版本见 tesseractsemantics.com。企业支持也通过该网站。