Every question, both branches
20 gold questions — 10 single-hop, 10 multi-hop. Click one to see both answers, the docs each branch retrieved, and the graph path the hybrid branch walked.
Where the graph won
Multi-hop questions where vanilla missed and the hybrid branch answered — with the traversal chain that made the difference.
Methodology & honest limitations
- Fairness contract: both branches use the same generator (
—, temperature 0) and comparable context budgets — vanilla gets more raw chunks (top-4 vs top-3). - Graph build: entities/relations extracted per document batch with a strict JSON schema, deduplicated, loaded into Neo4j. Extraction noise is left in — traversal has to tolerate it, like in real projects.
- Seeding: hybrid finds entity mentions in the question by name match, then walks ≤3 hops collecting facts (capped at 30).
- Scoring: a branch is correct iff an accepted gold string appears in its answer, case-insensitive. No LLM judge, no partial credit. Every row above is inspectable.
- Limitations: synthetic corpus (disclosed), n=20 questions, one generator, one run. On a 28-doc corpus, vanilla's top-4 already covers 14% of all documents — several multi-hop chains still land in its window by luck. On a real corpus (thousands of chunks) that luck evaporates while graph traversal is corpus-size-independent; the gap you see here is the conservative floor, not the ceiling.
- This is a demonstration of the retrieval gap and the measurement harness — not a paper.