- From: Gregg Kellogg <gregg@kellogg-assoc.com>
- Date: Thu, 8 Sep 2011 09:59:16 -0400
- To: Niklas Lindström <lindstream@gmail.com>
- CC: "public-linked-json@w3.org" <public-linked-json@w3.org>
On Sep 7, 2011, at 2:42 PM, Niklas Lindström wrote: > Hi all! > > The majority of scenarios where I use RDF contain lots of > language-tagged literals. Although there is support for this using the > "@language + "@literal" object construct, I find that this is often > cumbersome to use in practice. Since I believe that language-literals > are very common in general, I'd like to suggest some options. > > > 1. Add JSON-LD support for declaring a document-wide language > directive (within the context or at the top level, i.e. where > "@context" and the optional "@base" appear). This is for scenarios > where there is one dominant language for a given resource. > > This would enable us to use @language like this: > > { > "@context": ..., > "@language": "en", > "@subject": "http://example.org/", > "title": "The Example" > } > > yielding: > > <http://example.org/> :title "The Example"@en . > > Multiple values would work as well, so: > > { > ..., > "keyword": "Example", "Draft" > } > > would yield: > > <http://example.org/> :keyword "The Example"@en, "Draft"@en . > > > To make this play well with any plain literals (i.e. xsd:string > literals in RDF 1.1), there are two alternatives: > > A) If "@language" is given at the top level, every plain string value > in the JSON would become language-tagged unless it's coerced (i.e. the > property used for a string is defined in a "@coerce" directive). Plain > literals in the RDF 1.0 sense could be coerced using an empty key (or > perhaps "@plain") in coerce if necessary. > > Of course any literal given in "expanded form" would, just like in > RDFa, not be parsed using the top level language. I.e. it would > naturally not have any effect on literals with an explicit "@datatype" > (or empty "@language"). +1 great idea. > B) If the majority of values in a document are expected to be > non-datatyped (and non-coerced) plain literals, it would be more > reasonable to provide a special coercion token, say "@langliteral" (or > perhaps "@localized"), which cause values for terms declared with this > coercion to be tagged with the top-level language. In the example > above, that'd mean adding: > > "@coerce": { > "@langliteral" ["title", "keyword"] > } > > to the context. I could possibly see going with "@language": ["title, "keyword"], but I don't know of particularly good use cases for this, so +0. > 2. There could also be a mechanism to make data where there are > literals in several languages easier to use. We could define a special > coercion called "@langmap", which expects values to be objects with > the languages as keys. Thus this: > > { > "@context: { > ..., > "@coerce: { > "@langmap": [title] > }, > }, > "@subject": "http://example.org/", > "title": {"en": "The Example", "sv": "Exemplet"} > } > > would yield: > > <http://example.org/> :title "The Example"@en, "Exemplet"@sv . > > This mechanism would of course also work when there is only one > language for the value of a property. > > Multiple values per language would look like: > > { > ..., > "keyword": {"en": ["Example", "Draft"], "sv": ["Exemplet", "Utkast"]} > } > > yielding: > > <http://example.org/> :keyword "The Example"@en, "Draft"@en, > "Exemplet"@sv, "Utkast"@sv . > > > (Of course I think that the current expanded form is necessary at > times as well. But the suggestions I present here are to facilitate a > compact form, similar to the existing "@coerce" feature; both to be > used for simplifying data into a more JSON-"native" form. I have come > across needs for both of these forms when exposing data in web > services aimed for non-RDF-savvy developers (and e.g. when creating > JSON from RDF to index in ElasticSearch).) -1, too complicated. > If I had to pick one, I'd say #2 is more versatile. But I've found #1 > very desirable to get the simplest kind of JSON out (in web services). > In any case, this issue is important for me. > > Best regards, > Niklas >
Received on Thursday, 8 September 2011 13:59:52 UTC