kgdiff 是什么?
kgdiff 是知识图谱的 git diff。给它一张图的两个版本(一次本体发布、一次 GraphRAG 抽取、一张数据血缘 DAG),它会按审阅者的思路告诉你发生了什么:某个术语合并进了另一个,某个类挪到了新的父类下,某条关系改为指向别处,某个标签改了名。结果可以输出在终端里,可以作为 Pull Request 评论,也可以放进交互式查看器:两个版本画在同一张稳定的地图上。

sh
npx @kgdiff/cli before.json after.jsonkgdiff 企业信用知识图谱本体 v12 → v13 节点 74 · 关系 171
+1 新增 −1 删除 ~6 修改 ⇄4 结构调整 12 组共 23 处变化
++++−−−~~~~~~~⇄⇄⇄⇄⇄⇄⇄⇄⇄
删除 1
− 删除「抽查检查」及 2 条关系 删除 · 类型 事件 · 原关…
结构调整 4
⊕ 「法人代表」合并入「法定代表人」 身份 · 依据替代声明 ·…
⇄ 「股权出质」移至「股权投资」下 结构 · 原属「经营风险」
…
修改 6
~ 「高管任职」改名为「董监高任职」 内容 · 别名 +1
…为什么不用文本 diff?
文本 diff 比较的是文件。在 Turtle 里给一个类改名,所有提到它的行都会变;把两个术语合并,看到的是一处删除加上散落在文件各处的修改;把同一张图重新序列化一遍,看起来就像全都变了。kgdiff 比较的是图本身:
- 跨版本匹配节点:按 id,按替代声明(例如 OBO 的
replaced_by),或者在 id 没有意义时(例如两次 LLM 抽取的结果)按标签和邻居结构匹配。 - 给变化分类:改名、更换 id、类型、同义词、属性、废弃、在层级中迁移、合并、拆分、关系改指向和谓词变化。
- 把变化分组:每组对应审阅者要做的一次判断,按便于阅读的顺序排列:先清理(删除),再重组(结构调整),再细化(修改),最后生长(新增)。
- 忽略无关的差别:同一张图写成 Turtle 还是 N-Triples,语句按什么顺序排列,比较结果都完全相同。
用法一览
| 你想要…… | 用什么 |
|---|---|
| 看两个文件之间变了什么 | 命令行:快速开始 |
| 在每个修改图谱的 PR 上说明变化 | GitHub Action,或在其他 CI 中运行命令行 |
| 直观地浏览差异 | HTML 报告(-o report.html)或 Playground |
| 在自己的应用里展示差异 | <kgdiff-viewer> Web 组件 |
| 在代码里比较图 | 各个库 |
kgdiff 读取 RDF(Turtle、N-Triples、N-Quads、TriG、RDF/XML、JSON-LD)、OBO 和常见的 JSON 图格式(格式)。一切都在本地运行:命令行在你的机器上,Playground 和查看器在你的浏览器里,不会上传任何数据。
下一步
- 快速开始:安装命令行工具,读懂第一份 diff。
- Playground:在浏览器里试试示例数据或你自己的文件。
- Architecture(英文):kgdiff 如何匹配、分类和绘制变化。