Subject: [Jsonpath] JSONPath draft charter

From: Glyn Normington <[email-masked]>
Date: Tue, 1 Sep 2020 09:01:05 +0000

What are the next steps on the JSONPath draft charter?

Tim: are you still up for creating a first draft and, if so, when?. This would be very helpful for those of us unfamiliar with such things.

Regards,
Glyn

> On 11 Aug 2020, at 23:20, Carsten Bormann <[email-masked]> wrote:
> 
> On 2020-08-12, at 00:12, Tim Bray <[email-masked]> wrote:
>> 
>> Is there a draft charter?  
> 
> Not yet.  I thought we might have a little bit of discussion to find out where the different point of views might be lying.
> 
>> I don't recall seeing one go by but maybe I missed it.  If not, I can make a first draft.
> 
> That would be great!
> 
> Since github organizations are cheap, I created one, with a repository that you could use:
> 
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C69eafdbfeb7a4dec694208d83e44d677%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637327812690554976&amp;sdata=l0CUyDcFpI5fVXkSUQwgoMx8%2FbIyIX60rvPqaW2aUrw%3D&amp;reserved=0
> 
> Grüße, Carsten
> 
> -- 
> Jsonpath mailing list
> [email-masked]
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fjsonpath&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C69eafdbfeb7a4dec694208d83e44d677%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637327812690554976&amp;sdata=KDosq4s5Dr58xPwYevCzOoYbe6p8wLCWfDA8Tfx9PIE%3D&amp;reserved=0

---

From: Carsten Bormann <[email-masked]>
Date: Tue, 1 Sep 2020 11:34:29 +0200

> What are the next steps on the JSONPath draft charter?

We are indeed still waiting for a draft from Tim.  
Should come this week, and then we can shape it here in the mailing list.

Grüße, Carsten

---

From: Tim Bray <[email-masked]>
Date: Tue, 1 Sep 2020 10:51:01 -0700

Story, stuck on my desk.  I will post something this week.  [Off to educate
myself how to create/post a draft charter.]

On Tue, Sep 1, 2020 at 2:01 AM Glyn Normington <[email-masked]>
wrote:

> Tim: are you still up for creating a first draft and, if so, when?. This
> would be very helpful for those of us unfamiliar with such things.
>
> Regards,
> Glyn
>
> > Not yet.  I thought we might have a little bit of discussion to find out
> where the different point of views might be lying.
> >

---

From: Tim Bray <[email-masked]>
Date: Tue, 1 Sep 2020 11:07:25 -0700

Here is a draft charter in space-formatted plain-text. I suppose the IETF
has a charter-creation tool but I didn't turn it up in a brief search.
Anyhow,
this should be enough to kick off discussion:
====================================================================================
Document          Charter         JSONPath WG (jsonpath)
                  Title           JSONpath
                  Last updated   2020-09-01
                  State           draft

WG                State           Nonexistent

IESG              Responsible AD:  Kucherawy/Leiba
                  Charter Edit AD:
                  Send notices to: (None)
Charter

charter-ietf-jsonpath-00

JSONPath is a syntax, originally based on the XML "XPath" design,
which selects fields and values from a JSON document.  It is
used in a variety of applications which rely on JSON message
formats.

JSONPath was originally described by Stefan Goessner [1] but has
never had an official specification of any kind, and
implementations, while mostly compatible, differ in certain
behaviors.

The WG will work to develop a JSONPath specification, with the
primary goal of capturing the common semantics of existing
implementations and, where there are differences, choosing
semantics with the goal of causing the least disruption among
JSONPath users.

[1] https://goessner.net/articles/JsonPath/

---

From: Brian Rosen <[email-masked]>
Date: Tue, 1 Sep 2020 14:56:14 -0400

Maybe add “standards-track” after “The WG will work to develop a”, so it’s clear we are doing a PS doc and not an informational.  Also maybe delete “work to” so it’s not “The working group will work to”

Brian

