Reification & N-ary Relations

Statements about statements; relations with more than two participants; temporal qualifications.

0/4 done

Overview

Reification & N-ary Relations

Statements about statements; relations with more than two participants; temporal qualifications.

Why it matters

RDF triples are binary. When you need to say 'Alice rated this movie 4 stars on 2024-05-01', you must reify or use the N-ary pattern. Picking the wrong one wrecks queries.

Going deeper

A decision matrix, with the trade-off you're really making:

ApproachStrengthWeakness
Classical reification (rdf:Statement)Works in every RDF tool4 triples per fact — storage bloat, ugly SPARQL
N-ary class (LikingEvent)Clean OWL semantics, reusable as an ODPAdds a node per fact; learning curve for query authors
Named graphs (each fact in its own graph)Native to SPARQL 1.1; great for provenanceGranularity choice is yours; can explode graph count
RDF-star (RDF)*Most compact and ergonomicTool support is uneven; not all reasoners understand it

Practical rule: use the N-ary class pattern by default if the qualified fact is itself first-class in the domain (Order, Rating, Visit). Use RDF* when you only need triple-level metadata (provenance, confidence) and your stack supports it end-to-end.

Analogy

A triple is a sentence with a subject, a verb and an object — 'Alice likes Bob'. You can say that, full stop, in three words. As soon as you need to say 'Alice said on Tuesday that she likes Bob but only 60% sure', the sentence needs prepositional phrases: when, how strongly, who reported it.

RDF has three ways to attach those phrases:

  • Classical reification — promote the sentence to a noun ('the-statement- that-alice-likes-bob') and hang phrases off the noun. Verbose, slow to query.
  • N-ary class — invent a class LikingEvent and let it carry all the phrases. Cleanest in OWL; familiar to anyone from event modelling.
  • RDF-star (RDF)* — wrap the triple in << >> and attach properties to the triple itself. Compact, but only if your store and your tooling speak RDF*.

Tools & resources

Tools & resources

Make it stick

Use the prompts below to anchor reification & n-ary relations to a real ontology you care about.

  • Where in your current model has a *3-place fact* (event with 3+ participants) been awkwardly squashed into a binary edge?
  • Are you using classical reification anywhere today? What would the migration to N-ary or RDF* look like?
  • How does your team currently track provenance per triple — and what is that costing in storage or query complexity?

Reading in progress · 0 of 4 activities done