Re: [Json] JSON Schema Language: extensibility and unspecified properties

Pete Cordell <petejson@codalogic.com> Tue, 20 August 2019 11:54 UTC

Return-Path: <petejson@codalogic.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 2A2C81200B2 for <json@ietfa.amsl.com>; Tue, 20 Aug 2019 04:54:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 2rAWVhtEwSGu for <json@ietfa.amsl.com>; Tue, 20 Aug 2019 04:54:06 -0700 (PDT)
Received: from ppsa-online.com (ppsa-online.com [217.199.162.192]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 88C75120033 for <json@ietf.org>; Tue, 20 Aug 2019 04:54:05 -0700 (PDT)
Received: (qmail 19190 invoked from network); 20 Aug 2019 12:51:30 +0100
Received: from host86-157-45-36.range86-157.btcentralplus.com (HELO ?192.168.1.72?) (86.157.45.36) by lvps217-199-162-217.vps.webfusion.co.uk with ESMTPSA (AES128-SHA encrypted, authenticated); 20 Aug 2019 12:51:29 +0100
To: Ulysse Carion <ulysse@segment.com>, Richard Gibson <richard.gibson@gmail.com>
Cc: Carsten Bormann <cabo@tzi.org>, JSON WG <json@ietf.org>
References: <CAJK=1RhXp85cz-pOAQPw2JM=CYHgGSygj4Hw0spht56jbzQE2g@mail.gmail.com> <53094378-B559-49E1-B42B-54FBA8BC35AA@tzi.org> <CAJK=1Rj6Q3CvpF9aYML=47SF_XP49=O2hLhcBo8gZCb73C0RAw@mail.gmail.com> <FDB93E41-9D7D-4BF2-8D01-F4D075774848@tzi.org> <CAJK=1RiE_+nHkeB77DericN498w1v9mf2hsBgnQtgsZTVM9N9A@mail.gmail.com> <118F844A-453D-497D-8107-CF2BD05AC313@tzi.org> <CAJK=1Rgqek+rh+dj2xNWD7WKS48oQoHiqhj5dDT2D3dD7OZs1Q@mail.gmail.com> <CALH+fvpwM1hRByXv1y0UwUYPwKcb2JZT4v5qqZVeySFvEo-Z7A@mail.gmail.com> <CAJK=1RjJUzrpL+=t+5sXAnkYBDKpNazZCViY=PZt7qFFcN2t3g@mail.gmail.com> <CALH+fvqsn_purpNR8KHRe9GtdVizzDCbOSDTK8SMJc-8of-x8w@mail.gmail.com> <CAJK=1RjFaopyCWonU8kgkhowWzB8KXdVNQp_W+A3S7XFdz0fsg@mail.gmail.com>
From: Pete Cordell <petejson@codalogic.com>
Message-ID: <e1f6f8e9-2bdb-d4e9-3a87-13869adfc8cc@codalogic.com>
Date: Tue, 20 Aug 2019 12:54:02 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <CAJK=1RjFaopyCWonU8kgkhowWzB8KXdVNQp_W+A3S7XFdz0fsg@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/q4XWHPo-D2TPgYlZ95YbFqx1g-8>
Subject: Re: [Json] JSON Schema Language: extensibility and unspecified properties
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: Tue, 20 Aug 2019 11:54:08 -0000

On 20/08/2019 04:26, Ulysse Carion wrote:
>> An "int53" type or other means of requiring that a JSON number have zero fractional part and magnitude no greater than 2^53.
> 
> Ah -- in that case, I think it fails the other part of the criterion I
> put forward: having "a clear mapping to programming languages in
> widespread use today." In case the language is unclear, my thinking
> was that both (1) and (2) need to be satisfied for something to be
> included in the spec.
> 
> At least on my view, int53's correspondence is unclear -- should it be
> a double/f64, or a long/int64_t, with a runtime check to make sure
> it's in-bounds? That's not very idiomatic. Better, in my view, to
> stick to uncontroversial things?

IMO, the schema should be about representing what the protocol needs 
rather than how it is represented on a target machine.

An implementation may choose to store an int8 in a 32-bit integer. As 
long as it does suitable bounds checking at the appropriate points 
nothing outside the machine need know that it has chosen to do that.

There may be cases where there is a need for something that is larger 
than int32 but more inter-operable than int64. int53 satisfies that need 
in many cases.

Mapping it to either double/f64 or long/int64_t is a local 
implementation choice.

Pete.
-- 
---------------------------------------------------------------------
Pete Cordell
Codalogic Ltd
C++ tools for C++ programmers, http://codalogic.com
Read & write XML in C++, http://www.xml2cpp.com
---------------------------------------------------------------------