- 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