W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > November 2005

RE: CURIEs vs. QNames

From: Mark Birbeck <mark.birbeck@x-port.net>
Date: Mon, 28 Nov 2005 15:14:11 -0000
Message-ID: <CCAB3D00-9140-428D-AC3E-E48767596B61@s15.mail.x-port.net>
To: "'Dan Connolly'" <connolly@w3.org>
Cc: <public-rdf-in-xhtml-tf@w3.org>


> I don't need a new standardized way to abbreviate URIs.
> There's XML base, &entities; (ugh), relative URI references, 
> and even local short-hands that I can transform via 
> XSLT/GRDDL. So whoever "we" is, count me out.

I'm not with you...are you saying that you are going to stop using in
RDF/XML, SPARQL, or N3, the one mechanism you didn't mention, (so-called)

Of course not. And I have to say, that's why this whole discussion is
starting to get rather annoying!

You see, I am proposing a *positive* solution, because my proposal
*reserves* QNames for what they really are (a way of specifying
namespace-qualified elements and attributes). For those situations where we
want to abbreviate URIs, my proposal suggests using something with a
different name (CURIEs) and making it explicit that this is what we are

This is very different to the rather mixed up approach that we have at the
moment, which glosses over what *real* QNames are, and clouds what exactly
it is that is 'lifted' from the definition of QNames. We have XPath
functions using 'QNames', XML Schema datatypes using 'QNames', alternative
XForms appearance hints and submission types using 'QNames'...RDF/XML using
'QNames'...SPARQL using 'QNames'...and so it goes on.

Except...the problem is that *none* of these languages are really using
QNames. Take SPARQL as a very good illustration (but by no means worse than
the others). In the latest WD [1] we have this example:

  PREFIX  dc: <http://purl.org/dc/elements/1.1/>
  PREFIX  : <http://example.org/book/>
  SELECT  $title
  WHERE   { :book1  dc:title  $title }

How by any stretch of the definition is 'dc:title' a QName? It's neither an
XML element nor an XML attribute. It doesn't even have the merit that XPath
selectors have in that they are being run against an XML DOM which does have
elements and attributes! In the SPARQL case we have a query that is being
run against a set of triples! So why is this abbreviation of a URI, that's
being used in a non-XML language, to run queries against non-XML data being
described in terms of QNames?:

  SPARQL provides an abbreviation mechanism for IRIs. Prefixes can be
  and a QName-like syntax [14] provides shorter forms. Prefixes may be used
  anywhere after they are declared; redefining a prefix causes the new
  definition to be used from that point in the query syntax.

There is not a single point of connection between this and QNames, so why
call it "QName-like"?

And that's where we get to the nub. Because people *want* this simplicity.
It's an incredibly convenient way of expressing a URI, and although it has
been 'misused', it has been 'misused' so much that there is significant
mindshare in what it represents--people just 'know' what you mean when you
express a URI in this more compact way, to the extent that very few people
are aware of what it really means.

And *that*, is my entire point. Let's leverage the mindshare, 'tidy up' the
current uses (i.e., keep QNames for what they were originally designed for)
and devise a new concept that "does what it says on the tin"--abbreviates



[1] http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050721/

Mark Birbeck
x-port.net Ltd.

e: Mark.Birbeck@x-port.net
t: +44 (0) 20 7689 9232
w: http://www.formsPlayer.com/

Download our XForms processor from
Received on Monday, 28 November 2005 15:14:57 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:01:46 UTC