> On Sep 1, 2020, at 2:07 PM, Tim Bray <[email-masked]> wrote:
> 
> Here is a draft charter in space-formatted plain-text. I suppose the IETF has a charter-creation tool but I didn't turn it up in a brief search.  Anyhow, 
> [1] https://goessner.net/articles/JsonPath/ <https://goessner.net/articles/JsonPath/>
> 
> 
> On Tue, Sep 1, 2020 at 2:01 AM Glyn Normington <[email-masked] <mailto:[email-masked]>> wrote:
> > On 11 Aug 2020, at 23:20, Carsten Bormann <[email-masked] <mailto:[email-masked]>> wrote:
> > 
> > On 2020-08-12, at 00:12, Tim Bray <[email-masked] <mailto:[email-masked]>> wrote:
> >> 
> > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C69eafdbfeb7a4dec694208d83e44d677%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637327812690554976&amp;sdata=l0CUyDcFpI5fVXkSUQwgoMx8%2FbIyIX60rvPqaW2aUrw%3D&amp;reserved=0 <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C69eafdbfeb7a4dec694208d83e44d677%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637327812690554976&amp;sdata=l0CUyDcFpI5fVXkSUQwgoMx8%2FbIyIX60rvPqaW2aUrw%3D&amp;reserved=0>
> > 
> > Grüße, Carsten
> > 
> > -- 
> > Jsonpath mailing list
> > [email-masked] <mailto:[email-masked]>
> > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fjsonpath&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C69eafdbfeb7a4dec694208d83e44d677%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637327812690554976&amp;sdata=KDosq4s5Dr58xPwYevCzOoYbe6p8wLCWfDA8Tfx9PIE%3D&amp;reserved=0 <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fjsonpath&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C69eafdbfeb7a4dec694208d83e44d677%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637327812690554976&amp;sdata=KDosq4s5Dr58xPwYevCzOoYbe6p8wLCWfDA8Tfx9PIE%3D&amp;reserved=0>
> 
> -- 
> Jsonpath mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/jsonpath

---

From: "Murray S. Kucherawy" <[email-masked]>
Date: Tue, 1 Sep 2020 21:42:52 -0700

On Tue, Sep 1, 2020 at 11:07 AM Tim Bray <[email-masked]> wrote:

> I suppose the IETF has a charter-creation tool but I didn't turn it up in
> a brief search.
>

I am an IETF charter-creation tool.

(When we come to consensus on draft text, I stick it in the datatracker and
push some magic buttons to get things rolling.)

-MSK, ART AD

---

From: "Murray S. Kucherawy" <[email-masked]>
Date: Tue, 1 Sep 2020 21:45:38 -0700

> semantics with the goal of causing the least disruption among

I anticipate being asked "Why is JSON Pointer not sufficient?"  Indeed its
abstract says:

   JSON Pointer defines a string syntax for identifying a specific value
   within a JavaScript Object Notation (JSON) document.

...which sounds awfully similar.  If we could include a sentence about
that, or a link to an answer, that might be helpful.

-MSK

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Sep 2020 09:39:54 +0200

On 2020-09-02, at 06:45, Murray S. Kucherawy <[email-masked]> wrote:
> 
> I anticipate being asked "Why is JSON Pointer not sufficient?"  Indeed its abstract says:

I’m trying to answer this on the slide at

https://youtu.be/Ujch6Wukjc0?t=48

The short answer is that JSON pointer is good if you already know the structure of the JSON data item you want to point into, and you want to point to exactly one position in there.  If you need to do something that is closer to a “search” (which might also result in multiple positions), JSONPath gives you more rope.

BTW, for easier editing/PR-ing I have put up Tim’s proposal with Brian’s proposed changes at
https://github.com/jsonpath-wg/charter/blob/master/charter.txt

Grüße, Carsten

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Sep 2020 09:45:26 +0200

On 2020-09-02, at 09:39, Carsten Bormann <[email-masked]> wrote:
> on the slide at

… which is also

https://www.ietf.org/proceedings/108/slides/slides-108-dispatch-jsonpath-00.pdf#page=4

Grüße, Carsten

---

From: Glyn Normington <[email-masked]>
Date: Wed, 2 Sep 2020 09:29:36 +0000

Similarly, we’ve run into questions along the lines of "Why is JMESPath not sufficient?” as JMESPath ([1]), like JSON Pointer, also has a well-defined specification. In that case, the answer is different because JMESPath is functionally richer than JSONPath. The reason it’s not sufficient is that it would incur a significant migration cost for JSONPath users.

