Re: [dispatch] draft-goessner-dispatch-jsonpath-00.txt

Martin Thomson <mt@lowentropy.net> Wed, 15 July 2020 09:40 UTC

Return-Path: <mt@lowentropy.net>
X-Original-To: dispatch@ietfa.amsl.com
Delivered-To: dispatch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 015893A082F for <dispatch@ietfa.amsl.com>; Wed, 15 Jul 2020 02:40:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.12
X-Spam-Level:
X-Spam-Status: No, score=-2.12 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=BlnQJx0u; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=RIh/Bzcf
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 fPiZBvMFauzA for <dispatch@ietfa.amsl.com>; Wed, 15 Jul 2020 02:40:25 -0700 (PDT)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE0083A0101 for <dispatch@ietf.org>; Wed, 15 Jul 2020 02:40:24 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 07B925C0172 for <dispatch@ietf.org>; Wed, 15 Jul 2020 05:40:24 -0400 (EDT)
Received: from imap2 ([10.202.2.52]) by compute2.internal (MEProxy); Wed, 15 Jul 2020 05:40:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :subject:content-type:content-transfer-encoding; s=fm2; bh=DM5Su B9gcJhoiVD6RuDbD3rXa57jLEO2J3hxgWfmBec=; b=BlnQJx0u9MoV84Ih138h1 QmLomwyaKIokcB8bRcvANilqBXHIm/AgKywvr8y7XzqkmxiGbnDYbul9ssmyc8VQ 5Ww8ZLCixKMvA8YSA5QJXHXL3WbRhjeEAtJZrwC/3XAZJ+k9ZogFP8/b+uJQFFNl kajsaQN506lvN9AUs8U0Sg0xRLpy8gCDo8xWnPHcLUD6XyycDRQzI+N1S2zxCTtH xA2W9V+a0+hEDizItu37U2lEZZKqUUIFsfOJyYgYGgMdXJ+72dJYlEZ8Dd2koW/a tjrgzD95A1mCSqB6FxzI8B2fxfdO6dmF1nhP3yj3voV5jRgOZ08vrdguZCO6C35a Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=DM5SuB9gcJhoiVD6RuDbD3rXa57jLEO2J3hxgWfmB ec=; b=RIh/Bzcf2aCAunktx3vc/9ICfZ+RfeNy7B2N9F8gie4K/h4yDo9OzTLW0 RuTiLAHYJWt54kGPNtM/ttt/SFb6/nWlQYATrsQpFsGgX+z6+yU3L2/f/yqpoijv 7eD00fDDlt3mTAUewFu2X7fbEWTcbf4tMd+l/nbyivc9OadTyXwqUgW/W88Lu456 8v167+XNPXKmdy6SirKK40gJVCnhgFXjj2jdg30Uig0M3evYScC86+jClYUEifgb XVt2IlfCPkNMp6HPbnHDaktfl8wtDJgz/FX596M9RIrr08dRDb7SUBMT5x7di1Mi 5kcNy1m6UKYzK4iYZa/UmLn3VA9bg==
X-ME-Sender: <xms:B88OX2IsAEog4SjTFaZ-rS-9P4nBs9mdy_Ky4-Ns0PyXdSIQVv01sQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrfedvgddvtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgfgsehtqh ertderreejnecuhfhrohhmpedfofgrrhhtihhnucfvhhhomhhsohhnfdcuoehmtheslhho figvnhhtrhhophihrdhnvghtqeenucggtffrrghtthgvrhhnpeekhefhjeevgfffkeelte elueegvefhvdfgjeekfeffkefgueehhefhfeefiedthfenucffohhmrghinhepjhhsohhn qdhstghhvghmrgdrohhrghdpihgvthhfrdhorhhgnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepmhhtsehlohifvghnthhrohhphidrnhgvth
X-ME-Proxy: <xmx:B88OX-INQdjtvCDgdGytXLBB8MIs5-OEu0nR-m9udAa2yOZTWoerSg> <xmx:B88OX2tN5EXmim8iGqy2UxIAcY8RAONwLLNFlJw7vJvwfDfSnHnFvg> <xmx:B88OX7aESk1VQ7N2tbESWSumF8aM1kx8iet1Jl6a_7S072td9Prfow> <xmx:CM8OX9oEpz23fI4Hoq2mA6KBDhAVFHUAsh59MmJ2W9nJ-XKMaOodfw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id B7C86E0117; Wed, 15 Jul 2020 05:40:23 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-dev0-613-g8a73ad6-fm-20200709.001-g8a73ad6e
Mime-Version: 1.0
Message-Id: <d2ab505d-bc99-482d-a8e5-694f67ce932b@www.fastmail.com>
In-Reply-To: <77B617C1-2148-4AE6-8428-DAD43D01FBC5@tzi.org>
References: <159467093010.19477.7181341398452455173@ietfa.amsl.com> <77B617C1-2148-4AE6-8428-DAD43D01FBC5@tzi.org>
Date: Wed, 15 Jul 2020 19:40:03 +1000
From: Martin Thomson <mt@lowentropy.net>
To: dispatch@ietf.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/TAPdKDOl35iYlLiIUoPoPcgMU4E>
Subject: Re: [dispatch] draft-goessner-dispatch-jsonpath-00.txt
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DISPATCH Working Group Mail List <dispatch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dispatch>, <mailto:dispatch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dispatch/>
List-Post: <mailto:dispatch@ietf.org>
List-Help: <mailto:dispatch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dispatch>, <mailto:dispatch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Jul 2020 09:40:27 -0000

I see three major differences here from JSON pointer:

1. this selects multiple values in the same way that XPath does, so this includes // and * and other such things
2. predicates (the execution of script is a major concern and really begs for a security model), which is largely a consequence of having multiple values but not strictly
3. syntax

Of these, the syntax difference seems gratuitous.  JSON pointer isn't exactly awesome~1but it has fewer variants and it isn't inclined toward implementation by eval(), which is an anti-feature.

Personally, I would much rather see a new JSON pointer developed, which would be evolutionary rather than revolutionary; more version 2 than competition.  It would be relatively simple to add multi-value and relative evaluation to JSON pointer if those are the key use cases.  That said, I don't have a lot of insight into what the implementation landscape is.  If JSON pointer is moribund, then we might want to acknowledge that.  My sense is that it has some relatively wide support, including modifications for relative references (https://json-schema.org/draft/2019-09/relative-json-pointer.html)

Predicates are where this gets tricky, but I would suggest that you need to decide the question of whether they are included from the outset.  Personally, these seem like they could be a big risk and I would defer their addition if not cut them out, but I don't know what sort of use cases are driving this.

This seems big enough to be a working group (particularly if you put the predicate stuff in scope).


On Tue, Jul 14, 2020, at 15:14, Carsten Bormann wrote:
> (Reply-To set to dispatch@ietf.org)
> 
> I would like to initiate discussion for draft-goessner-dispatch-jsonpath:
> 
> https://www.ietf.org/id/draft-goessner-dispatch-jsonpath-00.html
> 
> It says:
> 
> > This document picks up the popular JSONPath specification dated
> > 2007-02-21 and provides a more normative definition for it.
> > It is intended as a submission to the IETF DISPATCH WG, in order to
> > find the right way to complete standardization of this specification.
> > In its current state, it is a strawman document showing what needs to
> > be covered.
> 
> (For some reason the abstract landed in the Contributing note; typical 
> Internet-Draft deadline day botch.)
> 
> This is a widely implemented specification that has been around for 
> more than a decade; now may be a good opportunity to finally go ahead 
> and turn it into a proper Internet standards document.  The immediate 
> cause for writing this up now is that some IoT discovery work (some of 
> which happens in W3C) can make good use of JSONPath.  Clearly, we 
> already have JSON Pointer (RFC 6901) for a more limited set of 
> applications; the specification would do good in defining how these two 
> fit together.
> 
> There is no active WG that immediately fits this work.
> 
> Eventually CDDL may pick JSONPath up in the form of a predicate 
> operator; this might make the CBOR WG the right group (which probably 
> would then go ahead and write up another specification that makes 
> JSONPath useful for querying CBOR instances that go beyond the JSON 
> generic data model).
> 
> Reopening the JSON WG may be another approach, as may be creating a 
> short-lived targeted WG.
> 
> Please discuss!
> 
> Grüße, Carsten
> 
> 
> 
> > Begin forwarded message:
> > 
> > From: internet-drafts@ietf.org
> > Subject: New Version Notification for draft-goessner-dispatch-jsonpath-00.txt
> > Date: 2020-07-13 at 22:08:50 CEST
> > To: "Stefan Gössner" <stefan.goessner@fh-dortmund.de>, "Stefan Gossner" <stefan.goessner@fh-dortmund.de>, "Carsten Bormann" <cabo@tzi.org>
> > 
> > 
> > A new version of I-D, draft-goessner-dispatch-jsonpath-00.txt
> > has been successfully submitted by Carsten Bormann and posted to the
> > IETF repository.
> > 
> > Name:		draft-goessner-dispatch-jsonpath
> > Revision:	00
> > Title:		JSONPath -- XPath for JSON
> > Document date:	2020-07-12
> > Group:		Individual Submission
> > Pages:		14
> > URL:            https://www.ietf.org/internet-drafts/draft-goessner-dispatch-jsonpath-00.txt
> > Status:         https://datatracker.ietf.org/doc/draft-goessner-dispatch-jsonpath/
> > Htmlized:       https://tools.ietf.org/html/draft-goessner-dispatch-jsonpath-00
> > Htmlized:       https://datatracker.ietf.org/doc/html/draft-goessner-dispatch-jsonpath
> > 
> > 
> > Abstract:
> >   insert abstract here
> > 
> > 
> > 
> > 
> > Please note that it may take a couple of minutes from the time of submission
> > until the htmlized version and diff are available at tools.ietf.org.
> > 
> > The IETF Secretariat
> > 
> > 
> 
> _______________________________________________
> dispatch mailing list
> dispatch@ietf.org
> https://www.ietf.org/mailman/listinfo/dispatch
>