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

Re: A rose by any other name is just as thorny...

From: Manu Sporny <msporny@digitalbazaar.com>
Date: Fri, 26 Mar 2010 09:34:33 -0400
Message-ID: <4BACB7E9.9000109@digitalbazaar.com>
To: RDFa WG <public-rdfa-wg@w3.org>
On 03/25/2010 05:02 PM, Ivan Herman wrote:
> On 2010-3-25 15:11 , Shane McCarron wrote:
> [skip]
>>
>> What's my point?  My point is this.  In a world where we permit the
>> declaration of new default vocabulary prefixes, we have no need to ever
>> determine the collection of terms that is defined by that vocabulary. 
>> We should just trust the document.  We are already doing that in every
>> other instance anyway.
>>
>> Thoughts?
> 
> I may either misunderstood you or the original proposal for the default
> prefix. But _my_ understanding has always been that if one uses the
> default vocabulary prefix than this is just used to be concatenated with
> the prefix-less term in, say, @rel. That is certainly the way I
> described in

Shane's not talking about the "default-prefix" concept, at least, not
directly. Shane is raising a very interesting point about the "default
vocabulary" and how we might resolve keywords like prev/next.

Namely, how do we mesh features like rel="prev" and rel="next" into the
RDFa Core document without enforcing XHTML+RDFa keywords into RDFa Core?
Remember, SVG, ODF, XHTML and HTML are all going to share the RDFa Core
document - putting XHTML specific stuff into RDFa Core is far from ideal.

We have been talking about a default vocabulary document for a couple of
weeks now, the idea is that the default vocabulary document would be an
RDFa Profile, and would be used if there is no mention of @profile in
the current RDFa Processor context.

So, at the moment, we could say that xhv is the URL for our default
vocabulary document in RDFa 1.0:

http://www.w3.org/1999/xhtml/vocab#

and when somebody does this RDFa 1.0:

<body>
   <a rel="next" href="chapter3.html">Chapter 3</a>
</body>

We create this triple:

<>
   <http://www.w3.org/1999/xhtml/vocab#next>
      <chapter3.html> .

That's hardcoded into all the RDFa Processors right now. Shane is
saying, let's not hard-code it and let's not require de-referencing the
default RDFa Vocabulary Document (http://www.w3.org/1999/xhtml/vocab#).
Like Toby's line of argumentation, a processor doesn't need to
dereference the default RDFa Vocabulary document to generate a triple.
For example, in RDFa 1.1 - if there is no active @profile, and there is
no active @vocab, this markup:

<body>
   <a rel="foo" href="bar.html">Baz</a>
</body>

would generate this triple:

<>
   <http://www.w3.org/1999/xhtml/vocab#foo>
      <bar.html> .

Yes, "foo" isn't defined in the XHTML vocabulary, but who cares? It's
not going to do anything if generated... it's a useless triple.
Historically, we've shyed away from this behavior in the name of not
generating junk triples. It's the reason we put all of the reserved
words in a normative section in the RDFa 1.1 spec.

****
So, Shane is saying - let's relax this requirement and not specify
reserved keywords in the RDFa specification. Let's just specify a
default vocabulary URL.
****

If we do that, we simplify the spec and don't require dereferencing of
the default vocabulary document. The downside is that we run the risk of
generating junk triples. The bottom line, though - is that there is
still a follow-your-nose story. The RDFa processor should trust that
what the author put in the document is what they meant.

> http://www.w3.org/2010/02/rdfa/drafts/2010/ED-vocab-20100326/
> 
> There is no intention of dereferencing that URI.

Yes, for @vocab... but we're not talking only about @vocab. We're
talking about the interplay between "The Default RDFa Vocabulary" (which
is an RDFa Profile), @profile and @vocab. So, something like this:

   <a rel="foo" href="bar.html">Baz</a>

would follow these rules in Shane's "rose" proposal:

1. If there is a @vocab active in the current RDFa Processor context,
   generate a triple with @vocab + foo as the predicate.
2. If there is no @vocab active, but there is a @profile active check:
   2.1 If "foo" is a keyword defined by @profile, and if so
       use that URL.
   2.2 If "foo" is not a keyword defined by @profile, generate a
       triple with xhv + foo as the predicate.
3. If there is no @vocab or @profile active in the current RDFa
   Processor context, generate a triple with xhv + foo as the predicate.

At least, I think that's what Shane is saying...

-- manu

-- 
Manu Sporny (skype: msporny, twitter: manusporny)
President/CEO - Digital Bazaar, Inc.
blog: PaySwarming Goes Open Source
http://blog.digitalbazaar.com/2010/02/01/bitmunk-payswarming/
Received on Friday, 26 March 2010 13:35:02 GMT

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