Re: Statements/Reified statements

Sergey Melnik wrote:

> - STATEMENTS ARE RESOURCES (that implies that every statement is unique
> and equivalent to reified statement)
> - toss "quad" reification mechanism altogether

There is a distinction between a resource and the identifier of a resource.
Here is a resource:

    [s1, p1, o1]
    [s1, p2, o2]

Here is an identifier of a resource: s1

The resource is the whole node, it's URI is what we use to point to that
node from somewhere else.  Every statement on a node is merely a part of the
node.

If we say "statements are resources", then you are saying the part is the
whole.  I think that will entail some serious confusion.

On the other hand, we could identify each particular statement in the
context of the node in which it is a part.  For example:

t1    [s1, p1, o1]
t2    [s1, p2, o2]

Now we can point out particular statements with the same force that we point
out particular nodes.  Permitting things like:

t3 [s2, p3, t1]
t4 [s2, p4, o3]

If our attention is on t3 and we advance to its object, we end up on t1 in
the node identified by s1.

But what if we allow a statement identifier to stand like a resource
identifier as the subject of a node?  For instance the following:

t5 [t1, p5, o4]
t6 [t1, p6, o5]

Now if our attention is on t3 and we advance to its object where do we end
up?  It's ambiguous.  We could either be on the node consisting of {t5, t6}
or we could be on the statement itself {t1} in the node consisting of {t1,
t2}.   I hope we don't allow this ambiguity.

There is an easy solution:  Allow a statement identifier to be an object
only.  Treat a statement identifier just like a literal which also can only
be an object.

Strangely enough this solution only involves the following minimum change to
a [RDF-model]:

     Where pred is a property (member of Properties),
     sub is a resource (member of Resources), and obj
     is either a resource or a literal (member of Literals)
     or a statement (member of statements).

 [RDF-model] http://www.w3.org/TR/REC-rdf-syntax/#model

This means that we can objectively talk about any statement without reifying
it - when we do so we are talking about the particular triple itself in the
unique environment of the node in which it resides. This is useful for
placing triples in different contexts like Grahm is suggesting.  For
example:

[context1] --rdfc:asserts-->[t1]
[context1] --rdfc:asserts-->[t2]

Meaning it will be efficient to make statements show up only in the contexts
in which they belong:

     select statements where [context1, rdfc:asserts]

But if we want to talk about the ~meaning~ of a particular statement in its
context of utterance, then we have created a subject of that statement and
that is reification.   To do that we must needs create another order of
representation.   Like:

t7 [s3, rai:reifies, t1]
t8 [s3, rdf:type, statement]
t9 [s3, rdf:subject, s1]
t10 [s3, rdf:property, p1]
t11 [s3, rdf:object, o1]
t12 [s3, p6, o5]

Note that {t9, t10. t11} are not necessary to disambiguify our reference to
t1 but they don't hurt anything either.  Of course, t12 is the payload,
otherwise we have added no new information.   That is unless we would want
to refer from somewhere else to the ~meaning~ of the t1 in its environment
of s1.  If we want to refer to that meaning we should choose the object s3
and not the object t1.

Seth Russell
t13 says: "In RDF we must be painfully clear about that to which we refer."
[]  is only the humble opinion of: Seth Russell
[]  rai:reifies t13

Received on Thursday, 23 November 2000 14:08:17 UTC