TL;DR
-
RDF models facts as subject-predicate-object triples with global URIs—designed for merging datasets across organizations without prior schema agreement.
-
Property graphs model labeled nodes and relationships with key-value properties—optimized for application traversals, edge metadata, and developer ergonomics.
-
Neither is a complete knowledge graph alone. RDF needs governance, SHACL, and consumption design. Property graphs need ontology discipline and schema registries. Both are storage models within a broader KG architecture.
-
Many enterprises use both—canonical ontology and integration in RDF; operational application graph in Neo4j, Memgraph, or Neptune PG mode.
-
The choice is architectural, not religious—base it on consumers, query patterns, standards requirements, team skills, and whether you need SPARQL or Cypher.
Why This Matters
Every knowledge graph project faces the same fork: RDF triple store or property graph database? The wrong choice costs months—RDF teams frustrated by reification for edge metadata; property graph teams struggling to merge external linked data by URI.
Both models represent connected data. The differences are identity schemes, schema philosophy, query languages, tooling ecosystems, and what "correctness" means (OWL inference vs application constraints).
If you are architecting a knowledge graph, integrating external datasets, or choosing between GraphDB and Neo4j, this comparison is the decision framework you need before writing ingestion code.
Critical framing: A graph database (RDF or LPG) stores graph-shaped data. A knowledge graph adds ontologies (TBox/ABox), validation (SHACL), stewardship, and defined consumption—including hybrid RAG pipelines. Model selection is one decision within that broader architecture.
The Problem
Teams conflate three distinct questions:
- What data model fits our queries? Triples vs labeled nodes/relationships.
- What storage engine fits our scale and ops? GraphDB vs Neo4j vs Oxigraph vs Neptune.
- Are we building a knowledge graph or a graph application? Semantic integration vs traversal performance.
RDF solves cross-system data integration. When Dataset A and Dataset B both mention "Acme Corp" with different schemas, RDF assigns a global URI and expresses facts as mergeable triples. See RDF.
Property graphs solve application-centric traversal. When your product team needs "customers who purchased products also bought by users in their network within 3 hops, filtered by purchase date on the relationship," property graphs express this naturally in Cypher with native edge properties. See Property Graphs.
The tension: global interoperability vs local developer speed. Most enterprise failures come from choosing based on vendor demos rather than consumer analysis, query pattern inventory, and edge-property requirements.
How We Got Here
RDF and property graphs evolved on parallel tracks:
Diagram: Parallel evolution of RDF and property graphs
flowchart TB
subgraph rdf_track [RDF / Semantic Web Track]
R1[RDF 1999 W3C]
R2[OWL 2012]
R3[SHACL 2017]
R4[JSON-LD APIs]
R1 --> R2 --> R3 --> R4
end
subgraph lpg_track [Property Graph Track]
L1[Neo4j 2007]
L2[openCypher 2015]
L3[GDS Analytics]
L4[Vector + GraphRAG]
L1 --> L2 --> L3 --> L4
end
rdf_track --> MERGE[Dual-Layer Enterprise KG]
lpg_track --> MERGE
MERGE --> AI[Hybrid KG + RAG Systems]
| Track | Origin | Primary consumers |
|---|---|---|
| RDF | W3C semantic web, linked data | Data platforms, ontology teams, compliance |
| LPG | Neo4j, application graphs | Product engineers, fraud/analytics teams |
| Convergence 2020s | GraphRAG, LLM extraction, vector indexes | AI engineers using both via LangChain, LlamaIndex |
Amazon Neptune exemplifies the split: RDF mode (SPARQL) and property graph mode (openCypher) are separate engines that do not auto-sync.
Architecture
RDF-only architecture
Sources → ETL/RML → SHACL → Triple Store → SPARQL → Apps / AI
↑
OWL TBox + SHACL Shapes
Best for: enterprise ontology hubs, linked data publishing, regulatory reporting (FIBO), LLM triple validation.
Property graph-only architecture
Sources → ETL → Neo4j/Memgraph/Neptune PG → Cypher → Application
Best for: recommendations, fraud detection, service dependency maps, startup graph features.
Dual-layer architecture (common in enterprise)
Diagram: Dual-layer knowledge graph
flowchart TB
subgraph sources [Sources]
ERP[ERP / SQL]
CRM[CRM / APIs]
EXT[External Linked Data]
end
subgraph canonical [Canonical Semantic Layer - RDF]
TBox[OWL TBox]
ABox[RDF ABox]
SHACL[SHACL Validation]
TS[(GraphDB / Jena / Oxigraph)]
end
subgraph projection [Application Layer - LPG]
PG[(Neo4j / Neptune PG)]
CYP[Cypher API]
end
subgraph ai [AI Consumption]
VEC[Vector Index]
RAG[RAG + GraphRAG]
end
ERP --> ABox
CRM --> ABox
EXT --> ABox
TBox --> ABox
ABox --> SHACL
SHACL --> TS
TS -->|ETL projection| PG
TS --> VEC
PG --> CYP
TS --> RAG
PG --> RAG
VEC --> RAG
RDF holds canonical ontology and integrated triples. Property graph holds denormalized, traversal-optimized projection. Sync via ETL or CDC. Vector index from Best Vector Databases grounds RAG; graph structure grounds GraphRAG.
Step-by-Step Flow
Decision process for model selection:
Step 1: Inventory consumers. Who reads the graph—data platform, app team, partners, regulators, LLM pipelines?
Step 2: Document query patterns. Pattern matching over standardized predicates? Multi-hop traversals with edge filters? Aggregations?
Step 3: Assess edge property density. How many metadata fields per relationship? Temporal validity? Confidence scores?
Step 4: Evaluate interoperability requirements. URI merge across orgs? FIBO/SNOMED alignment? Linked open data?
Step 5: Assess team skills. SPARQL/URI discipline vs Cypher/SQL familiarity.
Step 6: Load representative data into both candidates. Run top 20 queries; measure latency and developer ergonomics.
Step 7: Document decision rationale. Include migration path if requirements change.
Step 8: Establish governance regardless of model. Ontology or schema registry, validation, stewardship.
Step 9: Plan AI integration if needed. SHACL-validated RDF extraction + vector RAG + optional LPG neighborhood expansion.
Step 10: Revisit annually. RDF-star maturity, GQL standardization, and team growth may shift the balance.
Real Production Example
Life sciences: dual-layer drug discovery platform
RDF layer (GraphDB): Canonical ontology aligned with ChEBI and UniProt. Internal compound data merged with public RDF via owl:sameAs. OWL-RL materializes drug class hierarchies. SHACL validates LLM-extracted triples before merge.
LPG projection (Neo4j): Denormalized target–pathway–disease subgraph for 2-hop Cypher queries powering researcher UI. Synced nightly from RDF named graphs.
AI: LlamaIndex retrieves literature chunks (RAG); SPARQL expands validated entity neighborhoods; Neo4j Vector links entities to embeddings.
Finance: FIBO RDF with fraud LPG
RDF (Stardog): Instrument registry with FIBO TBox. Regulatory SPARQL reports. Closed-world SHACL on required LEI fields.
LPG (Neo4j): Counterparty exposure graph with :OWES {amount, currency, asOfDate} on edges. GDS PageRank for systemic risk. No URI merge needed—internal IDs suffice for this closed application.
Manufacturing: RDF canonical, no LPG
Single-team BOM integration across ERP vendors uses RDF only (Apache Jena). URI-identified components merge across plants globally. SPARQL competency questions suffice; no sub-10ms traversal SLA—RDF-only is correct.
Telecom: LPG-only service inventory
Real-time dependency queries at 5K QPS on Memgraph. :DEPENDS_ON {latencyP99, protocol} edge properties. No external linked data merge. Schema registry governs labels—KG discipline without RDF.
Startup: LPG-first with RDF later
Ship Neo4j MVP for recommendation feature in 6 weeks. When enterprise data platform requires URI merge with partner feed, add RDF canonical layer—migration planned from day one with stable business keys mappable to URIs.
Edge property decision worksheet
Before choosing RDF or LPG, inventory relationship metadata per domain relationship type:
| Relationship | Metadata fields | Query pattern | RDF-star OK? |
|---|---|---|---|
WORKS_AT |
since, role, department | Filter by since | RDF-star or n-ary |
TRANSFERRED |
amount, currency, timestamp, channel | Range + sum aggregations | Property graph simpler |
DEPENDS_ON |
protocol, latency, critical flag | Multi-hop + edge filter | Property graph simpler |
sameAs |
confidence, source | Merge alignment | RDF native |
If majority of critical relationships have 3+ metadata fields queried in traversals, property graph or dual-layer projection strongly favored.
Migration cost estimates
| Migration | Effort driver | Typical duration |
|---|---|---|
| PG → RDF | URI minting, ETL rewrite, SPARQL retraining | 6–18 months enterprise |
| RDF → PG | Loss of inference unless duplicated; URI to key mapping | 3–9 months |
| Add RDF layer to PG | Dual sync pipeline, governance setup | 3–6 months MVP |
| Add PG projection to RDF | ETL projection, query routing | 2–4 months |
Plan migration as a program with phased consumers—not a weekend database swap.
Proof-of-concept benchmark protocol
Run identical workloads on candidate stores before committing:
- Load 80% of projected first-year volume (nodes, relationships, triples)
- Execute top 20 production queries 1000 times each; record p50/p95/p99
- Measure developer time to write 5 new queries from scratch
- Run parallel ingestion batch; measure throughput and error rate
- Document edge-property query ergonomics score (team survey 1–5)
- Estimate 3-year TCO including licenses, FTE, and training
Present results to architecture review board with explicit recommendation—not "we like Neo4j" but "Cypher p95 45ms vs SPARQL 380ms on traversal Q7 with 12M edges."
Design Decisions
| Decision | RDF | Property Graph | Dual-layer |
|---|---|---|---|
| Primary identity | URI | Business key / internal ID | URI canonical, key in projection |
| Edge metadata | RDF-star, n-ary nodes | Native properties | Rich edges in LPG; provenance in RDF |
| Validation | SHACL + OWL | Constraints, app logic | SHACL on RDF; constraints on LPG |
| Query language | SPARQL | Cypher | Both—different teams |
| Reasoning | OWL materialization | App rules | OWL on RDF layer |
| AI pipeline | Triple extraction + SHACL | Entity graph + Cypher expansion | Validate in RDF; traverse in LPG |
| Ops complexity | Moderate | Lower (single store) | Higher—sync discipline required |
Comparisons
Side-by-side model comparison
| Dimension | RDF | Property Graph |
|---|---|---|
| Atomic unit | Triple (S-P-O) | Node + relationship |
| Identity | URI/IRI globally unique | Internal ID + optional external key |
| Edge properties | RDF-star, reification, n-ary | Native key-value |
| Schema | Open world—OWL, RDFS, SHACL | Closed world—labels, constraints |
| Query language | SPARQL | Cypher, Gremlin |
| Standards body | W3C | openCypher; ISO GQL emerging |
| Reasoning | OWL DL reasoners | Application logic |
| Merge across sources | Excellent—URI alignment | Requires ETL mapping |
| Traversal performance | Variable by store | Optimized—index-free adjacency |
| Learning curve | Steep | Moderate |
| Typical stores | GraphDB, Jena, Oxigraph, Neptune RDF | Neo4j, Memgraph, Neptune PG |
| KG role | Canonical semantic layer | Application projection |
| Is it a full KG alone? | Needs governance + SHACL + consumption | Needs schema registry + stewardship |
SPARQL vs Cypher (same domain, different syntax)
| Task | SPARQL (RDF) | Cypher (LPG) |
|---|---|---|
| Find employees at org | ?p ex:worksAt ?o . ?o rdfs:label "Acme" |
MATCH (p:Person)-[:WORKS_AT]->(o:Organization {name: "Acme"}) |
| 3-hop dependencies | Property path ex:dependsOn+ |
-[:DEPENDS_ON*1..3]-> |
| Filter on edge date | RDF-star or n-ary node | -[r:WORKS_AT]-> WHERE r.since > 2020 |
| Subclass inference | OWL materialized rdf:type |
Explicit labels or app logic |
Decision matrix by scenario
| Scenario | RDF | Property Graph | Both |
|---|---|---|---|
| Merge 5 department datasets | ✓ | ||
| Build recommendation engine | ✓ | ||
| Publish linked open data | ✓ | ||
| Fraud ring detection | ✓ | ||
| Enterprise ontology + app | ✓ | ||
| LLM triple extraction + validation | ✓ | ||
| Real-time social network queries | ✓ | ||
| Regulatory reporting (FIBO) | ✓ | ||
| Startup MVP graph feature | ✓ | ||
| AI + GraphRAG + standards | ✓ | ✓ |
Diagram: Query routing in dual-layer KG
sequenceDiagram
participant App as Application
participant LPG as Neo4j Cypher
participant RDF as RDF SPARQL
participant V as Vector Index
App->>LPG: traversal query sub-10ms
App->>RDF: ontology / merge query
App->>V: document similarity RAG
RDF-->>App: validated entities
LPG-->>App: k-hop neighborhood
V-->>App: text chunks
Decision tree: RDF vs property graph vs both
flowchart TD
A[Starting knowledge graph project] --> B{External URI merge required?}
B -->|Yes| C{Traversal-heavy app SLA?}
B -->|No| D{Rich edge properties + high QPS traversals?}
C -->|Yes| E[Dual-layer: RDF canonical + LPG projection]
C -->|No| F[RDF-only triple store]
D -->|Yes| G[Property graph - govern with schema registry]
D -->|No| H{OWL inference or SHACL validation?}
H -->|Yes| F
H -->|No| I{Team knows SPARQL?}
I -->|Yes| F
I -->|No| G
E --> J[Sync ETL + vector RAG optional]
F --> K[SHACL + SPARQL consumption]
G --> L[Cypher + optional Neo4j Vector]
Start with consumer and query analysis—not vendor preference.
Storage engine comparison (within each model)
| RDF Stores | LPG Stores |
|---|---|
| GraphDB — enterprise OWL/SHACL | Neo4j — ecosystem, GDS, AuraDB |
| Jena Fuseki — OSS, Java | Memgraph — in-memory, streaming |
| Oxigraph — Rust, embedded | Neptune PG — AWS managed |
| RDF4J — pluggable Java | TigerGraph — massive scale |
| Stardog — virtual graphs, security |
Common Mistakes
-
Choosing RDF for a single-team app graph — interoperability overhead without consumers who need it.
-
Choosing property graphs for cross-org data exchange — every partner needs custom ETL; no URI merge.
-
Ignoring edge property requirements — discovering mid-project that every relationship has 5 metadata fields hurts in RDF without RDF-star.
-
Assuming one store does both well — Neptune RDF and PG are separate engines.
-
No ontology in either model — LPG label proliferation equals ungoverned RDF predicates.
-
Underestimating SPARQL learning curve — invest in training or PG projection layer.
-
Calling either storage a "knowledge graph" without governance — semantics, validation, and stewardship required.
Where It Breaks Down
Dual-layer without sync discipline. RDF canonical and LPG projection drift when ETL lacks idempotent keys, version tracking, or reconciliation jobs. Users see different answers from SPARQL vs Cypher—trust erodes faster than single-model inconsistency.
RDF-only for real-time traversal SLAs. Complex SPARQL with optional paths and FILTER on literals can exceed 500ms where Cypher variable-length patterns hit indexed adjacency in single-digit milliseconds.
LPG-only for regulatory ontology alignment. Mapping FIBO or SNOMED into ad-hoc Neo4j labels loses equivalence and disjointness semantics—compliance audits fail when inferred types are not materialized.
Choosing on vendor demo datasets. Demo graphs are tiny and query patterns are curated. Production failure modes—super nodes, URI collisions, SHACL violation storms—appear only at representative volume.
Ignoring AI consumption path. Teams pick RDF or LPG for traditional apps but bolt on GraphRAG without deciding where LLM extraction validates (RDF+SHACL) vs where neighborhoods expand (LPG Cypher)—creating duplicate entity stores with no URI mapping.
When NOT
Do not choose RDF as primary when:
- Single team owns closed-world application with rich edge metadata and no external merge.
- Sub-10ms multi-hop traversals at high QPS are the core SLA.
- Team lacks semantic web expertise and timeline is short.
Do not choose property graphs as primary when:
- External linked data must merge by URI without prior agreement.
- OWL reasoning or SHACL on canonical data is a hard requirement on one store.
- Regulatory ontology alignment (FIBO, SNOMED) is core.
Do not choose dual-layer when:
- Team size cannot sustain sync pipeline and two operational stores.
- Requirements clearly favor one model on all dimensions.
Running in Production
Best Practice
✅ Best Practices — Document decision rationale, benchmark top queries on representative data, govern schema in either model, plan sync consistency for dual-layer.
| Dimension | RDF | Property Graph | Dual-layer |
|---|---|---|---|
| Scaling | Billion-triple stores; federation | Neo4j cluster, Neptune auto-scale | Bottleneck is sync lag |
| Latency | 10ms–seconds for SPARQL | Sub-10ms traversals common | Hot paths hit LPG |
| Cost | GraphDB/Stardog licensing | Neo4j Aura, Neptune pricing | Highest ops cost |
| Monitoring | SHACL violations, triple count, slow SPARQL | Slow Cypher, heap, edge counts | Sync lag, projection drift |
| Evaluation | Competency SPARQL suite | Query SLA, traversal depth | End-to-end consistency checks |
| Security | Graph/triple ACLs | RBAC, property encryption | ACL on both layers |
| AI integration | SHACL-validated extraction | Cypher GraphRAG | RDF validate + LPG traverse + vector RAG |
Warning
Do not choose based on vendor marketing. Load your data, run your top 20 queries, measure latency and developer ergonomics before committing.
Related Guides
-
Models: RDF · Property Graphs
-
Semantics: Ontologies · OWL · SHACL
-
Foundations: Knowledge Graphs · Enterprise Knowledge Graphs · Graph Databases
-
Tools: Neo4j Vector · LangChain · LlamaIndex · Best Vector Databases
Diagram: Recommended evaluation path
flowchart LR
A[Inventory queries] --> B[Prototype RDF]
A --> C[Prototype LPG]
B --> D[Benchmark]
C --> D
D --> E{Both needed?}
E -->|Yes| F[Dual-layer design]
E -->|No| G[Single model commit]
Prerequisites: Knowledge Graphs · RDF
Next topics: Property Graphs · SPARQL · Cypher
Interview Questions
-
RDF vs property graph—one-sentence distinction?
- Expected: RDF = URI triples for global merge; LPG = labeled nodes/rels with native edge props for app traversals.
-
When dual-layer architecture?
- Expected: URI merge + ontology on RDF; sub-10ms traversals on LPG; enterprise with both platform and app teams.
-
Edge property problem in RDF—solutions?
- Expected: RDF-star, n-ary nodes, reification; property graphs native; check RDF-star store support.
-
Is Neo4j an RDF store?
- Expected: no—property graph; n10s imports RDF as LPG; not SPARQL/OWL reasoner.
-
Neptune RDF vs Neptune PG?
- Expected: separate engines/modes; no auto-sync; choose per workload.
-
Graph database vs knowledge graph?
- Expected: KG adds ontology, SHACL, governance, consumption design—not just storage.
-
LLM pipeline: RDF or LPG for extraction validation?
- Expected: RDF + SHACL for formal validation; LPG for traversal after validation or as projection.
-
Migration PG to RDF hardest part?
- Expected: identity scheme change—internal IDs to URIs; ETL remapping cost.
Key Takeaways
- RDF optimizes global interoperability, URI identity, and ontology-driven semantics.
- Property graphs optimize developer ergonomics, edge properties, and traversal performance.
- Neither storage alone is a complete knowledge graph—governance and validation required.
- The edge property gap is real; RDF-star helps but property graphs remain simpler for rich relationship metadata.
- Many enterprises use both: RDF canonical layer + LPG application projection.
- Decide based on consumers, query patterns, standards requirements, and team skills—not vendor hype.
FAQs
Can I use both RDF and property graphs together?
Yes—common pattern. RDF as canonical semantic layer; property graph as application projection. Sync via ETL.
Which is better for GraphRAG?
RDF if integrating linked data and validating LLM extractions with SHACL. Property graphs if app already runs on Neo4j with traversal-heavy queries. Hybrid is common.
Does Neo4j support RDF?
Partially via neosemantics for import/export. Core remains property graph—not full RDF reasoner.
What about Amazon Neptune?
Separate RDF (SPARQL) and PG (openCypher) modes. Choose per workload; they do not auto-sync.
Is RDF outdated?
No—actively used in pharma, finance (FIBO), government linked data, enterprise ontology layers.
Which has better AI/LLM integration?
Both work. RDF + SHACL validates extracted triples formally. Property graphs integrate with LangChain Neo4j adapters. Hybrid covers both.
What is RDF-star?
RDF 1.2 metadata on triples—closes edge-property gap. Check store support before committing.
Which query language should my team learn?
SPARQL for RDF. Cypher for property graphs. Dual-layer: platform team SPARQL, app team Cypher.
Can property graphs do OWL reasoning?
Not natively. Use RDF layer with reasoner or application rules in LPG.
How evaluate before committing?
Load representative data, run top 20 production queries on both candidates, measure p95 latency and developer time-to-query.
What is a projection sync SLA?
Define maximum lag between RDF canonical update and LPG projection refresh—e.g., 15 minutes for ops dashboards, 24 hours for analytics. Monitor lag as a first-class metric in dual-layer architectures.
When migrate from LPG-only to dual-layer?
When first external partner requires URI merge, regulatory reporting needs FIBO alignment, or LLM extraction pipeline requires SHACL validation on canonical triples before Neo4j projection.