- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 19 Aug 2025 17:28:40 +0100
- To: public-xslt-40@w3.org
Hello,
Here are the draft minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2025/08-19.html
QT4 CG Meeting 133 Minutes 2025-08-19
[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/11]
* [8]1. Administrivia
+ [9]1.1. Roll call [7/11]
+ [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 [4/11]
+ [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 #2168: 2139 Make hexBinary and base64Binary fully
comparable
+ [20]2.2. PR #2167: 2166 Reinstate lost text for lookup
expressions
+ [21]2.3. PR #2160: 2073 data model changes for JNodes and
Sequences
+ [22]2.4. PR #2116: 2112 Refine/revise the rules for get() in
node tests
+ [23]2.5. PR #2155: 2150 Define patterns for JNodes
+ [24]2.6. PR #2123: 2051: XSLT group by cluster
+ [25]2.7. PR #2071: 77c deep update
+ [26]2.8. PR #2019: 1776: XSLT template rules for maps and
array
* [27]3. Any other business
* [28]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/11]
* [ ] 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-127-01: NW to diagram the JTree representing arbitrary
XDM content.
* [ ] QT4CG-128-03: NW to compare the file: module against the
equivalent XProc 3.1 steps
* [ ] QT4CG-131-01: MK to add a non-schema aware result.
* [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
* [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
matrix example.
* [ ] QT4CG-133-01: MK to correct the use of "Expr" in examples for
get()
1. Administrivia
1.1. Roll call [7/11]
* [X] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [ ] Joel Kalvesmaki (JK)
* [X] Michael Kay (MK)
* [ ] Juri Leino (JLO)
* [X] John Lumley (JWL)
* [X] Wendell Piez (WP)
* [ ] Ed Porter (EP)
* [ ] Bethan Tovey-Walsh (BTW)
* [X] Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [29]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [30]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The CG will take a short recess in late August. We will not meet on 26
August, 2 September, or 9 September.
The next meeting is planned for 16 September 2025.
1.5. Review of open action items [4/11]
(Items marked [X] are believed to have been closed via email before
this agenda was posted.)
* [ ] 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-127-01: NW to diagram the JTree representing arbitrary
XDM content.
* [ ] QT4CG-128-03: NW to compare the file: module against the
equivalent XProc 3.1 steps
* [ ] QT4CG-131-01: MK to add a non-schema aware result.
* [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
* [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
matrix example.
* [X] QT4CG-132-01: MK to add more examples for innermost, outermost,
has-children and path with JNodes
* [X] QT4CG-132-02: MK to double-check the signature of innermost
* [X] QT4CG-132-03: MK to double-check stray text in h.i. in path
* [X] QT4CG-132-04: MK to add resize to the rectangle in the example
of chaining method calls and flesh out the example.
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 [31]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 [32]#2124: 573 Functions to Construct Trees
* PR [33]#2120: 2007 Revised design for xsl:array
* PR [34]#2019: 1776: XSLT template rules for maps and array
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 [35]#2164: Fix return type in fn:parse-csv signature
* PR [36]#2162: QT4CG-132-04 Expand the rectangle?area example
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 [37]#2143: JNodes and Methods
* Issue [38]#1714: sibling:: axis. Action Item QT4CG-097-03
* Issue [39]#350: CompPath (Composite-objects path) Expressions
* Issue [40]#119: Allow a map's key value to be any sequence
* Issue [41]#106: Decorators' support
* Issue [42]#34: Proposal to introduce the set datatype in XPath 4
Accepted.
2. Technical agenda
2.1. PR #2168: 2139 Make hexBinary and base64Binary fully comparable
See PR [43]#2168
* MK: The history of this is that we'd changed the eq operator to
allow mutual comparisons.
+ ... But we balked at the idea of making them equal for keys in
maps because of compatibility implications.
+ ... Basically, we're being braver now: this is a more rational
and consistent approach, and we assume that the number of
users hit by the backwards compatibility issue will be small.
* JWL: We have no operator that says "is this the same type"?
+ ... We've got castable which would allow you to infer one way.
+ ... In the situations where you'd want to have a difference
between the two, what could you do.
+ ... The types are still distinct.
* MK: You could maniuplate the value if you wanted to keep them
distinct.
Proposal: Accept this PR.
Accepted.
2.2. PR #2167: 2166 Reinstate lost text for lookup expressions
See PR [44]#2167
* MK: We had a load of machiner that we added to lookup expressions
(modifiers, type predicates, etc.)
+ ... The JNodes proposal replaced all of that and I
accidentally deleted more text than I should have done.
* MK reviews the PR
* MK: The text that's being restored has been lightly updated to deal
with JNodes.
+ ... Added a note about out of bounds conditions.
Proposal: Accept this PR.
Accepted.
2.3. PR #2160: 2073 data model changes for JNodes and Sequences
See PR [45]#2160
* MK: This is the first half the work, but I don't think we can
accept it yet.
* MK: It only addresses the data model changes.
* MK: The position property of a JNode is discarded (replaced by the
selector property, effectively)
+ ... It has a parent, selector, or kind property.
+ ... If a JNode represents a sequence of two or more items, an
array or map that's a sequence, then you have a children
property, one child per item.
+ ... If you're a singleton, you don't. So there's an asymmetry
there.
+ ... That keeps the tree finite.
+ ... That asymmetry is unfortunate, but less so than the
current situation where sequences of more than one item are
pretty unmanagable.
MK continues through the PR.
* MK: I reworked the second example as a table. I propose to do the
same thing for the first example.
* MK: That's my current thinking; there's been a fair bit of
discussion on the proposal.
+ ... One of the ideas is that a sequence of length 1 should
have children provided that you only go one level deep.
+ ... An atomic value would have a child that contains the
value, but that child wouldn't also have a child.
* MK: One of the questions here is what is the consequence on the
descendant axis. You want that axis to select each descendant
exactly once.
* CG: I can't give real comments, but I think this way forward is a
good one. All the other approaches we've tried were much more
inconsistent.
* MK: Okay, I'll try to push forward.
2.4. PR #2116: 2112 Refine/revise the rules for get() in node tests
See PR [46]#2116
* JWL: We changed it so that the argument to the get is an ExprSingle
but in some of the examples we still use Expr.
* MK: Okay, let's take a look at that one.
MK reviews the XQuery diffs.
* MK: Yes. I see the places where Expr is still used in the examples.
+ ... It's probably best to use a variable in the get() to avoid
the implication that it's the same thing as the grammar rule.
ACTION QT4CG-133-01: MK to correct the use of "Expr" in examples for
get()
* MK: The main subject is about the focus of the expression. There's
been a fair bit of discussion.
+ ... The focus could be the thing to either the left or right
of the slash. In both cases semantics that sort of make sense
could be defined. But it's so easy to get wrong, that I think
it's better to make the expression context-free.
* CG: I don't think it's that important, but I think one reason to
support the context is that in all right-hand-side expressions, you
can use the "." and it doesn't make any sense. This exception for
the pseudo-function get() when it's allowed everywhere else doesn't
make sense.
* MK: If the focus is on the right-hand-side, then you'd have to
evaluate it for everything on the left hand side.
+ ... It's like "." in a predicate; you end up with a lot of
tests that aren't very useful.
+ ... I think the analogy with array:get is sort of a false one.
Doing array:get on the right is applying the function to every
item on the left. The get() pseudo-function is much more like
using element() or node().
+ ... We could restrict it to a constant, but that seemed like
going too far.
* CG: There are lots of places where it doesn't make sense, but maybe
users will have uses for it. So many basic constructs in XPath that
can be used to write weird things. It's always up to the developer.
* MK: I don't think we're losing any functionality because you can
use a predict.
* CG: But that's true if we don't have the get() pseudo-function at
all.
Proposal: Accept this PR.
Accepted.
MK will merge this after completing his action.
2.5. PR #2155: 2150 Define patterns for JNodes
See PR [47]#2155
* MK: This has a technical flaw, there's an ambiguity in the grammar.
+ ... I've asked John Lumley for advice.
+ ... I think it's probably solvable with some subtlety.
* MK: The issue is to do with parenthesized expressions.
MK reviews the PR.
* MK: Patterns are now part of the section on template rules.
+ ... Although path expressions between XNodes and JNodes look
much the same, match patterns are distinct and can only match
one kind of node.
* MK: The ambiguity is in how union, intersect, and except operators
are applied.
+ ... They're not defined in terms of node sets anymore.
* MK: The text for XNode patterns is largely unchanged, but
reorganized a bit.
* MK: JNode patterns are new.
+ ... Always introduced by jnode(
+ ... Both operands are currently required.
+ ... It sort of mirrors the way that element() with two
arguments works.
* MK: The default priorities broadly parallel elements and other
things.
JWL demonstrates the grammar in his jwiXML processor.
* JWL: The inside and outside are the same, but the path from
XNodePattern->ParentehsizedExpreP or ParentesizedPattern->XNode
pattern is ambiguous.
* MK: Defining patterns for JNodes is the first part of a piece of
work to talk about doing template rules on a tree of maps and
arrays.
2.6. PR #2123: 2051: XSLT group by cluster
See PR [48]#2123
Wait for JK.
2.7. PR #2071: 77c deep update
See PR [49]#2071
2.8. PR #2019: 1776: XSLT template rules for maps and array
See PR [50]#2019
Needs to be rewritten.
3. Any other business
JWL and JLO are doing a 4.0 tutorial at Declarative Amsterdam.
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/08-19.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/08-19.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/08-19.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/08-19.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/08-19.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/08-19.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/08-19.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/08-19.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/08-19.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/08-19.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/08-19.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/08-19.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2025/08-19.html#technical-agenda
19. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2168
20. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2167
21. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2160
22. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2116
23. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2155
24. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2123
25. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2071
26. https://qt4cg.org/meeting/minutes/2025/08-19.html#pr-2019
27. https://qt4cg.org/meeting/minutes/2025/08-19.html#any-other-business
28. https://qt4cg.org/meeting/minutes/2025/08-19.html#adjourned
29. https://qt4cg.org/meeting/agenda/2025/08-19.html
30. https://qt4cg.org/meeting/minutes/2025/08-12.html
31. https://qt4cg.org/meeting/minutes/2025/08-19.html#technical-agenda
32. https://qt4cg.org/dashboard/#pr-2124
33. https://qt4cg.org/dashboard/#pr-2120
34. https://qt4cg.org/dashboard/#pr-2019
35. https://qt4cg.org/dashboard/#pr-2164
36. https://qt4cg.org/dashboard/#pr-2162
37. https://github.com/qt4cg/qtspecs/issues/2143
38. https://github.com/qt4cg/qtspecs/issues/1714
39. https://github.com/qt4cg/qtspecs/issues/350
40. https://github.com/qt4cg/qtspecs/issues/119
41. https://github.com/qt4cg/qtspecs/issues/106
42. https://github.com/qt4cg/qtspecs/issues/34
43. https://qt4cg.org/dashboard/#pr-2168
44. https://qt4cg.org/dashboard/#pr-2167
45. https://qt4cg.org/dashboard/#pr-2160
46. https://qt4cg.org/dashboard/#pr-2116
47. https://qt4cg.org/dashboard/#pr-2155
48. https://qt4cg.org/dashboard/#pr-2123
49. https://qt4cg.org/dashboard/#pr-2071
50. https://qt4cg.org/dashboard/#pr-2019
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 19 August 2025 16:28:47 UTC