- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Fri, 9 May 2014 13:54:16 -0700
- To: John Walker <john.walker@semaku.com>
- Cc: Dave Longley <dlongley@digitalbazaar.com>, "public-linked-json@w3.org" <public-linked-json@w3.org>
On May 9, 2014, at 1:48 PM, John Walker <john.walker@semaku.com> wrote: > Hi Dave > > Tried some variations round that theme, but could get it working. > > Would it be right to say that the SPARQL query *should* return results using "@type" rather than full URI? If the SPARQL endpoint you're accessing returns JSON-LD as a graph serialization for CONSTRUCT or DESCRIBE, it should use @type instead of rdf:type. Although it's not _wrong_ to use rdf:type, you can see how it complicates interoperability. Otherwise, I'd just take back N-Triples and serialize to JSON-LD in the client; you'll need access to a JSON-LD library anyway, if you want to frame the results. Gregg > Guess that'd make life easier. > > Regards, > > John > > On 9 May 2014, at 22:32, Dave Longley <dlongley@digitalbazaar.com> wrote: > >> On 05/09/2014 03:49 PM, Gregg Kellogg wrote: >>> On May 9, 2014, at 7:38 AM, john.walker <john.walker@semaku.com> wrote: >>> >>>> For sake of completeness here is another example of the JSON-LD tree using >>>> "@type" [4] working with the first frame [2]: >>>> http://json-ld.org/playground/index.html#startTab=tab-framed&json-ld=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Ftree2.jsonld&frame=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Fframe1.jsonld&context=%7B%7D >>>> >>>> But same input does not get along with second frame [3]: >>>> http://json-ld.org/playground/index.html#startTab=tab-framed&json-ld=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Ftree2.jsonld&frame=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Fframe2.jsonld&context=%7B%7D >>> >>> Hi Jon, a couple of things to note: >>> >>> 1) JSON-LD treats rdf:type like @type only when importing from RDF; otherwise, it's just another property. >>> >>> 2) Framing is really pattern matching. For a frame to match @type: skos:ConceptScheme, it has to be specified using @type in the input JSON-LD. >>> >>> You could get this effect by first transforming the input to RDF, and then back to JSON-LD to have it use @type. For example, see the following: http://goo.gl/JILxnc. >> >> Alternatively, I think you could also specify >> "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" as an alias for @type >> to get the desired effect: >> >> { >> "@context": { >> "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": "@type" >> } >> } >> >>> >>> >>>>> On May 9, 2014 at 4:27 PM "john.walker" <john.walker@semaku.com> wrote: >>>>> >>>>> >>>>> Hi There, >>>>> >>>>> I have a question about use of rdf:type in JSON-LD. >>>>> >>>>> Take for example a simple SKOS tree loaded [1] to the playground: >>>>> http://json-ld.org/playground/index.html#json-ld=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Ftree.jsonld >>>>> >>>>> All looks good. >>>>> >>>>> Now I want to apply a JSON-LD frame [2] to this: >>>>> http://json-ld.org/playground/index.html#startTab=tab-framed&json-ld=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Ftree.jsonld&frame=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Fframe1.jsonld >>>>> >>>>> In the result there is no content in the "@graph". >>>>> >>>>> It seems that this is due to the use of "@type" in the JSON-LD frame, whereas >>>>> the JSON-LD input uses "http://www.w3.org/1999/02/22-rdf-syntax-ns#type". >>>>> >>>>> Note that the input document is being generated from a SPARQL query, so I'm >>>>> not >>>>> in control of how it is formed, it's just a simple serialization of the >>>>> triples. >>>>> >>>>> So a triple in question looks like: >>>>> >>>>> { >>>>> "@id": "http://example.com/conceptSchemes/myTree", >>>>> "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": { >>>>> "@id": "http://www.w3.org/2004/02/skos/core#ConceptScheme" >>>>> } >>>>> } >>>>> >>>>> I would have thought the processor would somehow know that "@type" and >>>>> "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" are equivalent, but it seems >>>>> not. >>>>> >>>>> If I modify the frame to use the full URI [3], it works as expected: >>>>> http://json-ld.org/playground/index.html#startTab=tab-framed&json-ld=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Ftree.jsonld&frame=https%3A%2F%2Frawgit.com%2Fjaw111%2Fbbd1b00d656045ba8a2c%2Fraw%2Fframe2.jsonld >>>>> >>>>> So my questions: >>>>> - is this specified on way or another in the standard >>>>> - is this a problem in the processing in the playground, or >>>>> - should the relevant triples be formulated as follows in the JSON-LD input: >>>>> >>>>> { >>>>> "@id": "http://example.com/conceptSchemes/myTree", >>>>> "@type": "http://www.w3.org/2004/02/skos/core#ConceptScheme" >>>>> } >>>>> >>>>> Hope that is clear... >>>>> >>>>> Cheers, >>>>> John >>>>> >>>>> [1] https://rawgit.com/jaw111/bbd1b00d656045ba8a2c/raw/tree.jsonld >>>>> [2] https://rawgit.com/jaw111/bbd1b00d656045ba8a2c/raw/frame1.jsonld >>>>> [3] https://rawgit.com/jaw111/bbd1b00d656045ba8a2c/raw/frame2.jsonld >>>>> >>>> >>>> John >>>> >>>> [4] https://rawgit.com/jaw111/bbd1b00d656045ba8a2c/raw/tree2.jsonld >>>> >>> >>> >> >> >> -- >> Dave Longley >> CTO >> Digital Bazaar, Inc.
Received on Friday, 9 May 2014 20:54:46 UTC