Ontology & Knowledge Graphs — and why this RAG is different

A short guide to how this app turns your data into answers you can trust.

What is an ontology?

An ontology is simply the vocabulary of your domain: the types of things that exist and how they relate. For Finance that might be Invoice, Account,CostCenter with relationships like BILLED_TO and ALLOCATED_TO. It is the “schema of meaning” — what counts as an entity, and which connections are allowed.

In this app the ontology isn't hardcoded. The model proposes it from a sample of your data (Settings → Domain ontology), you approve it, and a Shared core is layered with a per-department ontology so each team's data is typed precisely.

What is a knowledge graph?

A knowledge graph stores your information as nodes (the entities) and edges (the relationships) instead of rows or loose text. “Which engineers are affected by the new travel policy?” becomes a traversal: start at the policy, follow APPLIES_TO to roles, then HELD_BY to people — a path, not a guess.

Because the same Employee mentioned in an HR doc and an Engineering doc is thesame node, the graph lets questions cross departments while staying one connected picture.

Ontology-grounded RAG vs. vector RAG

Classic vector RAG chops documents into chunks, embeds them as numbers, and at query time pulls the “nearest” chunks for the LLM to summarize. It's great for fuzzy recall, but it has no notion of entities or relationships, struggles with counts and multi-hop questions, and can blur or invent facts because it's working from similarity, not structure.

Ontology-grounded (graph) RAG — what this app does — extracts typed entities and relationships into a graph, then answers by retrieving and traversing real records. Benefits:

  • Grounded & explainable — every answer points to actual nodes/rows/tickets, not a vibe.
  • Precise aggregates — “count complaints by feature” is a graph query, not a vibe-count.
  • Multi-hop — follow chains across departments via shared entities.
  • Vectorless by default — graph + full-text; no embedding store to build or drift.
  • Less hallucination — if the graph has nothing, the app says so rather than inventing.
Vector RAGnearest chunks → summarizeno entities · no links · similarity onlyOntology / Graph RAGretrieve + traverse typed recordsCustTicketFeatureProductgrounded · multi-hop · countable

How a dataset flows through this app

When you ingest a dataset, three things are produced together:

  1. Semantic model — the ontology (entity & relationship types) for that data.
  2. Knowledge graph — typed nodes & edges in Neo4j, joined to the shared graph.
  3. Grounded suggestions — example questions generated from your real content.

Ask in three ways: Search (pick a dataset scope), Text-to-Cypher(precise queries over the whole graph), or the Agent (multi-step, picks its own tools).