- From: Alex Russell <slightlyoff@google.com>
- Date: Mon, 2 Dec 2013 17:26:17 -0800
- To: Phillip Hallam-Baker <hallam@gmail.com>
- Cc: Tim Berners-Lee <timbl@w3.org>, Tim Bray <tbray@textuality.com>, IETF Discussion <ietf@ietf.org>, JSON WG <json@ietf.org>, "Matt Miller (mamille2)" <mamille2@cisco.com>, "www-tag@w3.org" <www-tag@w3.org>, es-discuss <es-discuss@mozilla.org>
- Message-ID: <CANr5HFXS3jc+E_q7yrNO7abhh+Qoxz5a6kuTog12Gg=bV-W6tA@mail.gmail.com>
On Mon, Dec 2, 2013 at 1:30 PM, Phillip Hallam-Baker <hallam@gmail.com>wrote: > On Wed, Nov 27, 2013 at 11:51 PM, Tim Berners-Lee <timbl@w3.org> wrote: > > JSON is interesting in being a subset of ECMAscript. That is a big >> dependency -- will it be preserved? >> However as it is unwise to feed JSON into an ECMAscript processor for >> security reasons, that dependency may not affect code, just mean that JSON >> and ECMAscript parsers can share parts at the moment. >> > > As I see it, encoding X is a subset of encoding Y if and only if an > encoder for X will only produce outputs that are valid inputs of encoding Y. > > If an issue was to occur it would be because encoding Y has changed or the > definition of Y has changed. > > > One could imagine that the arc of ECMAscript's evolution could end up >> having all kinds of impact on the data structure syntax and semantics. >> (unordered sets as alternative to lists? who knows). So in that case one >> could imagine pressure to make a new version of JSON to match. >> > > Since we are talking about a serialization format, the distinction between > unordered sets and lists cannot occur at the wire level and this is where > we need interoperation. > > I do in fact have a schema compiler for JSON that allows an interface to > specify a set of entries rather than a list. But they are only ever > serialized as lists. > > Yes, literal ISO dates and dateTimes -- I added them to my own N3/turtle >> parsers without much fanfare, wish they had been put in the Turtle language >> too. Maybe they will. >> > > And you probably do exactly what I do and represent a DateTime > representation as a subset of String just as byte, int16, int32, int64, > uint* are all subsets of Integer. > > One of the things I think we have learned from JSON is that a > self-describing format only needs to specify the abstract type of the datum > and not the representation. > > For convenience, I allow a schema to specify the size of an integer and > whether it is signed or unsigned so that the code generator can create > appropriate code bindings. But none of that shows up on the wire, nor is > that particularly helpful. > > > What we are doing at this point is to fix a version of the JSON encoding > in time so that when a client and server are negotiating use of JSON > encoding, both sides know what is being negotiated. > > So hopefully JSON does not change in future, only the description of JSON. > > > That is not the same as saying that JSON meets all possible current and > future protocol needs. It does not. It is not possible to pass binary data > efficiently for a start and using decimal for floating point representation > is likely to make the format unacceptable for serious data applications > since it introduces conversion errors. > > The next question is whether those unmet needs should be addressed by an > entirely new encoding with a completely new syntax and structure or whether > we could extend the JSON model. My view is that we should do the second. > This seems entirely reasonable, so long as this extension is not called "JSON" (assuming it adds new grammar productions). Hence the request to normatively cite ECMA-404 and re-name any IETF-produced spec to reflect that it is intended to be a media-type registration (or extension document for protocol authoring, etc.), not an alternate (and therefore perhaps extensible) definition of JSON. > XML is fine for documents but it is not meeting my needs as a protocol > designer. I find XML Schema to be unnecessarily confusing and baroque, the > schema validation features supported don't help me in application > protocols. XML does not support binary encoding of cryptographic data or > floating point. > > There are many data encodings on offer but I would like to be able to > write one decoder that can consume a data stream that contains basic JSON > data and JSON with extensions. This makes negotiating an encoding in a Web > service easy, the consumer states which encodings are acceptable and the > sender makes sure what is sent is compatible, downgrading the encoding to > the level accepted if necessary. > > -- > Website: http://hallambaker.com/ >
Received on Tuesday, 3 December 2013 01:27:15 UTC