Subject: Re: [Jsonpath] Firing up the jsonpath working group

From: Glyn Normington <[email-masked]>
Date: Mon, 2 Nov 2020 17:10:51 +0000

Not sure what we should cover in the meeting really.

I’m wondering if there is a quorum since it has been hard for people to find time to work on this so far. Or maybe there’s a bunch of eager volunteers currently lurking in the shadows?

We *could* talk about the writing/review process.

We *could* talk about how conservative we’ll be with respect to new features, but that discussion will probably need to be repeated on the mailing list anyway.

Glyn

> On 30 Oct 2020, at 23:05, Tim Bray <[email-masked]> wrote:
> 
> Hello! I'm Tim Bray; your co-chairs are James Gruessing and me. This is from both of us.
> 
> We’ll be virtually meeting Nov. 16th at this time: https://www.timeanddate.com/worldclock/fixedtime.html?msg=JSONPath+WG+IETF+109+Session&iso=20201116T16&p1=28&ah=2 <https://www.timeanddate.com/worldclock/fixedtime.html?msg=JSONPath+WG+IETF+109+Session&iso=20201116T16&p1=28&ah=2>
> 
> This will be inconvenient for quite a lot of us, but just fine for our Asian colleagues who normally are the ones struggling out of bed in the middle of the night.  
> 
> Fairly-urgent action item: Agenda.  We need to have our draft agenda submitted next Wednesday and finalized on the ninth.  Please post any items to this mailing list.
> 
> Work is proceeding to get us a GitHub repo where draft specs and related material can be posted and diffed and PR'ed. 
> 
> I’d like to offer a reading list that I think people should glance over to get themselves equipped to participate in this work.
> Our charter: https://datatracker.ietf.org/doc/charter-ietf-jsonpath/ <https://datatracker.ietf.org/doc/charter-ietf-jsonpath/>
> Stefan Gössner's original "XPath for JSON" write-up that is the only existing spec of any kind: https://goessner.net/articles/JsonPath/ <https://goessner.net/articles/JsonPath/>
> An Internet-Draft from Stefan and Carsten Bormann which IETF-izes Stefan's original draft and is designed to launch this discussion: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html <https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html>
> Another Internet-draft style document from Normington, Surov, and Mikulicic, with the goal of specifying JSONPath: https://jsonpath-standard.github.io/internet-draft/ <https://jsonpath-standard.github.io/internet-draft/>
> "JSONPath Comparison", a comparison by Christoph Burgmer of many different JSONPath implementations and how they handle various JSONPath idioms: https://cburgmer.github.io/json-path-comparison/ <https://cburgmer.github.io/json-path-comparison/> - fabulous work!
> In case that document looks way too big and intimidating, an example of one of its detail pages: Bracket notation with dot: https://cburgmer.github.io/json-path-comparison/results/bracket_notation_with_dot.html <https://cburgmer.github.io/json-path-comparison/results/bracket_notation_with_dot.html>
> For those of you who are new-ish to the IETF, an excellent write-up of how things work: https://www.ietf.org/about/participate/tao <https://www.ietf.org/about/participate/tao>
> Mark Pilgrim's classic "Why specs matter": https://web.archive.org/web/20051016203842/http://diveintomark.org/archives/2004/08/16/specs <https://web.archive.org/web/20051016203842/http://diveintomark.org/archives/2004/08/16/specs> - it's short, to the point, and explains why good specifications need to be full of illustrative examples.
> -- 
> Jsonpath mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/jsonpath

---

From: Carsten Bormann <[email-masked]>
Date: Mon, 2 Nov 2020 18:53:16 +0100

> We *could* talk about the writing/review process.

Yes.  It is probably easier to discuss this in a high-bandwidth meeting than to fire out dozens of emails.

> We *could* talk about how conservative we’ll be with respect to new features, but that discussion will probably need to be repeated on the mailing list anyway.

That (“conservative”) may be just one metric we could use to describe the process.
I think we should do this less from a 30000 foot, nebularly descriptive point of view, but by looking at specific examples.  If you already know examples that could be controversial, please make then available as GitHub issues (e.g., on your draft, or on the other one).

Grüße, Carsten

>> We’ll be virtually meeting Nov. 16th at this time: https://www.timeanddate.com/worldclock/fixedtime.html?msg=JSONPath+WG+IETF+109+Session&iso=20201116T16&p1=28&ah=2
>> 
>> 	• Our charter: https://datatracker.ietf.org/doc/charter-ietf-jsonpath/
>> 	• Stefan Gössner's original "XPath for JSON" write-up that is the only existing spec of any kind: https://goessner.net/articles/JsonPath/
>> 	• An Internet-Draft from Stefan and Carsten Bormann which IETF-izes Stefan's original draft and is designed to launch this discussion: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html
>> 	• Another Internet-draft style document from Normington, Surov, and Mikulicic, with the goal of specifying JSONPath: https://jsonpath-standard.github.io/internet-draft/
>> 	• "JSONPath Comparison", a comparison by Christoph Burgmer of many different JSONPath implementations and how they handle various JSONPath idioms: https://cburgmer.github.io/json-path-comparison/ - fabulous work!
>> 	• In case that document looks way too big and intimidating, an example of one of its detail pages: Bracket notation with dot: https://cburgmer.github.io/json-path-comparison/results/bracket_notation_with_dot.html
>> 	• For those of you who are new-ish to the IETF, an excellent write-up of how things work: https://www.ietf.org/about/participate/tao
>> 	• Mark Pilgrim's classic "Why specs matter": https://web.archive.org/web/20051016203842/http://diveintomark.org/archives/2004/08/16/specs - it's short, to the point, and explains why good specifications need to be full of illustrative examples.
>> -- 
>> Jsonpath mailing list
>> [email-masked]

---

From: Glyn Normington <[email-masked]>
Date: Wed, 4 Nov 2020 15:38:32 +0000

On 2 Nov 2020, at 17:53, Carsten Bormann <[email-masked]> wrote:
> <…>

The following issues are suitably controversial:

* Script expressions: https://github.com/jsonpath-standard/internet-draft/issues/17
* Ordering of results: https://github.com/jsonpath-standard/internet-draft/issues/27
* Removal of duplicates from results: https://github.com/jsonpath-standard/internet-draft/issues/23

> <…>

---

From: Carsten Bormann <[email-masked]>
Date: Thu, 5 Nov 2020 12:14:23 +0100

> * Script expressions: https://github.com/jsonpath-standard/internet-draft/issues/17

Great discussion, with some (too trivial though) examples.
What’s missing is essentially a feel for the landscape (what is being used) and an assessment of the impact of supporting that.
Can we have some of this ready for consumption before the WG meeting?

> * Ordering of results: https://github.com/jsonpath-standard/internet-draft/issues/27

What is a CTS?
(It seems to me that this issue is a no-brainer, but that may be my personal bias.)

> * Removal of duplicates from results: https://github.com/jsonpath-standard/internet-draft/issues/23

(Ditto.)

The underlying problem here is that of a missing model.
XPath has nodesets, and we probably need something like that.
Sorting/deduplicating results by deep structural equivalence sounds like a non-starter, so the answer for 23 should be ["string", null, false, "string”].

So maybe do #29 first.
https://github.com/cburgmer/json-path-comparison/issues/29
(There is no real difference between returning JSON pointers and JSON paths, that is just a minor syntax detail of the API.)

Grüße, Carsten

---

From: Glyn Normington <[email-masked]>
Date: Thu, 5 Nov 2020 12:17:58 +0000

> Can we have some of this ready for consumption before the WG meeting?

I put together this survey from various implementations: https://github.com/jsonpath-standard/internet-draft/issues/17#issuecomment-722341797 <https://github.com/jsonpath-standard/internet-draft/issues/17#issuecomment-722341797>

(I don’t know about actual usage)

>> * Ordering of results: https://github.com/jsonpath-standard/internet-draft/issues/27

Compliance Test Suite. One starting point for a CTS is here (although it needs moving to its own repository for ease of consumption):

https://github.com/jsonpath-standard/jsonpath-reference-implementation/blob/main/tests/cts.json

---

From: Tim Bray <[email-masked]>
Date: Thu, 5 Nov 2020 12:22:19 -0800

Yeah, please feel free to raise any issues right now on mailing-list
threads with useful subject lines right here.  Any discussions we can have
before our Nov 16 will probably add to the quality of that meeting. We may
discover huge areas of disagreement and those real-time synchronous
meetings are very useful for addressing those.

On Thu, Nov 5, 2020 at 4:18 AM Glyn Normington <[email-masked]>
wrote:

> * Script expressions:
> https://github.com/jsonpath-standard/internet-draft/issues/17
>
>
> What’s missing is essentially a feel for the landscape (what is being
> used) and an assessment of the impact of supporting that.
> I put together this survey from various implementations:
> https://github.com/jsonpath-standard/internet-draft/issues/17#issuecomment-722341797
>
> * Ordering of results:
> https://github.com/jsonpath-standard/internet-draft/issues/27
>
>
> What is a CTS?
>
>
> Compliance Test Suite. One starting point for a CTS is here (although it
> needs moving to its own repository for ease of consumption):
>
>
> * Removal of duplicates from results:
> https://github.com/jsonpath-standard/internet-draft/issues/23
>
>
> (Ditto.)
>
> Sorting/deduplicating results by deep structural equivalence sounds like a
> non-starter, so the answer for 23 should be ["string", null, false,
> "string”].
>
> So maybe do #29 first.
> (There is no real difference between returning JSON pointers and JSON
> paths, that is just a minor syntax detail of the API.)
>
> Grüße, Carsten
>
>
> --
> Jsonpath mailing list
> [email-masked]