Re: Markup questions: html/body, datatype="", double predicates

On 10 Dec 2008, at 17:10, Richard Cyganiak wrote:
> On 10 Dec 2008, at 10:13, Toby A Inkster wrote:
>
>> Take a look at the RDFa syntax specification and search it for the  
>> string "[recurse]" - you'll find it crops up four times in the  
>> processing sequence. The key bits are:
>>
>> "1. First, the local values are initialized, as follows: the  
>> [recurse] flag is set to 'true' {...}"
>>
>> "9. {...} Once the triple has been created, if the [datatype] of  
>> the [current object literal] is rdf:XMLLiteral, then the [recurse]  
>> flag is set to false."
>>
>> "11. If the [recurse] flag is 'true', all elements that are  
>> children of the [current element] are processed using the rules  
>> described here {...}"
>
> This still seems to indicated that in the case of @datatype="",  
> processing should continue into the subtree.
>
> So I still believe that the Distiller is wrong in the @datatype=""  
> case. It does not generate triples for RDFa embedded inside the  
> literal, but it should.

<x property="foo" datatype=""> should generate a string literal, and  
recurse to generate further triples for RDFa embedded inside the  
literal.

<x property="foo"> (with no datatype attribute) should generate  
either an rdf:XMLLiteral or string literal (depending on the contents  
of <x>). If it generated an rdf:XMLLiteral, then it should not  
recurse; if it generated a string literal then it has nothing to  
recurse to; either way it should not generate any triples for RDFa  
inside the literal.

If RDFa Distiller is getting this wrong, it's possible that it's  
doing an "if (getAttribute('datatype'))" somewhere - i.e. not  
differentiating between an empty attribute and an absent attribute.

-- 
Toby A Inkster
<mailto:mail@tobyinkster.co.uk>
<http://tobyinkster.co.uk>

Received on Wednesday, 10 December 2008 18:52:54 UTC