QT4CG meeting 124 draft minutes, 10 June 2025

Hello,

Here are the draft minutes for today’s meeting:

   https://qt4cg.org/meeting/minutes/2025/06-10.html

QT4 CG Meeting 124 Minutes 2025-06-10

   [1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
   Pull Requests

Table of Contents

     * [6]Draft Minutes
     * [7]Summary of new and continuing actions [0/7]
     * [8]1. Administrivia
          + [9]1.1. Roll call [8/12]
          + [10]1.2. Accept the agenda
          + [11]1.3. Approve minutes of the previous meeting
          + [12]1.4. Next meeting
          + [13]1.5. Review of open action items [1/6]
          + [14]1.6. Review of open pull requests and issues
               o [15]1.6.1. Blocked
               o [16]1.6.2. Merge without discussion
               o [17]1.6.3. Close without action
     * [18]2. Technical agenda
          + [19]2.1. PR #2031: 2025 JNodes
          + [20]2.2. PR #2028: 2027 '#' syntax for computed PIs and
            namespaces
     * [21]3. Any other business
     * [22]4. Adjourned

Draft Minutes

Summary of new and continuing actions [0/7]

     * [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
       fn:ranks proposal
     * [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
       in a ~%method~s.
     * [ ] QT4CG-116-01: Add a specific error code for unsupported options
       on doc and doc-available
     * [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
       #1906
     * [ ] QT4CG-123-01: MK to do the set example in XQuery.
     * [ ] QT4CG-124-01: MK to provide a copy of the slide deck for the
       minutes.

1. Administrivia

1.1. Roll call [8/12]

   Regrets: BTW, DB
     * [ ] David J Birnbaum (DB)
     * [X] Reece Dunn (RD)
     * [X] Christian Gr¸n (CG)
     * [X] Joel Kalvesmaki (JK)
     * [X] Michael Kay (MK)
     * [ ] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [ ] Dimitre Novatchev (DN)
     * [X] Wendell Piez (WP)
     * [X] Ed Porter (EP)
     * [ ] Bethan Tovey-Walsh (BTW)
     * [X] Norm Tovey-Walsh (NW) Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [23]the agenda.

   Accepted.

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   The next meeting is scheduled for 17 June 2025.

   JL gives regrets.

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

   (Items marked [X] are believed to have been closed via email before
   this agenda was posted.)
     * [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
       fn:ranks proposal
     * [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
       in a ~%method~s.
     * [ ] QT4CG-116-01: Add a specific error code for unsupported options
       on doc and doc-available
     * [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
       #1906
     * [X] QT4CG-119-02: MK to add a note about how schema composition is
       done for multiple options
     * [ ] QT4CG-123-01: MK to do the set example in XQuery.

1.6. Review of open pull requests and issues

   This section summarizes all of the issues and pull requests that need
   to be resolved before we can finish. See [25]Technical Agenda below for
   the focus of this meeting.

1.6.1. Blocked

   The following PRs are open but have merge conflicts or comments which
   suggest they aren't ready for action.
     * PR [26]#2019: 1776: XSLT template rules for maps and array
     * PR [27]#1942: 37 Support sequence, array, and map destructuring
       declarations
     * PR [28]#1283: 77b Update expressions
     * PR [29]#1062: 150bis revised proposal for fn:ranks

   RD suggests that #1942 is ready for discussion again.

1.6.2. 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 [30]#2033: 2032 Fix typo in example
     * PR [31]#2026: 2022 Drop module feature

   Proposal: merge without discussion.

   Accepted.

1.6.3. 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 [32]#1127: Binary resources

   Proposal: close without further action.

   Accepted.

2. Technical agenda

   The following substantive PRs are scheduled for discussion this week.

2.1. PR #2031: 2025 JNodes

   See PR [33]#2031

   MK reviews a presentation prepared about JNodes.

   See also MK's [34]MarkupUK paper.

   ACTION QT4CG-124-01: MK to provide a copy of the slide deck for the
   minutes.

   (The scribe isn't going to attempt to transcribe the slides.)

   Slide 7:
     * JL: Are you saying that the child is implicit in the syntax but
       whether or not there's a wrapper is open.
     * MK: Yes, but you get flattening if there's a bare key on the right
       hand side.

   Slide 10:
     * NW: What's the significance of the ∂?
     * MK: It's just to indicate the properties of JNodes.

   MK wraps up his presentation.
     * JL: On slide 12, in template match ?name, I assume you can add
       predicates?
     * MK: Yes.
     * JL: You can get to an XNode tree from a JNode tree, but you can
       never get back. Is that right?
     * MK: If you have a map that points to nodes. The child access will
       give you a JNode that maps the XNode.
     * JL: That's a leaf in the JTree.
     * JL: Can I do a composite path, so ?? through the JTree then / when
       it's an XTree?
     * MK: Yes, though there might questions of priority.
     * RD: I like the general direction and approach. This is somewhat
       similar to how MarkLogic and JSoniq work. The difference with those
       is that they have specific nodes for maps and arrays. I wonder if
       would make sense to do something similar, rather than wrapping it
       in a JNode.
          + ... Then every map would effectively be a map node, every
            array an array node, etc.
          + ... Then you don't need pin or unpin.
     * MK: I think the main problem is that you don't want a "string" to
       have a parent.
          + ... In the same way we distinguish a text node from a string,
            we want to distinguish the strings in an array.
     * RD: Don't we have types in the hierarchy that are multiple types,
       so in effect you could have a string not part of a JSON structure
       be the existing string, but a string in a JSON structure be both an
       xs:string and a JSON string.
     * MK: We get benefits from the fact that maps and arrays don't have
       identity that effects the semantics.
          + ... We have an enormous cost making as small change to a big
            XTree because we have to make something that looks like a copy
            with new node identities everywhere.
          + ... We don't have that cost with maps. You don't have that
            overhead.
          + ... I've found it very hard to find an implementation of small
            updates that works with nodes.
     * RD: When pinning and unpinning the nodes to construct the JNodes,
       would it make sense there to differentiate, map, array, and value
       nodes?
     * MK: In the item type syntax the JNode is parameterized by the thing
       it contains.
          + ... It's more like a generic type.
     * RD: I'm wondering then if we can take advantage of the data model
       functions and define those on the specific JNodes.
     * MK: Which functions?
     * RD: When you look at the definition of elements and attributes, it
       maps them to things like dm:parent etc.
     * MK: Yes, I'm sure one can define as much aparatus as you like. It's
       an open question how much is useful.
     * RD: If we define those on JNodes then a lot of the features that
       are derived from them come for free.
     * JK: As I expressed last night, this is fantastic.
          + ... The slide on "benefits", I would add that this potentially
            unifies the syntax that XPath uses on trees, arrays, and maps.
            They snap together.
     * MK: Yes, we get benefits and the users get different benefits.
     * JK: Thinking of arrays and maps as types of trees is very natural.
          + ... We'll have to review all the function signatures to see if
            the should or should not work with JNodes.
     * JK: Are predicate fair game?
     * MK: Yes, they're applied to those just as they would be to any
       other items in the sequence. The JNode is the context item.
          + ... I'm sure there are examples in the proposal somewhere.
     * JK: We need more examples of how to convert XPath
     * JK: If the ?? finds deeply embedded XNodes, do they fall into a
       trap?
     * MK: The ?? operator will give you a JNode, but it gets implicitly
       unpinned if you use an operator that doesn't work on JNodes.
     * JK: So given a map that contains a bunch of book trees,
       ??book/title will return the titles.
     * JL: Was there a proposal where the right hand side of ? can be a
       variable binding?
     * MK: It can be a variable reference.
     * JL: Do we want to do the same for XNodes on XPath?
     * MK: Unfortunately, it has a different meaning.
     * JL: You can get higher order like functionality.
     * MK: This is why we can't unify / and ??, there's a deep difference.
     * CG: I really like it. It looks very intuitive.
          + ... Referring to the backwards compatibility, I guess it will
            be difficult to fix it.
          + ... There are instance of checks and other things that don't
            do implicity coercion.
     * CG: One very general thought, how much time will it take to get
       this rather fundamental change finalized? People are asking when
       4.0 will be finished.
     * MK: The time taken all depends on how many good ideas people come
       up with!
          + ... It takes far less time to make things work if you have a
            good proposal.
     * NW: It's going to be a fair bit of work...
     * JL: Might it go as far as influencing the serialization specs?
     * MK: There's a minor impact in that if you serialize a JNode, it
       just gives you the serialization of its value.
     * WP: Briefly, I too am very impressed. I'd like to see conference
       papers and other explorations of this idea.
          + ... The radical thing here is how it treats JSON.
          + ... I'd like to see more attention drawn to it. If it's as
            good as we think, maybe we need to air the idea more broadly.

   What can we do?
     * MK: Please review the proposal in detail and make comments. I think
       it's capable of being merged in roughly in its current state. I'd
       like to establish it as a baseline quickly, so we can build other
       things on top of it.

   We'll spend next week doing something else and come back to it in two
   weeks.

2.2. PR #2028: 2027 '#' syntax for computed PIs and namespaces

   See PR [35]#2028

   MK reviews the PR.
     * MK: We added QName literals to element and attribute constructors.
          + ... That left the question of what to do with PI and namespace
            constructors.
          + ... This proposal says we should use a MarkedNCName that's
            only used in this context.

   Proposal: Merge this PR.

   Accepted.

3. Any other business

   None heard.

4. Adjourned

References

   1. https://qt4cg.org/meeting/minutes/
   2. https://qt4cg.org/
   3. https://qt4cg.org/dashboard
   4. https://github.com/qt4cg/qtspecs/issues
   5. https://github.com/qt4cg/qtspecs/pulls
   6. https://qt4cg.org/meeting/minutes/2025/06-10.html#minutes
   7. https://qt4cg.org/meeting/minutes/2025/06-10.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2025/06-10.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2025/06-10.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2025/06-10.html#agenda
  11. https://qt4cg.org/meeting/minutes/2025/06-10.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2025/06-10.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2025/06-10.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2025/06-10.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2025/06-10.html#blocked
  16. https://qt4cg.org/meeting/minutes/2025/06-10.html#merge-without-discussion
  17. https://qt4cg.org/meeting/minutes/2025/06-10.html#close-without-action
  18. https://qt4cg.org/meeting/minutes/2025/06-10.html#technical-agenda
  19. https://qt4cg.org/meeting/minutes/2025/06-10.html#pr-2031
  20. https://qt4cg.org/meeting/minutes/2025/06-10.html#pr-2028
  21. https://qt4cg.org/meeting/minutes/2025/06-10.html#any-other-business
  22. https://qt4cg.org/meeting/minutes/2025/06-10.html#adjourned
  23. https://qt4cg.org/meeting/agenda/2025/06-10.html
  24. https://qt4cg.org/meeting/minutes/2025/05-27.html
  25. https://qt4cg.org/meeting/minutes/2025/06-10.html#technical-agenda
  26. https://qt4cg.org/dashboard/#pr-2019
  27. https://qt4cg.org/dashboard/#pr-1942
  28. https://qt4cg.org/dashboard/#pr-1283
  29. https://qt4cg.org/dashboard/#pr-1062
  30. https://qt4cg.org/dashboard/#pr-2033
  31. https://qt4cg.org/dashboard/#pr-2026
  32. https://github.com/qt4cg/qtspecs/issues/1127
  33. https://qt4cg.org/dashboard/#pr-2031
  34. https://markupuk.org/webhelp/index.html#ar04.html
  35. https://qt4cg.org/dashboard/#pr-2028

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 10 June 2025 16:25:42 UTC