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

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