A graph database is a storage and query system built around nodes and edges (Neo4j, Amazon Neptune, Memgraph, and RDF triple stores such as GraphDB and Stardog), while a knowledge graph is a body of connected, typed, meaningful data about real-world entities that may be stored in one. The graph database is the container and the engine; the knowledge graph is the content, together with the schema or ontology that gives that content meaning. A knowledge graph can live in a graph database, but it can also live in a relational database, a set of Turtle files, or a search index, and a graph database can hold data that nobody would call a knowledge graph.
Two different kinds of thing
The two terms are compared as if they were alternatives, but they answer different questions. “Graph database” answers “what software stores and queries this data”. “Knowledge graph” answers “what is this data and what does it mean”.
A graph database is a category of database management system, alongside relational, document, and key-value systems. Its defining feature is that relationships are first-class: an edge between two nodes is stored directly and traversed by following a pointer or index entry rather than computed through a join. Graph databases come with a query language (Cypher, Gremlin, SPARQL, or GQL), transactions, indexes, and the usual operational machinery.
A knowledge graph is a data artifact. The definition used across this site, expanded in what is a knowledge graph, is a graph of entities and relationships in which nodes and edges carry types drawn from a schema or ontology, entities have stable identifiers, and the whole represents knowledge about a domain rather than one application’s records. Wikidata, DBpedia, and the Google Knowledge Graph are knowledge graphs. The social graph inside a networking app, stored in a graph database, is generally not called one.
Comparison table
| Aspect | Graph database | Knowledge graph |
|---|---|---|
| Category | Software (a database management system) | Data (a dataset plus its semantics) |
| Defines | How nodes and edges are stored, indexed, and queried | Which entities exist, how they relate, and what the types mean |
| Data model | Labeled property graph (LPG) or RDF, chosen by the product | Whatever model the graph is expressed in; often RDF, often LPG |
| Schema | Optional labels and constraints (LPG) or none enforced (most triple stores) | Ontology or schema is part of the artifact (RDFS, OWL, SHACL, schema.org, or informal conventions) |
| Identity | Internal node IDs or IRIs | Stable, often global identifiers (IRIs, Wikidata Q-IDs, Google MIDs) |
| Examples | Neo4j, Amazon Neptune, Memgraph, TigerGraph, GraphDB, Stardog, Apache Jena Fuseki, Virtuoso | Wikidata, DBpedia, Google Knowledge Graph, YAGO, a company’s enterprise knowledge graph |
| Can exist without the other | Yes; many graph databases hold transactional or application data | Yes; a knowledge graph can be files, a relational store, or an in-memory structure |
| Measured by | Query latency, throughput, storage, availability | Coverage, correctness, consistency, identifier quality |
Where the overlap is
Graph databases are the natural home for knowledge graphs because both are built around explicit relationships. A knowledge graph with a hundred million triples is awkward in a relational database (every traversal becomes a self-join) and awkward in a document store. A graph database stores the edges directly and answers multi-hop questions such as “which physicists who studied under a Nobel laureate later won one themselves” with a single traversal query.
The overlap has led vendors to describe their products as knowledge graph platforms, and to answer “is Neo4j a knowledge graph” with a qualified yes. The precise answer is that Neo4j is a graph database, and a knowledge graph is something built in it. Neo4j’s own documentation uses “knowledge graph” for a kind of dataset customers construct, not the product. The same is true of Neptune, Memgraph, and the triple stores.
LPG stores and RDF stores
Graph databases split into two families by data model, and the split matters when a knowledge graph is the payload.
Labeled property graph (LPG) databases such as Neo4j, Memgraph, and TigerGraph model data as nodes with labels and key-value properties, connected by directed, typed edges that can also carry properties. Schema is optional and lightweight. Query languages are Cypher, Gremlin, or the ISO GQL standard. LPG stores are strong on operational workloads and on edge properties (a SINCE date on a WORKS_AT relationship needs no workaround).
RDF stores, also called triple stores, such as GraphDB, Stardog, Apache Jena Fuseki, Virtuoso, and Amazon Neptune in its RDF mode, model data as subject-predicate-object triples with IRIs as identifiers. They are queried with SPARQL and are built to load RDFS and OWL ontologies, validate against SHACL shapes, and often run inference. RDF stores are strong on data integration across sources, global identifiers, and standards compliance, since RDF, SPARQL, OWL, and SHACL are W3C Recommendations.
The trade-offs between the models are covered in property graph vs RDF, and a survey of the products themselves is in graph databases.
Worked example: same knowledge, two containers
The fact “Marie Curie was awarded the Nobel Prize in Physics in 1903” is knowledge graph content. It can be stored in either family of graph database without changing what it means.
In a labeled property graph, loaded with Cypher:
CREATE (p:Person {name: "Marie Curie", wikidata: "Q7186"})
CREATE (a:Award {name: "Nobel Prize in Physics"})
CREATE (p)-[:AWARDED {year: 1903}]->(a);
In an RDF store, loaded from Turtle:
@prefix wd: <http://www.wikidata.org/entity/> .
@prefix wdt: <http://www.wikidata.org/prop/direct/> .
@prefix ex: <https://example.org/> .
wd:Q7186 wdt:P166 wd:Q38104 . # award received: Nobel Prize in Physics
ex:award_1903 ex:recipient wd:Q7186 ;
ex:prize wd:Q38104 ;
ex:year "1903"^^<http://www.w3.org/2001/XMLSchema#gYear> .
The knowledge graph is the set of facts and the meaning attached to Person, Award, AWARDED, and P166. The graph database is whichever engine executes the CREATE statement or loads the Turtle file. Change the engine and the knowledge graph is unchanged; change the facts and the engine is unchanged. The RDF version also shows why identifiers matter: wd:Q7186 is a global identifier any other RDF dataset can reference, while the LPG node has a local ID plus a property that records the Q-ID.
When to use which
Because the two are not alternatives, the practical decisions are separate.
Use a graph database when the workload is relationship-heavy: multi-hop traversal, path finding, pattern matching, or recommendations, whether or not the data qualifies as a knowledge graph. Fraud detection over transaction networks and dependency analysis over software packages are graph database workloads not usually described as knowledge graphs.
Build a knowledge graph when the goal is to represent a domain’s entities and relationships in a way that outlives a single application: integrating data from several systems, giving an LLM verified facts for retrieval, or publishing entity data that other parties (including search engines) can reconcile. Then choose the storage that fits.
Choose an LPG database for a knowledge graph when the team is application-focused, edge properties are common, and the graph does not need to be exchanged with other RDF datasets. Choose an RDF store when the graph must interoperate with public linked data, when ontologies and reasoning are part of the design, or when standards compliance is a requirement. Skip the graph database entirely when the graph is small enough to hold in memory (rdflib in Python or NetworkX handle millions of edges on a laptop) or when the primary access pattern is document retrieval rather than traversal.
For developers
Do not let the storage choice drive the model. Decide on identifiers, types, and the schema or ontology first, then pick the store. A knowledge graph designed with IRIs and schema.org or a domain ontology can be loaded into Neo4j (the neosemantics plugin imports RDF) or a triple store; one designed around Neo4j-specific labels and internal IDs is harder to move. See knowledge graph Python for building with rdflib before committing to a database.
For SEOs
The Google Knowledge Graph is a knowledge graph in the strict sense: entities with machine IDs (MIDs), typed relationships, and a schema that overlaps with schema.org. What database Google uses to store it is not public and does not affect SEO practice. The lever available to a site is the instance data it publishes in JSON-LD, which Google reads and reconciles against its graph. Details are in Google Knowledge Graph and structured data.
Common misconceptions
The most frequent error is treating “knowledge graph database” as a product category. There is no such category; there are graph databases, some marketed toward knowledge graph use cases. A related error is assuming that loading data into Neo4j or Neptune produces a knowledge graph. It produces a graph; whether it is a knowledge graph depends on whether the nodes represent real-world entities with stable identities and the labels carry agreed meaning. The reverse error also occurs: assuming a knowledge graph must live in a graph database. Wikidata’s primary storage is a relational database (MariaDB) behind MediaWiki, with an RDF export loaded into a triple store for the Wikidata Query Service. The knowledge graph is the data, not the engine underneath it.
Related pages
- What is a knowledge graph
- Property graph vs RDF
- Graph databases
- Knowledge graph vs ontology
- Knowledge graph vs vector database
- SPARQL
FAQ
Is Neo4j a knowledge graph?
No. Neo4j is a graph database, a software system for storing and querying nodes and relationships using the labeled property graph model and the Cypher language. A knowledge graph is a dataset that can be built inside Neo4j, and many are. Neo4j’s own documentation describes knowledge graphs as something customers construct with the product rather than as the product itself.
Do you need a graph database to build a knowledge graph?
No. A knowledge graph is defined by its content and semantics, not its storage. Small graphs can be held in memory with libraries such as rdflib or NetworkX, and Wikidata’s primary store is a relational database behind MediaWiki. A graph database becomes worthwhile when the graph is large and the workload involves multi-hop traversal, pattern matching, or concurrent updates that would be slow elsewhere.
What is the difference between a graph database and a triple store?
A triple store is one kind of graph database. It uses the RDF data model (subject-predicate-object triples with IRI identifiers) and the SPARQL query language, and it is usually built to load OWL ontologies and SHACL shapes. Other graph databases, such as Neo4j and Memgraph, use the labeled property graph model with Cypher or Gremlin. Both families store and traverse relationships directly.
Which graph database is best for a knowledge graph?
It depends on the requirements. RDF stores such as GraphDB, Stardog, or Apache Jena Fuseki suit graphs that must interoperate with public linked data, use ontologies, or run inference. Labeled property graph databases such as Neo4j or Memgraph suit application-driven graphs with many edge properties and operational query loads. Amazon Neptune supports both models. Decide the data model and identifier strategy first, then select the store.
Sources and further reading
- Hogan et al., Knowledge Graphs (book and online text): https://kgbook.org/
- Neo4j, What is a knowledge graph: https://neo4j.com/docs/getting-started/appendix/graphdb-concepts/
- W3C, RDF 1.1 Concepts and Abstract Syntax: https://www.w3.org/TR/rdf11-concepts/
- W3C, SPARQL 1.1 Query Language: https://www.w3.org/TR/sparql11-query/
- Amazon Neptune documentation: https://docs.aws.amazon.com/neptune/
- Wikidata Query Service user manual: https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual
