Another RDDL/RDF proposal

Tim Bray wrote:
>...
> 
> The notion that you limit a RDDL to apply to one and only one namespace 
> seems like a totally artificial limitation that buys nothing and 
> eliminates interesting possibilities.

In the end, this is easy to achieve if the namespace is the referent of 
the rdf:about.

>...
> Aahhh... the RDF tax strikes again.  I want to do something that is 
> obvious and straightforward and implicit in the resource/representation 
> relationship, and using RDF is going to cost me oceans of arcane totally 
> human-opaque syntax.

Every level of abstraction is going to have _some_ tax unless you do it 
totally out-of-line. It's one thing when the RDF tax is just extra 
syntax but in this case we're talking about being explicit in order to 
_get the benefits_ of RDF.

>...
> A machine is entirely capable of detecting the condition that some 
> assertions are contained in the representation of a resource and 
> inferring the fact that the assertions are related to the resource.  It 
> should not be necessary to duplicate the assertion of this 
> machine-detectable relationship. -Tim

Machines are not intelligent. They detect things only when they are told 
to. I am suggesting to use standard RDF technique so that the programmer 
does not have to hack around the natural behaviour of the RDF processor.

Please consider this alternative, which I think has the following virtues:

  * fewer elements in RDF namespace

  * more explicit about what resources are being related,

  * no contradiction problems (scope of nature/purpose declarations are 
clear and correct)

  * naturally permits multiple namespace declarations from the same RDDL

  * permits these multiple declarations to share as much or as little as 
they like.

  * naturally permits the addition of non-resource annotations on the 
namespace (like who owns it, what its usage policies are, etc.)

  * naturally permits the same markup to live in documents that are NOT 
served from namespace URIs

The only down-side I see is that it probably forces you to move the 
hacky HTML paragraph-elements further away from the RDF, because of 
RDF's problem with mixed content. :(

=====


<html   xmlns:rddl="http://www.rddl.org/"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
<head>
<title>RDDL Description for http://example.org/L</title></head>
<body>
<h1>RDDL Description for http://example.org/L</h1>

<p>This document describes the "L" namespace and provides links to 
related resources</p>

<!-- FIRST namespace -->
<rddl:Namespace rdf:about="http://www.prescod.net/sometargetns#">
    <rddl:title>My namespace</rddl:title>
    <dc:author>Paul Prescod</dc:author>
    <rddl:related>
        <rddl:Resource rdf:ID="dtd" rddl:title="DTD">
           <rddl:prose>A DTD for the L language.</rddl:prose>
           <rddl:href rdf:resource="http://example.org/schemas/L.dtd"/>
           <rddl:nature
rdf:resource="http://www.isi.edu/in-notes/iana/assignments/media-types/application/xml-dtd"/>
           <rddl:purpose
  rdf:resource="http://www.rddl.org/purposes#validation"/>
        </rddl:Resource>
    </rddl:related>

    <rddl:related>
        <rddl:Resource rdf:ID="relaxng" rddl:title="Relax NG">
            <rddl:prose>A Relax NG Schema for the L
  language.</rddl:prose>
           <rddl:href rdf:resource="http://example.org/schemas/L.rng"/>
           <rddl:nature rdf:resource="http://relaxng.org/ns/structure/1.0"/>
           <rddl:purpose
                 rdf:resource="http://www.rddl.org/purposes#validation"/>
        </rddl:Resource>
     </rddl:related>

     <rddl:related>
       <rddl:Resource rdf:ID="xhtml" rddl:title="User Documentation">
            <rddl:prose>Reference documentation for L, in 
XHTML.</rddl:prose>
           <rddl:href
  rdf:resource="http://example.org/schemas/L.html"/>
           <rddl:nature rdf:resource="http://www.w3.org/1999/xhtml"/>
           <rddl:purpose 
rdf:resource="http://www.rddl.org/purposes#reference"/>
        </rddl:Resource>
    </rddl:related>

</rddl:namespace>

  <!-- SECOND namespace -->

<rddl:namespace rdf:about="http:/.../second-namespace">
    <rddl:related rdf:resource="#dtd"/>
    <rddl:related rdf:resource="#relaxng"/>
    <rddl:related>
       <rddl:Resource rddl:title="User Documentation"> 
<rddl:prose>Reference documentation for L2, in XHTML.</rddl:prose>
           <rddl:href rdf:resource="http://example.org/schemas/L.html"/>
               <rddl:nature rdf:resource="http://www.w3.org/1999/xhtml"/>
               <rddl:purpose 
rdf:resource="http://www.rddl.org/purposes#reference"/>
       </rddl:Resource>
</rddl:namespace>
  </html>

Repeating rddl:related is kind of annoying (though your version did that 
also). Why can't the RDF grammar just allow multiple descriptions per 
property. Are we afraid that they would be interpreted as a formal 
collection or something?

Also, a purist might argue that the whole thing should be wrapped in 
rdf:RDF, but I would say that rdf:about should be a sufficient RDF 
processing trigger across all RDF embedded in other vocabularies.

Add those to the list of things to fix in RDF/XML.

  Paul Prescod

Received on Monday, 11 November 2002 22:55:53 UTC