Re: Interpretation of RDF reification

From: Lars Marius Garshol <larsga@ontopia.net>
Subject: Re: Interpretation of RDF reification
Date: Thu, 23 Mar 2006 09:58:33 +0100


> * Peter F. Patel-Schneider
> >
> > Well, RDF Semantics *is* the definitive word on what RDF means.  The
> > section on reification includes a fair bit of "hope" for the  
> > future, but if
> > you ignore that, then you are left with ... nothing beyond the  
> > standard
> > meaning of the four triples above.
> 
> I didn't ignore that section, I just failed to understand it. It  
> sounds to me like RDF Semantics does say something about what this  
> construct means. What that might be eludes me completely, though,  
> unless it is what Brian McBride wrote.


>From http://www.w3.org/TR/rdf-mt/#Reif, with my comments added in lines
starting with PFPS:


******************************

3.3.1 Reification

RDF reification vocabulary
rdf:Statement  rdf:subject rdf:predicate rdf:object

PFPS:  The bit above does actually have some impact, but only to put the
PFPS:  four URIrefs into the RDF vocabulary.

Semantic extensions MAY limit the interpretation of these so that a triple
of the form 

aaa rdf:type rdf:Statement .

is true in I just when I(aaa) is a token of an RDF triple in some RDF
document, and the three properties, when applied to such a denoted triple,
have the same values as the respective components of that triple. 

PFPS:  As indicated in its text, the portion just above is only the case in
PFPS:  some unspecified, possible, future extension of RDF.

This may be illustrated by considering the following two RDF graphs, the
first of which consists of a single triple. 

<ex:a> <ex:b> <ex:c> .

and

_:xxx rdf:type rdf:Statement .
_:xxx rdf:subject <ex:a> .
_:xxx rdf:predicate <ex:b> .
_:xxx rdf:object <ex:c> .

The second graph is called a reification of the triple in the first graph,
and the node which is intended to refer to the first triple - the blank
node in the second graph - is called, rather confusingly, a reified
triple. (This can be a blank node or a URI reference.) 

PFPS:  The section above is just some RDF syntax, and introduces the notion
PFPS:  of when an RDF node is a reification of an RDF triple.

In the intended interpretation of the reification vocabulary, the second
graph would be made true in an interpretation I by interpreting the reified
triple to refer to a token of the triple in the first graph in some
concrete RDF document, considering that token to be valid RDF syntax, and
then using I to interpret the syntactic triple which the token
instantiates, so that the subject, predicate and object of that triple are
interpreted in the same way in the reification as in the triple described
by the reification. 

PFPS:  Again, this "intended interpretation" is in some unspecified,
PFPS:  possible, future extension of RDF.

This could be stated formally as follows: <x,y> is in IEXT(I(rdf:subject))
just when x is a token of an RDF triple of the form 

aaa bbb ccc .

and y is I(aaa); similarly for predicate and object. Notice that the value
of the rdf:subject property is not the subject URI reference itself but its
interpretation, and so this condition involves a two-stage interpretation
process: one has to interpret the reified node - the subject of the triples
in the reification - to refer to another triple, then treat that triple as
RDF syntax and apply the interpretation mapping again to get to the
referent of its subject. This requires triple tokens to exist as
first-class entities in the universe IR of an interpretation. In sum: the
meaning of the reification is that a document exists containing a triple
token which means whatever the first graph means.Note that this way of
understanding the reification vocabulary does not interpret reification as
a form of quotation. Rather, the reification describes the relationship
between a token of a triple and the resources that triple refers to. The
reification can be read intuitively as saying "'this piece of RDF talks
about these things" rather than "this piece of RDF has this form". 

PFPS:  This is simply a restatement and further expanation of how this
PFPS:  unspecified, possible, future extension might work.

The semantic extension described here requires the reified triple that the
reification describes - I(_:xxx) in the above example - to be a particular
token or instance of a triple in a (real or notional) RDF document, rather
than an 'abstract' triple considered as a grammatical form. There could be
several such entities which have the same subject, predicate and object
properties. Although a graph is defined as a set of triples, several such
tokens with the same triple structure might occur in different
documents. Thus, it would be meaningful to claim that the blank node in the
second graph above does not refer to the triple in the first graph, but to
some other triple with the same structure. This particular interpretation
of reification was chosen on the basis of use cases where properties such
as dates of composition or provenance information have been applied to the
reified triple, which are meaningful only when thought of as referring to a
particular instance or token of a triple. 

PFPS:  More explanation of how this unspecified, possible, future extension
PFPS:  might work.

Although RDF applications may use reification to refer to triple tokens in
RDF documents, the connection between the document and its reification must
be maintained by some means external to the RDF graph syntax. (In the
RDF/XML syntax described in RDF/XML Syntax Specification (Revised)
[RDF-SYNTAX], the rdf:ID attribute can be used in the description of a
triple to create a reification of that triple in which the reified triple
is a URI constructed from the baseURI of the XML document and the value of
rdf:ID as a fragment.) Since an assertion of a reification of a triple does
not implicitly assert the triple itself, this means that there are no
entailment relationships which hold between a triple and a reification of
it. Thus the reification vocabulary has no effective semantic constraints
on it, other than those that apply to an rdf-interpretation. 

PFPS:  A warning that all the previous stuff is indeed *not* part of RDF.

A reification of a triple does not entail the triple, and is not entailed
by it. (The reification only says that the triple token exists and what it
is about, not that it is true. The second non-entailment is a consequence
of the fact that asserting a triple does not automatically assert that any
triple tokens exist in the universe being described by the triple. For
example, the triple might be part of an ontology describing animals, which
could be satisfied by an interpretation in which the universe contained
only animals, and in which a reification of it was therefore false.) 

PFPS:  More warning about what reification does not do.

Since the relation between triples and reifications of triples in any RDF
graph or graphs need not be one-to-one, asserting a property about some
entity described by a reification need not entail that the same property
holds of another such entity, even if it has the same components. For
example, 

_:xxx rdf:type rdf:Statement .
_:xxx rdf:subject <ex:subject> .
_:xxx rdf:predicate <ex:predicate> .
_:xxx rdf:object <ex:object> .
_:yyy rdf:type rdf:Statement .
_:yyy rdf:subject <ex:subject> .
_:yyy rdf:predicate <ex:predicate> .
_:yyy rdf:object <ex:object> .
_:xxx <ex:property> <ex:foo> .

does not entail

_:yyy <ex:property> <ex:foo> .

PFPS:  More warning about what reification does not do.

******************************

So what does RDF reification get you?  Actually, ... absolutely nothing!


peter

Received on Thursday, 23 March 2006 13:45:32 UTC