Value Space of a CURIE

During the call today, we briefly discussed the topic of CURIE value 
space.  As most of you know, I have become increasingly of the opinion 
that while in some contexts CURIEs are "Compact URIs", in our primary 
use (values on attributes in XHTML 1.1 + RDFa / XHTML 2) I think CURIEs 
are really more about "Scoped Names". 

I attempted to argue today that the "value space" for the CURIE data 
type is the literal original CURIE from the document source (e.g., if 
@role="foo:bar" the value for that attribute in the XML DOM would be 
"foo:bar").  Mark and Steven argued that the value should really be 
resulting URI (e.g., if foo maps to http://www.example.com/something# 
then the value for that attribute would be 
"http://www.example.com/something#bar").

Given that we currently permit the use of @xmlns as a mechanism for 
defining prefix mappings, and given that the XML Namespace specification 
permits the definition or restatement of prefixes anywhere in the 
document, it is likely that the Steven/Mark position makes more sense.  
However, this also means that we may need to give guidance to 
application developers or define how CURIEs are made available in the 
DOM so that it is possible for people to write portable applications. 

There is a third viewpoint that we should somehow maintain the prefix 
space and reference space separately, ala QNames in the DOM.  I do not 
think this would help with the development of portable scripts, since 
the set of equivalent prefix + reference combinations is effectively 
infinite (foo = 'h", reference is "ttp://www.example.com/something#bar" 
is a perfectly legal CURIE).  However, I could see our permitting this 
type of access through CURIE extensions to the DOM, should we decide to 
define such extensions.

Note that, as things stand right now, a CURIE used in a document like 
XHTML+RDFa will NOT be expanded in the DOM.  If you are writing portable 
scripts today, you will need to do that expansion yourself.  I think 
that, given Steven and Mark's arguments, you MUST do this expansion if 
you are going to attempt to do anything with CURIEs in a portable 
script.  If, on the other hand, you are just writing a script for your 
own content, you could easily operate on the literal values, since you 
know what the prefixes and references mean.

-- 
Shane P. McCarron                          Phone: +1 763 786-8160 x120
Managing Director                            Fax: +1 763 786-8180
ApTest Minnesota                            Inet: shane@aptest.com

Received on Wednesday, 9 January 2008 16:16:50 UTC