- 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