Re: [RDFa] A summary of @rel everywhere

THANKS!!!! I needed that:-)

Ivan

Ben Adida wrote:
> 
> Hi all,
> 
> It appeared, at the last telecon, that the state of @rel in RDFa is not
> well understood. That's not surprising, because it turns out we haven't
> fully explored all the edge cases!
> 
> I've tried to resolve the edge cases, and, to make things simple, I'm
> going to present the resulting parsing rules, and explain *afterwards*
> what the possible contention might be:
> 
> RULES
> 
> - @rel can appear on any element, where it indicates the predicate of a
> triple.
> 
> - All values are considered, with rel="foo" interpreted as a local
> concept, except for special reserved words rel="next" which means
> rel="xhtml:next".
> 
> - @rel can take multiple space-separated values, in which case the rules
> apply for each such value in the same way.
> 
> - when @rel appears with an @href, @href indicates the object of the triple.
> 
> - when @rel appears WITHOUT an @href, the object of the triple is a
> bnode associated with that element, except if the element has an @id,
> which makes the subject the URI of that ID. (Note how @about does not
> play a role here in object resolution... since it is the subject! That's
> the point of contention we address later.)
> 
> - all contained statements default to having as subject the object of
> the @rel triple, whether it is a bnode, a URI indicated by @id, or the
> URI of the @href if there is one.
> 
> - @class (or whatever it ends up being) and other attributes that may
> generate triples (e.g. @role), on the same element as @rel, have, as
> subject, the object of the @rel triple, *ignoring any potential @about
> on the same element*.
> 
> Examples:
> =========
> 
> 1)
> 
> <div rel="foaf:topic" class="cal:Vevent">
>   <span property="cal:dtstart">2007-07-07</span>
> </div>
> 
> yields
> 
> <> foaf:topic [rdf:type cal:Vevent ; cal:dtstart "2007-07-07"] .
> 
> 
> 2)
> 
> <div about="#foo" rel="foaf:topic" class="cal:Vevent">
>   <span property="cal:dtstart">2007-07-07</span>
> </div>
> 
> yields
> 
> <#foo> foaf:topic [rdf:type cal:Vevent ; cal:dtstart "2007-07-07"] .
> 
> 
> 3) (assuming @href can go anywhere)
> 
> <div about="#foo" rel="foaf:topic" href="#event_0" class="cal:Vevent">
>   <span property="cal:dtstart">2007-07-07</span>
> </div>
> 
> yields
> 
> <#foo> foaf:topic <#event_0> .
> 
> <#event_0> rdf:type cal:Vevent ;
>   cal:dtstart "2007-07-07" .
> 
> 
> 
> THE POINT of CONTENTION
> 
> The point of contention may be that, when one adds @rel, it effectively
> *changes* what @class applies to, overriding the @about.
> 
> I believe that makes sense, since it's overriding the @about for all
> contained statements already, and we said that @class was syntactic
> sugar for a contained rdf:type declaration.
> 
> But it's important to understand this detail!
> 
> So, when you say:
> 
> <div about="#foo" class="cal:Vevent">
> 
> you mean
> 
> <#foo> rdf:type cal:Vevent .
> 
> but when you say
> 
> <div about="#foo" class="cal:Vevent" rel="foaf:topic">
> 
> you mean
> 
> <#foo> foaf:topic [rdf:type cal:Vevent] .
> 
> 
> There are other ways to resolve this contention, but I think this is the
> only consistent one: @about is overridden by the object of the @rel for
> all contained statements, and the object of the @rel is affected only by
> @href and @id.
> 
> -Ben
> 

-- 

Ivan Herman, W3C Semantic Web Activity Lead
URL: http://www.w3.org/People/Ivan/
PGP Key: http://www.cwi.nl/%7Eivan/AboutMe/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Tuesday, 10 July 2007 10:21:26 UTC