W3C home > Mailing lists > Public > public-swd-wg@w3.org > July 2007

Re: [RDFa] ISSUE-8: RDF containers in RDFa

From: Ivan Herman <ivan@w3.org>
Date: Wed, 18 Jul 2007 12:33:46 +0200
Message-ID: <469DEC8A.5070403@w3.org>
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>

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:


>> ------
>> 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:

  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...


> -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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:31:44 UTC