- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Sun, 4 Dec 2011 16:06:50 +0800
- To: "'Linked JSON'" <public-linked-json@w3.org>
- Cc: "'David I. Lehn'" <dil@lehn.org>
David I. Lehn wrote:
> In IRC I commented that the '"@list":true' style seems non-optimal.
> To go along with @datatype I suggested '"@parsetype":"list"' or
> '"@parsetype":"@list"'. Dave Longley suggested the "@structure"
> keyword instead. That name seems a better choice. This syntax allows
> more flexibility to support types like "@set" or similar without
> another '"@{type}":true' construct. Now in issue #44 [2] we can see a
> use case of this in @contexts for framing. I'm thinking this is the
> right direction to head. This would make the above something like:
>
> """
> "foo": {"@iri": "http://uri.foo", "@datatype": "@iri",
> "@structure": "@list"}
> """
It's true that the "@list: true" approach doesn't scale nicely but I think
whenever possible we should avoid introducing new keywords. I though a bit
more about this issue and came up with another possible solution for it,
namely:
"foo": {"@iri": "http://uri.foo", "@datatype": "@list[@iri]" }
or
"foo": {"@iri": "http://uri.foo", "@datatype": "@list[xsd:date]" }
IMO this syntax would be intuitively understood by developers, it scales
nicely (@set[...]) and wouldn't complicate processing too much. Of course
the same syntax can also be used for @type to support arrays of objects. And
even if we merge @type and @datatype it would still work as @type would
require an array of objects while @datatype would require an array of
literals (whether they are JSON strings, numbers, or booleans doesn't
matter).
> Would it be better to use arbitrary IRI types instead of "@list"
> style? Ie, '"@structure":"jsonld:list"' or something? Maybe @list and
> @set would be aliases for IRIs.
I think we agreed quite some time ago to not create a JSON-LD vocabulary..
--
Markus Lanthaler
@markuslanthaler
Received on Sunday, 4 December 2011 08:07:31 UTC