- From: Thomas Francart <thomas.francart@sparna.fr>
- Date: Fri, 20 Jan 2023 09:53:40 +0100
- To: Pierre-Antoine Champin <pierre-antoine@w3.org>
- Cc: public-json-ld-wg@w3.org
- Message-ID: <CAPugn7UJKX-ykogGdQq2-q49nT8Oz6w-CwpQmcMs3u+VbyaVRA@mail.gmail.com>
Thank you Pierre-Antoine Le ven. 20 janv. 2023 à 09:02, Pierre-Antoine Champin <pierre-antoine@w3.org> a écrit : > 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?). > The goal is to be able to have the same (synctactic) id as an attribute value in the data part, and as an id in the included part. The alternative I am considering for this is to use an @base and simply use relative URIs instead of trying to shorten them. > > 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" :) > Great ! I hadn't thought about having 2 @included (mapped to 2 different keys) at the same level. Thanks Thomas > > 3. This is done in an attempt to mimic the JSON API (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, site : sparna.fr, linkedin : > fr.linkedin.com/in/thomasfrancart > tel : +33 (0)6.71.11.25.97, skype : francartthomas > > -- *Thomas Francart* -* SPARNA* Web de *données* | Architecture de l'*information* | Accès aux *connaissances* blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas
Received on Friday, 20 January 2023 08:54:04 UTC