- From: Pierre-Antoine Champin <pierre-antoine@w3.org>
- Date: Fri, 20 Jan 2023 09:02:15 +0100
- To: Thomas Francart <thomas.francart@sparna.fr>, public-json-ld-wg@w3.org
- Message-ID: <aa910dce-dfc1-f137-6a9d-834f13e9278b@w3.org>
Hi Thomas, On 17/01/2023 18:04, Thomas Francart wrote: > Hello > > Considering the JSON-LD below, which combines @graph, @included and > @vocab, I have 3 questions : > > 1. No rdf:type triple is produced with https://exemple.eu/entity_1 as > subject. I intended the "id" attribute to be found in the context, as > I marked the "id" key with "@type = @vocab". This works correctly with > the type key. > I understand this is because JSON-LD mandates @id to be IRIs or blank > node identifiers. But why wouldn't it be possible to find the > corresponding IRI in the @context ? > I would like to do that so that the key is the same when I refer to > "entity_1" in the "refers_to" key and when I describe "entity_1" in > the "included" section. I can see why you would want that, but as a general rule, you can not override how keywords (@id, @type, @language...) interpret their values. Which means that attempting to do that should maybe raise a warning... (your "@type": "@vocab" in the definition of "id"). I believe that this would open a dangerous pandora box (imagine replacing "@type": "@vocab" with "@type": "xsd:string" -- what would that mean?). > > 2. When combining @graph with @included, the triples from the @graph > are put in an anonymous graph instead of the default graph. Triples > from the @included section are put in the default graph (if I > workaround the first issue by using an explicit IRI). I find that > counter intuitive. The spec reads "/When a JSON-LD document's > top-level structure is a map that contains no other keys than @graph > and optionally @context (...), @graph is considered to express the > otherwise implicit default graph/", but I suggest to change it to > "/...contains no other keys than |@graph and @included...|/" > > Maybe there is another way to have the data+included structure at the > top-most level while maintaining a single default graph ? easy: alias "graph" to "@included" instead of "@graph" :) > > 3. This is done in an attempt to mimic the JSON API (jsonapi.org > <http://jsonapi.org>) structure while keeping JSON-LD compatibility. > Do you know of other attempts to do so, or is there some kind of > default "JSONAPI to JSON-LD" @context or something similar ? I have a vague recollection of somebody mentioning that while the WG was working on the 1.1 specifications, but don't remember who that was. Maybe Benjamin? pa > > Thanks ! > Thomas > > > ``` > { > "@context": { > > "id": { > "@id": "@id", > "@type":"@vocab" > }, > > "type": { > "@id": "rdf:type", > "@type": "@vocab" > }, > > "refers_to": { > "@id": "https://exemple.eu/ontology#refers_to", > "@type": "@vocab" > }, > > "data": "@graph", > "included": "@included", > > "entity_1": "https://exemple.eu/entity_1", > > "Test" : "https://exemple.eu/ontology#Test" > }, > > > "data": [ > { > "id": "https://exemple.eu", > "type": "Test", > "refers_to": "entity_1" > } > ], > > "included" : [ > { > "id": "entity_1", > "type": "Test" > } > ] > } > ``` > > -- > * > * > *Thomas Francart* -*SPARNA* > Web de _données_ | Architecture de l'_information_ | Accès aux > _connaissances_ > blog : blog.sparna.fr <http://blog.sparna.fr>, site : sparna.fr > <http://sparna.fr>, linkedin : fr.linkedin.com/in/thomasfrancart > <https://fr.linkedin.com/in/thomasfrancart> > tel : +33 (0)6.71.11.25.97, skype : francartthomas
Attachments
- application/pgp-keys attachment: OpenPGP public key
Received on Friday, 20 January 2023 08:02:20 UTC