Re: [Json] Adding integers to JSON (Re: JSON Schema Language)

Phillip Hallam-Baker <ietf@hallambaker.com> Thu, 09 May 2019 17:15 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 52AAE12011E for <json@ietfa.amsl.com>; Thu, 9 May 2019 10:15:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.649
X-Spam-Level:
X-Spam-Status: No, score=-1.649 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no autolearn_force=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 MpQRucYwvpjR for <json@ietfa.amsl.com>; Thu, 9 May 2019 10:15:24 -0700 (PDT)
Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 056CA1200E5 for <json@ietf.org>; Thu, 9 May 2019 10:15:23 -0700 (PDT)
Received: by mail-oi1-f173.google.com with SMTP id 143so2494989oii.4 for <json@ietf.org>; Thu, 09 May 2019 10:15:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lhfjaP74mIkJHtMTWLOd1ySPaeJz64Z191ZTRInx9us=; b=uQ7ti9MiICEzJI4GBi7QtD613alu8h0Z8O2Y62c419IPjI8bPf1K30BL7t08BBFZ5A CJXWES0IzSgvgJCaeSkvEAGrPqqGnOWtlzmm//qYEKkSl6zcCZqMe5vgDfP1AAQoCOrE uOv7woVvAbgI7BxYBnHc+Clv2DLQ5Yk1VwvVffEZTA66D9Xu/7+8njfAscbx6Xb2WD8r S6jShHxA5SnljcP/hrdGBOLF1lJfzzAWssfTRqUtw1yXQWe46dWQalSstBIASlMZdRWL Il/JCkOntTsY0phEd+DjV61tnJXGumM+dBSe/wSRWMWEuIHdhpYbVjd+hP8mpu/DqyKO UkTA==
X-Gm-Message-State: APjAAAUWCQAtezZ1euMpWvjyFSGYgzLDXWujlohvNo6gq0xSAumopF1E G8dZdRlurHtq27eoPaFspJaGZkYCE3s16y2OiKs=
X-Google-Smtp-Source: APXvYqy1NrYyy/9mwGmotqleAptiWF34Txl+BwfQHcjArCDkgzXj1FSV50bL4G7d4Mir/s3eL/PCuCbFnM1HTYXG+9s=
X-Received: by 2002:aca:c348:: with SMTP id t69mr2263861oif.95.1557422123109; Thu, 09 May 2019 10:15:23 -0700 (PDT)
MIME-Version: 1.0
References: <CAHBU6itE8kub1qtdRoW8BqxaOmzMv=vUo1aDeuAr3HX141NUGg@mail.gmail.com> <77994bdb-a400-be90-5893-b846a8e13899@gmail.com> <20190507154201.GP21049@localhost> <CEF72901-5077-4305-BA68-60624DCE952D@bzfx.net> <69ea0c99-e983-5972-c0aa-824ddeecb7c4@dret.net> <CAMm+LwjyVjnJuWE4+a9Ea=_X1uuEGuK+O4KojzN3uVQ+s+HqUQ@mail.gmail.com> <058f58a3-dd27-998e-5f54-4874aff5f2f0@dret.net> <20190507221726.GR21049@localhost> <CAJK=1Rj7PBD-bbwvsqgjQQzp4Aoidb-W2q5Lj6asMHHDHaTVYQ@mail.gmail.com> <702ee54b-9465-7ca8-b521-2a88c1a47785@gmail.com> <20190508160740.GU21049@localhost> <ACD9A0A2-A75E-4B6E-9E9B-165DC222781B@tzi.org>
In-Reply-To: <ACD9A0A2-A75E-4B6E-9E9B-165DC222781B@tzi.org>
From: Phillip Hallam-Baker <ietf@hallambaker.com>
Date: Thu, 09 May 2019 13:15:11 -0400
Message-ID: <CAMm+Lwi20mv1u0KpO0GWpxoCEOj_CERFieA0RuiJ1a4innAURg@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Nico Williams <nico@cryptonector.com>, JSON WG <json@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000069d0c10588779872"
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/TsztC0OUFLp3bGW8BBUMiePqu7A>
Subject: Re: [Json] Adding integers to JSON (Re: JSON Schema Language)
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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, 09 May 2019 17:15:26 -0000

On Wed, May 8, 2019 at 1:00 PM Carsten Bormann <cabo@tzi.org> wrote:

> On May 8, 2019, at 18:07, Nico Williams <nico@cryptonector.com> wrote:
> >
> > That's an interop bug.  They should fix it.
>
> It also nicely demonstrates the law of inevitable extensibility.
>
> JSON was designed not to provide extensibility.  Ever.
> Radical, but a well motivated idea at the time.
>

My understanding is that you can extend JSON if you like. Just call it
something else. And that makes perfect sense for a data encoding.

My extensions to JSON are called JSON-B, J-SON-C and JSON-D. Each extension
adds functionality that is critical for certain applications (verbatim
encoding of binary and text blobs, compression, data types).

Since they are strict supersets, an implementation needs separate encoders
for each one but a JSON-B decoder will serve JSON and JSON-B extensions. So
an implementation only needs one decoder.

If we were going to do a text encoding for scientific data, the changes I
would propose would be

* Hex encoding for floats so as to preserve precision of Real64 and Real32
data.
* Allow compact encoding of table data without having to specify tags for
every data item.
* Allow for comments
* Ensure that the new format can be loss-lessly converted to and from JSON.

But it would not be JSON. It would be something else. And that is OK
because if I am trying to read a data file, I need to know the encoding.

I would really like to see a JSON-like format emerge as an alternative to
CSV because, I have spent too much time trying to analyze files that
contain data separated from the context. If I am doing science, I want
files that look like this

{ "TemperatureData" : {
   "StartDate" : "2010-1-1",
   "EndDate" : "2011-2-2",
   "Location" : "Rome",
   "Units" : "Centigrade",
   "Channels" : [ "C1", "C2", "C3", "C4",
   "Readings" : [[ 20.2, 23.3, 44.3, 20.1 ... ] [34.3, 3.4 ...] ... ]

Not this
20.2, 23.3, 44.3, 20.1 ...
34.3, 3.4...
...