Re: Use of full URI for rdf:type instead of @type

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