- 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:28:19 UTC