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:


and when somebody does this RDFa 1.0:

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

We create this triple:

      <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:

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

would generate this triple:

      <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
Received on Friday, 26 March 2010 13:35:02 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:19:46 UTC