- From: Nathan <nathan@webr3.org>
- Date: Fri, 15 Jun 2012 12:00:47 +0100
- 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 UTC