- 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