- From: Ivan Herman <ivan@w3.org>
- Date: Tue, 10 Jul 2007 12:21:19 +0200
- To: Ben Adida <ben@adida.net>
- CC: RDFa <public-rdf-in-xhtml-tf@w3.org>, SWD WG <public-swd-wg@w3.org>
- Message-ID: <46935D9F.1030705@w3.org>
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:24 UTC