Re: Predicates and Arcs vs Triples RE: use/mention and reification: rdf:predicate/subject/object

Jonathan Borden
The Open Healthcare Group
http://www.openhealth.org

----- Original Message -----
Graham Klyne wrote:

> I'll hazard an opinion that what you describe as genuine reification is
> handled in RDF by literals, without any built-in interpretation.  Thus, to
> distinguish between:
>
>     John says "The sky is blue"
> and
>     John says-that (the sky is blue)
>
> I think RDF aims to handle the latter, but not the former.  In the latter
> case, I think it is an RDF expression associated with John's utterance
that
> can be interpreted, not the utterance itself.  The utterance must be
> expressed (interpreted?) as RDF before it can be "understood" by an RDF
> processor.
>

To briefly summarize at least one killer problem with the current RDF
approach:

what we would _like_ to be able to say is:

<ex:says rdf:about="http://example.org/people#John">
        <ex:color rdf:about="http://example.org/things#sky"
                        rdf:resource="http://example.org/colors#blue"/>
</ex:says>

(really we should be able to use qnames all around to say:

<ex:says
    qn:about="people:John">
    <ex:color
            qn:about="things:sky"
            qn:ref="colors:blue"/>
</ex:says>

but that's a different issue)

but as statements are explicitly stated to be _facts_ per RDF M&S 1.0 we
can't say this without asserting that (color sky blue) is true, rather what
is needed is:

<ex:says rdf:about="http://example.org/people#John">
        <rdfStatement>
                <rdf:predicate
rdf:resource="http://example.org/example#color"/>
                <rdf:subject
rdf:resource="http://example.org/things#sky"/>
                <rdf:object
rdf:resource="http://example.org/colors#blue"/>
        </rdf:Statement>
</ex:says>

Ok.

Now suppose I enter a statement to the effect that "everything John says is
true".

The model _does not_ contain a mechanism to unreify the statement _as a
statement_ i.e. still does not contain the statement:

[:color :sky :blue]

so this property that statements are facts is not transitive i.e. facts are
not necessarily statements.

What then is the purpose of asserting that _statements are facts_ besides
requiring this cumbersone reification mechanism?

Since deciding whether a statement is _true_ must be computed regardless, it
is far better (IMHO) to use:

1) context/spaces
2) namespaces

as 'coloring' mechanisms to label semantically meaningful subgraphs (e.g.
asserting an entire context true, and assigning semantics to terms in the
rdf: and logic: etc. namespaces.

-Jonathan

Received on Friday, 1 June 2001 08:47:31 UTC