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

"Pete Cordell" <petejson@codalogic.com> Thu, 20 February 2014 13:02 UTC

Return-Path: <petejson@codalogic.com>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E3291A014F for <json@ietfa.amsl.com>; Thu, 20 Feb 2014 05:02:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.398
X-Spam-Level:
X-Spam-Status: No, score=0.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_HOST_EQ_D_D_D_D=0.765, HELO_MISMATCH_COM=0.553, RDNS_DYNAMIC=0.982, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jYT6w8FaFlQc for <json@ietfa.amsl.com>; Thu, 20 Feb 2014 05:02:45 -0800 (PST)
Received: from ppsa-online.com (lvps217-199-162-192.vps.webfusion.co.uk [217.199.162.192]) by ietfa.amsl.com (Postfix) with ESMTP id AC5201A0155 for <json@ietf.org>; Thu, 20 Feb 2014 05:02:41 -0800 (PST)
Received: (qmail 6067 invoked from network); 20 Feb 2014 13:01:23 +0000
Received: from host81-155-177-242.range81-155.btcentralplus.com (HELO codalogic) (81.155.177.242) by lvps217-199-162-217.vps.webfusion.co.uk with ESMTPSA (RC4-MD5 encrypted, authenticated); 20 Feb 2014 13:01:21 +0000
Message-ID: <47BB9131737D42218A6382DEF45BBE2C@codalogic>
From: Pete Cordell <petejson@codalogic.com>
To: Cyrus Daboo <cyrus@daboo.name>, Carsten Bormann <cabo@tzi.org>, JSON WG <json@ietf.org>
References: <C87F9B96-E028-4F0E-A950-B39D3F68FFE7@vpnc.org> <CAMm+LwhUh_yN-hzaoDWfrO_H2iGvYvj99BCE4EcYmgqCPqXoVQ@mail.gmail.com> <CAHBU6itpttXBfVQGKw=u==k_XSdrht81+m_YDNZP6RM+=9CNow@mail.gmail.com> <CAK3OfOjHkBFOzJSx=bhhoQJ8Z2bWyEXK52dNyYGWVb9FAj99ow@mail.gmail.com> <CAHBU6itzQ0rzU3EUYUqzm2qhx03qk1mpx2sehS_zeiw1ypcEgw@mail.gmail.com> <CAK3OfOhfjkbq6eREkt=MBVL1C9ubh-6My3Lvg-mnOxD0+cpN1Q@mail.gmail.com> <CAHBU6isZbew8O1HJ+XcFsMCR42iDoO_uemPXVwa3=vM5A=MngA@mail.gmail.com> <CAK3OfOgmVsNJqrqCfsD7h37axssOoaX3DGHqO=bTn5bWrA+MFA@mail.gmail.com> <A4B53816-6FBF-4A37-8BC9-F0A9D0867BCD@tzi.org> <357740A8AA0F4316BE630917321FAB4D@codalogic> <B1EBE05A69362F001777F807@cyrus.local>
X-Unsent: 1
Date: Thu, 20 Feb 2014 13:01:54 -0000
X-Vipre-Scanned: 00EA2BEF00682600EA2D3C
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="iso-8859-1"; reply-type="response"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
Archived-At: http://mailarchive.ietf.org/arch/msg/json/6NrKgLwnM9vcEFhBjaFGDAC0t08
Subject: Re: [Json] Nudging the English-language vs. formalisms discussion forward
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/json/>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Feb 2014 13:02:47 -0000

----- Original Message From: "Cyrus Daboo"
> Please take a look at Andrew Newton's spec 
> (<https://datatracker.ietf.org/doc/draft-newton-json-content-rules/>).

Thanks Cyrus.  It certainly looks like another option.  I would suggest that 
the authors could look at the following to improve it:

- It doesn't seem to have much in the way of supporting modularity.  It 
would be attractive if a schema could pull in and use definitions defined in 
other documents.  Many IETF protocols consist of suites of components and 
support for that would be handy.

- It doesn't seem to support third-party extensions to a core protocol.  For 
example, HTTP and SIP are defined in a core RFC but there are then a number 
of additional RFC that define extensions.  Support for expressing how a new 
extension can extend an existing external extension would be good.  (Just 
about every schema language I've seen fails miserably at this!)

- The plethora of data types are a problem for schema languages.  I've come 
to the conclusion that the best option is to declare a "microformat" 
pseudo-type that basically says this is a string encoded in a particular 
way.  The 'particular way' can then be defined in narrative form as required 
(80-20 etc).  This avoids having to define the kitchen sink of data types up 
front.  e.g.:

struct Asset
{
    GPSLocation location;
};

microformat GPSLocation;
    // A GPSLocation is a pair of comma separated floating-point
    // numbers representing longitude and latitude.
    // e.g. "location": "0.0,51.5"

- Does it allow multiple roots to be defined?  Many protocols have 
request/response type pairs so it's nice to define a protocol that has the 
form:

"request": {...} and "response": {...}

Pete Cordell
Codalogic Ltd
C++ tools for C++ programmers, http://codalogic.com
Read & write XML in C++, http://www.xml2cpp.com
----- Original Message ----- 
From: "Cyrus Daboo" <cyrus@daboo.name>
To: "Pete Cordell" <petejson@codalogic.com>; "Carsten Bormann" 
<cabo@tzi.org>; "JSON WG" <json@ietf.org>
Sent: Thursday, February 20, 2014 2:05 AM
Subject: Re: [Json] Nudging the English-language vs. formalisms discussion 
forward


> Hi Pete,
>
> --On February 19, 2014 at 10:29:32 PM +0000 Pete Cordell 
> <petejson@codalogic.com> wrote:
>
>> I thought I'd throw down n gauntlet as a baseline for something to be
>> beat. So I started with something C like, and stole stuff from other
>> languages and came up with the following
>>
>
> Please take a look at Andrew Newton's spec 
> (<https://datatracker.ietf.org/doc/draft-newton-json-content-rules/>).
>
> I have used that in two specs of my own:
>
> <http://tools.ietf.org/html/draft-douglass-timezone-service-10#section-7>
> <http://tools.ietf.org/id/draft-daboo-aggregated-service-discovery-03.txt> 
> Appendix B
>
> I found it to be easy to use and provide the necessary "commentary" for 
> the JSON format chosen for those specs. I know several others who have 
> implemented the timezone service protocol and we had no issues with 
> interoperability related to the JSON format (beyond some poor text 
> descriptions on my part).
>
> As Andrew noted earlier, his spec could probably be simplified some more - 
> but we certainly don't need anything more complicated than what is there 
> now.
>
> -- 
> Cyrus Daboo
>