- From: Toby A Inkster <tai@g5n.co.uk>
- Date: Wed, 10 Dec 2008 18:50:31 +0000
- To: Richard Cyganiak <richard@cyganiak.de>
- Cc: public-rdfa@w3.org
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