- From: Shane McCarron <shane@aptest.com>
- Date: Fri, 26 Mar 2010 09:21:14 -0500
- To: Sebastian Heath <sebastian.heath@gmail.com>
- CC: RDFa WG <public-rdfa-wg@w3.org>
- Message-ID: <4BACC2DA.4040204@aptest.com>
Sebastian Heath wrote: > Junk triples concern me. I like that rel="foo" is ignored right now. > And I see room for odd decisions: > > In a document with no @profile and no @vocab: > > <a rel="foo" href="boo">I love foo.</a> > > @about defaults to uri of current document. So subject of the triple is clear. > > Predicate would be xhv:foo > > Object would be <full uri of document>/boo . > > Or do browsers and rdfa parsers do different things with a relative > url, making the object xhv:boo ? > Great question! We were discussing this just yesterday. First, we do not alter the processing of @href nor @src, so that would always be a relative URI. How it is handled in @about and @resource is more problematic (since these are typically a URI, but *could* be a CURIE). It is also a problem, but perhaps less of one, in @property, @rel, @rev, @datatype, and @typeof. My current thinking is that the attribute datatype for @property, @rel, @rev, @datatype, and @typeof should be 'absURIorCURIE' or 'absURIorCURIEs' as appropriate. In other words, the content of the attribute can be an absolute URI or a CURIE. Evaluation of such a datatype would be something like 'if it doesn't start with a prefix, it must be a keyword or a term in the default vocabulary. If it starts with a defined prefix, then it is a prefixed CURIE. Otherwise it is an absolute URI' In this way there is no possibility of ambiguous evaluation (e.g., is this a relative URI or is it a term in the default vocabulary?). The datatype for @about and @resource needs to be URIorCURIE. Since URI can be relative, that means if you want to use a term from the default vocabulary in this context, you must reference it as a SafeCURIE (e.g., [foo]). Make sense? > -Sebastian > > > > On Fri, Mar 26, 2010 at 9:34 AM, Manu Sporny <msporny@digitalbazaar.com> wrote: > >> 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/ >> >> >> > > -- Shane P. McCarron Phone: +1 763 786-8160 x120 Managing Director Fax: +1 763 786-8180 ApTest Minnesota Inet: shane@aptest.com
Received on Friday, 26 March 2010 14:21:54 UTC