可执行本体修复图检索幻觉
coldoven · reddit · 2026-07-13
作者解决了一个图检索里的经典问题:图里确实有边,但边的类型不对,最后会得到一个“看起来很自信、其实是错的”答案。 ### 解决方案 - 把本体从文档变成**可执行规则**,用 YAML 明确声明关系的 domain / range。 - 每次 traversal 时都检查边是否合法;一旦走到错误类型的边,就直接抛出命名错误,而不是静默返回错误节点。 ### 进一步的收获 作者发现,同一份声明还可以直接用于排序: - 把查询建模成一个小电路,起始实体和目标类别像两个极点。 - 用电流流经节点的方式给实体打分。 - 这样不仅能筛掉错误路径,还能自然把相关实体排在前面。 ### 例子 在 “Sci-Fi by Nolan” 这类查询里,系统能把真正匹配的结果排上来,同时让《The Dark Knight》这类虽然和 Nolan 相关、但类别不对的节点得到 0 分,整个过程不需要额外手写过滤器。 作者称这套方法本质上还是经典的 **harmonic functions / current-flow centrality**,新意在于把它们和知识图谱的合法性检查统一到了一个来源里。项目还提供了一个 API,兼容 9 类图数据库后端,并且可以离线运行。