Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "reify" and "reification" mean in relation to RDF?

I do think I understand the meaning of these words in programming languages, but it is not clear in regards to RDF and triples. Is there an example that will help me to understand?

Thank you

like image 272
Eli Schneider Avatar asked Apr 15 '11 00:04

Eli Schneider


1 Answers

A standard RDF statement consists of:

 SUBJECT PREDICATE OBJECT

Think of it as asserting a fact.

 ROVER IS-A DOG

Now, what if the situation you have at hand is, really,

  GEORGE SAYS-THAT 'ROVER IS-A DOG'

In RDF, you write this as

  STMTID  IS-A STATEMENT
  STMTID  HAS-SUBJECT ROVER
  STMTID  HAS-PREDICATE IS-A
  STMTID  HAS-OBJECT DOG
  GEORGE  SAYS-THAT STMTID

The first four triples here are, formally and officially, the reification of the first one.

Note that the original statement is NOT in the model, since the purpose of reification is to hold back from asserting it, but rather talk indirectly about it.

Note further that I've elided the IRI's of ROVER and friends for clarity.

For the cogniscenti in the audience:

There are a variety of things you can do with reification. As per above, you can use it to describe a statement without stating it, thus keeping it away from inference.

You can also use it to add additional facts, such as provenance, to a statement. In that case, you have the original triple, and also the reification. However, I just got a lengthy explanation from someone who seems to know a lot about RDF (one of the leads of the SPARQL spec.) His explanation is that formal reification (including the fourth triple that says that the thing 'is-a statement') is not suppose to be used together with asserting the triple itself. If you look at the comments on this answer, you will see that his opinion is not universal, but you might want to still keep it in mind.

like image 161
bmargulies Avatar answered Sep 27 '22 23:09

bmargulies