《本体上手指南》系列
面向零本体基础读者的本体应用入门系列(9 篇)。贯穿一个示例:智能体任务编排本体(domains/agent_task/agent_task_ontology.owl),三大场景:登录模块开发、新功能上线、合规报表分配。
全程动手,命令在仓库根目录(
ontology-agent-demo/)下可复现;配图源文件与 PNG 均在docs/guide/assets/。 零 OWL 基础友好:篇 1/3/8 文末均附「本文用到的 OWL 语法」速查附录,正文在给出 .owl 片段时同步逐行讲解。 在线阅读:GitHub Pages 站点(由本目录经 MkDocs 自动构建)。
学习路径
概念认知 推理与图谱 服务搭建 应用与扩展
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 00 为什么需要本体 │ → │ 03 推理原理 │ → │ 05 推理服务 │ → │ 07 协作实战 │
│ 01 本体入门 │ │ 04 与知识图谱 │ │ 06 MCP接入 │ │ 08 扩展新领域 │
│ 02 解剖示例本体 │ └─────────────┘ └─────────────┘ └─────────────┘
└─────────────┘
篇目索引
| 篇目 | 主题 | 读完你能 |
|---|---|---|
| 00-为什么需要本体.md | 为什么需要本体 | 说出本体的三个承诺与适用场景 |
| 01-本体入门.md | 本体入门 | 看懂三元组、类/个体/属性、类层次 |
| 02-解剖示例本体.md | 解剖示例本体 | 讲清示例本体的类、个体、属性与公理 |
| 03-本体推理原理.md | 本体推理原理 | 解释 can_execute 是怎么"推"出来的 |
| 04-本体与知识图谱.md | 本体与知识图谱 | 区分图数据库与本体:答已知 vs 答隐含 |
| 05-搭建本体推理服务.md | 搭建推理服务 | 用 curl 与 CLI 查询推理服务 |
| 06-MCP接入智能体.md | MCP 接入智能体 | 把本体服务接入豆包,对话中直接调用 |
| 07-智能体协作实战.md | 智能体 × 本体实战 | 设计自己的协作应用,判断何时用本体 |
| 08-扩展新领域.md | 扩展新领域 | 换本体、新建领域、加规则与查询 |
快速环境准备(Docker)
无需安装任何 Python 依赖——用 Docker 一条命令起服务:
cd ontology-agent-demo
docker compose up -d # 构建镜像并后台启动 API(:8000) + MCP(:9000)
首次构建会自动拉取基础镜像并安装依赖(Dockerfile 默认用清华 TUNA pip 源);之后秒级启动。
验证(29 项测试全绿,在容器内执行):
docker compose exec api python -m pytest tests/ -q
章节 ↔ 仓库代码对照
每篇讲的概念,在仓库里对应的"现场":
| 篇目 | 对应的代码 / 文件 | 动手任务 |
|---|---|---|
| 00 为什么需要本体 | 全仓库 | docker compose up -d api 后跑 bash scripts/demo.sh(宿主机 curl 访问容器服务)看推导 |
| 01 本体入门 | domains/agent_task/agent_task_ontology.owl |
用 Protege 打开 OWL 文件看类层次 |
| 02 解剖示例本体 | 同上 + reasoner/engine.py |
在 Protege 里逐个查看类 / 个体 / 属性 |
| 03 本体推理原理 | reasoner/engine.py + tests/test_reasoning.py::test_r1_* |
跑 docker compose exec api python -m pytest tests/test_reasoning.py -k r1 验证属性链 |
| 04 本体与知识图谱 | frontend/index.html(图谱渲染) |
访问 Demo 页面看图谱 |
| 05 搭建本体推理服务 | api/main.py + scripts/demo.sh |
docker compose up -d api 后用 bash scripts/demo.sh 跑一遍接口 |
| 06 MCP 接入智能体 | mcp/mcp_server.py + domains/agent_task/mcp.py |
docker compose up -d mcp 启动后在豆包中添加连接器 |
| 07 智能体协作实战 | domains/agent_task/adapter.py(R2/R4 规则) |
用 /api/assign 分配一次任务并看推导链 |
| 08 扩展新领域 | domains/ + scripts/build_ontology.py |
仿照 domains/agent_task/ 新建一个领域包 |
术语速查
| 术语 | 一句话 |
|---|---|
| 本体(Ontology) | 对"领域里有什么、什么关系、什么规则"的显式形式化描述 |
| 三元组 | 主语-谓语-宾语,RDF 的基本单元 |
| TBox / ABox | 模式层(类与公理)/ 数据层(个体与事实) |
| OWL 2 RL | 一种可高效推理的 OWL 2 子集 |
| 属性链 | has_capability ◦ required_by ⊑ can_execute 这类公理 |
| 推导链 | 事实 → 规则 → 结论 的推理路径(可解释性来源) |
| MCP | Model Context Protocol,智能体的工具协议 |
| 语义配置 | 把类角色映射到业务词的 JSON(改配置即换语义) |
配图资产
docs/guide/assets/:每篇的示意图(PNG)+ 同名 HTML 源文件(可改后重新截图)。
| 配图 | 对应篇目 |
|---|---|
| 00-scene-compare.png | 篇 0:LLM 猜测 vs 本体推导对照 |
| 01-class-hierarchy.png / 01-triple.png | 篇 1:类层次 / 三元组 |
| 02-overview.png | 篇 2:本体全景 |
| 03-r1-flow.png / 03-derivation.png | 篇 3:属性链流程 / 推导链 |
| 04-lpg-vs-rdf.png | 篇 4:属性图 vs 语义图 |
| 05-architecture.png | 篇 5:三层架构 |
| 06-mcp-arch.png | 篇 6:MCP 接入链路 |
| 07-sequence.png | 篇 7:协作时序 |
| 08-extend.png | 篇 8:三条扩展路径 |