On a separate topic, would it be worth pointing out in the charter that there are over 38 distinct implementations of JSONPath. 38 are covered in a comparison project ([2]) and there is one (part of Kubernetes) which isn’t in that list. The comparison project calculates where there is a consensus on certain features and demonstrates that there is a lot of common ground, which makes this post hoc standardisation exercise feasible.

I’m happy to submit a PR for either of the above, but I hesitate because I don’t know how much detail charters typically include.

[1] https://jmespath.org/
[2] https://cburgmer.github.io/json-path-comparison/

On 2 Sep 2020, at 08:39, Carsten Bormann <[email-masked]<mailto:[email-masked]>> wrote:

On 2020-09-02, at 06:45, Murray S. Kucherawy <[email-masked]<mailto:[email-masked]>> wrote:

https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fyoutu.be%2FUjch6Wukjc0%3Ft%3D48&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C53ad9caf177d494c130408d84f1368c5%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346292073043715&amp;sdata=1Acgf4zPMRKfSe33PVi%2FTgH9dwNOANPOMAgoJlVm9fE%3D&amp;reserved=0

BTW, for easier editing/PR-ing I have put up Tim’s proposal with Brian’s proposed changes at
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter%2Fblob%2Fmaster%2Fcharter.txt&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C53ad9caf177d494c130408d84f1368c5%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346292073043715&amp;sdata=JI7gcMSHRHF3y8%2Bddd38FhpJ8f7pYIg5zouTmuVOALM%3D&amp;reserved=0

Grüße, Carsten

--
Jsonpath mailing list
[email-masked]
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fjsonpath&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C53ad9caf177d494c130408d84f1368c5%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346292073043715&amp;sdata=YKIGD8Cra3%2Bj8UH9EYCJ8xqUK8M3DlDEP%2FXDYh%2FB52Y%3D&amp;reserved=0

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Sep 2020 11:37:11 +0200

> I’m happy to submit a PR for either of the above, but I hesitate because I don’t know how much detail charters typically include.

Hi Glyn,

A charter is a “contract” between IESG and WG, which gives the WG a certain portfolio, but doesn’t need to spell out all the background and all the work.
It is used by the WG chairs to reign in possible mission creep (and failing that, by the responsible AD), so that’s why we usually want to have a well-defined scope.  

I’d say: Saying that we do JSONPath already says that we are not doing JMESPath.
A little more background (3 words saying there are 40+ implementations, and how JSONPath differs from [is a superset of] RFC 6901 JSON Pointers) wouldn’t hurt, but we don’t want to expand that too much.

Please be bold [1], and send in your PR!

Grüße, Carsten

[1]: https://en.wikipedia.org/wiki/Wikipedia:Be_bold

---

From: Glyn Normington <[email-masked]>
Date: Wed, 2 Sep 2020 09:57:18 +0000

Done: https://github.com/jsonpath-wg/charter/pull/1. Feel free to omit the second commit if it doesn’t really help.

On 2 Sep 2020, at 10:37, Carsten Bormann <[email-masked]<mailto:[email-masked]>> wrote:

On 2020-09-02, at 11:29, Glyn Normington <[email-masked]<mailto:[email-masked]>> wrote:

Hi Glyn,

Grüße, Carsten

[1]: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWikipedia%3ABe_bold&amp;data=02%7C01%7Cnormingtong%40vmware.com%7Cfd0c13f7f6f14d9e48b008d84f23c63d%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346362372351261&amp;sdata=JUWUnpfbb9uYSSbL1XMyj7H3Z0l3YCXr3jFvHaH3QdQ%3D&amp;reserved=0

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Sep 2020 12:20:22 +0200

> Done: https://github.com/jsonpath-wg/charter/pull/1. Feel free to omit the second commit if it doesn’t really help.

I merged it, but reworded the second commit so it occurs before the paragraph describing the WG’s work.

Comments?

Grüße, Carsten

---

From: Glyn Normington <[email-masked]>
Date: Wed, 2 Sep 2020 10:21:48 +0000

LGTM, thanks.

