ioctl's RDF junkyard.
Reification is a mechanism to record statements without asserting them. Prime uses include provenance (who said what). How do you do it?
A resource R is said to be a reification in the graph G of a statement of the form S P O (which itself does not have to appear in G) iff the following statements appear in G:
...and the various definitions of f give you different options for a definition of reification.
This is as reification was 'classically' defined in the M&S. (Note: I'm just talking here about the assertions needed to put a reificaiton of a statement into a graph, not about the other machinery that M&S talks about.)
The prime objection to this seems to be that there's a use/mention problem here. The validity of that complaint depends upon how you pronounce the various property names.
Let's take, for a moment, the point of view that there really is a use/mention problem above. Then we need a better definition of f in the following three cases:
The definition of f must satisfy the following properties:
There is no such f. Which means that we are stuck with f = id, and have to adjust our thinking accordingly. The thing that really scotches this is the existence of blank nodes; however, naive partial definitions for f such as "the characters (making up the URI of a resource label) as a literal, or just the literal itself" fall foul of the injectiveness requirement.
Following DanC, I assert that I'm right and leave the proof as an exercise to people with more energy and enthusiasm for details; however... as a pointer, the handling of blank nodes is where the problem lies. As DanC himself commented at the first RDF WG F2F, "if I'd had to invent names for all these [blank nodes] then those programs would never had been written," indicating how hard this problem is. Fortunately, there is now a good precedent for "we've got a vocabulary, sod the model-theory, the semantics of this is defined by the application" (see the Bag, Sequence, Alternation treatment) so there really isn't a cause for concern - we can certainly make programs grok the former form of reification.
A pint to Danbri if he can (by demonstration, that is, by producing a working definition) prove me wrong.