- From: Sandro Hawke <sandro@w3.org>
- Date: Wed, 15 May 2013 07:29:41 -0400
- To: Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr>
- CC: Manu Sporny <msporny@digitalbazaar.com>, W3C RDF WG <public-rdf-wg@w3.org>
- Message-ID: <519371A5.5010704@w3.org>
On 05/14/2013 03:01 PM, Pierre-Antoine Champin wrote: > > > > On Tue, May 14, 2013 at 2:07 PM, Sandro Hawke <sandro@w3.org > <mailto:sandro@w3.org>> wrote: > >> after all, both xs:integer and JSON allow arbitrary long >> integers, so this is up to implementations to cope with that -- >> or at least notify in the cases they don't. > But which implementation? The JSON-LD producer has to make this > choice on behalf of all JSON-LD consumers to which it might be > passing documents. > > > I was thinking that the /producer/ could raise an exception when asked > to serialize a large integer. Of course, this still raises the > question of when to raise it, an int larger than 32 bits or larger > than 64 bits :) > Yeah, the point is the producer has no idea what environment the consumer will have. Yesterday on the JSON-LD call, Gregg proposed a solution that I really like, which is to make the useNativeTypes conversion be done on a JSON-LD structure, so it's not part of the RDF Round Tripping at all, and can simply be done within a system (not usually for sending across the wire). Within a system, lossy conversion can be detected. > Markus and I have consensus on a way forward: > > - for useNativeTypes=True, all numeric types (except xsd:decimal) > are converted to json native numbers. on translation back to RDF > literals, they'll all end up as xsd:double. > - we'll say clearly that setting useNativeTypes=True MAY change > the value and/or datatype of any RDF numeric literals (except > xsd:decimal). So keep it False if you want exact roundtrip > conversion. > > > fair enough. > But why exclude xs:decimal, then ?? I understand that the conversion > back to xs:double is lossy, but so is the case for xs;integer. Why > treat them differently? > Excluding xsd:decimal was Markus' idea, based on the thinking that the only reason someone uses xsd:decimal (instead of integer or double) is because they really want an exact representation, eg for money. I think he's right about that. -- Sandro > pa
Received on Wednesday, 15 May 2013 11:29:56 UTC