- From: Robert Sanderson <azaroth42@gmail.com>
- Date: Mon, 10 Apr 2017 09:45:12 -0700
- To: Linked JSON <public-linked-json@w3.org>
- Message-ID: <CABevsUEaug5VzmvvHqQ2FTi=eQW=5TxDwY6aqKBusBsOu2YXkA@mail.gmail.com>
All,
As work progresses towards 1.1, is there interest in the issue described in
this thread:
https://lists.w3.org/Archives/Public/public-linked-json/2016Sep/0007.html
To recap:
If a string is associated with a property defined as a languageMap, but
does not have a language associated with it, it creates two keys in the
JSON ... the langStrings go in one, and the non-langStrings in another.
This is unintuitive and exposes some of the weirdest weirdness of RDF
(langStrings) to unsuspecting JSON developers.
A proposal to discuss:
If compaction would result in an attempt to add a string without an
associated language into a LanguageMap, then the processor SHOULD assign
the undefined language code `UND` as the key in the array.
Thus,
_:x rdfs:label "Fish"@en, "Poisson"@fr, "51234" .
Would result in:
{
"@id": "_:x",
"label": {"en": "Fish", "fr": "Poisson", "UND": "51234"}
}
Rather than the current compaction result:
{
"@id": "_:x",
"label": {"en": "Fish", "fr": "Poisson"},
"rdfs:label": "51234"
}
Notes:
* PHP does not support "" as a key in a dictionary, and thus UND as the key
* This does not propose an inverse expansion rule, in case someone has an
explicit @UND langString [seems unlikely], where it should not become a
regular xsd:string
References:
https://github.com/digitalbazaar/jsonld.js/issues/151
https://github.com/IIIF/iiif.io/issues/755
Thoughts?
Rob
--
Rob Sanderson
Semantic Architect
The Getty Trust
Los Angeles, CA 90049
Received on Monday, 10 April 2017 16:45:46 UTC