Neo4j GraphRAG:使用 AI 的智能知识图谱查询

发布: (2025年12月4日 GMT+8 07:35)
7 min read
原文: Dev.to

Source: Dev.to

什么是 GraphRAG?

GraphRAG(基于图的检索增强生成) 是一种先进的 AI 技术,结合了:

  • 知识图谱遍历和图神经网络
  • 对结构化图数据的语义向量搜索
  • 大语言模型(LLM)用于自然语言理解
  • 本体推理用于智能知识检索

本文的代码在这里:

GraphRAG 与传统 RAG 的对比

方面传统 RAGGraphRAG(此插件)
数据来源非结构化文档、PDF知识图谱、OWL 本体、Neo4j 属性图
结构文本块节点、边、关系、语义三元组
关系隐式(在文本中)具有类型的显式图结构
检索方法仅向量相似度图遍历 + 向量嵌入 + 本体推理
上下文相似段落连接的子图和关系路径
查询理解关键词匹配图模式匹配 + 语义理解
flowchart LR
    subgraph Traditional_RAG
        D[Documents] --> C[Text chunks] --> V[Vector embeddings] --> S[Similarity search] --> L[LLM]
    end
    subgraph GraphRAG
        KG[Knowledge Graph + Ontology] --> ER[Entity/Relationship extraction] --> SE[Structure‑aware embeddings] --> GR[Graph‑based retrieval] --> CL[Context‑enriched LLM]
    end

这个项目做了什么?

本项目是一个 Protégé GraphRAG 插件,它将 图数据库本体工程AI 驱动的语义搜索 结合起来,实现使用自然语言对知识图谱进行智能查询。

核心功能

┌─────────────────────────────────────────────────────────────────┐
│                    User Experience                              │
├─────────────────────────────────────────────────────────────────┤
│  User asks: "What are all the classes in my ontology and       │
│              how are they related?"                            │
│                                                                 │
│  Plugin:                                                        │
│    1. Searches the indexed ontology (semantic search)          │
│    2. Retrieves relevant classes and relationships             │
│    3. Sends context + question to AI (GPT‑4, Claude, etc.)    │
│    4. Returns natural language answer                          │
│                                                                 │
│  Answer: "Your ontology contains the following main classes:   │
│           - Person (subclass of Agent)                         │
│           - Organization (subclass of Agent)                   │
│           They are related through the 'worksFor' property..." │
└─────────────────────────────────────────────────────────────────┘

该 GraphRAG 系统的关键特性

  • 基于图的自然语言查询 – 用普通英文提问关于知识图谱和本体的问题,而无需编写 SPARQL 或 Cypher 查询。
  • 双重知识图谱来源
    • 查询你的 OWL 本体(RDF 三元组、RDFS/OWL 公理、类层次、属性链)。
    • 查询你的 Neo4j 属性图(带标签的节点、类型化关系、图属性)。
  • GraphRAG 驱动的答案 – 检索增强生成利用:
    • 图拓扑(节点邻域、关系路径)
    • 语义嵌入(向量相似度搜索)
    • 本体推理(推断、包含层次)
    • 你的真实图数据,而非 AI 幻觉。
  • 内存向量存储 – 在不依赖外部向量数据库的情况下实现快速语义搜索和基于嵌入的检索。
  • 无缝 Protégé 集成 – 直接在 Protégé UI 中工作,采用完整的 OSGi 插件架构。

为什么要把 Neo4j + GraphRAG + Protégé 结合起来?

每项技术解决的问题

技术解决的问题带来的价值
ProtégéOWL 本体工程复杂可视化本体编辑器、DL 推理、SWRL 规则、OWL 公理
Neo4j知识图谱需要灵活查询属性图模型、Cypher 查询、图算法(PageRank、社区检测)
GraphRAG图知识被技术查询语言锁住自然语言接口、语义图搜索、AI 驱动的图遍历

这种组合的优势

Protégé:本体基础

Protégé 提供的功能

  • 行业标准的 OWL 本体创建与编辑工具。
  • 内置推理机(HermiT、Pellet)用于逻辑推断。
  • 类层次和关系的可视化。
  • 插件架构,便于扩展。

没有此插件的局限

  • ❌ 查询需要 SPARQL 知识。
  • ❌ 与外部图数据库无法集成。
  • ❌ 没有自然语言接口。
  • ❌ 仅限 OWL 推理。

有了此插件

  • ✅ 用普通英文提问。
  • ✅ 将 OWL 本体 + Neo4j 图数据结合。
  • ✅ 从本体获得 AI 驱动的洞察。
  • ✅ 无需学习 SPARQL。

Neo4j:图数据库的力量

Neo4j 提供的功能

  • 属性图模型 – 比 RDF 三元组更丰富。
  • Cypher 查询语言 – 比 SPARQL 更直观。
  • 内置图算法(PageRank、最短路径、社区检测)。
  • 可扩展至数十亿节点和关系。

示例用例

// Find influential people in an organization
MATCH (p:Person)-[:WORKS_FOR]->(o:Organization)
WHERE o.name = 'TechCorp'
RETURN p.name, size((p)-[:MANAGES]->()) AS team_size
ORDER BY team_size DESC

没有 RAG 时的局限

  • ❌ 需要学习 Cypher 语法。
  • ❌ 在不了解结构的情况下难以探索数据。
  • ❌ 复杂查询对非技术用户有门槛。

有了 RAG + Neo4j

  • ✅ 提问:“TechCorp 中管理最大团队的是谁?”
  • ✅ 插件将自然语言转化为检索上下文并生成答案。
  • ✅ 非技术用户也能查询图谱。

GraphRAG:知识图谱智能层

GraphRAG 提供的功能

  1. 图感知检索 – 语义搜索 + 图遍历,找到相关子图。

    Query: "What is a Person?"
    
    Graph Traversal + Vector Search finds:
    - Structure: Person --subClassOf--> Agent
    - Properties: Person --hasProperty--> name, age
    - Instances: John --rdf:type--> Person
    - Related Paths: Person --worksFor--> Organization
  2. 上下文扩展 – 将检索到的节点与图邻域合并。

    Initial Results → Graph Expansion → Related Entities
    Person node → Traverse 2‑hops →
      - Superclasses (Agent, Thing)
      - Properties (name, age, email)
      - Instances (John, Jane)
      - Relationships (worksFor, manages)
  3. LLM 生成 – 使用图增强的上下文生成自然语言答案。

    Graph Context + Question → LLM → Answer
    "A Person is a subclass of Agent in your ontology.
     Persons have properties like name and age.
     In your knowledge graph, John is an instance of Person.
     Persons can work for Organizations via the 'worksFor' relationship."

为什么 GraphRAG 优于纯 LLM 与传统 RAG

  • 准确性 – 答案基于真实图数据和本体推理。
  • 上下文 – 检索同时考虑语义相似度和显式图结构。
  • 降低幻觉 – LLM 只在已验证的图上下文上生成文本。
Back to Blog

相关文章

阅读更多 »

被遗忘的 tech 墓地 by kiroween

一次 Hackathon 之旅:走进旧发明的墓园 每年十月,创意世界里总会掀起一阵奇异的波动。今年,Kiroween 发起挑战,……