Re: [Json] Nudging the English-language vs. formalisms discussion forward

Phillip Hallam-Baker <> Wed, 19 February 2014 22:28 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 4C3191A025C for <>; Wed, 19 Feb 2014 14:28:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id AKGQmbdvqrbE for <>; Wed, 19 Feb 2014 14:28:21 -0800 (PST)
Received: from ( [IPv6:2a00:1450:4010:c04::229]) by (Postfix) with ESMTP id 961011A0226 for <>; Wed, 19 Feb 2014 14:28:20 -0800 (PST)
Received: by with SMTP id q8so784599lbi.0 for <>; Wed, 19 Feb 2014 14:28:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WBkYow+FcKosRECdfMFy+lY1EI1BfKyflycRkK2kwMM=; b=pzGcFm/r6UqS/7LmX4T8nt4dLbBrQVfi2Eht7W+X5nRkLUZsCH4g9OlH1EcYvRsCWk WxB3A0JUgpDEJyfR0G6+MyPhWrIeCdIjihcqgEgGHDX2bfLluoo3LXEKMd2CxtHUcVax pdNWSnyaqR6AaCeMRZuU7BM5Eh21IvGZ5iua2lciq7UALFDYbliAF3YTMXtEep0uHXNW Q6NDMO9atsrQeyRzbSsOkwBoPieVUSzTQNU7Lqj6hj3PghHWBM5EcBk10yFdOLkM1Y4H YuxTorCCuo7Ra2XE4OcgxfLRUA+qq19SeAHCEIjDweRY//+awfNSaO60LMAE8Kg0pGV0 bP3Q==
MIME-Version: 1.0
X-Received: by with SMTP id a8mr2344418lbv.68.1392848896514; Wed, 19 Feb 2014 14:28:16 -0800 (PST)
Received: by with HTTP; Wed, 19 Feb 2014 14:28:16 -0800 (PST)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <>
Date: Wed, 19 Feb 2014 17:28:16 -0500
Message-ID: <>
From: Phillip Hallam-Baker <>
To: Barry Leiba <>
Content-Type: multipart/alternative; boundary=001a11c23e2eb3e24404f2c9e795
Cc: JSON WG <>
Subject: Re: [Json] Nudging the English-language vs. formalisms discussion forward
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 19 Feb 2014 22:28:23 -0000

On Wed, Feb 19, 2014 at 5:04 PM, Barry Leiba <>wrote;wrote:

> Using Carsten's "summary" note as an anchor, let me back up to where
> this proposal came from.
> I'm interested in providing a recommended way (through a non-binding,
> Informational document that describes it) in which protocol elements
> that are JSON things can be described in documents.  I'm hoping we can
> keep this work item to that limited scope, and not go too far in
> trying to devise something mega-general that does everything but
> eat.[1]
> That means that I'm looking for something that addresses the 90% case
> nicely and cleanly.  The 10% of the messier cases should be workable,
> but can be messier, I think.  As an example of what made me think
> about this, look at these:
> 1. Section 6.1.1 of
> 2. Section 6.2.2 of
> Note that the attempt to reproduce the JSON ABNF, in version -12, had
> a number of problems.  I think the mechanism in version -13 is much
> cleaner... and it's simple and easy to explain.  Nested and complex
> structures can be handled as they are in ABNF, by naming the nested or
> complex bit and then expanding it in another "rule".  I think this
> sort of mechanism meets the "addresses the 90% case nicely" desire.  I
> like it because it's easy to write and, more importantly, easy to read
> and understand.

It is obviously possible to create an ABNF description of JSON (call this X)

It is thus possible to create an ABNF description of a Web Service message
as an ABNF description. (Call this Y)

What I think is going to be very hard is proving that a given Y is a subset
of X. And if we do that we risk having specifications that are not actually
JSON but only JSON-like.

Unless that is we start off with a tool that generates Y in a fashion that
makes it easy to check that it is a subset of X.