> On 2 Sep 2020, at 11:20, Carsten Bormann <[email-masked]> wrote:
> 
>> Done: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter%2Fpull%2F1&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C0ba01ad7ca1b4ff026c908d84f29ce38%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346388265914812&amp;sdata=uTpyx4CwvTfe%2BBStFlOwh4asIV7n81jFrPFCl2nnZsg%3D&amp;reserved=0. Feel free to omit the second commit if it doesn’t really help.
> 
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter%2Fblob%2Fmaster%2Fcharter.txt&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C0ba01ad7ca1b4ff026c908d84f29ce38%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346388265914812&amp;sdata=QQxo0Vi6QH1S4t0giV73%2Fk%2BY0JdCYEmb0CcV1lZ6xAc%3D&amp;reserved=0
> 
> Comments?
> 
> Grüße, Carsten
> 
>

---

From: Tim Bray <[email-masked]>
Date: Wed, 2 Sep 2020 08:39:10 -0700

We're maybe overthinking this. Yes, JSONPointer and JMESpath exist, but
lots of people are using JSONPath, there's good software support but no
spec, so it would be beneficial to write a spec. What's the alternative,
everyone now using JSONPath rewrites their software because the alternative
has a spec?

Anyhow, thanks for setting up the repo.

On Wed, Sep 2, 2020 at 3:21 AM Glyn Normington <[email-masked]>
wrote:

> >> Done:
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsonpath-wg%2Fcharter%2Fpull%2F1&amp;data=02%7C01%7Cnormingtong%40vmware.com%7C0ba01ad7ca1b4ff026c908d84f29ce38%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637346388265914812&amp;sdata=uTpyx4CwvTfe%2BBStFlOwh4asIV7n81jFrPFCl2nnZsg%3D&amp;reserved=0.
> Feel free to omit the second commit if it doesn’t really help.
> >

---

From: Tim Bray <[email-masked]>
Date: Wed, 2 Sep 2020 08:40:52 -0700

Also, the draft spec LGTM; thanks!

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Sep 2020 17:45:33 +0200

On 2020-09-02, at 17:39, Tim Bray <[email-masked]> wrote:
> 
> We're maybe overthinking this. Yes, JSONPointer and JMESpath exist, but lots of people are using JSONPath, there's good software support but no spec, so it would be beneficial to write a spec. What's the alternative, everyone now using JSONPath rewrites their software because the alternative has a spec?

I think this is just a “we made our homework” type statement: We looked at these and know that they exist, but the proposed WG is something different.

Murray: Du you think that what we have is good enough to send it back to DISPATCH?

Grüße, Carsten

---

From: Davide Bettio <[email-masked]>
Date: Wed, 2 Sep 2020 17:48:20 +0200

Hello,

> I’d say: Saying that we do JSONPath already says that we are not doing JMESPath.

I agree, also I would say that the main point here is that JMESPath is
too complex to implement compared to JSONPath (and also computational
heavier) .

Talking about JSONPointer: users should keep using it when they are
looking for obtaining a subdocument (or just a value), JSONPointer
guarantees a result in constant time and memory in most
implementations (which might be good for security reasons) while this
is not possible with JSONPath or JMESPath. Also I think we should
encourage users about using JSONPointer when search capabilities are
not needed.

Therefore I think that each of them covers a well defined set of use
cases which is partially overlapping.

Regards,
Davide Bettio.

---

From: "Murray S. Kucherawy" <[email-masked]>
Date: Wed, 2 Sep 2020 09:16:52 -0700

> cases which is partially overlapping.

I think this doesn't need to go in the charter, but would be ideal to
include in the Introduction section of a JSONPath document.  Somebody write
that down.  :-)

-MSK

---

From: "Murray S. Kucherawy" <[email-masked]>
Date: Wed, 2 Sep 2020 09:19:50 -0700

On Wed, Sep 2, 2020 at 8:45 AM Carsten Bormann <[email-masked]> wrote:

> I think this is just a “we made our homework” type statement: We looked at
> these and know that they exist, but the proposed WG is something different.
>

Right; preempt such questions from the IESG, basically.

Murray: Du you think that what we have is good enough to send it back to
> DISPATCH?

