- From: Jindřich Mynarz <mynarzjindrich@gmail.com>
- Date: Fri, 16 Jan 2015 16:18:39 +0100
- To: Dave Longley <dlongley@digitalbazaar.com>
- Cc: public-linked-json@w3.org
- Message-ID: <CAE=8Bu8k5DnaLY3dSG4Yp79+HsVpwFP-L7A0=+vR9mjsL0v7tQ@mail.gmail.com>
Thanks for the feedback, Stian and Dave. I'll transform the input RDF to use explicit datatypes for numbers and set the `use native types` flag when loading it as JSON-LD. Best, Jindřich -- http://mynarz.net/#jindrich On Fri, Jan 16, 2015 at 12:12 AM, Dave Longley <dlongley@digitalbazaar.com> wrote: > On 01/15/2015 04:48 PM, Stian Soiland-Reyes wrote: > > No, I don't believe there is an specified mechanism for that currently. > > There is if converting from RDF, see below. > > > > > Probably there should be. Given your context, the > > http://json-ld.org/playground/ seems to keep any incoming JSON numbers > > 42 as the number 42 (even if it is as { "@type": "xsd:integer", > > "@value": 42} ), and any incoming strings "42" as "42". > > > > I would argue that in this case it should at least consistently end up > > with always the string or always the integer version. > > It is consistent in that expansion/compaction won't transform valid JSON > primitives, they are left alone. The expansion and compaction algorithms > don't know anything about the meaning of "xsd:integer". Data types are > opaque to those algorithms. They are, however, dealt with in a minor way > in the to/from RDF conversion algorithms: > > If you're converting from RDF and you specify the `use native types` > flag as `true`, then xsd:integers will be converted to native JSON numbers. > > From the spec: > > "To ensure lossless round-tripping the Serialize RDF as JSON-LD > algorithm specifies a use native types flag which controls whether RDF > literals with a datatype IRI equal to xsd:integer, xsd:double, or > xsd:boolean are converted to their JSON-native counterparts. If the use > native types flag is set to false, all literals remain in their original > string representation." > > http://www.w3.org/TR/json-ld-api/#data-round-tripping > > > > > > > Could it be the job of a JSON-LD Frame to specify this? Currently it > > can't say much about the values, e.g. if it should be expanded with > > @value or not. > > > > > > > > On 15 January 2015 at 16:55, Jindřich Mynarz <mynarzjindrich@gmail.com> > wrote: > >> Hi, > >> > >> is it possible to use JSON-LD API to coerce number-like strings into > native > >> JSON numbers (http://www.w3.org/TR/json-ld/#dfn-number)? The section > of the > >> specification on type coercion ( > http://www.w3.org/TR/json-ld/#type-coercion) > >> seems to suggest that this is possible, but so far I haven't realized > how. > >> > >> For example, is it possible to coerce the values of the "age" attribute > to > >> numbers in the following JSON-LD? > >> > >> { > >> "@context": { > >> "@vocab": "http://xmlns.com/foaf/0.1/", > >> "xsd": "http://www.w3.org/2001/XMLSchema#", > >> "age": { "@type": "xsd:integer" } > >> }, > >> "age": "42" > >> } > >> > >> Setting a numeric datatype (such as xsd:integer) for the property via > @type > >> in @context doesn't do the job. > >> > >> Is there a way to go about this? > >> > >> Best, > >> > >> Jindřich > >> > >> -- > >> http://mynarz.net/#jindrich > > > > > > > > > -- > Dave Longley > CTO > Digital Bazaar, Inc. >
Received on Friday, 16 January 2015 15:19:27 UTC