Statings -- Much ado about nothing

A quick reading of Section 3.2.1 (entitled Reification) of the RDF Semantics
document written by Pat Hayes yields the impression that reified statements
(which I will refer to by the simpler term 'statings') are some how related
to statements in an RDF document.  Here is how it starts out:

 >> The RDF reification vocabulary consists of a class name and three property
 >> names.  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 RD
 >> document, and the three properties, when applied to such a denoted triple,
 >> have the same values as the respective components of that triple.

However, the caveats are legion:

First, its says that 'extensions' may limit the interpretation.  This means
that RDF itself places no such limitations.

Second, it refers to a triple in 'some' RDF document.  Nothing relates the
document where a stating occurs to that other document.  From an implementation
perspective, this means that there is no possible way that one could verify
that the triple referred to does not in fact exist, i.e., it is
impossible to check whether or not the triple that a stating refers to
does or does not exist.

Nothing says that the subject, predicate, and object attributes of a stating
need be filled in.  If you omit one or more of the attributes, then the
stating matches any one among an (infinite) set of triples.

However, the most problematic caveat is the fact that there are absolutely
no model theoretic semantics associated with statings:

 >> 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.

In plain English, this means that statings have no special semantics at all
in RDF.  If you omitted all reference to statings from the RDF specification,
nothing would have changed.

Here is an extract from a current thread on Abstract Classes:
 >>    Then, if I say
 >>        _:xxx rdf:type rdf:Statement .
 >>        _:xxx rdf:subject <ex:a> .
 >>        _:xxx rdf:subject <ex:d> .
 >>        _:xxx rdf:predicate <ex:b> .
 >>        _:xxx rdf:object <ex:c> .
 >>        _:xxx rdf:object "BLA" .
 >>
 >>      Is that a wrong model? a incomplet model? At least
 >>   is an incorrenct rdf:Statement, isn't it?

 >> It is certainly very peculiar and I wouldn't mind if some RDF engine
 >> were to complain about it. However, it is not in fact contradictory
 >> or 'wrong' , strictly speaking. It can be rationally satisfied by an
 >> interpretation in which I(<ex:a>) = I(<ex:d>) and I(<ex:c>) = 'BLA'.

When there is no semantics, then there is no such thing as an
incorrect set of statements.  A stating can have 10 subjects and
20 predicates.  Pat states that the above example is 'peculiar', but
there is nothing in the RDF model theory that supports such an opinion.
Furthermore, if an RDF engine were to complain about it, I would
consider that engine to be operating as an *extension* of the RDF spec,
as it has currently been written.  Hence, it would not, strictly
speaking, be an RDF engine.

So, how should we interpret Section 3.2.1 of the RDF Semantics document?
 From a semantics point of view, it is completely null; we might as
well omit it.  From a concept point of view, it gives the impression
of something being present (a relationship between statings and
statements) that is in fact not there at all.  In otherwords, the
effect is to mislead the average reader.

So, my recommendation would be to delete the entire section.

Cheers, Bob

Received on Friday, 7 February 2003 15:32:12 UTC