- From: Ivan Herman <ivan@w3.org>
- Date: Wed, 18 Jul 2007 12:33:46 +0200
- To: Ben Adida <ben@adida.net>
- Cc: mark.birbeck@x-port.net, RDFa <public-rdf-in-xhtml-tf@w3.org>, SWD WG <public-swd-wg@w3.org>
- Message-ID: <469DEC8A.5070403@w3.org>
Ben Adida wrote: > Ivan, > > Great, thanks for pushing on these edge cases, these will help us > determine if we can solve this reasonably or not :) > >> - Strictly speaking this means that, once again, the subject of the >> instanceof (to name the beast, at least for this mail:-) is _not_ the >> @about up in the chain, but something 'downwards', ie, the blank node >> created on the fly (a bit like the @src and @href case we just >> discussed). I am not saying it is a problem, I am just saying that this >> should be made clear both for users and implementers. > > So, I gave a slightly confusing example that used the rule I mentioned > recently, which is that instanceof would automatically set the subject > for contained nodes. But note that this would happen if we put a @rel on > that UL, which is very likely to happen anyways (why would you have a > floating list without relating it?) > Well, I think we do have a slightly more general issue here, regardless of the list issue, see the discussion elsewhere: http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2007Jul/0136.html http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2007Jul/0137.html http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2007Jul/0142.html >> ------ >> Is it correct that >> >> <div about="#A"> >> <ul rel="a:b" instanceof="rdf:List" about="#B"> >> <li href="/foo">foo</li> >> <li href="/bar">bar</li> >> <li href="/baz">baz</li> >> </ul> >> </div> >> >> yields >> >> <#A> a:b <#B>. >> <#B> a rdf:List. >> <#B> rdf:first </foo>. >> <#B> rdf:next (</bar> </baz>). > > So this is a *very* interesting example. I actually believe that, under > our current rules, this would yield: > > <#B> a:b _:ul . > _:ul a rdf:List . > rdf:first </foo>. > rdf:next (</bar> </baz>). > > In other words, the outer DIV just doesn't come into play. > > This is because we've come to look at @about as declaring a subject, but > not as an identifier for the current element when the current element is > the object. This may be confusing, though, and it's definitely one of > those edge cases, so let's examine it carefully. > Hm. I think you are right but, indeed, it is a bit confusing... I am not sure how I would do easily a 'named' list then... (it may not be _that_ important, though...) >> <div about="#A"> >> <ul rel="a:b" instanceof="rdf:List"> >> <li> >> <span about="#Y" id="Y" >> property="bla:p">foo</span></li> >> <li><span about="#X" id="X" >> property="bla:p">bar</span></li> >> <li><span about="#Z" id="Z" >> property="bla:p">baz</span></li> >> </ul> >> </div> >> >> yields with our current rules >> >> <#A> a:b (<#Y> <#X> <#Z>). >> <#Y> bla:p "foo". >> <#X> bla:p "bar". >> <#Z> bla:p "baz". > > I don't think so. I think currently it would yield the other thing you > wrote: > >> <#A> a:b >> ("<span about="#Y" id="Y" property="bla:p">foo</span>"^^rdf:XMLLiteral >> etc. >> ) > > You'd have to put the IDs and ABOUTs on the LI, as you put it: > >> <div about="#A"> >> <ul rel="a:b" instanceof="rdf:List"> >> <li about="#Y" id="Y" property="bla:p">foo</li> >> <li about="#X" id="X" property="bla:p">bar</li> >> <li about="#Z" id="Z" property="bla:p">baz</li> >> </ul> >> </div> > Yeah. That is what I thought, but I was not 100% sure. > Now, your next example is tough. > >> <#A> a:b ([ bla:bl "foo" ] [ bla:bl "bar" ] [ bla:bl "baz" ]) > > I don't know how to do this nicely right now. > >> <div about="#A"> >> <ul rel="a:b" instanceof="rdf:List"> >> <li property="bla:p">foo</li> >> <li property="bla:p">bar</li> >> <li property="bla:p">baz</li> >> </ul> >> </div> > > That would be odd, unless we change some other rules. > Yeah. And that is really not good:-j( > So I'm not sure. It may be we're getting ahead of ourselves and we have > no good way to do this cleanly. I'd *like* to solve this, but I don't > want this to become some clunky syntax that looks pasted on. In that > sense, I can see where Keith was coming from in an earlier discussion. > Meaning? That discussion was so long, that I am not sure what you refer to? :-) > So, let's think about this a bit more, but let's make sure we strike a > compromise: if, as DanC notes, there are few real use cases, then we > must have a dead-simple syntax, or it's not worth it. > Well, DanC's use case was slightly artificial, but my example for publication from a long time ago is very similar but, maybe, more realistic. What I want to express is: <#Publ> bib:authors ( [ a foaf:Person; foaf:name "A" ] [ a foaf:Person; foaf:name "B" ] [ a foaf:Person; foaf:name "C" ] ). Both the order of the authors and the 'closed' nature of the authors' list is obviously important here (at least for academic bean-counters:-). I do not know of any other means to express it better than with lists. However, I do have a very vague idea for an alternative solution. Because it is not related to lists, let me mail it separately... Ivan > -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 Wednesday, 18 July 2007 10:33:45 UTC