Open Ontologies

Obsidian plugin CI MIT

English · 简体中文

在 Obsidian 内运行完整的 [Open Ontologies](https://github.com/fabio-rovai/open-ontologies) 引擎。所有引擎工具(包括推理机)均可使用:校验、推理、SHACL 检查、比对、检查与 SPARQL 查询仓库中的本体文件,并且可以把仓库本身(笔记、frontmatter、标签、双链)编译成可推理的 RDF 图谱。 仅支持桌面端。首次启动时,插件会为你的平台下载对应的引擎版本,用官方发布的 SHA-256 校验和验证完整性,然后在仅监听回环地址的端口上启动它,并生成一个访问令牌来管理其生命周期。如果你已经安装过引擎,可以在设置中直接指定二进制文件路径。 ## 功能 - 本体树面板、带历史记录的 SPARQL 控制台、可跳转到具体笔记的校验面板 - 对 `.ttl`、`.owl`、`.rdf`、`.jsonld` 文件保存即校验 - 仓库到 RDF 的映射:笔记成为个体,`type:` frontmatter 成为 `rdf:type`,`property:: [[目标]]` 行内字段成为对象属性,标签成为 SKOS 概念 - 推断关联:看到那些你的笔记蕴含、但从未写出来的连接 - 所有引擎工具均可调用;推理配置从 RDFS 一直到完整的 OWL 2 DL tableaux ## 让你的 AI 助手拥有会推理的第二大脑 本插件运行的引擎本身就是一个 MCP 服务器,因此 Claude Code 与 Claude Desktop 可以把你的仓库当作知识图谱来查询。 这和"让助手读取你的文件"是两件不同的事。`mcp-obsidian` 之类的工具已经把文件读写与搜索做得很好,本插件不重复造轮子——两者可以并存,你可以同时接入。本插件补上的是**推理**:你的助手可以询问哪些笔记违反了某个 SHACL 形状、哪些内容传递性地隶属于某个项目、哪些人与某个主题相隔两跳,并得到由图谱推导出的答案,而不是从文本里猜出来的答案。 打开插件设置,点击 **Copy MCP client config**,把结果粘贴到 Claude Code 的配置(`.mcp.json` 或 `~/.claude.json`)或 Claude Desktop 的 `claude_desktop_config.json` 中: ```json { "mcpServers": { "open-ontologies": { "type": "http", "url": "http://127.0.0.1:27125/mcp", "headers": { "Authorization": "Bearer YOUR_TOKEN" } } } } ``` 等价的命令行写法: ```bash claude mcp add --transport http --header "Authorization: Bearer YOUR_TOKEN" \ open-ontologies http://127.0.0.1:27125/mcp ``` 该端点只监听回环地址,并且始终要求令牌。请把这个令牌当作密码对待:任何持有它的程序都能读取和修改你的仓库图谱。你可以随时在设置中重新生成令牌,此前复制出去的配置会立即失效。 自动同步默认开启:在你最后一次修改笔记的 10 秒后,图谱会重新编译,因此助手查询到的始终是最新数据。 ### 关于收益的一点实话 推理需要类型。一个只有无类型笔记和普通双链的仓库,编译出来只是一堆"链接到"的三元组,推理机从中得不出任何有价值的结论。**收益的大小,取决于你的仓库真正承载了多少结构。** 运行 **Install starter vault ontology** 命令即可获得一套可用词汇表(`Note`、`Person`、`Project`、`Task`、`Source`、`Idea`、`Topic`),其中 `partOf` 声明为传递属性,`relatesTo` 声明为对称属性,并附带 SHACL 形状文件。然后给你在意的笔记加上 `type: "[[Project]]"` 这样的 frontmatter,并用 `property:: [[目标]]` 表达有意义的关系。做到这一步之后,当你标注某个任务隶属于某个项目、而该项目又隶属于某个大计划时,推理机就能得出该任务隶属于这个大计划的结论——你从来不需要把这句话写下来。 ## 安装 在社区插件市场上架之前,可以使用 [BRAT](https://github.com/TfTHacker/obsidian42-brat) 指向本仓库安装,或者从最新 Release 下载 `main.js`、`manifest.json`、`styles.css` 并复制到 `.obsidian/plugins/open-ontologies/` 目录。 ## 其他发布渠道 同一引擎还以 [Rust 二进制与 MCP 服务器](https://github.com/fabio-rovai/open-ontologies)、[Docker 镜像](https://github.com/fabio-rovai/open-ontologies/pkgs/container/open-ontologies)以及 [PyPI 包](https://pypi.org/project/open-ontologies-lite/)的形式发布。 ## 开发 ```bash npm install npm run build # 打包生成 main.js npm test # 单元测试 npx tsc --noEmit # 类型检查 # 针对真实引擎二进制的端到端测试 OO_E2E=1 OO_ENGINE_BIN=/path/to/open-ontologies npm test ```