Re: minor RDF tax was: Re: RDDL/RDF

Tim Bray wrote:

> Jonathan Borden wrote:
>
> > whoops, we forgot the related resource, let's call this "rddl:related":
>
> Er JB, for the noobs, how is this RDF?  I see no RDF namespace anywhere?

Short answer: It's RDF in the same way that "<p>this is a paragraph</p>" is
HTML :-)

Longer answer:

The above is, in RDF syntax terms, a "typed node element". RDF allows alot
(in many cases too much) flexibility in how the XML determines the graph
(set of triples). In particular the pattern:

<rddl:resource ID="foo">
    <rddl:nature resource="http://example.org/nature"/>
    <rddl:purpose resource="http://example.org/purpose"/>
    <rddl:related resource="http://example.org/L.dtd"/>
    <rddl:prose>
        <p>A description of the "L" language</p>
    </rddl:prose>
</rddl:resource>

uses unqualified attributes: ID and resource, but any namespace qualified
element may be interpreted as a "Typed Node" in which case the URI
equivalent of the element name is the rdf:type of the described RDF
resource.

see: http://www.w3.org/TR/rdf-syntax-grammar/#section-Syntax-typed-nodes

also I forgot that the <rddl:prose> property needs an
rdf:parseType="Literal" directive to indicate that the contents are literal
XML.

<rddl:resource rdf:ID="foo">
    <rddl:nature rdf:resource="http://example.org/nature"/>
    <rddl:purpose rdf:resource="http://example.org/purpose"/>
    <rddl:related rdf:resource="http://example.org/L.dtd"/>
    <rddl:prose rdf:parseType="Literal">
            <p>A description of the "L" language</p>
    </rddl:prose>
</rddl:resource>

is interpreted in an identical fashion to:

<rdf:Description rdf:ID="foo">
    <rdf:type rdf:resource="http://www.rddl.org/RDDL2#resource"/>
    <rddl:nature rdf:resource="http://example.org/nature"/>
    <rddl:purpose rdf:resource="http://example.org/purpose"/>
    <rddl:related rdf:resource="http://example.org/L.dtd"/>
    <rddl:prose rdf:parseType="Literal">
            <p>A description of the 'L' language</p>
    </rddl:prose>
</rddl:resource>

and generates the following triples:

<#foo> rdf:type rddl:resource .
<#foo> rddl:nature <http://example.org/nature> .
<#foo> rddl:nature <http://example.org/purpose> .
<#foo> rddl:nature <http://example.org/L.dtd> .
<#foo> rddl:prose "<p>A description of the 'L' language>"^^rdf:XMLLiteral .

So, the bottom line is that carefully crafted XML *can be* interpreted as
RDF. If we follow the RDF Syntax WD's "SHOULD NOT" admonishment about using
the unqualified attributes "ID, about and resource" then we SHOULD use
rdf:ID, rdf:about and rdf:resource.

This leaves out the issue for RDDL that we have either an implied or
explicit <rdf:RDF> around all the <rddl:resource>s which would tell an RDF
parser that the document is a bunch of typed nodes.

Jonathan

Received on Sunday, 17 November 2002 14:49:22 UTC