Markdown Version | Session Recording

Session Date/Time: 27 Sep 2022 08:00

JSONPATH

Summary

This interim meeting focused on progressing the JSONPath draft. Key discussions revolved around the structure and terminology of the draft, specifically regarding "starters," "appenders," and "pickers," and the integration of a technical change to allow wildcard pickers. The group also had an extensive discussion on the determinism of node list ordering, particularly for descendant selectors and object member access, aiming to align the specification with common implementation practices that often exhibit non-deterministic behavior. Scheduling for the next steps to meet the IETF 115 deadline was also addressed.

Key Discussion Points

Decisions and Action Items

Decisions

  1. iregex Shepherding: James will shepherd the iregex draft for WGLC in the next couple of weeks. If he cannot, he will notify the working group to find an alternative.
  2. PR258 Merging & Wildcard Integration: The current PR (PR258/issue 201), which is largely editorial, will incorporate the technical change to allow the wildcard picker in all places, combining it with the editorial changes.
  3. Terminology Refinement: Editors will proceed with refining terminology. The approach will involve defining "starter" and changing instances of "selector" to "appender," followed by a secondary commit to change "picker" to "selector," aiming to avoid overloading terms.
  4. Picker Semantics: The working group will proceed with "Option 1" for Picker semantics (where the Picker receives a value and selects children directly, as currently described in the PR). The specification will explicitly note that this description is for explanatory clarity and not a required implementation.
  5. "Picker" Terminology: The issue of the term "picker" will be revisited later, but the current approach for semantics will be used for the next draft iteration.
  6. Descendant Ordering: The specification will be updated to explicitly allow for breadth-first descendant ordering, reflecting existing implementation consensus, while not precluding depth-first.
  7. Non-Determinism: The specification will clearly state that implementations are not required to be deterministic in object member iteration order or descendant traversal order (allowing for varied results on repeated runs for the same input), with the exception of array element order, which remains significant.
  8. Determinism Changes Timeline: The changes related to determinism will be addressed after the current PR (with the wildcard and terminology changes) is merged, to avoid delaying the PR.
  9. Descendant Selector Scope: The descendant selector (..) will explicitly include the current node ('self') as a source for children to look at, reflecting implementation consensus.
  10. Issue 195 Status: Issue 195 regarding singular vs. non-singular paths in filter expressions will remain open for further discussion.

Action Items

  1. Glenn: Create a rich set of examples illustrating the range of possible non-deterministic outcomes when combining multi-level expressions, array descendants, and maps, especially with multiple pickers in a descendant node list.
  2. Carson/Glenn: Summarize the discussion on Issue 195 (singular paths for filter expressions) in the issue tracker.
  3. Chairs/Secretary: Set up a Doodle Poll for an interim meeting in the week of October 17th.

Next Steps