curiosity

Article · Knowledge graphs

What is a knowledge graph?

A knowledge graph stores the things a business deals with, such as parts, suppliers and tickets, as nodes. The typed relationships between them are its edges. A question can then follow those relationships from one record to the next, instead of matching words or joining tables.

Topic Knowledge graphs Reading time 7 min References 6 Updated October 2026

In short

A knowledge graph is a store of entities and the typed relationships between them, organized by a schema that says what may connect to what. An entity is a thing with an identity: a part, a supplier, an aircraft. A relationship is a named, directed link: a ticket is about a part, a supplier notice changes it.

Two neighbors are easy to confuse with it. A relational database keeps the same facts in tables and rebuilds the links with joins when a query asks for them. A document index keeps text and finds the passages that look like a question. A knowledge graph keeps the links themselves, so following one is a lookup rather than a reconstruction.

Entities, relationships and a schema

A survey by Aidan Hogan and 17 coauthors adopts an inclusive definition: “a graph of data intended to accumulate and convey knowledge of the real world, whose nodes represent entities of interest and whose edges represent relations between these entities.”

Two data models carry most knowledge graphs. The W3C’s RDF standard builds a graph from “a set of triples, each consisting of a subject, a predicate and an object.” A property graph, the other common model, also stores named fields on each node. Part P-220 has a revision and a material, and its supplier is a node of its own.

The schema is the part teams skip and later regret. It names the types: part, supplier, ticket, maintenance log. It lists the fields each type has, the key that identifies a record, and the relationships allowed between types. Neo4j’s introduction calls this layer organizing principles, anything from a product taxonomy to a full business vocabulary.

Identity matters as much as structure. Say the ticket system writes the part as P220-C and the parts list writes P-220 rev C. The graph needs one key for both, or it holds two parts that are really one.

How it differs from a table and from an index

A relational table answers known questions well. A row per part, a row per ticket, a foreign key between them: the join is fast and the database checks every value. The trouble starts when a question crosses systems. The ticket lives in one database, the part in another, the supplier notice in an inbox, and nothing joins them until someone writes the integration.

A document index answers a different question: which text looks like this? It finds every ticket that mentions a leak. It will not find the supplier notice that changed the seal on the leaking part, because the notice never says leak. What links the notice to the ticket is a part number, not its wording.

A knowledge graph stores that link once, when the records are loaded, and every later question can follow it. It does not replace the table or the index. The source systems stay the authority on their records. A good system uses search to find a starting point and the graph to walk from it.

How it is built

Four systems, one graph

Records keep their own systems. The graph gives each one a type, adds the entities they name, and draws the relationships between them. Pick a step to stop the drawing and read it.

Records from four systems become one typed graph A ticket, a part record, a supplier notice and a maintenance log start in four separate systems. Each becomes a typed node, the supplier named in the notice becomes a node of its own, and typed relationships join them: the ticket is about the part, the log records work on it, the notice changes it and was issued by the supplier. The part ends one hop from every record. ISSUED BYABOUTWORK ONCHANGESTICKET SYSTEMT-4471, pump leaksTICKETT-4471, pump leaksPART DATAP-220, rev CPARTP-220, rev CSUPPLIER EMAILSN-88, new sealSUPPLIER NOTICESN-88, new sealMAINTENANCEML-1903, seal swapMAINTENANCE LOGML-1903, seal swapSUPPLIERS-12, seal maker
Records from four systems become one typed graph A ticket, a part record, a supplier notice and a maintenance log start in four separate systems. Each becomes a typed node, the supplier named in the notice becomes a node of its own, and typed relationships join them: the ticket is about the part, the log records work on it, the notice changes it and was issued by the supplier. The part ends one hop from every record. ISSUED BYABOUTWORK ONCHANGESTICKET SYSTEMT-4471, pump leaksTICKETT-4471, pump leaksPART DATAP-220, rev CPARTP-220, rev CSUPPLIER EMAILSN-88, new sealSUPPLIER NOTICESN-88, new sealMAINTENANCEML-1903, seal swapMAINTENANCE LOGML-1903, seal swapSUPPLIERS-12, seal maker
  1. 01

    Four systems, four records

    A ticket, a part record, a supplier notice and a maintenance log, each in the system that owns it. Nothing links them.

  2. 02

    Each record gets a type

    A ticket, a part, a notice, a log. The type says which fields a record has and what it may connect to.

  3. 03

    The supplier becomes an entity

    The notice names the company that sent it. That supplier becomes a node of its own, so any record can link to it.

  4. 04

    Relationships draw in

    The ticket is about the part, the log records work on it, and the notice changes it. None of them share a word.

  5. 05

    One hop from the part

    Everything the four systems know about P-220 is now one step away from it.

Why it matters for AI

Google made the term common in 2012. It introduced its Knowledge Graph as a model that “understands real-world entities and their relationships to one another: things, not strings.” That distinction now decides whether an AI assistant gives a useful answer.

A language model answers from what it is given. Handed the ten passages most similar to a question, it reasons over text that resembles the question. Handed a walk through a graph, it reasons over the records connected to the question. That means the part, its open tickets, the notice that changed it and the last seal swap.

