- 13 min read
Graph‑RAG in 2025: When a Knowledge Graph Beats Plain RAG (Design, Ontologies, Pipelines, Evaluation)

Contents
- 13 min read
Executive summary (read this first)
Plain RAG (Retrieval‑Augmented Generation) is brilliant at pulling the most similar chunks. But when the correct answer depends on relationships, precedence, versions, and constraints, similarity alone falls short. That’s where Graph‑RAG wins.
Graph‑RAG couples a knowledge graph (entities + relationships with governance facts like “Master Contract outranks Policy”, “Product v2 depends on Module v1.8+”) with vector retrieval. It lets your AI reason over structure as well as semantics—reducing hallucinations and improving explainability.
Use Graph‑RAG when:
- Answers depend on what outranks what (contracts, policies, SLAs, regulatory hierarchies).
- You must join facts across systems: Customer → Entitlements → Version → Region → Support policy.
- You need traceable reasoning (“Approved because A > B > C; see clauses 4.1 and 7.2”).
- You want stable, reusable context across products and teams.
This guide is a copy‑and‑paste playbook: how to model your domain, build the graph pipeline, query it with vectors, evaluate quality, control costs, and meet governance—with regional notes for Australia, the United States, the United Kingdom, and New Zealand. AU English spelling throughout. No code required.
RAG vs Graph‑RAG: the difference in one page
Plain RAG
- Stores: unstructured chunks + vectors (+ metadata).
- Finds: nearest neighbours to a query vector; optional keyword/hybrid filters.
- Great for: FAQs, manuals, single‑document answers.
- Weakness: struggles with relationships, precedence, cross‑doc joins, and “according to which version?” questions.
Graph‑RAG
- Adds: a knowledge graph: entities (people, products, clauses) and edges (depends_on, supersedes, entitled_to), with weights, validity windows, and precedence rules.
- Finds: the right subgraph and supporting passages, then forms an answer with citations and a reasoning trail.
- Great for: compliance, finance, policy, procurement, complex product support, entitlement checks, multi‑system joins.
- Strength: explainability—“why this conclusion?” is visible as a path in the graph + cited text.
Mental model: vectors get you content; the graph gets you context and governance.
Nine signs your use‑case needs Graph‑RAG
- Precedence matters (master contract outranks policy, latest policy outranks old one).
- Versioning matters (answers differ by product version, clause revision, model number).
- Entitlements & eligibility (region, plan, SKU, licence tier).
- Multi‑hop questions (“Which AU customers on Plan X with Product v2 are eligible for Feature Y?”).
- Conflict resolution (two sources disagree; you need a rule to decide).
- Compliance audits (must show reasoning path and authoritative citations).
- Relationship‑heavy domains (supply chain, healthcare pathways, insurance coverage).
- Cross‑system joins (CRM + billing + product analytics + policy hub).
- Stable corporate memory (reusable domain knowledge across multiple apps/teams).
If you nodded “yes” to ≥4, Graph‑RAG will likely improve reliability and reduce rework.
Architecture blueprint (from documents to trustworthy answers)
Inputs → Processing → Storage → Retrieval → Answering
- Ingestion & normalisation
- Documents (contracts, policies, manuals), tables, tickets, CRM/billing records, release notes.
- Clean text (remove boilerplate), capture headings/tables, preserve section IDs.
- Entity & relation extraction
- Detect entities (products, versions, clauses, roles, regions) and relations (supersedes, depends_on, outranks, applies_to, entitled_to).
- Assign confidence scores and validity windows (e.g., effective_from / effective_to).
- Human‑in‑the‑loop for low‑confidence facts.
- Canonicalisation & deduplication
- Map “Pro Plan”, “Professional” →
plan:pro. - Maintain alias tables and ID mappings across systems.
- Map “Pro Plan”, “Professional” →
- Storage (dual plane)
- Knowledge graph (property graph or RDF) for entities/edges.
- Vector database for passages with rich metadata (owner, last updated, region, access, precedence).
- Retrieval orchestrator
- Graph‑first or Vector‑first strategy (see below).
- Build a subgraph relevant to the query; gather supporting passages.
- Apply precedence & eligibility rules.
- Answering & reasoning trace
- Compose an answer with citations + “because” trail from the graph.
- Enforce refusal when evidence is thin or conflicting.
- LLMOps & governance
- Traces, metrics (grounding %, path plausibility, P95 latency), canary & rollback, and per‑tenant audit.
Ontology design (practical, not academic)
A good ontology is the minimum set of entities, relationships, and rules needed to answer your top 100 questions reliably and explainably.
1) Start with your questions
List the highest‑value questions by persona. Example (support lead):
- “Is Customer A entitled to Feature B on Plan C in the UK?”
- “Which policy clause outranks this FAQ for refunds in NZ?”
- “What’s the approved replacement part for Product v2.1 in AU?”
2) Identify core entities
- Organisation, Tenant, User/Role
- Product, Component, Version/Release
- Plan/Tier, Entitlement, Licence
- Region, Market, Jurisdiction
- Document, Clause/Section, Policy, Contract, FAQ
- Case/Ticket, Order/Invoice (if relevant)
3) Define relationships (edges)
outranks(Contract → Policy → FAQ)supersedes(Clause v3 supersedes v2)depends_on/compatible_with(Product v2.1 → Module v1.8+)entitled_to(Plan Pro → Feature X; Feature X → Region AU)applies_to(Policy → Region)evidence_in(Edge/Node → Document Section)owned_by,updated_by,effective_from/to
4) Capture precedence and validity
- Precedence rules:
Contract > Policy > FAQ;Newer_version > Older_version. - Validity windows: clauses and entitlements change over time. Store dates.
5) Keep it small and useful
- MVO (Minimum Viable Ontology) for your first 3–5 workflows.
- Extend only when a new question genuinely requires a new class or edge.
6) Version the ontology
- Maintain ontology versions (
ont_v1,ont_v1.1). - Tag edges/nodes with the ontology version that created them.
Pipeline: from raw text to a trustworthy graph
- Extraction
- Start with pattern‑based and ML‑assisted entity/relation extraction.
- Prefer high precision over high recall early—add recall later with human curation.
- Confidence & human review
- Tag each edge with confidence.
- Create a review queue for low‑confidence or high‑impact facts (e.g., refund rules, eligibility edges).
- Canonicalisation
- Maintain alias tables for products/regions/plans.
- Normalise IDs with a golden source (e.g., product catalogue, CRM).
- Provenance & citations
- Each edge stores a pointer to Document:Section with last_updated.
- Without provenance, the graph is not auditable.
- Validity windows & deprecation
- Use
effective_from/effective_toand tombstones for deprecated edges. - Keep old edges for replay/audit, mark as inactive.
- Use
- Backfills & re‑indexing
- When policies or versions update, shadow‑index the new graph + embeddings, test on a golden set, then switch.
- PII handling
- Do not embed raw PII into vectors or nodes.
- Hash/link PII; keep originals only in your authoritative systems, encrypted.
Storage options (property graph vs RDF) — choose pragmatically
- Property graph (e.g., labelled nodes/edges with attributes)
- Pros: intuitive for devs, flexible, good traversal performance.
- Cons: fewer native semantics; you encode precedence in your app/policies.
- RDF/OWL (triple/quad stores with reasoning)
- Pros: rich semantics, standards‑based, reasoning engines can infer facts.
- Cons: steeper learning curve; performance/complexity trade‑offs.
Pragmatic default: start with a property graph for speed and clarity. Model precedence and validity in attributes and application logic. If you need formal reasoning later, you can bridge or migrate.
Query strategies: graph, vectors, or both?
Strategy A — Graph‑first, vectors‑second (most common in enterprise)
- Use the query and user context to find seed entities (Customer, Product, Region).
- Traverse the graph to build a relevant subgraph (entitlements, version, jurisdiction).
- Fetch supporting passages from the vector DB using graph‑derived filters (region=AU, product=v2.1, doc_type=policy, last_updated ≤ 90 days).
- Compose the answer with citations and a reasoning path.
Use when: rules, eligibility, and precedence drive answers.
Strategy B — Vector‑first, graph‑shaped (good for discovery)
- Retrieve top‑k passages semantically.
- Extract entities from the top hits; expand into a local subgraph (e.g., related components, newer clauses).
- Re‑rank with graph constraints (prefer higher precedence, newer clauses).
- Answer with citations + path.
Use when: user’s query is open‑ended, and you need discovery then constraint.
Strategy C — Graph‑only (rare but valid)
- For strictly deterministic questions (eligibility checks, yes/no based on entitlements), the graph alone can answer, with links to the authoritative nodes/edges and their evidence.
Use when: you can safely avoid language generation or limit it to templated text.
Answer assembly that builds trust
- State the conclusion early (“Yes, the customer is entitled to Feature B in AU”).
- Show the because: a short bullet trail (Plan → Entitlement → Region → Validity → Precedence).
- Cite precisely: “Policy v3, §4.2, updated 3 June 2025.”
- Surface conflicts: “Clause v2 disagrees with v3; v3 supersedes v2; both cited.”
- Refuse when thin: “Insufficient evidence to confirm entitlement—Policy v3 lacks AU coverage; recommend escalation.”
This structure earns stakeholder trust and shortens security reviews.
Evaluation for Graph‑RAG (beyond standard RAG metrics)
Add graph‑specific measures to your LLMOps dashboards and CI:
- Grounding % — answers with correct citations to authoritative sources.
- Path plausibility % — reasoning paths that match ontology rules and precedence.
- Precedence adherence % — answers that honour outranking rules when conflicts exist.
- Version correctness % — uses the correct effective clause/version.
- Refusal correctness % — refuses when evidence is missing/contradictory.
- Coverage — % of top questions the graph can answer without manual join.
- P95 latency — end‑to‑end with graph traversal + retrieval.
- Cost per successful answer/task — measure weekly by feature and by tenant.
- Drift: structural drift (edges/nodes added/removed affecting answers) and content drift (source docs changed).
CI gates: block release if grounding, path plausibility, or precedence adherence drop; or if P95/COGS spike beyond thresholds.
Cost & performance: what actually moves the needle
- Prompt hygiene — shorter, modular prompts for planner/verifier; keep system text concise.
- Graph scope — build a local subgraph per query; avoid traversing the world.
- Metadata prefilter — region, version, access, and doc type before vector search.
- Selective reranking — apply only for high‑risk questions.
- Caching — cache frequent subgraphs and their supporting passages.
- Vector memory — use PQ/quantisation where recall allows; measure with your golden set.
- Latency budgets — TTFB ≤ 1.5 s for chat; total ≤ 2.5 s for Q&A; agents 5–8 s end‑to‑end.
- Entitlements & rate limits — prevent unbounded usage (especially graph‑heavy queries).
Security, privacy, and governance (non‑negotiables)
- Tenant isolation — per‑tenant namespaces in both graph and vector stores.
- PII minimisation — store references/hashes; keep raw PII in the authoritative system.
- Region pinning — AU/US/UK/NZ residency across storage, compute, backups; document data flows.
- BYOK (enterprise) — customer‑managed keys for sensitive tenants.
- Auditability — log queries, retrieved nodes/edges, supporting passages, reasoning paths, approvals/actions.
- Right‑to‑be‑forgotten — deletion workflows that remove raw docs and derived edges/chunks; maintain tombstones for audit.
- Change control — version prompts, retrieval policies, ontology, and graph ETL; canary & rollback.
Sector blueprints (copy, then adapt)
1) Legal & policy
- Goal: resolve conflicts across contracts → policies → FAQs.
- Key entities: Contract, Policy, Clause, Jurisdiction, Version, Party.
- Edges:
outranks,supersedes,applies_to,evidence_in. - Retrieval: Graph‑first (precedence), then vector passages.
- Evaluation highlight: precedence adherence ≥ 95%.
2) Healthcare (information, not medical advice)
- Goal: pathway eligibility and coverage (by plan, condition, region).
- Entities: Condition, Procedure, Coverage Policy, Plan, Region, Version.
- Edges:
eligible_for,contraindicated_with,requires_authorisation,applies_to. - Guardrails: strict refusal when evidence thin; audit every decision.
3) Finance & insurance
- Goal: refunds/claims eligibility, fee rules, risk flags.
- Entities: Plan/Tier, Product, Transaction, Policy Clause, Threshold, Region.
- Edges:
entitled_to,exceeds_threshold,applies_to,supersedes. - Agent pattern: planner–executor–verifier with approvals > threshold; graph enforces thresholds; vector passages provide evidence.
4) Manufacturing & supply chain
- Goal: compatibility, parts replacement, warranty.
- Entities: Product, Component, Version, Replacement Part, Warranty Clause, Region.
- Edges:
compatible_with,replaces,supersedes,applies_to. - Evaluation: version correctness ≥ 95%; path plausibility ≥ 90%.
5) B2B SaaS support
- Goal: entitlement and feature availability by plan/region/version.
- Entities: Tenant, Plan, Feature, Version, Region, Policy.
- Edges:
entitled_to,requires_version,applies_to,evidence_in. - UI tip: show entitlement path in the ticket sidebar with citations.
Regional notes (Australia, USA, UK, New Zealand)
- Australia (AU): Public sector and finance strongly prefer AU data residency, private networking, and plain‑English notices. Keep audit exports per tenant.
- United States (US): Patchwork of privacy rules; sector‑specific obligations. Make consent explicit for call/email summarisation; disclose automated decision‑making where required.
- United Kingdom (UK): UK GDPR and DPIAs for higher‑risk processing; public sector expects accessibility, explainability, and UK/EU residency.
- New Zealand (NZ): Privacy Act 2020; document overseas disclosures. Government/health often require NZ or near‑region hosting with strong audit.
In all regions, Graph‑RAG’s reasoning path + citations speed procurement and reduce escalations.
Migration path: from plain RAG to Graph‑RAG in 60–90 days
Phase 1 (2–3 weeks):
- Pick one workflow and 30–50 high‑value questions.
- Draft the MVO ontology for that workflow.
- Extract a seed graph with high‑confidence edges; add human review.
Phase 2 (3–4 weeks):
- Implement graph‑first retrieval + vector passages.
- Compose answers with citations + “because” trail.
- Build golden set v1 and set CI thresholds.
Phase 3 (3–4 weeks):
- Add validity windows, precedence rules, and region/version constraints.
- Wire LLMOps: traces, canary, rollback; run an incident drill.
- Expand extraction to cover more entities/edges; document governance.
Phase 4 (ongoing):
- Extend the ontology carefully; add a second workflow.
- Tune chunking/metadata; reduce cost with caching/routing; harden DSAR/deletion.
Ten‑week delivery plan (copy to your tracker)
Weeks 1–2 — Scope & ontology
- Persona + top questions; MVO ontology; precedence & validity rules; data inventory and residency mapping.
Weeks 3–4 — Seed graph & dual index
- Extraction pipeline (entities/relations with confidence); canonicalise IDs; store edges with provenance; build vector index with rich metadata.
Weeks 5–6 — Retrieval & answering
- Graph‑first strategy; subgraph builder; passage fetcher; answer composer with citations + path; refusal policy.
Weeks 7–8 — Evaluation & LLMOps
- Golden set v1; offline CI; thresholds (grounding, precedence, path plausibility, P95, cost); canary + rollback scripts; dashboards.
Weeks 9–10 — Governance & beta
- Tenant isolation, region pinning, audit exports; DSAR/deletion including derived edges; pilot cohort in AU/US/UK/NZ; incident drill; pricing inputs.
Anti‑patterns to avoid
- Boil‑the‑ocean ontology. Start with the minimum needed for your first workflows.
- Graph with no provenance. If edges don’t point to sources, you can’t audit.
- Embedding raw PII. Redact or hash; keep raw only in the system of record.
- Vector‑only for precedence questions. You’ll hallucinate with confident tone.
- Universal reranking. Save it for high‑risk queries; it’s slow and costly.
- No refusal behaviour. Better to say “not enough evidence” with links than to guess.
- Co‑mingled indices. Keep per‑tenant graph namespaces and vector collections.
- Skipping CI/canaries. Graph updates can silently change answers; test, canary, rollback.
FAQs (for stakeholders)
Q: Do we need a full‑blown knowledge graph platform to start?
No. Begin with a focused property graph that covers your first workflow’s entities and edges, with provenance and validity dates. Expand once value is proven.
Q: Isn’t this overkill for a simple chatbot?
Graph‑RAG isn’t for casual chit‑chat. It’s for decisions with rules—eligibility, precedence, compliance. If your answers depend on relationships, it’s not overkill; it’s necessary.
Q: How do we keep the graph up to date?
Ingest policy/contract updates via pipelines, run diffs, update edges with new validity windows, and shadow‑index before switching. Use canary rollouts and CI gates.
Q: What if sources disagree?
Make precedence rules explicit (e.g., Contract > Policy > FAQ). In answers, acknowledge the conflict, apply precedence, show both citations, and record the path.
Q: Will this slow down answers?
Not if you scope subgraphs, use metadata prefilters, cache frequent traversals, and keep prompts lean. Target TTFB ≤ 1.5 s and total ≤ 2.5 s for Q&A.
Q: Can Graph‑RAG reduce costs?
Yes. Better targeting → fewer tokens and retries; fewer escalations; less human rework. Track cost per successful answer/task to see the impact.
Q: Where do we start if our docs are messy?
Invest in cleaning and chunking, then extract a small, high‑value graph. Build alias tables for messy names, and add rules over time.
Q: How do we sell this to enterprise buyers?
Lead with explainability (reasoning path), citations, tenant isolation, residency, and audit exports. Provide a policy pack and assurance artefacts.
Where Digital One Agency fits
If your AI app needs truth with structure—not just plausible paragraphs—Graph‑RAG is how you get there. Digital One Agency designs and ships Graph‑RAG systems that are safe, explainable, and commercially ready:
- Ontology & pipeline: we model your domain, extract high‑confidence entities/relations, and wire provenance/validity windows.
- Dual‑plane retrieval: graph‑first reasoning + vector passages with citations and refusal.
- Agent guardrails: planner–executor–verifier with deterministic tools, approvals, and audit trails.
- LLMOps: golden sets, path plausibility/precedence metrics, canaries, and rollback playbooks.
- Multi‑tenant & residency: per‑tenant graph namespaces, region pinning (AU/US/UK/NZ), BYOK options, and private networking.
- Cost control: prompt hygiene, subgraph scoping, caching, routing, and vector memory optimisation.
- Finance options to build now and pay in milestone‑based instalments if eligible.
We’ll help you start small (one workflow), prove value in weeks, and scale to the rest of your product safely.
CTA
Book a Free 1‑Hour Strategy Session
👉 Book a meeting
📞 Call us globally 24/7: +61 2 9057 9079
📧 Email: contact@digitaloneagency.com.au
Need Custom AI & RAG Pipelines in Australia or the UK?
Digital One Agency is a senior, founder-led engineering team based in Australia (Gold Coast HQ) with active UK clients in London, Manchester and Edinburgh. We build production RAG pipelines and bespoke AI systems — fine-tuning, vector search, evaluation harnesses included.
- Free 30-minute discovery call with a senior engineer
- Fixed-scope quote with milestone billing — no hourly rates
- AU & UK references on request
- Bespoke code you own — not a SaaS reseller, not a ChatGPT wrapper
Book your free discovery call → Or send us your project details
Share
- Get in touch
Kickstart a project today!
Fill out the form, and a member of our team will reach out to discuss your project and answer any questions you might have.