- 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