QT4CG meeting 067 draft minutes, 27 February 2024

Here are today’s minutes:

   https://qt4cg.org/meeting/minutes/2024/02-27.html

QT4 CG Meeting 067 Minutes 2024-02-27

Table of Contents

     * [1]Draft Minutes
     * [2]Summary of new and continuing actions [0/11]
     * [3]1. Administrivia
          + [4]1.1. Roll call [9/13]
          + [5]1.2. Accept the agenda
               o [6]1.2.1. Status so far...
          + [7]1.3. Approve minutes of the previous meeting
          + [8]1.4. Next meeting
          + [9]1.5. Review of open action items [1/11]
          + [10]1.6. Review of open pull requests and issues
               o [11]1.6.1. Merge without discussion
               o [12]1.6.2. Close without action
     * [13]2. Technical Agenda
          + [14]2.1. PR #1003: 919 Use EBV in boolean callbacks
          + [15]2.2. PR #1042: 1016 Editorial cleanup - csv-to-arrays
          + [16]2.3. PR #1041: 236 map:build: sequence of keys
          + [17]2.4. PR #1040: 485 Predeclared namespaces in XQuery:
            output
          + [18]2.5. PR #988: 960 Pinned and labeled values
          + [19]2.6. PR #832: 77 Add map:deep-update and array:deep-update
     * [20]3. Any other business
     * [21]4. Adjourned

   [22]Meeting index / [23]QT4CG.org / [24]Dashboard / [25]GH Issues /
   [26]GH Pull Requests

Draft Minutes

Summary of new and continuing actions [0/11]

     * [ ] QT4CG-052-02: NW to consider how to schedule an "editor's
       meeting"
     * [ ] QT4CG-056-04: MK to write a proposal for adding a select
       attribute to xsl:text
     * [ ] QT4CG-058-02: MK to consider providing more advice about the
       pitfalls of mixing decimal and double when sorting
     * [ ] QT4CG-063-01: MK to revise #956 especially with respect to the
       options parameter
     * [ ] QT4CG-063-02: JK to consider whether the roman numeral example
       is appropriate for the spec.
     * [ ] QT4CG-063-04: NW to try to add test review to the editorial
       meeting.
     * [ ] QT4CG-063-05: MK to revise PR #953 to take account of CG's
       comments
     * [ ] QT4CG-063-06: MK to consider refactoring the declare item type
       syntax to something like declare record
     * [ ] QT4CG-064-08: NW to open an issue to try to resolve $search to
       $target consistently.
     * [ ] QT4CG-066-01: MK to add a note that the grammar rules for
       regular expressions apply after comments are removed
     * [ ] QT4CG-067-01: NW to ask the XML Prague organizers for hosting
     * [ ] QT4CG-067-02: MK to revert the changes to the test suite for
       EBV (PR 1003)

1. Administrivia

1.1. Roll call [9/13]

   Regrets SF, DN.
     * [X] Reece Dunn (RD)
     * [ ] Sasha Firsov (SF)
     * [X] Christian Gr¸n (CG)
     * [X] Joel Kalvesmaki (JK) [:30-]
     * [X] Michael Kay (MK)
     * [ ] Juri Leino (JLO)
     * [X] John Lumley (JLY)
     * [ ] Dimitre Novatchev (DN)
     * [X] Wendell Piez (WP)
     * [X] Ed Porter (EP)
     * [ ] Adam Retter (AR) [:10-]
     * [X] C. M. Sperberg-McQueen (MSM)
     * [X] Norm Tovey-Walsh (NW). Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [27]the agenda.

   Accepted.

1.2.1. Status so far...

   issues-open-2024-02-27.png

   Figure 1: "Burn down" chart on open issues

   issues-by-spec-2024-02-27.png

   Figure 2: Open issues by specification

   issues-by-type-2024-02-27.png

   Figure 3: Open issues by type

1.3. Approve minutes of the previous meeting

   Proposal: Accept [28]the minutes of the previous meeting.

   Accepted.

1.4. Next meeting

   The next meeting [29]is scheduled for Tuesday, 5 March 2024.

   Any regrets for the next meeting?

   Propose: meet 4-5 June in Prague.

   No objections raised.

   ACTION: NW to ask the XML Prague organizers for hosting

