oxirs-graphrag
GraphRAG: Hybrid Vector + Graph Retrieval-Augmented Generation for OxiRS
Microsoft-style GraphRAG implementation combining vector similarity search with knowledge graph topology for enhanced retrieval-augmented generation.
Features
- RRF (Reciprocal Rank Fusion): Combines vector and keyword search results
- N-hop Graph Expansion: SPARQL-based graph traversal for context retrieval
- Community Detection: Louvain algorithm for hierarchical clustering
- LLM Context Building: Converts graph structures to natural language
- SPARQL Extensions: Custom functions for hybrid queries
Architecture
Natural Language Query
↓
Query Embedding (via oxirs-embed)
↓
[Vector KNN Search] + [Keyword BM25 Search]
↓
RRF Fusion → Seed Entities
↓
SPARQL N-hop Expansion → Subgraph (max 500 triples)
↓
Community Detection (Louvain) → Hierarchical Clusters
↓
Context Building → Natural Language + Structured Data
↓
LLM Generation → Answer + Citations
Quick Start
use ;
use Arc;
let config = GraphRAGConfig ;
let engine = new;
let result = engine.query.await?;
println!;
Configuration
SPARQL Extensions
PREFIX graphrag: <http://oxirs.io/graphrag#>
SELECT ?entity ?similarity WHERE {
?entity graphrag:similarity ("machine learning", 0.8) .
}
SELECT ?related WHERE {
<http://example.org/entity> graphrag:expand(2) ?related .
}
Integration with OxiRS
Requires:
oxirs-vec- Vector index (HNSW)oxirs-embed- Embedding models (TransE, GNN, Transformers)oxirs-chat- LLM client integrationoxirs-arq- SPARQL query engine
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.