- From: Keith Alexander <k.j.w.alexander@gmail.com>
- Date: Thu, 21 Feb 2008 14:52:17 -0000
- To: cdr <_@whats-your.name>, public-rdf-ruby@w3.org
On Thu, 21 Feb 2008 00:05:01 -0000, cdr <_@whats-your.name> wrote: > {"type": "literal", "value": "3", "datatype": "integer"} is > 3 > > > the main poin is always use JSON for intrinsic values like 5, even if > youre describing '5 yards', > > most parsers are written in Parsec, Ragel, Yacc, theyre benefit from > fast value (string, integer, float) in generated C or ASM while yours > requires manual casting later on inside slowscriptspace. a typical form > index could end up calling Integer() 300 times in Javascript on the > client, and to_string 300 times in the server for no reason other than > your format ignores this native feature of JSON.. > > i got about a 25x speedup by getting rid of any sort of manual casting, > and using the ragel generated json parser in ruby. and im not even > selling a 'platform' i just got sick of the unnecesssary latency.. > Hi, I do find your structure interesting Carmen, but so far, I still find the predicatability of the rdf/json structure to be more advantageous - in that I know that the value of a predicate key will always be an array of object hashes, and I can always get the value and the type under the value and type keys, rather than testing if something is an object or a string or an integer or is an object with a certain property. The speed thing seems to depend on use-case though? - ie, whether you are doing stuff with numbers, or simply printing them out. It might be worth considering mandating in the rdf/json spec that xsd datatypes are output as native json datatypes rather than quoted strings - I'm not sure though. A potential problem with doing the same thing for xsd:integers and xsd:float into json numbers is that you might suffer loss of precision - different languages implement these concepts differently, so you might not be able to roundtrip your data. eg: if the json says 3.000 rather than "3.000", upon 'evaling', it will become 3.0 in ruby (and just 3 in js). So maybe it is better and more consistent not to try to port the semantics of XSD to the semantics of JSON and/or ruby. Anyway, sorry if I came across as trying to 'sell a platform', I really didn't mean to; I just (personally) see a lot of value in converging on a common data structure where possible. Cheers, Keith
Received on Thursday, 21 February 2008 14:52:48 UTC