1.5. Review of open action items [1/11]

     * [ ] QT4CG-052-02: NW to consider how to schedule an "editor's
       meeting"
     * [ ] QT4CG-056-04: MK to write a proposal for adding a select
       attribute to xsl:text
     * [ ] QT4CG-058-02: MK to consider providing more advice about the
       pitfalls of mixing decimal and double when sorting
     * [ ] QT4CG-063-01: MK to revise #956 especially with respect to the
       options parameter
     * [ ] QT4CG-063-02: JK to consider whether the roman numeral example
       is appropriate for the spec.
     * [ ] QT4CG-063-04: NW to try to add test review to the editorial
       meeting.
     * [ ] QT4CG-063-05: MK to revise PR #953 to take account of CG's
       comments
     * [ ] QT4CG-063-06: MK to consider refactoring the declare item type
       syntax to something like declare record
     * [ ] QT4CG-064-08: NW to open an issue to try to resolve $search to
       $target consistently.
     * [X] QT4CG-065-01: CG to amend PR #795 to address MK's comment re:
       implementation defined behavior
     * [ ] QT4CG-066-01: MK to add a note that the grammar rules for
       regular expressions apply after comments are removed

1.6. Review of open pull requests and issues

   d*** Blocked

   The following PRs are open but have merge conflicts or comments which
   suggest they aren't ready for action.
     * PR [30]#956: 850-partial Editorial improvements to parse-html()
     * PR [31]#529: 528 fn:elements-to-maps

1.6.1. Merge without discussion

   The following PRs are editorial, small, or otherwise appeared to be
   uncontroversial when the agenda was prepared. The chairs propose that
   these can be merged without discussion. If you think discussion is
   necessary, please say so.
     * PR [32]#1034: QT4CG-066-xx Add note regarding absence of drop-while
       / skip-while
     * PR [33]#1033: QT4CG-066-01 Add note that whitespace and comments in
       regexen are lexical constructs
     * PR [34]#1032: 1029 Make argument of fn:void optional
     * PR [35]#1031: 1024 Change precedence of 'otherwise' operator

   Proposed: merge without discussion

   Accepted.

1.6.2. Close without action

   It has been proposed that the following issues be closed without
   action. If you think discussion is necessary, please say so.
     * Issue [36]#1030: allow pattern matches in axis expression
     * Issue [37]#1007: How to invert a predicate function
     * Issue [38]#990: Transitive closure on non-nodes
     * Issue [39]#872: Symmetry: fn:items-at -> fn:get
     * Issue [40]#843: Standard, array & map functions: Equivalencies
     * Issue [41]#825: array:members-at
     * Issue [42]#356: array:leaves

   Proposed: close without action

   Accepted.

2. Technical Agenda

2.1. PR #1003: 919 Use EBV in boolean callbacks

   See PR [43]#1003
     * MK: The proposal introduces a backwards incompatibility. If the
       callback function returns a node (currently) we atomize the node
       and look at it's boolean value (if it has one). If we use EBV, the
       value becomes true if the node exists and false if it doesn't.
          + ... That doesn't effect very many functions because many of
            them are new, but it does effect a few established functions.
     * MK: We could do it anyway, do it differently for old versus new, or
       revert the change.
     * NW: I would object to doing old functions differently than one
       news.
     * JLY: How easy is it to put an exists around the callback itself?
     * MK: You can always convert existing calls, but if you run a query
       and it gives different results, they have to go on a bug hunt.

   Sentiment appears to be reverting the change.
     * RD: What are we reverting?
     * MK: The proposal to change callback functions that return a boolean
       to take the EBV instead of requiring a boolean.
     * WP: Bravo for finding the problem in tests.
     * RD: I think reverting it would be sensible given that it hasn't
       been accepted. While it's nice, introducing backwards
       incompatibilities is a risk.

   Proposed: revert the change, abandon PR 1003

   Accepted.

   ACTION: MK to revert the changes to the test suite for EBV (PR 1003)

2.2. PR #1042: 1016 Editorial cleanup - csv-to-arrays

   See PR [44]#1042
     * MK: This changes the name of one function, csv-to-arrays appears in
       the current spec as csv-to-simple-records. I think this name is
       simpler and clearer.
          + ... It's the function that turns a raw CSV into a sequence of
            rows.
          + ... The rest of the PR is editorial, but it's a substantial
            rewrite in a few places; it's intended to be equivalent.
     * MSM asks about the substantial rewrite
     * MK: The csv-to-xml function is now defined in terms of parse-csv to
       reduce duplication. It's now a three-level layering. I've thought
       of trying to redefine parse-csv on top of csv-to-array; potentially
       doable, but maybe complicated.
     * MK: There's still scope to do a bit more, I opened issues for a
       couple of things.

   Proposal: accept this PR.

   Accepted.

