- From: Graham Klyne <gk@ninebynine.org>
- Date: Mon, 10 Jun 2019 12:39:32 +0100
- To: public-json-ld-wg@w3.org
- CC: Graham Klyne <gklyne@gmail.com>
(Now that I've discovered this list, I'll mention a long-standing problem I've
encountered...)
I'm using JSON-LD as a native storage format for a "linked data notebook" I've
been working on (http://annalist.net). One feature that's important for my use
is portability of data between different server deployments, so I use relative
URI references when defining @base and @context URIs; e.g.
```
{
"@context": [
{
"@base": "../../"
},
"../../coll_context.jsonld"
],
"@id": "Place_merged/Opole_P",
:
}
```
(Excerpt from
https://demo.annalist.net/annalist/c/EMPlaces_defs/d/Place_merged/Opole_P/entity_data.jsonld,
which is underlying data for
https://demo.annalist.net/annalist/c/EMPlaces_defs/d/Place_merged/Opole_P/)
This allows me to save data collections in GitHub, and load them into a local or
online deployment of my software as working conditions may require. (e.g.
https://github.com/gklyne/EMPlaces_defs.)
(Here, things may get a bit hazy, because I'm reporting from memory a problem
encountered some time ago...)
The above data is parsed fine by the Python rdflib libraries (and re-serializes
as expected Turtle using same at
https://demo.annalist.net/annalist/c/EMPlaces_defs/d/Place_merged/Opole_P/entity_data.ttl).
But when another developer tried to read and parse my JSON-LD data (I think it
was with a Node library) they were unable to access the context file.
The problem, as I recall, was different handling of the external context URI
Reference by the different libraries, particularly with respect to whether it
was interpreted relative to the referring document URI, or relative to the
previously declared "@base" URI. At the time, I dug into the (JSON-LD 1.0) spec
to try and find a definitive interpretation of how such a relative reference
should be handled, and basically failed to find something I could use. So I
just went with what works in the library I'm using.
(The workaround adopted so far has been to generate Turtle, and have other
developers read that.)
#g
--
Received on Monday, 10 June 2019 11:42:08 UTC