- From: Niklas Lindström <lindstream@gmail.com>
- Date: Wed, 19 Feb 2020 22:15:40 +0100
- To: Gregg Kellogg <gregg@greggkellogg.net>
- Cc: public-json-ld@w3.org
- Message-ID: <CADjV5jdKhr7JbxdUYCrKkJYpoVTZ=ZOm=1v=Po6q7vedWidFiw@mail.gmail.com>
Hi Gregg, Thank you for your quick and thoughtful reply! I have raised an issue for this on Github [1]. (For clarity in this thread, one of my example links got mixed up. For the context switching manoeuvre, I first have a BibFrame source and a context to get the specific re-mappable shape, using indexes, see [2]. Then another context is applied to this structure, attempting to get other terms out from the same shape, with, importantly, other granularities (as per my original e-mail).) Cheers, Niklas [1]: https://github.com/w3c/json-ld-api/issues/380 [2]: https://json-ld.org/playground/#startTab=tab-compacted&json-ld=%7B%22%40context%22%3A%7B%22%40vocab%22%3A%22http%3A%2F%2Fid.loc.gov%2Fontologies%2Fbibframe%2F%22%2C%22rdf%22%3A%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22%7D%2C%22%40id%22%3A%22book%2Fone%22%2C%22%40type%22%3A%22Print%22%2C%22identifiedBy%22%3A%7B%22%40type%22%3A%22Isbn%22%2C%22rdf%3Avalue%22%3A%221234567890%22%7D%2C%22instanceOf%22%3A%7B%22contribution%22%3A%7B%22agent%22%3A%7B%22name%22%3A%22Some%20Body%22%7D%2C%22role%22%3A%7B%22%40id%22%3A%22http%3A%2F%2Fid.loc.gov%2Fontologies%2Fbibframe%2Faut%22%7D%7D%7D%2C%22provisionActivity%22%3A%7B%22%40type%22%3A%22Publication%22%2C%22agent%22%3A%7B%22name%22%3A%22PubCorp%22%7D%2C%22date%22%3A%221999%22%7D%7D&context=%7B%22%40context%22%3A%7B%22%40vocab%22%3A%22http%3A%2F%2Fid.loc.gov%2Fontologies%2Fbibframe%2F%22%2C%22rdf%22%3A%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22%2C%22%40version%22%3A1.1%2C%22value%22%3A%22rdf%3Avalue%22%2C%22role%22%3A%7B%22%40type%22%3A%22%40vocab%22%2C%22%40context%22%3A%7B%22%40base%22%3A%22http%3A%2F%2Fid.loc.gov%2Fvocabulary%2Frelators%2F%22%7D%7D%2C%22contributionByRole%22%3A%7B%22%40id%22%3A%22contribution%22%2C%22%40container%22%3A%22%40index%22%2C%22%40index%22%3A%22role%22%7D%2C%22provisionActivityByType%22%3A%7B%22%40id%22%3A%22provisionActivity%22%2C%22%40container%22%3A%22%40type%22%7D%2C%22identifiedByType%22%3A%7B%22%40id%22%3A%22identifiedBy%22%2C%22%40container%22%3A%22%40type%22%7D%7D%7D On Tue, Feb 18, 2020 at 9:05 PM Gregg Kellogg <gregg@greggkellogg.net> wrote: > On Feb 18, 2020, at 7:23 AM, Niklas Lindström <lindstream@gmail.com> > wrote: > > Dear all, > > Is it by design, or by some limitation in the algorithm (which may still > be rephrased?), that nested properties cannot have property-scoped contexts > in JSON-LD 1.1? > > It seems that neither the JSON-LD 1.1 Playground nor Gregg's distiller > supports this (i.e. the property-scoped contexts in the nest properties > have no effect on the expansion): > > - - - 8< - - - > > { > "@context": { > "@vocab": "http://purl.org/dc/terms/", > "bibo": "http://purl.org/ontology/bibo/", > "@version": 1.1, > "Print": "bibo:Book", > "name": "http://www.w3.org/2000/01/rdf-schema#label", > "instanceOf": "@nest", > "contributionByRole": { > "@id": "@nest", > "@context": { > "agent": "@nest", > "aut": "creator" > } > }, > "provisionActivityByType": { > "@id": "@nest", > "@context": { > "Publication": { > "@id": "@nest", > "@context": {"date": "published", "agent": "publisher"} > } > } > }, > "identifiedByType": { > "@id": "@nest", > "@context": { > "Isbn": {"@id": "@nest"}, > "value": "bibo:isbn" > } > } > } > , "@id": "book/one", > "@type": "Print", > "instanceOf": { > "contributionByRole": { > "aut": { > "agent": {"name": "Some Body"} > } > } > }, > "identifiedByType": { > "Isbn": { > "value": "1234567890" > } > }, > "provisionActivityByType": { > "Publication": { > "date": "1999", > "agent": {"name": "PubCorp"} > } > } > } > > - - - >8 - - - > > I am attempting a "neat trick" here, by compacting BibFrame data into maps > (see [2]), and then *swapping out* the context with another one mapping to > DC+BIBO, as per the context snippet above, using nests with local contexts > to treat the same JSON semantically differently. > > I'm pursuing multiple venues here, I just hoped that this "poor man's > inference trick" might prove fruitful. Also, in general, it might be > beneficial to consider (in the WG) whether this limitation on nests is by > design or simply an oversight. I know of the feature freeze, it's just not > obvious to me whether the Syntax prohibits this or if the algorithm in the > API spec misses an opportunity. > > > Hi Niklas, it’s good to have your attention on the spec and work on > another processor. > > There was no specific intention to _not_ support this, but looking at the > expansion algorithm, it brings up more considerations: for example, we > don’t support @context at the top-level of nested properties either. > > Nominally, to do what you want would be to duplicate step 8 (including > seeing if the key expanding to @nest has an @context defined on it), and > see if nesting-key has an embedded context defined, and update active > context for the recursive steps; we’d also need to revert after 14.2. > Similar steps would be required in the compaction algorithm. We’d also need > to consider if we wanted to act on an @context member of _nested value_ > after 14.2.2, and exclude the recursive step in that case. > > It would be a fairly big change, IMO, and given that we’re about to > release an updated CR, probably too late to do it. > > I’d suggest you raise an issue for tracking purposes; we can discuss, but > I suspect it would be marked “defer-future-version” at this point. > > Gregg > > Best regards, > Niklas > > PS. After a prolonged hiatus, I'm happy to have *finally* spent some > quality time with the JSON-LD 1.1 spec, mainly by working on an expansion > implementation for rdflib_jsonld [3] (currently passing about 80% of the > toRdf specs). > > [1]: > https://json-ld.org/playground/#startTab=tab-compacted&json-ld=%7B%22%40context%22%3A%7B%22%40vocab%22%3A%22http%3A%2F%2Fpurl.org%2Fdc%2Fterms%2F%22%2C%22bibo%22%3A%22http%3A%2F%2Fpurl.org%2Fontology%2Fbibo%2F%22%2C%22%40version%22%3A1.1%2C%22Print%22%3A%22bibo%3ABook%22%2C%22name%22%3A%22http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23label%22%2C%22instanceOf%22%3A%22%40nest%22%2C%22contributionByRole%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22agent%22%3A%22%40nest%22%2C%22aut%22%3A%22creator%22%7D%7D%2C%22provisionActivityByType%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22Publication%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22date%22%3A%22published%22%2C%22agent%22%3A%22publisher%22%7D%7D%7D%7D%2C%22identifiedByType%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22Isbn%22%3A%7B%22%40id%22%3A%22%40nest%22%7D%2C%22value%22%3A%22bibo%3Aisbn%22%7D%7D%7D%2C%22%40id%22%3A%22book%2Fone%22%2C%22%40type%22%3A%22Print%22%2C%22instanceOf%22%3A%7B%22contributionByRole%22%3A%7B%22aut%22%3A%7B%22agent%22%3A%7B%22name%22%3A%22Some%20Body%22%7D%7D%7D%7D%2C%22identifiedByType%22%3A%7B%22Isbn%22%3A%7B%22value%22%3A%221234567890%22%7D%7D%2C%22provisionActivityByType%22%3A%7B%22Publication%22%3A%7B%22date%22%3A%221999%22%2C%22agent%22%3A%7B%22name%22%3A%22PubCorp%22%7D%7D%7D%7D&context=%7B%22%40context%22%3A%7B%22%40vocab%22%3A%22http%3A%2F%2Fpurl.org%2Fdc%2Fterms%2F%22%2C%22bibo%22%3A%22http%3A%2F%2Fpurl.org%2Fontology%2Fbibo%2F%22%2C%22name%22%3A%22http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23label%22%7D%7D > > [2]: > https://json-ld.org/playground/#startTab=tab-compacted&json-ld=%7B%22%40context%22%3A%7B%22%40vocab%22%3A%22http%3A%2F%2Fpurl.org%2Fdc%2Fterms%2F%22%2C%22bibo%22%3A%22http%3A%2F%2Fpurl.org%2Fontology%2Fbibo%2F%22%2C%22%40version%22%3A1.1%2C%22Print%22%3A%22bibo%3ABook%22%2C%22name%22%3A%22http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23label%22%2C%22instanceOf%22%3A%22%40nest%22%2C%22contributionByRole%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22agent%22%3A%22%40nest%22%2C%22aut%22%3A%22creator%22%7D%7D%2C%22provisionActivityByType%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22Publication%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22date%22%3A%22published%22%2C%22agent%22%3A%22publisher%22%7D%7D%7D%7D%2C%22identifiedByType%22%3A%7B%22%40id%22%3A%22%40nest%22%2C%22%40context%22%3A%7B%22Isbn%22%3A%7B%22%40id%22%3A%22%40nest%22%7D%2C%22value%22%3A%22bibo%3Aisbn%22%7D%7D%7D%2C%22%40id%22%3A%22book%2Fone%22%2C%22%40type%22%3A%22Print%22%2C%22instanceOf%22%3A%7B%22contributionByRole%22%3A%7B%22aut%22%3A%7B%22agent%22%3A%7B%22name%22%3A%22Some%20Body%22%7D%7D%7D%7D%2C%22identifiedByType%22%3A%7B%22Isbn%22%3A%7B%22value%22%3A%221234567890%22%7D%7D%2C%22provisionActivityByType%22%3A%7B%22Publication%22%3A%7B%22date%22%3A%221999%22%2C%22agent%22%3A%7B%22name%22%3A%22PubCorp%22%7D%7D%7D%7D&context=%7B%22%40context%22%3A%7B%22%40vocab%22%3A%22http%3A%2F%2Fpurl.org%2Fdc%2Fterms%2F%22%2C%22bibo%22%3A%22http%3A%2F%2Fpurl.org%2Fontology%2Fbibo%2F%22%2C%22name%22%3A%22http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23label%22%7D%7D > > [3]: https://github.com/RDFLib/rdflib-jsonld/pull/74 > > >
Received on Wednesday, 19 February 2020 21:16:22 UTC