2.3. PR #1041: 236 map:build: sequence of keys

   See PR [45]#1041
     * CG reviews the PR.
     * CG: Generalized the map:build function to take a sequence of keys
       rather than a single key. The implementation is now nested. There's
       an example that shows how it works.
     * JLY: Sounds good to me.
     * MSM: Are there four titles, or three titles one that appears in two
       lists?
     * MK: There are three titles.
     * MSM: Is that moderately clear from the exposition?
     * NW: If it copied, it would need a warning with flashing red lights!

   Proposal: accept this PR.

   Accepted.
     * JLY: Is there any point in returning an empty list if there's no
       key?
     * RD: The function already has a zero or one argument.

2.4. PR #1040: 485 Predeclared namespaces in XQuery: output

   See PR [46]#1040
     * CG: We already added some predeclared namespaces to XQuery: array,
       map, and math.
          + ... JK suggested we add the namespace used for output
            parameters
          + ... I removed some redundancy.
     * MSM: Is there a logic to the order in the list?
     * CG: Sorted by URI.

   Proposal: accept this PR.

   Accepted.

2.5. PR #988: 960 Pinned and labeled values

   See PR [47]#988
     * MK: I've done more work on it; my confidence is increased.
          + ... I've done some implementation and I think the proposal is
            sound.
     * MK: First, there's a data model change: in 2.9.5 Map Items.
          + ... While you're doing a deep update (PR in the works), you
            use a transient identifier with fn:pin
          + ... It says the same for arrays.
          + ... Then it talks about labeled items, 2.10. It can be applied
            to any item.
          + ... At the moment, there's no way to make a subject or a label
            that is itself labeled, but there's nothing in the data model
            to forbid it.
          + ... Operations that construct new items don't label them
            unless asked to.
          + ... Labeled items are used in lookup operations, etc. but not
            described in the data model.
     * MK: The next part is in XPath:
          + ... In 4.15.4 we discuss pinned maps and arrays in the context
            of navigation in JSON.
          + ... Ancestors goes upward and path goes downward, will that be
            more or less confusing?
     * RD: That's consistent with XPath selectors
          + ... In terms of intuitiveness, it's better that these be the
            same
     * MK: The formal model for fn:pin is described in terms of a deep
       copy, but you wouldn't actually do it this way!
     * MK: The example shows how to find the co-authors in the ancestors
       of a map value.
     * MK: There's a note that using empty sequences as JSON null values.
     * NW observes that we accepted the PR for alternative representations
       of JSON null last week.
     * MK: Finally, in F&O we have new functions: fn:pin describes the
       formal detail of how labels are added.
     * MK: Then there's fn:label that just extracts the labels.
     * MK: In writing examples, I was tempted to add some conveniences.
       Then I decided to just get the primitives in place first.
     * MSM: In my variant of English, the term "label" pretty definitely
       suggests a simple flat value like a string; having label be a
       structured annotation instead bothers me.
     * MK: I thought that, then I looked at the label on my shirt and it
       has lots of properties on it!
     * RD: Maybe fn:labels to indicate that it's multi-valued?
     * MSM: Is the following paraphrase accurate: the rational offered for
       introducing maps when they were introduced against the question "we
       already have structed data". The primary answer was that they were
       lighter weight, faster, only downward pointers. This is an add-on
       for maps so that they can be as heavy weight as elements.
     * MK: It still doesn't add the full weight because you can still
       update a map without making a complete copy. You can still do
       updates in constant time rather than in time proportional to the
       size of the map.
          + ... This translates into a "zipper" function in functional
            terms. All of the items that haven't been touched are reused.
          + ... Trying to do that for node trees is very hard because node
            identity is so deeply embedded.
     * WP: I like the direction; but I'm concerned about the
       implementation details.
     * JK: Will there be a "pin" attribute in xsl:map so that we can do it
       at the outset?
     * MK: No, you just use the map constructor and pipe it into the
       fn:pin function.
          + ... I think there are use-cases for automatic pinning; for
            example, should apply-templates automatically pin a map as
            it's going.
          + ... One of the things on the follow-up list from this proposal
            is that it becomes possible to match things within a JSON tree
            according to their ancestry.
     * NW: Is this ready to be mergee?

   Proposal: accept this PR.

   Accepted.

