W3C home > Mailing lists > Public > public-rdf-wg@w3.org > June 2012

JSON-LD Comments

From: Nathan <nathan@webr3.org>
Date: Fri, 15 Jun 2012 12:00:47 +0100
Message-ID: <4FDB15DF.7090809@webr3.org>
To: Linked JSON <public-linked-json@w3.org>, W3C RDF WG <public-rdf-wg@w3.org>
CC: Manu Sporny <msporny@digitalbazaar.com>, Gregg Kellogg <gregg@kellogg-assoc.com>
Hi All,

Some feedback on the JSON-LD spec:

1) I personally find keyword @type to be very confusing/overloaded, when 
considering the usage of the word in RDF, it appears that @datatype may 
be more accurate in most cases within JSON-LD

2) @language, it may be good to align with RDF concepts to say that it's 
value must be "a non-empty language tag as defined by [BCP47]. The 
language tag must be well-formed according to section 2.2.9 of [BCP47], 
and must be normalized to lowercase."

3) "It is also possible to override the default language or specify a 
plain value by omitting the @language tag or setting it to null" - 
setting it to null makes sense, using @value and omitting @language 
seems like unexpected functionality to me and a big potential gotcha.

4) "typed values or values that are subject to type coercion won't be 
language tagged." what is they are type coerced to, or have a type of, 
rdf:langString?

5) I can't seem to find any guidance on using both @container and @type, 
or @container and @language, within a context? Although one example does 
include both @type and @container

6) I can't seem to find where the spec defines valid values for 
@container (i.e. that it MUST be @list or @set)

7) 4.1 Typed Values - trimmed quote:
""
   "age": 31

   The example above is really just a shorthand for the following:

   "age":
   {
     "@value": "31",
     "@type": "http://www.w3.org/2001/XMLSchema#integer"
   }
""
I can't see how that's true, javascript number isn't equivalent to 
xsd:integer, IIRC it corresponds to xsd:double (the 64 bit IEEE 754), 
and would need coerced to xsd:integer (or any of the other types derived 
from xsd:decimal)

8) 4.5 Expanded Term Definition - it would be clarifying/useful to see 
the equivalent turtle for the examples in this section.

9) 4.7 IRI Expansion - quote:
""
{
   "@context":
   {
     "foaf": "http://xmlns.com/foaf/0.1/",
     "xsd": "http://www.w3.org/2001/XMLSchema#",
     "name": "foaf:name",
     "foaf:age":
     {
       "@id": "foaf:age",
       "@type": "xsd:integer"
     },
     "http://xmlns.com/foaf/0.1/homepage":
     {
       "@type": "@id"
     }
   },
   ...
}
In order for the absolute IRI to match above, the absolute IRI must also 
be used in the JSON-LD document. Also note that foaf:homepage will not 
use the { "@type": "@id" } declaration because foaf:homepage is not the 
same as http://xmlns.com/foaf/0.1/homepage. That is, a JSON-LD processor 
will use direct string comparison when looking up terms in a context 
before it applies the prefix lookup mechanism.
""

This is very confusing, also what direct string comparison will match 
for "foaf:homepage" in the context? I can't see "foaf:homepage" in that 
@context? (even if it was in there, still v confusing / weird)

May have more questions later,

Best,

Nathan
Received on Friday, 15 June 2012 11:32:45 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:49 GMT