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

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