- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Thu, 12 Jan 2012 21:25:40 +0800
- To: "'Ivan Herman'" <ivan@w3.org>
- Cc: "'Linked JSON'" <public-linked-json@w3.org>
- Message-ID: <00d601ccd12d$b0839a50$118acef0$@lanthaler@gmx.net>
Ivan,
I agree, we should disallow that optimization. It is really only needed if
the document contains a number of nodes at the top level and the context
should not be repeated. I think we can fall back on the fact that in JSON-LD
we allow to mix plain old JSON with linked JSON. So a developer could simple
us a term such as "data" that is not mapped/coerced to anything. Taking the
example from the spec [1], it would look as follows:
{
"@context": { "foaf": "http://xmlns.com/foaf/0.1/" },
"data": [
{
"@id": "_:bnode1",
"@type": "foaf:Person",
"foaf:homepage": "http://example.com/bob/",
"foaf:name": "Bob"
},
{
"@id": "_:bnode2",
"@type": "foaf:Person",
"foaf:homepage": "http://example.com/eve/",
"foaf:name": "Eve"
},
{
"@id": "_:bnode3",
"@type": "foaf:Person",
"foaf:homepage": "http://example.com/manu/",
"foaf:name": "Manu"
}
]
}
The Turtle output looks as follows:
_:c14n0
<data>
_:c14n1,
_:c14n2,
_:c14n3.
_:c14n1
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
"http://xmlns.com/foaf/0.1/Person";
<http://xmlns.com/foaf/0.1/homepage> "http://example.com/bob/";
<http://xmlns.com/foaf/0.1/name> "Bob".
_:c14n2
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
"http://xmlns.com/foaf/0.1/Person";
<http://xmlns.com/foaf/0.1/homepage> "http://example.com/eve/";
<http://xmlns.com/foaf/0.1/name> "Eve".
_:c14n3
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
"http://xmlns.com/foaf/0.1/Person";
<http://xmlns.com/foaf/0.1/homepage> "http://example.com/manu/";
<http://xmlns.com/foaf/0.1/name> "Manu".
The only additional blank node which is currently created in the playground
is an error in my opinion - but it is currently specified that way. I've
filed ISSUE-56 for this.
[1] http://json-ld.org/spec/latest/json-ld-syntax/#rdfa
--
Markus Lanthaler
@markuslanthaler
> -----Original Message-----
> From: Ivan Herman [mailto:ivan@w3.org]
> Sent: Thursday, January 12, 2012 8:40 PM
> To: Markus Lanthaler
> Cc: 'Linked JSON'
> Subject: Re: clarification/precision question on the JSON-LS syntax
> document
>
> Markus,
>
> after we have established that is it correct... yes, it looks weird.
> And if it looks weird than it may be misleading, and may lead to author
> errors. If so, my instinctive reaction would be to disallow it. But, of
> course, this comes out of a necessity, namely that we have a graph and
> not a tree, ie, we need several roots. And the syntactic restrictions
> of JSON force us to do something. Ie, we have to have something.
>
> I understand (and agree with) the requirement to reduce the number of
> keywords in JSON-LD. But maybe this is the case where it is worth
> making things explicit and not to try to conflate several different
> meanings into one keyword. What I would propose is to have a separate
> keyword, say, @root, that can be used to denote what we do here with
> @id. I would actually even introduce the extra restriction that this
> keyword can appear only at the top level of a JSON-LD file, although if
> we think of cut and paste from one JSON-LD file to the other, we may
> not want to have this. In parallel, I would disallow usage of @id in
> the examples below.
>
> My 2 cents...
>
> Ivan
Received on Thursday, 12 January 2012 13:33:12 UTC