RE: Requirements update

I finally had some time to review the requirements. All in all I'm happy
with them, but I would like to discuss basically two things on the mailing
list.


> Gregg Kellogg wrote:
>
> 3. All JSON constructs MUST have semantic meaning in a JSON-LD
> document: JSON objects, arrays, numbers, strings and the literal
> names false, and true.

I would like to add NULL..


> 13. The literal value of JSON null is undefined.

Why? I think sometimes it is good to be able to say that something is NULL
instead of just saying nothing about it. Simple (and probably stupid)
example:

I have a customer object which is linked to a user account. If I just leave
out that triple I don't know if that customer has a user account or not
(open world assumption). If I put in a triple whose object is NULL I know
that that customer for sure doesn't have a user account.

What was the rationale to remove it? I think a lot of JSON developer are not
familiar with the open world assumption and allowing NULL  would help in a
lot of situations.


> 14. A JSON array MAY be used to associate multiple objects
> with a subject through a common property.
> 15. Without explicit syntactic support, JSON arrays MUST NOT
> be interpreted as defining an object ordering.

Why should we do that? Why don't we do it the other way round? We shouldn't
change the semantics of a JSON array which is defined to be ordered. Instead
of having a @list element we could define a @set element.


> 16. A JSON-LD document SHOULD be able to express and ordered
> list objects.

Fully agree, but don't like to change existing semantics without adding any
real advantage. For the parser it's no difference, but a developer familiar
with JSON may have to debug his code for quite some time since he figures
out that in JSON-LD an array is, in contrast to plain JSON, not ordered.


--
Markus Lanthaler
@markuslanthaler

Received on Friday, 19 August 2011 13:49:29 UTC