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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 02
Start at the ticket
The question names a record, so the walk starts there, not at a list of matching text.
- 03
Hop one: about
The ticket is about part P-220, rev C.
- 04
Hop two: changes
A supplier notice changes that part. The walk follows the edge back to it: SN-88.
- 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:
- Which three questions does it answer that search cannot? Write them down before modeling anything. Each should cross at least two systems.
- Where does each node’s identity come from? A key from the source system survives a reload; a generated one may not.
- How does a change in a source system reach the graph, and how long does that take?
- 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.
- 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.
References
Sources and further reading
Knowledge Graphs
Aidan Hogan et al. · arXiv, revised September 2021
The survey: data models, schema, identity and context, and how knowledge graphs are built, refined and published.
ReadRDF 1.1 Concepts and Abstract Syntax
W3C Recommendation · February 2014
The triple model: a subject, a predicate and an object, and graphs made of them.
ReadIntroducing the Knowledge Graph: things, not strings
Amit Singhal, Google · May 2012
The post that put the term into everyday use, with entities in place of keywords.
ReadWhat is a knowledge graph?
Neo4j · updated September 2026
Nodes, relationships and organizing principles, from a product taxonomy to an ontology.
ReadGraph model
Curiosity documentation
Nodes, edges, schemas and keys in Curiosity Studio, and the modeling mistakes that cause duplicates.
ReadProperty graph model
Curiosity documentation
How users, teams and access are themselves nodes and edges in the graph.
ReadFAQ
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.
Articles
Read next
What is a context graph?
Context graphs
Two meanings of a new term, decision traces and a permission-aware graph of records, where they meet, and where a knowledge graph ends.
ReadWhat is enterprise search?
Enterprise search
How search inside a company differs from web search, how it works, where it goes wrong, and how to test one before you trust it.
ReadWhat is hybrid search?
Hybrid search
Keyword and meaning-based search on one query, how their two lists become one ranking, and when an exact match has to win.
ReadYour data. Your infrastructure.