W3C home > Mailing lists > Public > public-rdfa-wg@w3.org > March 2010

Re: attempting to merge the 'vocab' and 'profile' documents

From: Ben Adida <ben@adida.net>
Date: Mon, 08 Mar 2010 15:33:40 -0800
Message-ID: <4B958954.7080401@adida.net>
To: Shane McCarron <shane@aptest.com>
CC: Ivan Herman <ivan@w3.org>, Mark Birbeck <mark.birbeck@webbackplane.com>, W3C RDFa WG <public-rdfa-wg@w3.org>
On 3/8/10 2:53 PM, Shane McCarron wrote:
> Flame.  Seriously.

Wait, I think we had a communication error, almost certainly my fault.

I'm not arguing against vocab bundles. I'm arguing against a vocab 
bundle defining a *prefix*.

> This isn't a feature hundreds of people will use to create vocabs...
> but millions will use those vocabs. And the easier it is the better.

Totally agreed.

> Manu and I proposed this years ago. Its important to be able to
> define  collections like this to ease the burden on authors.

Totally agreed.

Here's some RDFa 1.0:

=========
  <div about="sunset.jpg" xmlns:cc="http://creativecommons.org/ns#" 
xmlns:dc="http://purl.org/dc/terms/">
     <span property="dc:title">Sunset</span>
     licensed under a <a rel="license" 
href="http://creativecommons.org/licenses/by/3.0/">CC license</a>.
     Please provide attribution to <span 
propery="cc:attributionName">Ben Adida</span>.
  </div>
=========

Now, CC wants to make that easier for authors, so here's the way I think 
we all agree is definitely good (modulo the attribute name):

=========
  <div about="sunset.jpg" profile="http://creativecommons.org/vocab/">
     <span property="title">Sunset</span>
     licensed under a <a rel="license" 
href="http://creativecommons.org/licenses/by/3.0/">CC license</a>.
     Please provide attribution to <span propery="attributionName">Ben 
Adida</span>.
  </div>
=========

Effectively, just adding @profile lets the author easily use 'title' and 
'attributionName' as if they were keywords, just like 'license'. The 
@profile could even rename these, of course, so it's "attributeTo" 
instead of "attributionName", for example.

Now, here's some alternative markup that is enabled by both proposals as 
they stand:

=========
  <div about="sunset.jpg" profile="http://creativecommons.org/vocab/">
     <span property="dc:title">Sunset</span>
     licensed under a <a rel="license" 
href="http://creativecommons.org/licenses/by/3.0/">CC license</a>.
     Please provide attribution to <span 
propery="cc:attributionName">Ben Adida</span>.
  </div>
=========

Notice how the CC vocab is effectively defining the "dc" and "cc" 
prefixes. I think that's (a) not very useful and (b) confusing to authors.

So, maybe you disagree, but I don't think I'm cutting out the really 
good use case, right?

And as I was writing this out, I just realized that, if we *do* let the 
vocab/profile define prefixes, then we have a big backwards 
compatibility problem:

=========
  <div xmlns:cc="FOO">
    <div profile="BAR">
       <span property="cc:attributionName">...</span>
    </div>
  </div>
=========

How does one resolve the 'cc' prefix here?

If we want to allow @profile to define prefixes, then we have to go one 
of the following routes:

(1) RDFa 1.0 and RDFa 1.1 parsers may generate *different* triples for 
the same @property, since RDFa 1.0 will ignore @profile.

(2) RDFa 1.1 must let @xmlns override @profile, even if @xmlns is higher 
up in the DOM tree. Significantly hurts cut-and-paste compatibility when 
@profile is used.

Neither (1) nor (2) seems like a good idea, and I can't think of an 
alternative route if @profile can define prefixes.

-Ben
Received on Monday, 8 March 2010 23:34:10 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 04:55:06 GMT