Yes, I think so.  Some ADs like to see mention of things that are
explicitly out of scope; if you feel so inclined, you could mention that
updates to JSON Pointer or drafts about JMESPath will not be considered,
but I would be willing to send this up without that, so your choice.

-MSK

---

From: Tim Bray <[email-masked]>
Date: Wed, 2 Sep 2020 10:54:04 -0700

I made https://github.com/jsonpath-wg/charter/pull/2 to say changes to
JMESPath and JSON Pointer are not contemplated. I actually don't have much
of an opinion as to whether this is an improvement, so I'm OK either way.

On Wed, Sep 2, 2020 at 9:20 AM Murray S. Kucherawy <[email-masked]>
wrote:

>> I think this is just a “we made our homework” type statement: We looked
>> at these and know that they exist, but the proposed WG is something
>> different.
>>
>

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Sep 2020 22:08:15 +0200

On 2020-09-02, at 19:54, Tim Bray <[email-masked]> wrote:
> 
> I made https://github.com/jsonpath-wg/charter/pull/2 to say changes to JMESPath and JSON Pointer are not contemplated. I actually don't have much of an opinion as to whether this is an improvement, so I'm OK either way. 

I think the IESG usually wants much stronger language than “not contemplated” for the charter exclusions.  For me, that is already implicit in the statement of what it does do, so this language might even be a step backwards.

I would simply say “These are out of scope for the WG” at the end of the penultimate paragraph, but that may not be entirely true either:
We may want to describe the two-way mapping between JSON Pointer and JSONPath for a subset (or an important part of that subset) where that two-way mapping exists.

So that would make it:

> These approaches are out of scope for the WG, except that it may be
> useful to describe the mapping between subsets of JSON Pointer and
> JSONPath.

(If that turns out to be a bad restriction, we can always ask for a recharter later, so there is no need for weaselwords.)

Now https://github.com/jsonpath-wg/charter/pull/3

Grüße, Carsten

---

From: Tim Bray <[email-masked]>
Date: Wed, 2 Sep 2020 13:17:00 -0700

Works for me.

On Wed, Sep 2, 2020 at 1:08 PM Carsten Bormann <[email-masked]> wrote:

> I think the IESG usually wants much stronger language than “not
> contemplated” for the charter exclusions.  For me, that is already implicit
> in the statement of what it does do, so this language might even be a step
> backwards.
>
> I would simply say “These are out of scope for the WG” at the end of the
> penultimate paragraph, but that may not be entirely true either:
> We may want to describe the two-way mapping between JSON Pointer and
> JSONPath for a subset (or an important part of that subset) where that
> two-way mapping exists.
>
> So that would make it:
>
> (If that turns out to be a bad restriction, we can always ask for a
> recharter later, so there is no need for weaselwords.)
>

---

From: "Murray S. Kucherawy" <[email-masked]>
Date: Sat, 12 Sep 2020 20:39:47 -0700

Works for me too. Going back to DISPATCH with this is the next step,
correct?

If so, fire when ready.

-MSK

---

From: Tim Bray <[email-masked]>
Date: Sat, 12 Sep 2020 21:30:38 -0700

Um, where's the "Fire" button?

On Sat., Sep. 12, 2020, 8:40 p.m. Murray S. Kucherawy, <[email-masked]>
wrote:

>>> > I made https://github.com/jsonpath-wg/charter/pull/2 to say changes
>>> to JMESPath and JSON Pointer are not contemplated. I actually don't have
>>> much of an opinion as to whether this is an improvement, so I'm OK either
>>> way.
>>>

---

From: Carsten Bormann <[email-masked]>
Date: Sun, 13 Sep 2020 18:34:46 +0200

Since I started the original discussion in DISPATCH, I’ll now press that button by pointing DISPATCH to the result of the charter discussion here.

Grüße, Carsten

> On 2020-09-13, at 06:30, Tim Bray <[email-masked]> wrote:
> 
> On Sat., Sep. 12, 2020, 8:40 p.m. Murray S. Kucherawy, <[email-masked]> wrote:
> Works for me too. Going back to DISPATCH with this is the next step, correct?
> 
> If so, fire when ready.