Do CURIEs represent a (namespace, localname) pair?

In a brief local discussion yesterday a point was raised to which
I did not have a ready answer.  I expect it has been brought up
previously but I'm too busy at the moment to search for it, sorry.

Are CURIEs intended to define a (namespace, localname) pair
or is the CURIE prefix only a syntactic placeholder for part of the
full URI string?  That is, are CURIEs intended to be used in
places where qualified names are now used or are they only
a way to get a particular kind of macro character expansion
similar to (or more specifically, a subset of) XML entities?

Mark's CURIE proposal [1] suggests in section 1 that some uses
of QNames were not intended to create namespace qualified
_element_ names,  But it's not explicit whether the replacement
use of CURIEs is still semantically a namespace qualified name.

[1] http://www.w3.org/2001/sw/BestPractices/HTML/2005-10-27-CURIE

For some applications, the semantics of an explicit namespace
object is important.  Those applications may be exactly the ones
that also then care about the syntax of localname symbols; i.e.
the local names may have to conform to some pattern as in
common programming language symbol names and in XML itself.

I'm not convinced that the pair semantics matters for RDF
purposes -- an RDF namespace only really becomes visible
as a first-class object in an RDF graph when there are
rdfs:isDefinedBy relationships present.  (This is personal
opinion, though supported by current usage; the specification
[2] is vague on the question of how values of rdfs:isDefinedBy
may relate to [XML] namespace names.)

Otherwise, the RDF Concepts and Abstract Syntax spec [3]
only treats namespace names as syntactic entities.

[2] http://www.w3.org/TR/rdf-schema/#ch_isdefinedby
[3] http://www.w3.org/TR/rdf-concepts/

Some applications that use RDF may find it convenient that
the XML restrictions on localnames match frequent programming
language conventions for variable names.  I don't personally
feel very strongly about this (if I have reason to name a variable
in my source code to correspond to something in an RDF
schema, I don't mind having to do my own name mangling.)
Some people apparently do feel strongly that it is a feature
of RDF/XML's use of QNames that the localname is acceptable
as a variable symbol in many common programming languages.

If a CURIE does not define a (namespace, localname) pair
then it is not generally true that 

  "CURIEs can be used in exactly the same way that QNames are,
   with the modification that the format of the strings  before and
   after the colon are looser."

   -- [1, Section 2].

It may be that the CURIE datatype is *only* syntax but any
specifications that adopt CURIEs could if they choose define
semantics for the part of the URI represented by the prefix.
Such a case is implied by saying that the empty prefix
(":#start") "falls out as an abbreviation for the default XML
namespace." [1, section 2.1].

Received on Wednesday, 26 April 2006 18:01:22 UTC