Full URIs in @rel -- use-case?

Greetings.

I realise this is after Last Call.  The remark may have some use  
nonetheless.

The RDFa spec, in Sect. 5.4.4, notes that @rel, @rev and @property do  
not support full URIs.  That seems awkward, and the document doesn't  
explain, as far as I could find, just _why_ full URIs are excluded  
(not that a formal spec has to explain all its rationales, of course).

This has been (implicitly) raised before [1], and the conclusion there  
seemed to be that there was no compelling reason why one would want to  
include full URIs in a @rel attribute.

If, however, I'm using XSLT to generate XHTML which includes RDFa  
annotations, then I might want to include a

    <p property='dc:creator'>A N Other</p>

in the output.  This relies on the dc namespace being declared in the  
output document.  If the dc namespace is declared in the stylesheet,  
then it will generally be copied to the output, but not in every  
case.  For a concrete example of this, consider [2] below.

That's a slightly artificial stylesheet (if the <x:element  
name='author'> were just <author>, the DC namespace would have been  
copied over), but starting from that stylesheet, it's hard to force  
the namespace declaration into the output document.

If I were permitted to generate

     <author property='http://purl.org/dc/elements/1.1/ 
creator'>Norman</author>

then I wouldn't have to worry about the namespace declarations at all.

This is not theoretical -- I've been caught by this, where a not- 
unreasonable stylesheet managed to make the namespace declaration  
visible just about everwhere in the output document except around the  
RDFa attribute!  I worked round it by artificially rewriting the  
stylesheet to ensure that the namespace-copying rules fired at a  
different time, but that introduces some maintainance cost, due to  
being obliged to use a shortcut CURIE by the RDFa spec.

I appreciate that there is some implementation difficulty (discussed  
in Sect 5.4.3) in distinguishing between 'urn:foo' (a full URI) and  
'dc:creator' (a CURIE), but I imagine that could be worked around  
either with some syntax such as property='[[http://...]]', or  
property='<http://...>', or using a pseudo-namespace 'uri', as in  
property='uri:http://...'.

Also, as I mentioned, I'm aware this is after Last Call.

Best wishes,

Norman



[1] http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2008Feb/0142.html

[2]
% cat uris.xml
<document>
   <author>Norman</author>
   <content>Foo!</content>
</document>
% cat uris.xslt
<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform"
               xmlns:dc="http://purl.org/dc/elements/1.1/"
               version='1.0'>
   <x:template match='/'>
     <x:apply-templates select='document/author'/>
   </x:template>
   <x:template match='author'>
     <x:element name='author'>
       <x:attribute name='property'>dc:creator</x:attribute>
       <x:apply-templates/>
     </x:element>
   </x:template>
</x:stylesheet>
% xsltproc uris.xslt uris.xml
<?xml version="1.0"?>
<author property="dc:creator">Norman</author>
%



-- 
Norman Gray  :  http://nxg.me.uk
Physics and Astronomy, University of Leicester

Received on Monday, 18 August 2008 18:24:04 UTC