2.6. PR #832: 77 Add map:deep-update and array:deep-update

   See PR [48]#832

   Not yet ready for more discussion.

3. Any other business

   JLY has something to discuss about iXML and grammars.
     * JLY: I'm doing a lot of work with iXML (with NW and MSM and Steven
       Pemberton).
          + ... I've been thinking about how you can generate and modify
            iXML grammars.
          + ... I've now got it working with the XPath 4.0 grammar.

   JLY does a jwiXML demo showing an iXML grammar for XPath generated from
   the XPath 4.0 grammar.

   This has revealed an ambiguity in the grammar, AtomicOrUnionType and
   TypedRecordType

   RD has worked on [49]modified grammars that integrate
   MarkLogic/BaseX/Saxon grammars.

4. Adjourned

References

   1. https://qt4cg.org/meeting/minutes/2024/02-27.html#minutes
   2. https://qt4cg.org/meeting/minutes/2024/02-27.html#new-actions
   3. https://qt4cg.org/meeting/minutes/2024/02-27.html#administrivia
   4. https://qt4cg.org/meeting/minutes/2024/02-27.html#roll-call
   5. https://qt4cg.org/meeting/minutes/2024/02-27.html#agenda
   6. https://qt4cg.org/meeting/minutes/2024/02-27.html#so-far
   7. https://qt4cg.org/meeting/minutes/2024/02-27.html#approve-minutes
   8. https://qt4cg.org/meeting/minutes/2024/02-27.html#next-meeting
   9. https://qt4cg.org/meeting/minutes/2024/02-27.html#open-actions
  10. https://qt4cg.org/meeting/minutes/2024/02-27.html#open-pull-requests
  11. https://qt4cg.org/meeting/minutes/2024/02-27.html#merge-without-discussion
  12. https://qt4cg.org/meeting/minutes/2024/02-27.html#close-without-action
  13. https://qt4cg.org/meeting/minutes/2024/02-27.html#technical-agenda
  14. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1003
  15. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1042
  16. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1041
  17. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1040
  18. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-988
  19. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-832
  20. https://qt4cg.org/meeting/minutes/2024/02-27.html#any-other-business
  21. https://qt4cg.org/meeting/minutes/2024/02-27.html#adjourned
  22. https://qt4cg.org/meeting/minutes/
  23. https://qt4cg.org/
  24. https://qt4cg.org/dashboard
  25. https://github.com/qt4cg/qtspecs/issues
  26. https://github.com/qt4cg/qtspecs/pulls
  27. https://qt4cg.org/meeting/agenda/2024/02-27.html
  28. https://qt4cg.org/meeting/minutes/2024/02-20.html
  29. https://qt4cg.org/meeting/agenda/2024/03-05.html
  30. https://qt4cg.org/dashboard/#pr-956
  31. https://qt4cg.org/dashboard/#pr-529
  32. https://qt4cg.org/dashboard/#pr-1034
  33. https://qt4cg.org/dashboard/#pr-1033
  34. https://qt4cg.org/dashboard/#pr-1032
  35. https://qt4cg.org/dashboard/#pr-1031
  36. https://github.com/qt4cg/qtspecs/issues/1030
  37. https://github.com/qt4cg/qtspecs/issues/1007
  38. https://github.com/qt4cg/qtspecs/issues/990
  39. https://github.com/qt4cg/qtspecs/issues/872
  40. https://github.com/qt4cg/qtspecs/issues/843
  41. https://github.com/qt4cg/qtspecs/issues/825
  42. https://github.com/qt4cg/qtspecs/issues/356
  43. https://qt4cg.org/dashboard/#pr-1003
  44. https://qt4cg.org/dashboard/#pr-1042
  45. https://qt4cg.org/dashboard/#pr-1041
  46. https://qt4cg.org/dashboard/#pr-1040
  47. https://qt4cg.org/dashboard/#pr-988
  48. https://qt4cg.org/dashboard/#pr-832
  49. https://rhdunn.github.io/xquery-intellij-plugin/specifications/XQuery%20IntelliJ%20Plugin%20XQuery.html

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 27 February 2024 17:44:52 UTC