- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 12 Aug 2025 17:40:24 +0100
- To: public-xslt-40@w3.org
Hello,
Here are the draft minutes from today:
https://qt4cg.org/meeting/minutes/2025/08-12.html
QT4 CG Meeting 132 Minutes 2025-08-12
[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 [8/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 [2/9]
+ [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 #2116: 2112 Refine/revise the rules for get() in
node tests
+ [20]2.2. PR #2120: 2007 Revised design for xsl:array
+ [21]2.3. PR #2156: 2092 Drop map:pair, map:of-pairs, map-pairs
+ [22]2.4. PR #2155: 2150 Define patterns for JNodes
+ [23]2.5. PR #2154: 2152 Revise rules for enumeration types
+ [24]2.6. PR #2149: 2100 Make innermost, outermost,
has-children, path apply to JNodes
+ [25]2.7. PR #2147: 2143 Redesign of method calls
+ [26]2.8. PR #2134: 1996 Lookups, KeySpecifier: Literal,
ContextValueRef
+ [27]2.9. PR #2133: 2132 error handling in logical expressions
* [28]3. Any other business
* [29]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-132-01: MK to add more examples for innermost, outermost,
has-children and path with JNodes
* [ ] QT4CG-132-02: MK to double-check the signature of innermost
* [ ] QT4CG-132-03: MK to double-check stray text in h.i. in path
* [ ] QT4CG-132-04: MK to add resize to the rectangle in the example
of chaining method calls and flesh out the example.
1. Administrivia
1.1. Roll call [8/11]
Regrets: BTW.
* [X] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK) [:15-]
* [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 [30]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [31]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The following meeting is scheduled for 19 August 2025.
No regrets heard.
(The CG will take a short recess in late August. We will not meet on 26
August, 2 September, or 9 September.)
1.5. Review of open action items [2/9]
(Items marked [X] are believed to have been closed via email before
this agenda was posted.)
* [X] QT4CG-082-02: DN to work with NW to come to agreement on the
fn:ranks proposal
+ Overtaken by events
* [ ] 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-131-04: JK to double check the use of << in the
grammar where >> might have been intended
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 [32]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 [33]#2124: 573 Functions to Construct Trees
* PR [34]#2120: 2007 Revised design for xsl:array
* PR [35]#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 [36]#2158: 2157 Editorial updates to F+O ß5.5 (Unicode
collations)
* PR [37]#2146: Require at least one character in
StringTemplateFixedPart
* PR [38]#2145: Allow implicit whitespace in StringInterpolation
* PR [39]#2141: Remove nested paragraphs
* PR [40]#2137: 2136 Drop full-width < and > symbols
* PR [41]#2135: QT4CG-131-01/02 Expand on example as actioned
Proposal: merge these PRs without discussion.
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 [42]#1852: fn:values-except: Return atomic values that occur
in A but not in B
+ MK proposes closing on a value judgement; didn't meet the
minimum bar for adding the function. But that's a personal
judgement.
+ JWL: Easy enough to write your own?
+ MK: Yes.
+ CG: Background: we had some users who were asking for the
function. They noticed that there's no equivalent predicate
solution that's fast enough.
o ... If you have a dedicated function, it's easier to
optimize. But we have maps and there are no other
comments, so I'm fine with closing it.
* Issue [43]#1698: Allow select attribute for xsl:call-template
instruction
* Issue [44]#714: Function annotations in XSLT
+ JWL: If you really want to do this you can pre-process the
source code that contains a map.
+ MK: They wouldn't be visible as annotations, but you can get
the information.
+ JWL: You can do it yourself.
+ RD: That's defining the equivalent of XQuery annotations on
functions. Those are used in different places, like BaseX and
other processors support REST XQ through annotations.
+ MK: There are two things here; being able to define
annotations. You could do that with a vendor-defined extension
attribute. The other is having the annotations available
dynamically for interrogation. That's subtle enough, we can
leave users to design their own.
+ RD: I've used it in the past for roles.
+ MK: You can do that with extension attributes. It was a nice
idea, but we can live without it.
+ RD: That means if you're importing a function from XSLT, you
can't use the annotation mechanism in XQuery to interrogate
the function.
+ WP: The more I hear, the more I'm with JWL. There are ways of
doing this.
* Issue [45]#150: fn:ranks: Produce all ranks in applying a function
on the items of a sequence
+ PR [46]#1062: 150bis revised proposal for fn:ranks
Proposal: close these issues and PRs without further action.
2. Technical agenda
2.1. PR #2116: 2112 Refine/revise the rules for get() in node tests
See PR [47]#2116
Defer until later. (Maybe later today, maybe next week.)
2.2. PR #2120: 2007 Revised design for xsl:array
See PR [48]#2120
* MK: Not ready for discussion. I need to rethink it.
2.3. PR #2156: 2092 Drop map:pair, map:of-pairs, map-pairs
See PR [49]#2156
* MK: We have too many ways to do things; I like these functions, but
they are one-liners with JNodes. So let's simplify the spec by
dropping them.
* JWL: I wonder if it's worthwhile putting them in as examples
somewhere.
* MK: We could have a rag-bag appendix of functions in F&O.
* WP: That would be awesome.
Proposal: accept this PR.
Accepted.
2.4. PR #2155: 2150 Define patterns for JNodes
See PR [50]#2155
Defer until later.
2.5. PR #2154: 2152 Revise rules for enumeration types
See PR [51]#2154
MK introduces the PR. Only the XPath and XQuery specs are effected.
* MK: The only material change for users is that instance of now does
the required thing.
+ ... We still define them as a union of singleton enumerations
+ ... But a singleton is no longer defined as a type derived
from restriction, that stops instance of working.
+ ... This defines it as a new kind of subtype of string.
+ ... The main reason to change this is so that you can use
instance of tests in XSLT Patterns because patterns don't use
coercion.
* JWL: Is there any use case where people might want to use other
collations?
* MK: Maybe, but the consequences would be horrible.
Proposal: accept this PR.
Accepted.
2.6. PR #2149: 2100 Make innermost, outermost, has-children, path apply to
JNodes
See PR [52]#2149
MK introduces the PR.
* MK: This generalizes a few more functions so that they work on
JNodes.
+ ... These could do with more examples.
ACTION: QT4CG-132-01: MK to add more examples for innermost, outermost,
has-children and path with JNodes ACTION: QT4CG-132-02: MK to
double-check the signature of innermost
MK walks through the revised functions.
Some discussion of why has-children exists at all: streaming.
ACTION: QT4CG-132-03: MK to double-check stray text in h.i. in path
Some discussion of where the "TODO" note is leading; will be resolved
when we sort out the question of JNodes and sequences.
Proposal: accept this PR.
Accepted.
MK will address the actions and then merge the PR.
2.7. PR #2147: 2143 Redesign of method calls
See PR [53]#2147
The design of methods was just too baroque; CG made a simplification
proposal. Rather than overloading the ? operator, we have a separate
operator for invoking methods.
* MK: We introduce a new operator ?>. We can debate how to spell it
later.
+ ... No magic semantics for ? anymore. Instead there's a new
expression.
* MK: You can't use partial function application in this case. It's a
simplification.
* CG: I think I like this solution. Mostly we had different
proposals; the other syntax was a little shorter but it wasn't as
composable.
* JWL: Given the example with chaining and resize; would it not be
worthwhile putting the resize method into the example.
ACTION: QT4CG-132-04: MK to add resize to the rectangle in the example
of chaining method calls and flesh out the example.
* JK: One of the examples that confuses me is the rectangle example.
+ ... Area is defined in rectangle as a 1 arity function but it
looks like you're invoking a 0 arity function.
+ ... Can you use area(.)?
* MK: No, like the arrow syntax it implicitly passes the first
argument.
* JK: If someone were to jigger the function, what are the rules?
* MK: No, the map has to be the first argument and it's implicitly
set.
* JK: More examples would help. An example that invites external
parameters would also be helpful.
* RD: The only reserved names are things like function and switch.
* MK: I'm not sure even those are reserved; they're fine in the
context of the record.
* JWL: Thinking about resize; it has to produce a new rectangle that
has to have an area method and a resize method and that needs a
real example.
* RD: You could potentially do that with a create helper.
* JWL: It doesn't matter how you do it, you need an example people
can follow.
Some discussion of how it might be done: by constructing a new map or
by using map:put.
Proposal: accept this PR.
Accepted.
2.8. PR #2134: 1996 Lookups, KeySpecifier: Literal, ContextValueRef
See PR [54]#2134
CG introduces the PR.
* CG: In the old version a KeySpecifier had a few specific
productions on the RHS.
* CG: I generalized literals and added VarRef.
* MK: I have slight reservations about the use of .. People might
feel like ? is very similar to / and /. would do something quite
different.
* CG: You can use variables and in my mind is that . is like that.
* MK: Well, yes, but it changes implicitly in places.
Proposal: accept this PR.
Accepted.
2.9. PR #2133: 2132 error handling in logical expressions
See PR [55]#2133
* MK: I think this is a simple bug fix. We made the statement that
with and and or expressions that an error in the second operand is
masked. We failed to carry that into the spec where we discuss
those expressions.
* RD: Don't the tables make the paragraph that defines the semantic
redundant?
* MK: Yes, but I think it's still valuable.
Proposal: accept 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/08-12.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/08-12.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/08-12.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/08-12.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/08-12.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/08-12.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/08-12.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/08-12.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/08-12.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/08-12.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/08-12.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/08-12.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2025/08-12.html#technical-agenda
19. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2116
20. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2120
21. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2156
22. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2155
23. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2154
24. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2149
25. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2147
26. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2134
27. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2133
28. https://qt4cg.org/meeting/minutes/2025/08-12.html#any-other-business
29. https://qt4cg.org/meeting/minutes/2025/08-12.html#adjourned
30. https://qt4cg.org/meeting/agenda/2025/08-12.html
31. https://qt4cg.org/meeting/minutes/2025/07-29.html
32. https://qt4cg.org/meeting/minutes/2025/08-12.html#technical-agenda
33. https://qt4cg.org/dashboard/#pr-2124
34. https://qt4cg.org/dashboard/#pr-2120
35. https://qt4cg.org/dashboard/#pr-2019
36. https://qt4cg.org/dashboard/#pr-2158
37. https://qt4cg.org/dashboard/#pr-2146
38. https://qt4cg.org/dashboard/#pr-2145
39. https://qt4cg.org/dashboard/#pr-2141
40. https://qt4cg.org/dashboard/#pr-2137
41. https://qt4cg.org/dashboard/#pr-2135
42. https://github.com/qt4cg/qtspecs/issues/1852
43. https://github.com/qt4cg/qtspecs/issues/1698
44. https://github.com/qt4cg/qtspecs/issues/714
45. https://github.com/qt4cg/qtspecs/issues/150
46. https://qt4cg.org/dashboard/#pr-1062
47. https://qt4cg.org/dashboard/#pr-2116
48. https://qt4cg.org/dashboard/#pr-2120
49. https://qt4cg.org/dashboard/#pr-2156
50. https://qt4cg.org/dashboard/#pr-2155
51. https://qt4cg.org/dashboard/#pr-2154
52. https://qt4cg.org/dashboard/#pr-2149
53. https://qt4cg.org/dashboard/#pr-2147
54. https://qt4cg.org/dashboard/#pr-2134
55. https://qt4cg.org/dashboard/#pr-2133
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 12 August 2025 16:40:37 UTC