Sits next to Neo4j · not a competitor
When relationships live in a graph DB and prose lives elsewhere
Your domain already has a property graph: controls, taxonomies, products, threats, supply chains. Cypher answers the structural question ("which nodes are relevant?"); GraphANN® answers the textual one ("what do the underlying source documents say?"). One layer per concern.
Enrich your existing graph database with semantic search, without rebuilding your data model or maintaining a separate vector store.
01
Graph DB traverses relationships
Your existing graph (Neo4j, RDF, custom) returns a scoped set of entity IDs that match the structural part of the question.
02
GraphANN® retrieves prose, scoped
Map entity IDs onto a GraphANN® metadata field (e.g. external_id or source_id). Ranked passages come back scoped to those entities via the equality pre-filter, with source citations.
03
LLM (or your app) synthesises
Graph context plus passages plus citations. Each layer does what it's good at; neither pretends to be the other.
Best fit when
- You already have a property graph and don't want to duplicate it
- Your retrieval needs structural scoping, not just semantic similarity
- You want to keep prose churn out of the graph DB
- Your team already speaks Cypher / SPARQL and doesn't want to give it up
Wrong choice when
- You don't have a graph yet. Start with one tool, not two
- Your relationships are shallow. A couple of foreign keys aren't a knowledge graph
- You need a single SQL-style query plan across both layers (we don't unify them)
Two layers
graph + retrieval
Filter
by entity ID
Clean
concern split