- From: Angelo Veltens <angelo.veltens@online.de>
- Date: Fri, 15 Nov 2019 18:06:59 +0100
- To: Dave Longley <dlongley@digitalbazaar.com>, public-linked-json@w3.org, byoung@bigbluehat.com
- Message-ID: <49f54640-5375-56ad-35f3-f396dad9c04d@online.de>
Thanks Dave and Robert, I did not use useNativeTypes since I am not using jsonld.fromRDF, but rdfjs-base/serializer-jsonld[1], which does not seem to have such an option. I guess support for the flag could at least be added to rdfjs-base/serializer-jsonld-ext[2] so this is a helpful hint, indeed. I will have to dive back into the topic when I find time. Thanks a lot for now! [1] https://github.com/rdfjs-base/serializer-jsonld [2] https://github.com/rdfjs-base/serializer-jsonld-ext Kind regards, Angelo On 15.11.19 17:27, Dave Longley wrote: > > Angelo, > > The following gist may do what you want: > > https://gist.github.com/dlongley/92b76fb43039893091a5a3b6a3b6aa9e > > There is a flag when converting from RDF called `useNativeTypes` that > will parse well-known XSD types (such as `xsd:integer`) into JSON native > types. Then you can compact to your context and get the output you want. > > If you don't want that blank node ID to appear, you can use framing to > prune blank node IDs. If don't care about that or if your data has IDs > this is a non-issue. Note that jsonld.js will also presently insert > `@graph` into the framing output, but this will be changed as soon as > jsonld.js is updated to the JSON-LD 1.1 algorithms. > > Is this the sort of thing you're looking for? > > On 11/15/19 11:02 AM, Angelo Veltens wrote: >> Hi Benjamin, >> >> thanks for your explanation. I appreciate any response even though >> it's late, no problem :) >> >> The big benefit I see in JSON-LD, is that it really simplifies the >> usage of RDF in JavaScript applications, as in many cases an RDF >> graph can be compacted to a plain and simple JSON object. Of course >> there are always graphs that get more complicated, like when it >> contains multiple languages or non primitive types. But in my >> experience many, many practical cases can be serialized to a >> simple-to-use JSON object. >> >> This is why I find it very annoying to get >> >> "age": { >> "@value": "27", >> "@type": "http://www.w3.org/2001/XMLSchema#integer" >> } >> >> when one could also use a simple >> >> "age": 27 >> >> This is just making things more complicated without necessity. >> >> This way, JSON-LD is just yet-another-RFD-serialization and looses >> it's benefits in my opinion. >> >> Although I understand your conclusion, this is my input/feedback from >> a practicability point-of-view. >> >> Kind regards, >> Angelo >> >> On 04.10.19 17:41, Benjamin Young wrote: >>> Hey Angelo, >>> >>> Sorry I missed this email back in...May. ;-P >>> >>> I wondered very similar things, and we discussed them a bit in the >>> JSON-LD WG recently: >>> https://github.com/w3c/json-ld-bp/issues/14 >>> >>> The ultimate conclusion is that JSON-LD does one thing: encodes a >>> graph in JSON by mapping local names to global names (and wrangling >>> various JSON shapes into graphy ones). >>> >>> So, essentially type casting of this sort, isn't JSON-LD's job...but >>> a tool that uses the expanded form (for instance) might be able to >>> clean-up data on ingest or generation. >>> >>> Here's how I summarized it in the issue: >>> https://github.com/w3c/json-ld-bp/issues/14#issuecomment-532125931 >>> >>> Ultimately we plan to explain that in the forthcoming Best Practices >>> guide. As someone else who's shared this confusion, your input here >>> would be most welcome. :) >>> >>> Cheers, >>> Benjamin >>> Co-Chair, W3C JSON-LD >>> >>> -- >>> >>> http://bigbluehat.com/ >>> >>> http://linkedin.com/in/benjaminyoung >>> >>> ------------------------------------------------------------------------ >>> >>> *From:* Angelo Veltens <angelo.veltens@online.de> >>> *Sent:* Friday, May 31, 2019 4:46 AM >>> *To:* JSON-LD CG <public-linked-json@w3.org> >>> *Subject:* Handling integers >>> Hi everybody, >>> >>> Question regarding Integers in JSON-LD. >>> >>> Given the following snippet: >>> >>> { >>> "@context": { >>> "@vocab": "http://vocab.example/" >>> }, >>> "age": { >>> "@value": "27", >>> "@type": "http://www.w3.org/2001/XMLSchema#integer" >>> } >>> } >>> >>> Is there a JSON-LD algorithm / context to transform it to a real JSON >>> integer? >>> >>> { >>> "@context": { >>> "@vocab": "http://vocab.example/" >>> }, >>> "age": 27 >>> } >>> >>> They are semantically the same, but the upper construct is much more >>> complicated to handle in JavaScript application and does not give any >>> additional value. I would have expected at least the compact algorithm >>> to output the latter construct. >>> >>> All the best, >>> Angelo >>> > >
Attachments
- application/pgp-keys attachment: pEpkey.asc
Received on Friday, 15 November 2019 17:07:13 UTC