Re: New RDDL draft

Dan Connolly wrote:

>I didn't grok this when I initiall scanned it.
>Tonight I read it slowly and I still don't grok;
>hence some clarifying questions...
>  
>
Below is a simple example.

Suppose an XML namespace "http://example.org/foo#"

>>
>>Assume a RDDL fragment (from Tim's most recent draft):
>>
>><a rddl:nature="http://www.rddl.org/"
>>   rddl:purpose="http://www.rddl.org/purposes#directory"
>>   href="http://www.rddl.org/natures">http://www.rddl.org/natures</a>
>>    
>>
This namespace URIref is resolved to the URI: http://example.org/foo 
which is the base URI for the RDDL document:

<html xmlns:rddl="http://www.rddl.org/"
          ...>
    <head>
       <title>http://example.org/foo# namespace document</title>
    </head>
    <body>
          <p>A directory of natures for the namespace 
http://example.org/foo# is located
            <a  id="natures"
                rddl:nature="http://www.rddl.org/"
                rddl:purpose="http://www.rddl.org/purposes#directory"
                href="http://www.example.org/foo/natures.rddl"
            >here</a>. And
            <a
                rddl:nature="http://www.w3.org/1999/XSL/Transform"
                rddl:purpose="http://example.org/bar"
                href="http://www.example.org/foo/foo2bar.xslt"
            >here</a> is an XSLT that converts "foo" to "bar".
          </p>
    </body>

>>1. The subject of an RDF statement is derived in the following fashion:
>>
>>2. If the there is an _id_ attribute e.g. <a id="foo" ...> this should 
>>be the fragment identifier of the RDF subject URI.
>>    
>>
i.e. the above <a id="natures"> has  an RDF  subject: 
http://www.example.org/foo#natures

>>3. The URI part of the RDF subject URI should be the current base URI 
>>(absolute).
>>    
>>
>
>current... you're starting to lose me there.
>  
>
Just base URI, now let's look at the subject for the second statement 
(no id attribute)

Well it's supposed to be the namespace name -- that seems to make the 
most sense, that the RDF subject of things said in a namespace document 
would be the namespace name, but there is no way to "access" the 
namespace name from the RDDL document, the closest we can get is the 
_base URI_ e.g.

1) <http://example.org/foo> <http://example.org/bar> 
<http://www.example.org/foo/foo2bar.xslt> .

Here I am suggesting that the *rddl:purpose* becomes the *RDF 
predicate*. Whatever is the rddl:purpose is the RDF predicate, and 
whatever is the RDDL href is the RDF object -- this is all according to 
original XLink2RDF W3C Note by Ron Daniel, and according to the original 
RDDL XLink version.
 From this we also get a second triple (corresponding to the rddl:nature):

2) <http://www.example.org/foo/foo2bar.xslt> rdf:type 
<http://www.w3.org/1999/XSL/Transform> .

You see the problem is that for the statement 1) the subject is 
<http://example.org/foo> not the namespace name 
<http://example.org/foo#> because both URIs resolve to the same _base 
URI_ (unless the base URI is made explicit in the RDDL document ??) i.e. 
should we mandate the namespace name be specified as:

<html xml:base="http://example.org/foo#">

?

>>4. The predicate is the value of the _rddl:purpose_ attribute.
>>5. The object is the value of the _href_ attribute.
>>6. If a rddl:nature attribute is present, this generates a second triple 
>>of the form:
>>[value of href] rdf:type [value of rddl:nature]
>>
>>This generally works but stumbles when a namespace name is not simply an 
>>absolute URI, rather contains a '#' either an ending '#' or a fragment 
>>identifier part.
>>    
>>
>
>Which of the things above corresponds to the namespace name here?
>  
>
That is the problem Dan, there is no specification for where the 
namespace name is to be embedded in the RDDL document. I am pointing 
this out and explaining that the base URI (not explicitly specified) 
doesn't work because the trailing "#" and fragid are stripped.

>>That is to say, suppose a namespace name of the typical RDF type e.g. 
>><http://example.com/rdf#>.
>>    
>>
>
>OK, now I'm totally lost. Where do I plug that namespace
>name into the example framework above?
>  
>
Does that help? I am saying that there is a currently a potential 
problem because a piece of software has no place to _get_ the namespace 
name. Once it is obtained, the namespace name is the *subject* of any 
RDF statements as long as the <a> as no _id_ atttribute, and when there 
is an _id_ attribute, that is used as the fragid of the subject (and the 
namespace name provides the URI part of the RDF subject).

Jonathan

>
>  
>
>>The problem is that a user agent will strip off the ending '#' when 
>>dereferencing the URIref and the base URI will simply be 
>><http://example.com/rdf>. How do we tell the software performing the 
>>RDDL -> RDF transformation that the intended namespace is actually 
>><http://example.org/rdf#> as opposed to <http://example.org/rdf> when 
>>the RDDL document itself does not contain this information?
>>    
>>
>
>Sorry, I need more clues.
>
>Could you flesh out more of the details and use a more
>concrete example please?
>
>  
>
>> Do we need a 
>>specific attribute e.g. rddl:namespace="http://example.com/rdf#" which 
>>states the one and only namespace described by the specific RDDL 
>>document (you see the problem that each RDDL document would only be able 
>>to describe a single namespace in this case).
>>
>>Am I missing a straightforward way to tell the software what the correct 
>>intended subject of the RDF statement is without embedding this in the 
>>document itself?
>>
>>Jonathan
>>    
>>

Received on Wednesday, 1 October 2003 18:07:40 UTC