On Tue, 12 Jul 2011 09:41:18 +0200, Henri Sivonen <hsivo...@iki.fi> wrote:

On Thu, 2011-07-07 at 22:33 +0000, Ian Hickson wrote:
The JSON algorithm now ends the crawl when it hits a loop, and replaces
the offending duplicate item with the string "ERROR".

The RDF algorithm preserves the loops, since doing so is possible with
RDF. Turns out the algorithm almost did this already, looks like it was an
oversight.

It seems to me that this approach creates an incentive for people who
want to do RDFesque things to publish deliberately non-conforming
microdata content that works the way they want for RDF-based consumers
but breaks for non-RDF consumers. If such content abounds and non-RDF
consumers are forced to support loopiness but extending the JSON
conversion algorithm in ad hoc ways, part of the benefit of microdata
over RDFa (treeness) is destroyed and the benefit of being well-defined
would be destroyed, too, for non-RDF consumption cases.

I don't have a strong opinion, but note that even before this change the algorithm produced a non-tree for the "Avenue Q" example [1] where the "adr" property is shared between two items using itemref. (In JSON, it is flattened.) If we want to ensure that RDF consumers don't depend on non-treeness, then this should change as well.

[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#examples-4

--
Philip Jägenstedt
Core Developer
Opera Software

Reply via email to