10

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

Tass
  • 1,548
  • 15
  • 27
Eli Schneider
  • 4,717
  • 3
  • 24
  • 50
  • What are the meanings of these words, as you understand them? – Pete Wilson Apr 15 '11 at 00:48
  • In the realm of programming languages a reified object is one whose type is not lost at compile time, but is maintained into runtime. I am not sure how this will helps me. :( – Eli Schneider Apr 15 '11 at 01:00

2 Answers2

24

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.

bmargulies
  • 91,317
  • 38
  • 166
  • 290
  • (+1) Minor note: your example seems backward as, by convention, reification is most oft used for provenance, and in that case the reification would be for the provenance, not the fact, rover is-a dog. – harschware Apr 15 '11 at 01:49
  • 2
    I just had one of the spec leads of the SPARQL standard in my office, and he was quite insistent on the point of view I stated :-) – bmargulies Apr 15 '11 at 01:51
  • No, of course you are totally right, I read it too quickly and got confused. :-) Hard to believe I flubbed that one. Here, your provenance is GEORGE SAYS-THAT it must be applied to the triple in some way, thus the triple must be reified. Gack, I'm going to sleep now. – harschware Apr 15 '11 at 05:52
  • The origial statement can also be in the model, if you want; this is common if you are using reification for provenance etc – DNA May 08 '11 at 22:17
0

another Example:

Consider the statement

music:Symph3 music:dedicatedTo music:Napoleon

To make the statement above referable from within another RDF statement it is reified, i.e., re-phrased, using RDF syntax as follows.

_:s1  rdf:type       rdf:Statement.
_:s1  rdf:subject    music:Symph3.
_:s1  rdf:predicate  music:dedicatedTo.
_:s1  rdf:object     music:Napoleon.
Dmitriy
  • 5,347
  • 12
  • 23
  • 37