Re: Attempt for a List specification in RDFa (ISSUE-106)

On Aug 26, 2011, at 21:44 , Jeni Tennison wrote:

> Ivan,
> 
> Hmm. I hadn't really intended that the elements needed to be at the same level. For example, given that:
> 
> <li about="http://www.worldcatlibraries.org/isbn/9780262912423" 
>   typeof="bibo:Book">
> <span property="dc:creator">Grigoris Antoniou</span> and
> <strong><span property="dc:creator">Frank van Harmelen</span></strong>
> </li>
> 
> would work to give two values for dc:creator, I would expect:
> 
> <li about="http://www.worldcatlibraries.org/isbn/9780262912423" 
>   typeof="bibo:Book">
> <span property="dc:creator" member>Grigoris Antoniou</span> and
> <strong><span property="dc:creator" member>Frank van Harmelen</span></strong>
> </li>
> 
> to create a list.

Yes, I know this is a problem. The point is: at this moment it is not clear in my mind how I would precisely specify the case when the elements are not on the same level. I still have to think about that case, ie, if it could properly work. I am a little bit afraid it may become a bit too convoluted, but maybe not (I will have a long train ride today back to Amsterdam, it will give me time to think...)

The issue is clearer if I have this in reverse order 

<strong><span property="dc:creator" member>Frank van Harmelen</span></strong>
<span property="dc:creator" member>Grigoris Antoniou</span>

If the processor sees first Frank's item, it has to go up the DOM hierarchy to look for the corresponding item of Grigoris; such up-and-down search may be a bit painful. In the 'triggering' model the processor knows where to start and goes down only, in this case it is more complicated. I mainly expect issues with processors that do not necessarily have the full DOM tree in their possession but do some sort of a streaming thing.

B.t.w., your example above would work with

> <span property="dc:creator" member><strong>Frank van Harmelen</strong></span>


of course. Or even putting everything on the <strong>. So the question is whether this is really such a huge restriction.

> 
> I'm also not sure how your DOM-manipulation approach works. Just to make sure we're on the same wavelength, I would similarly expect:
> 
> <li about="http://www.worldcatlibraries.org/isbn/9780262912423" 
>   typeof="bibo:Book">
> <span property="dc:creator" member>Grigoris Antoniou</span> from
> <span property="ex:org">Somewhere</span>
> and
> <strong><span property="dc:creator" member>Frank van Harmelen</span></strong>
> </li>
> 
> to create:
> 
>  <http://www.worldcatlibraries.org/isbn/9780262912423>
>    a bibo:Book ;
>    dc:creator ("Grigoris Antoniou", "Frank van Harmelen") ;
>    ex:org "Somewhere" ;
>    .
> 
> rather than:
> 
>  <http://www.worldcatlibraries.org/isbn/9780262912423>
>    a bibo:Book ;
>    dc:creator [
>      a rdf:List ;
>      rdf:first "Grigoris Antoniou" ;
>      rdf:rest [ 
>        a rdf:List ;
>        rdf:first "Frank van Harmelen" ;
>        rdf:rest rdf:nil ;
>      ] ;
>      ex:org "Somewhere" ;
>    ]
>    .


Yes, it works as you expect. The DOM translation mechanism (a) ignores the items without 'member' and also regroups members with the same predicates.

To be precise, your example (without the spams for the moment)

<li about="http://www.worldcatlibraries.org/isbn/9780262912423" 
  typeof="bibo:Book">
  <span property="dc:creator" member>Grigoris Antoniou</span> from
  <span property="ex:org">Somewhere</span>
and
  <span property="dc:creator" member>Frank van Harmelen</span>
</li>

would become

<li about="http://www.worldcatlibraries.org/isbn/9780262912423" 
  typeof="bibo:Book">
  <link_element rel="dc:creator" resource="_:1"/>

  <span about="_:1" property="rdf:first">Grigoris Antoniou</span>
  <link_element about="_:1" rel="rdf:rest" resource="_:2"/> 

from
  <span property="ex:org">Somewhere</span>
and

  <span about="_:2" property="rdf:first">Frank van Harmelen</span>
  <link_element about="_:2" rel="rdf:rest" resource="rdf:nil"/> 
</li>


> 
>> There is a little bit of a caveat if an @itemref is involved (and RDFa goes along the lines of implementing that); indeed, I am not sure about a structure of the form
>> 
>> <bla property="foo:bar" member>Blah</bla>
>> <bla property="foo:bar" itemref="toto"/>
>> ...
>> ...
>> <bla id="toto" member>blah again</bla>
>> 
>> (Though I may misunderstand the behaviour of this itemref.) I would be happy to say that the whole list processing ignores this case, though.
> 
> In microdata, you're only allowed to put the itemref attribute on an element with itemscope attribute. For something equivalent in RDFa, I'd suggest limiting it to elements that create new subjects. It would be easiest if this could be expressed in terms of the presence of an attribute, eg just those with 'about' or 'typeof' attributes. So the above wouldn't be allowed.
> 

Aha! Ok, that takes care of it indeed.

Thanks Jeni!

Cheers

I.


(Tracker, this is also for ISSUE-106)



> Cheers,
> 
> Jeni
> -- 
> Jeni Tennison
> http://www.jenitennison.com
> 
> 


----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Saturday, 27 August 2011 05:30:54 UTC