- From: Ben Adida <ben@adida.net>
- Date: Wed, 09 Jan 2008 10:24:50 -0800
- To: Manu Sporny <msporny@digitalbazaar.com>
- CC: RDFa <public-rdf-in-xhtml-tf@w3.org>
Manu, Thanks for these summaries, which are very helpful, although I think this time you've got two big bugs in your main example. See the bottom of this email. Mark, I haven't changed my mind recently on @href causing chaining, remember I'm the one who introduced the idea in the first place, back when only a hanging @rel produced chaining. Also, Mark, you're confusing the situation thoroughly by using the generic formulation "@resource can play the role of subject, and @about can play the role of object." Of course they can, with chaining. The question is, to *which* predicate? How much are you willing to "collapse" the triple structure to connect a @rel with an object? In your model, collapsing happens where one likely wouldn't expect it, which is what gives Ivan's important counter-example. You've ignored this issue so far, yet it's the biggest one! When we have a standalone @href that isn't related to anything above: <div href="#foo"> <span property="dc:title">Foo</span> </div> We're not collapsing anything: it's just that <#foo> is not related to any subject above, it only has properties of its own. We can relate it to subjects above using @rel on the DIV, and the triple structure stays the same. Similarly, an @about with no properties: <div rel="foaf:knows"> <span about="#mark">Mark</span> </div> doesn't "collapse" any of the triple structure: it's just that <#mark> has no properties hanging off of it, but it still completes the hanging @rel. I know we agree on the outcome of the above two examples, but I wanted to explain them to contrast with another chunk of markup that shows the unexpected triple collapse with your model: <div rel="foaf:knows"> <span about="#mark" rel="foaf:knows" resource="#ben"> <span property="foaf:name">Ben</span> </span> <span about="#ivan" /> </div> I think we all agree that this gives: <> foaf:knows <#mark> . <#mark> foaf:knows <#ben> . <#ben> foaf:name "Ben" . <> foaf:knows <#ivan> . Now remove the @rel on the inner SPAN, which one should take as meaning that "Mark no longer knows Ben:" <div rel="foaf:knows"> <span about="#mark" resource="#ben"> <span property="foaf:name">Ben</span> </span> <span about="#ivan" /> </div> I'm pretty sure we agree that this yields: <> foaf:knows <#mark> . <#ben> foaf:name "Ben" . <> foaf:knows <#ivan> . Effectively, we removed the relationship between <#mark> and <#ben>, but we didn't change the overall triple structure, we just removed an edge from the graph. Now, what happens if we remove the @about, which should be interpreted as "<#mark> is no longer an object of foaf:knows." <div rel="foaf:knows"> <span resource="#ben"> <span property="foaf:name">Ben</span> </span> <span about="#ivan" /> </div> In my model, there's only one object to foaf:knows remaining, and so the first triple goes away completely, leaving only: <#ben> foaf:name "Ben" . <> foaf:knows <#ivan> . But in Mark's model, a triple structure collapse happens, where suddenly @rel connects to @resource, only because we removed @about: <> foaf:knows <#ben> . <#ben> foaf:name "Ben" . <> foaf:knows <#ivan> . So now the current page knows <#ben>, which is really odd since that was never expressed earlier. This is a *big* change, because it means that whether you declare a subject with @about or not suddenly changes the *structure* of the triples. Note how the collapse somehow brings <#ben> and <#ivan> to the same level, and *all because we removed @about*. Manu Sporny wrote: > and this is where the two models differ (note that @rel was moved up to > the containing element): > > ----------------------------------------------------------------- > <div href="#me" rel="foaf:knows"> > <span href="#ivan"> > <span href="#shane"> > </div> > -------- Approach A triples (Mark) > <#me> foaf:knows <#ivan> . > <#me> foaf:knows <#shane> . > -------- Approach B triples (Ben) > <> foaf:knows <#ivan> . > <> foaf:knows <#shane> . > ----------------------------------------------------------------- First, a bug: use @about on the top-level DIV, otherwise @href becomes the object of the @rel when you move it to the top-level DIV. I think Mark and I agree on this, There's also a big bug with Approach B's triples: in my and Ivan's model, there are no triples generated, because @href on its own never completes a triple. Why? Because non-RDFa authors write <a href=""> all the time, and to have that automatically connect to a hanging @rel when the anchor contains *no* RDFa attributes... very odd. And there's one more issue: what happens to @instanceof? Does it then apply to @resource in Mark's markup? That would be the natural consequence of Mark's proposal, which I find quite ironic, given that my earlier proposal that @instanceof would apply to @resource was so untenable :) -Ben
Received on Wednesday, 9 January 2008 18:24:58 UTC