- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Wed, 21 Aug 2013 00:26:11 +0200
- To: "'Robert Sanderson'" <azaroth42@gmail.com>
- Cc: "'Linked JSON'" <public-linked-json@w3.org>, "'Edwin Shao'" <eshao@eshao.es>
On Wednesday, August 21, 2013 12:00 AM, Robert Sanderson wrote: > * {"@id": "uri"} -- hopefully with additional keys > * "uri" or "compactIRI" Framing just turn @id-objects to strings if there's a @type: @id coercion in the (frame) context. Otherwise they remain @id objects. > * List of the above when the predicate is repeated in the RDF Set the property's @container to @set and it will remain an array. There's also an API flag compactArrays which allows you to turn this behavior off globally. > One issue that came up with validation was determining if a string was > a URI or not given the context rules. The "format": "uri" rule isn't > correct, as it could be a compact IRI. Just don't compact URIs to strings and differentiante by @id vs. @value. > There also should be different > rules for "@type" URIs than regular resources as they should be just a > string rather than ever a resource conveyed as an object (right?) Right. You don't have to worry about that though because the JSON-LD API verifies that internally already. > And for values: > > * "value" (or value for integers) > * {"@value": "value"} hopefully with additional keys such as language > and type That can be prevented by not compacting at all, i.e., framing without a context. It's admittedly not very elegant though. > * List of the above when the predicate is repeated in the RDF See above > So even with framing there's still quite a lot of variability, > depending on the use case and context of course. It's sometimes tricky to work around that variability but tried hard to give developers a lot of control in that regard. > And this isn't a criticism of JSON-LD at all, just an observation of > the challenges with JSON-Schema :) :-) -- Markus Lanthaler @markuslanthaler
Received on Tuesday, 20 August 2013 22:26:41 UTC