- From: Gregg Kellogg <gregg@kellogg-assoc.com>
- Date: Sun, 4 Dec 2011 02:49:55 -0500
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- CC: Linked JSON <public-linked-json@w3.org>
On Dec 3, 2011, at 11:11 PM, Markus Lanthaler wrote: >>>> Object expansion should expand every value, not just those that have >>>> keys that are subject to datatype or list coercion. Some examples: >>> >>> What exactly do you mean by "should expand every value"? >> >> As stated, the algorithm recurses through arrays to objects or strings, >> for objects, expands values of keys, only if the key is the target of a >> @datatype coercion in the context. Thus, if "foo" => "bar", and "foo" >> was declared with an IRI datatype, it would expand "bar" into an IRI. > > OK, now I've understood what you meant. Thanks > > >> But, looking at the algorithm again, I think my examples are mostly >> covered. The remaining issues have to do with values that are not >> arrays or objects. Also, it should be clear that the determination of >> key coercion caries through to @list, @iri, @datatype and array >> processing. >> >> 1) Does {"foaf:age": 54} cause 54 to be expanded to {"@literal": "54", >> "@datatype": "xsd:string}. IMO, I think that non-string types such as >> boolean, integer and numeric are not subject to expansion, in spite of >> any coercion. > > .. but it should be expanded when normalizing a document. Note clear, this would involve introducing xsd:integer and the others, where before it was pure JSON-LD, without reference to any external XSD types. That is why I suggested that the native types remain in their original form. >> 2) {"foaf:homepage", {"@iri": "ex:home"} should cause "ex:home" to be >> expanded, whether or not "foaf:homepage" is subject to coercion > > Agree > > >> 3) {"@subject": "ex:home", "@type": "foaf:Document"} should cause both >> "ex:home" and "foaf:Document" to be expanded > > Agree > > >> 4) {"foo": ["ex:bar", "ex:baz"]} should cause all or none of ex:bar >> and ex:baz to be expanded, depending on coercion rules for "foo". This >> isn't clear now, as when doing array expansion, there's no discussion >> of a "closest" key. > > If "foo" is coerced to @iri then all the array item should be expanded, > otherwise none. Yes, but the algorithm as defined doesn't describe this, at least to my reading. >> 5) {"foo": {"@list": ["ex:bar", "ex:baz"]}, same argument as for 4). > > Same here, just if "foo" is coerced to @iri. Agreed that that is what should happen, just not what the spec says right now. Gregg > -- > Markus Lanthaler > @markuslanthaler > > >
Received on Sunday, 4 December 2011 07:50:53 UTC