- From: Ben Adida <ben@adida.net>
- Date: Tue, 10 Jul 2007 07:50:06 -0700
- To: mark.birbeck@x-port.net
- CC: RDFa <public-rdf-in-xhtml-tf@w3.org>, SWD WG <public-swd-wg@w3.org>
Mark Birbeck wrote: > Hi Ben, > > I have some comments on this, but I need to resolve one thing first; > where is this coming from: > >> - 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. To the best of my recollection, it's coming from a discussion on a telecon, I don't think there's a log of it. It's something that I think is actually fairly consistent, and I haven't found any issues with it yet, but it's by no means resolved, so let's discuss. (And in fact I have a use case as of yesterday: some folks implementing Creative Commons licensing want to do striping with <a href=> and stuff inside it. They sent me an HTML fragment that assumed it worked this way, without my telling them a thing about it.) >> <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" . > > I don't recall us ever making @href the *subject* of any contained > triples. That's how things used to be in the earliest, earliest drafts > (something I called "chaining") but it just didn't work. :) We have not agreed on @href everywhere, you're right, it just seemed to me a natural extension. Well, let's see if it works or not :) > This means--at least in my view of where we are currently--the > following triples would be generated from your example: > > <#foo> > rdf:type cal:Vevent; > foaf:topic <#event_0>; > cal:dtstart "2007-07-07" . > > Since we've agreed that if @rel is on its own (with no @href) then the > subject of any contained statements is the object of that > statement--i.e., a bnode. So the following mark-up _would_ give the > triples desired above: > > <div about="#foo" rel="foaf:topic"> > <div class="cal:Vevent"> > <span property="cal:dtstart">2007-07-07</span> > </div> > </div> So this markup definitely wouldn't give the same thing, right, since there's no pointer to #event_0 anywhere. You'd have to write #event_0 twice if you don't let @rel cause striping when there's an @href. > This is obviously pretty important, so if you have any references to > where the behaviour of @href was changed to become the subject of > contained statements I'd appreciate the links. Thanks. I don't think it has been changed, I think we had different assumptions about this, and that's why I wanted to lay things out so we can discuss them. We have *not* resolved this, as best as I can tell, so no fear, there has been no change... yet. I'm only trying to iron out the inconsistencies, and I think this is an important one, as you mention. Now taking the above example you have, there are at least two issues here. Let's tease them apart. First, <div about="#foo" rel="foaf:topic"> <span property="cal:dtstart">2007-07-07</span> </div> I think we agree that this would yield: <#foo> foaf:topic [cal:dtstart "2007-07-07"] . Now, let's add @class, and let's make it unrelated to calendars so I don't bias the psychological interpretation: <div about="#foo" rel="foaf:topic" class="bar:Baz"> <span property="cal:dtstart">2007-07-07</span> </div> Do we think that this means that #foo is bar:Baz, or the bnode is bar:Baz? I claim it's the bnode, because remember, the way we used to think of @class was as a syntactic sugar for a contained LINK: <div about="#foo" rel="foaf:topic"> <link rel="rdf:type" href="[bar:Baz]" /> <span property="cal:dtstart">2007-07-07</span> </div> And I don't see why the LINK and SPAN should have different subjects. In other words, in my mind, @rel causes the creation of a bnode, which sets the subject for contained statements, overriding the @about, and since @class is syntactic sugar for a contained statement, I think @rel effectively sets its subject. This is where I think we may have a point of contention, but I'm not sure how else we can interpret it if we agree that striping (or chaining) is useful. Now, *assuming* you agree with me so far, then I make the claim that if you add an @href on the <div>, then you cannot change the rules for all of the other triple generation all that drastically. Since the object of the @rel is now the @href instead of the @bnode, shouldn't all the contained statements have as subject the @href? Going back to the first code chunk: <div about="#foo" rel="foaf:topic" href="#event_0" class="bar:Baz"> <span property="cal:dtstart">2007-07-07</span> </div> The way I "see" this in my mind is that @rel creates striping/chaining, whether or not there's an @href, and anything contained is then about the object of the statement generated by @rel, whether there's an @href or not. The nice thing here is that this makes a lot of sense to XML folks (precisely the use case that came up with Creative Commons yesterday), and it's extremely powerful for complex graph expression, in my opinion. (Btw, we could substitute @resource for @href, of course.) I don't see any horrible complications, but maybe I'm missing something. Thoughts? -Ben
Received on Tuesday, 10 July 2007 14:50:17 UTC