Each of those is a record with an id, so the answer can cite them and a person can check each one. The survey separates open knowledge graphs, such as Wikidata, from enterprise knowledge graphs. A company builds the second kind over its own records, for its own use.

How it answers

Two hops to the answer

A question that names a record starts there and follows typed relationships. The answer arrives with the path that found it.

A question answered by walking two hops The question asks whether the supplier warned about the part in ticket T-4471. The walk starts at the ticket, follows its About edge to part P-220, rev C, then follows a Changes edge back to supplier notice SN-88. The answer cites the notice and the path to it. QUESTIONDid the supplier warn us about the part in T-4471?ABOUTABOUTCHANGESCHANGESWORK ONISSUED BYTICKETT-4471, pump leaksTICKETT-4471, pump leaksPARTP-220, rev CPARTP-220, rev CSUPPLIER NOTICESN-88, new sealSUPPLIER NOTICESN-88, new sealMAINTENANCE LOGML-1903, seal swapSUPPLIERS-12, seal makerYes: notice SN-88 changed the seal on P-220, rev C.T-4471 · ABOUT · P-220 · CHANGED BY · SN-88
A question answered by walking two hops The question asks whether the supplier warned about the part in ticket T-4471. The walk starts at the ticket, follows its About edge to part P-220, rev C, then follows a Changes edge back to supplier notice SN-88. The answer cites the notice and the path to it. QUESTIONDid the supplier warn usabout the part in T-4471?ABOUTABOUTCHANGESCHANGESWORK ONISSUED BYTICKETT-4471, pump leaksTICKETT-4471, pump leaksPARTP-220, rev CPARTP-220, rev CSUPPLIER NOTICESN-88, new sealSUPPLIER NOTICESN-88, new sealMAINTENANCE LOGML-1903, seal swapSUPPLIERS-12, seal makerYes: notice SN-88 changedthe seal on P-220, rev C.PATH: ABOUT · CHANGED BY
  1. 01

    A question

    Did the supplier warn us about the part in ticket T-4471? A search for the ticket’s words would not find the answer.

  2. 02

    Start at the ticket

    The question names a record, so the walk starts there, not at a list of matching text.

  3. 03

    Hop one: about

    The ticket is about part P-220, rev C.

  4. 04

    Hop two: changes

    A supplier notice changes that part. The walk follows the edge back to it: SN-88.

  5. 05

    The answer, with its path

    The answer cites the notice and the two hops that led to it, so a person can check each one.

How it goes wrong

  • Unstable keys. If a record’s identity changes between loads, each load creates a new node. Our own graph model documentation names unstable keys as the top cause of duplicates.
  • Everything a node. Turning every value into a node makes the graph large and slow to read. A status or a date is a field; a supplier is a node.
  • Too few edges. A graph whose records keep their links only as text fields is a document store with extra steps. Add an edge wherever people will ask a question that crosses it.
  • A stale copy. A graph loaded once from an export is right on the day it was built. Changes in the sources have to keep arriving, or the graph drifts away from them.
  • Permissions left behind. An export carries the records and drops who may read them. A graph built that way shows every user everything, or nobody is allowed to use it.

How to evaluate one

Five questions separate a useful knowledge graph from a diagram of one:

  1. Which three questions does it answer that search cannot? Write them down before modeling anything. Each should cross at least two systems.
  2. Where does each node’s identity come from? A key from the source system survives a reload; a generated one may not.
  3. How does a change in a source system reach the graph, and how long does that take?
  4. Where do permissions live, and when are they checked? Checked once at load time, they go stale. Checked when a question is asked, they hold.
  5. Can every answer show its path, from the node it started at to the record it ends on?

How Curiosity builds one

Curiosity Studio keeps a typed property graph: nodes are records and entities, edges are named relationships, and fields live on the nodes. Connectors bring in records from more than 70 systems, and a connector SDK in C# or Python writes records for the rest. The graph keeps a synced copy of what each connector maps, linked back to its source. There is no RDF or SPARQL layer.

Permissions live in the same graph. A user is a node, a team is a node, and membership and ownership are edges, as the property graph documentation describes. Access is synced from the source systems and checked per record at query time. A question asked as a user returns only records that user could open in the source.

Search and AI run on that graph, with the model you choose, on your own infrastructure. The knowledge graph page covers the developer side. Studio calls the result a context graph, and What is a context graph? explains where the two differ.

FAQ

Questions people ask

Is a knowledge graph the same as a graph database?

No. A graph database is the storage and query engine. A knowledge graph is the data in it, organized by a schema around the entities a business cares about. It can live in a graph database, in RDF triples, or in the typed graph Curiosity Studio keeps.

Do I need an ontology to build a knowledge graph?

Not to start. A schema that names your types, their keys and the relationships allowed between them answers most questions a business asks of its records. A formal ontology earns its cost when you need to reason over classes or share definitions with other organizations.

Does a knowledge graph replace search?

No. Search finds a place to start, by words or by meaning. The graph walks from there to the records connected to it. Curiosity Studio runs both on the same records, in one system, under the same permission checks.

What does a knowledge graph need from each source system?

A stable key for each record, the fields worth keeping and who may read it. It also needs the links the record already holds, such as a part number on a ticket. With those, a connector can load the record, link it and keep its permissions.

Your data. Your infrastructure.

Connected knowledge for AI systems