Re: [Json] JSON Schema Language

Austin Wright <aaa@bzfx.net> Tue, 07 May 2019 21:50 UTC

Return-Path: <aaa@bzfx.net>
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 3397A1200EB for <json@ietfa.amsl.com>; Tue, 7 May 2019 14:50:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=bzfx.net
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 x5Qopr76x7Ge for <json@ietfa.amsl.com>; Tue, 7 May 2019 14:50:42 -0700 (PDT)
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) (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 503CE120086 for <json@ietf.org>; Tue, 7 May 2019 14:50:42 -0700 (PDT)
Received: by mail-pf1-x42f.google.com with SMTP id 10so9343268pfo.5 for <json@ietf.org>; Tue, 07 May 2019 14:50:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bzfx.net; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=87MY/b89nCqfDryVFBdkb86a+QRoi8uQpYD2ETdeeQM=; b=xkuagk3+3cmtGKt1LKhnnLlAOBxz18PHPgvYoYPkMTG3pDzEVS5a2YgxDx4lHxs4Dx hi/lhIIpHLLLkzB6B66xbmhq+nvaMhiZmReCve3hzkc0nWXFPLnLY6953SHbZA///zHv giEh8N0MinqBElu6s7BiXB9lW76yZ+jLsi/9Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=87MY/b89nCqfDryVFBdkb86a+QRoi8uQpYD2ETdeeQM=; b=lY1FPGhqpIXoRSQg6FYpTJlERmL4KHHqSd424ewMGprBf/OmgqKP/bmFtfVsmvHyuf oKoR8AD0hxHUlNYJ6+AWCA2EiKrQNWUy6YgzfVm4+TTqikVuZ85wh2TBCkt5B0MVJGQ1 tqYKf11Kh8V/sbn9T4D2WAWkgfK2jfppv/dd1n98/O2+csCWMKKtXbAEECdhsxk9Z+sE maW75kcn33IiThyv6YgCvBG9rPuI0t/B8Ati7mMML8SwM94/fskV+CU1pPA9GdRyqzVj uuTH8gzGj+HprzGAW/ut0fPGnbjgbYnIf8PXOBiu15sweEzOwpa2vkeaMlP4GgaDEgF7 L/PA==
X-Gm-Message-State: APjAAAWFQjbirdmliyMo1lzvWU+XV5Z1TWjYKwC5RcDS0tKBY2t8tXoT hoOGO4R0XGLPIidbb67nmp2H/Q==
X-Google-Smtp-Source: APXvYqywlX3+DIH+uFg7IvzdzT+1yLHG3jgoNOLpv1VbnGnKRhbdZqWC0QCNv7GEdMEgQXc+01CJzw==
X-Received: by 2002:a63:234c:: with SMTP id u12mr4137526pgm.264.1557265841627; Tue, 07 May 2019 14:50:41 -0700 (PDT)
Received: from [192.168.0.116] ([184.101.46.90]) by smtp.gmail.com with ESMTPSA id x30sm1642160pgl.76.2019.05.07.14.50.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 May 2019 14:50:40 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\))
From: Austin Wright <aaa@bzfx.net>
In-Reply-To: <cfcdd163-36d0-8b98-5f34-84c3e5e774ad@codalogic.com>
Date: Tue, 07 May 2019 14:50:38 -0700
Cc: Tim Bray <tbray@textuality.com>, Ulysse Carion <ulysse@segment.com>, json@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <46584E26-AE7F-444C-A73C-BBB393BDCBD7@bzfx.net>
References: <CAJK=1RjV1uv0eOdtFZ8cKn-FfCwCiGP5r2hOz1UamiM6YV4H1A@mail.gmail.com> <CAHBU6itE8kub1qtdRoW8BqxaOmzMv=vUo1aDeuAr3HX141NUGg@mail.gmail.com> <cfcdd163-36d0-8b98-5f34-84c3e5e774ad@codalogic.com>
To: Pete Cordell <petejson@codalogic.com>
X-Mailer: Apple Mail (2.3445.104.8)
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/b3Lut8FBYfry5Q0VE4b-V96DriQ>
Subject: Re: [Json] 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: Tue, 07 May 2019 21:50:45 -0000


> On May 7, 2019, at 09:15, Pete Cordell <petejson@codalogic.com> wrote:
> 
> On 06/05/2019 23:38, Tim Bray wrote:
>> Hi all.  I haven't got around to reading the draft (but will soon).  Prior to that, a few notes:
>> 1. I'm pretty sure that we need something better than what we have in the area of JSON schemas.  At least, I'm 100% sure that my job at Amazon Web Services would be easier, and our customer experiences would be more pleasant, if we had something.
>> 2. One thing schemas are useful for is to syntax-check JSON texts that claim to conform to some language specification or another. Obviously no schema can ever completely satisfy this requirement - there are always things in specifications which are semantic and not addressable by schemas - but they can still be super useful.
>> 3. Another thing they are useful for is for providing help to developers working in strongly typed programming languages. With a well-built schema it is reasonably straightforward to auto-generate nice idiomatic class declarations in modern programming languages, and also to build serializers/deserializers that will move data back and forth between JSON blobs and programming-language constructs, or fail in a clean deterministic way if the JSON fails to match the schema.
> 
> For me:
> 
> 4. Person-to-person communication is an important use-case for schemas as a way of describing valid formats, either in design documents or during brainstorming sessions on whiteboards or personal notes on the back of envelopes.
> 
> When you do that you want to be discussing JSON rather than also working out a convention for defining JSON. Hence the need for something already defined that is readily and widely understood.
> 
> The human need puts me off a JSON format for this.  It is too long winded and, like W3C XML Schema, unnecessarily difficult for humans to use. It's why XML Relax NG Compact Syntax was developed.  And why I prefer JSON Content Rules JSON-like (but not JSON) syntax.
> 
> You can get an idea of a comparison of the two types of specification at:
> 
> http://json-content-rules.org/drafts/draft-newton-json-content-rules-10-pjc.html#rfc.section.2.3
> 
> I my mind, JCR is a clear winner in this situation.

Yes, JSON is really not well suited for markup, I consider it as bulk data language, closer to ASN.1 than XML.

The upside of JSON Schema is that it’s primarily defined as a vocabulary; and although it defines a JSON-based media type to encode schemas as, you can invent any media type you want that’s capable of encoding the same assertions.

I still have to spend more time with JCR, but it appears to me JSON Schema implementations could import JCR documents as a JSON Schema with few problems, and it could very well be a superior method of authoring a JSON Schema.

Would you consider elaborating on this possibility in JCR?

Cheers,

Austin.

> 
> Pete.
> -- 
> ---------------------------------------------------------------------
> Pete Cordell
> Codalogic Ltd
> Read & write XML in C++, http://www.xml2cpp.com
> ---------------------------------------------------------------------
> 
> _______________________________________________
> json mailing list
> json@ietf.org
> https://www.ietf.org/mailman/listinfo/json