- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 15 Jul 2025 17:41:34 +0100
- To: public-xslt-40@w3.org
Hi folks,
Here are today’s minutes:
https://qt4cg.org/meeting/minutes/2025/07-15.html
QT4 CG Meeting 129 Minutes 2025-07-15
[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/9]
* [8]1. Administrivia
+ [9]1.1. Roll call [9/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 [0/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
o [18]1.6.4. Substantive PRs
* [19]2. Technical agenda
+ [20]2.1. JNodes/Generalized path expressions
+ [21]2.2. PR #2094: 2003 Generalize Map Constructors
+ [22]2.3. PR #2014: QT4CG-122-01 Add notes, examples, and
rationale for xsl:select
+ [23]2.4. PR #2019: 1776: XSLT template rules for maps and
array
+ [24]2.5. PR #2037: 2036 Add rule for streamability of xsl:map
+ [25]2.6. PR #2043: 2038 Tweak the rules for fn:apply-templates
references to modes
+ [26]2.7. PR #2011: 675(part): Add XSLT static typing rules for
new kinds of XPath expression
* [27]3. Any other business
* [28]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/9]
* [ ] 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-127-01: NW to diagram the JTree representing arbitrary
XDM content.
* [ ] QT4CG-128-01 CG to consider using "standard" or some other term
instead of "regular" in the file: module.
* [ ] QT4CG-128-02 CG to investigate what to say about permissions.
* [ ] QT4CG-128-03 NW to compare the file: module against the
equivalent XProc 3.1 steps
* [ ] QT4CG-129-01: MK to fix the remaining prose references to
MapKeyExpr and MapValueExpr
1. Administrivia
1.1. Roll call [9/12]
Regrets: DB, BTW.
* [ ] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK)
* [X] Michael Kay (MK)
* [X] 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 [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 next meeting is scheduled for 22 July 2025.
DB gives regrets.
1.5. Review of open action items [0/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
* [ ] QT4CG-123-01: MK to do the set example in XQuery.
* [ ] QT4CG-127-01: NW to diagram the JTree representing arbitrary
XDM content.
* [ ] QT4CG-128-01 CG to consider using "standard" or some other term
instead of "regular" in the file: module.
* [ ] QT4CG-128-02 CG to investigate what to say about permissions.
* [ ] QT4CG-128-03 NW to compare the file: module against the
equivalent XProc 3.1 steps
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]#2063: 1996 Lookups, KeySpecifier: Literal, ContextValueRef
* PR [33]#2019: 1776: XSLT template rules for maps and array
* PR [34]#1062: 150bis revised proposal for fn:ranks
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]#2096: 2035 Drop unworkable example of recursive record
types
Discussion ensued.
* JLO: Does it mean that recursive record types are impossible in
general?
* MK: No record types can be recursive, but you can't instantiate
them with something that's cyclic.
+ ... Type A can refer to type B, but you can instantiate an
A-B-A cycle, even with functions.
* CG: I proposed an example, is that legal?
declare record local:a(b as local:b?);
declare record local:b(a as local:a?);
() => local:a() => local:b()
* MK: You've instantiated both record types, but there's no cycle
between references.
* CG: Oh, I see.
* MK: You can't make an A that points to a B that points back to the
same A.
Some discussion of how updating works.
* JWL: Is this case that can be determined statically, or is it
impossible to write it syntactically?
* MK: It won't have the effect you think.
* WP: I think this is fine.
* MK: It seems to be a fairly well known problem in functional
languages. They do have some constructs to get around the problem.
But they're fairly convoluted.
* RD: Might be worth adding a note that says you can't create cyclic
instances.
Proposal: merge this PR.
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 [36]#2057: Steps: variable element names
* Issue [37]#1307: For symmetry, add functions array:scan-left and
array:scan-right
Proposal: close without further action.
Accepted.
1.6.4. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
* PR [38]#2011: 675(part): Add XSLT static typing rules for new kinds
of XPath expression
* PR [39]#2014: QT4CG-122-01 Add notes, examples, and rationale for
xsl:select
* PR [40]#2019: 1776: XSLT template rules for maps and array
* PR [41]#2031: 2025 JNodes
* PR [42]#2037: 2036 Add rule for streamability of xsl:map
* PR [43]#2043: 2038 Tweak the rules for fn:apply-templates
references to modes
* PR [44]#2071: 77c deep update
* PR [45]#2083: 2054 Generalized Path Expressions
* PR [46]#2094: 2003 Generalize Map Constructors
2. Technical agenda
2.1. JNodes/Generalized path expressions
Last week, we agreed to return to this with an eye towards accepting it
unless there are objections.
See PR [47]#2083: 2054 Generalized Path Expressions and PR [48]#2031:
2025 JNodes
(I believe that #2083 subsumes #2031, so accepting #2083 should also
close #2031.)
* MK: Just want to draw your attention to the fact that I responded
to several comments.
+ ... The mixed case names are now all lowercase
+ ... Gunther Radamacher's comment about needing to reserve more
function names; we had both a type and a function called
jnode(). I've renamed the type as jnode-type() but we may want
to resolve that differently.
+ ... The property names now use ".." instead of "∂".
* CG: I think it's a good idea to merge this PR; but it's so huge.
+ ... I think that transitive closure functions might need some
revisions.
* NW: I think we should merge it.
* JK: I'd like to merge it, but I think we need to have a discussion
about how definitions are worded.
Proposal: merge this PR.
Accepted.
This obsoletes #2031.
* JWL: Is it worth putting something on Slack that we're making this
big change.
2.2. PR #2094: 2003 Generalize Map Constructors
See PR [49]#2094
MK introduces the PR.
* MK: This is confined to a fairly small part of the XPath spec.
+ ... I've moved things around a bit.
+ ... The section begins with an example of something you didn't
used to be able to do.
+ ... The new case is that an ExprSingle can be written without
a : and it must return zero or more map items.
The example with employee has an error, it should be: { //employee !
{@id : .} }.
* JWL: Can you use a predicate?
* MK: Yes, I'll add an example.
* JLO: One thing that struck me: the map key expression and map value
expression are no longer used by the map constructor expression but
are referenced elsewhere.
* MK: I thought I'd dropped all reference to them.
+ ... Oh, you're right. There are.
ACTION: QT4CG-129-01: MK to fix the remaining prose references to
MapKeyExpr and MapValueExpr
Some discussion of why it was dropped. Avoiding lookahead was the goal.
* RD: With the key, if you have a sequence of values, are we handling
the semantics of that?
* MK: The result of atomizing must be a single atomic item otherwise
it's a type error.
* JLO: I'd like to be able to put in a variable into a map and have
it expand into key and value.
+ ... Previously we said this shouldn't be allowed because of
substitutability
+ ... But we're so close now. Wouldn't it be possible?
* MK: I'm not sure I understand the example.
* JLO: I want:
let $a := 1
let $m := { $a }
to return {"a": 1}
* MK: Substitutability certainly means you should be able to rename
variables without changing expressions.
* CG: In this example, $a will be allowed and if it returns a map
that will become a map.
Proposal: accept this PR.
Accepted.
2.3. PR #2014: QT4CG-122-01 Add notes, examples, and rationale for xsl:select
See PR [50]#2014
MK introduces the PR starting with the general rules about where XPath
expressions occur in XSLT.
* MK: There is some reordering of sections.
+ ... "Creating nodes and sequences" has moved into "Callable
components".
+ ... Some examples have been added.
Proposal: accept this PR.
Accepted.
2.4. PR #2019: 1776: XSLT template rules for maps and array
See PR [51]#2019
Not ready yet.
2.5. PR #2037: 2036 Add rule for streamability of xsl:map
See PR [52]#2037
Needs to be reviewed.
2.6. PR #2043: 2038 Tweak the rules for fn:apply-templates references to
modes
See PR [53]#2043
MK introduces this PR.
* MK: We introduced fn:apply-templates() largely so that we could use
XPath array and map constructors and do apply templates in the
middle.
+ ... In implementing it, I realized there was a complication
that wasn't really adding any value: you could make it use the
default mode from the static context.
+ ... I don't think we want to keep the default mode around in
every dynamic context.
+ ... Let's make it compulsory to say what mode you want to
apply templates in if you're using the functional form.
+ ... The effect is to remover #default from the list of
available modes.
* JWL: Would this apply in an XPath expression that's in an enclosed
mode?
* MK Yes.
Proposal: accept the PR.
Accepted.
2.7. PR #2011: 675(part): Add XSLT static typing rules for new kinds of XPath
expression
See PR [54]#2011
MK introduces the PR.
* MK: This just updates the current table of rules to add some new
constructs.
+ ... The U-type of a choice item type is defined.
+ ... The table and its description have been expanded.
+ ... OtherwiseExpr has been added.
+ ... Some notational changes have been made.
+ ... StringTemplate has been added.
+ ... ContextValueRef becomes a bit more complicated as a
consequence of generalizing the context item.
+ ... Partial Function Application has been added (with a TODO).
+ ... Deep Lookup needs to be examined again
* MK: It doesn't address streamability, it just updates the relevant
static type information.
* JWL: Is adding jnodes going to be about adding map types?
* MK: No, they're a new type.
Proposal: accept the PR.
Accepted.
3. Any other business
Summer vacation?
* NW: Does the group want to take a vacation?
* CG: I'll be gone the last week of August and the first two weeks of
September.
* NW: Let's revisit this next week.
* MK: I think we should plan to produce a stable working draft.
* NW: I think that's a good idea. As soon as we feel like the JNodes
proposal is bedded in, perhaps that's the time.
Some discussion of this in the context of Mike's Balisage paper.
* NW: I think the question of stable draft for reference from papers
is easier. I don't think we need any sort of group consensus to say
"here's what the draft was on such-and-such a date." URIs are
cheap.
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/07-15.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/07-15.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/07-15.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/07-15.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/07-15.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/07-15.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/07-15.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/07-15.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/07-15.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/07-15.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/07-15.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/07-15.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2025/07-15.html#substantive
19. https://qt4cg.org/meeting/minutes/2025/07-15.html#technical-agenda
20. https://qt4cg.org/meeting/minutes/2025/07-15.html#h-E26407E8-EB3B-4D13-B605-81347EE4D5FF
21. https://qt4cg.org/meeting/minutes/2025/07-15.html#pr-2094
22. https://qt4cg.org/meeting/minutes/2025/07-15.html#pr-2014
23. https://qt4cg.org/meeting/minutes/2025/07-15.html#pr-2019
24. https://qt4cg.org/meeting/minutes/2025/07-15.html#pr-2037
25. https://qt4cg.org/meeting/minutes/2025/07-15.html#pr-2043
26. https://qt4cg.org/meeting/minutes/2025/07-15.html#pr-2011
27. https://qt4cg.org/meeting/minutes/2025/07-15.html#any-other-business
28. https://qt4cg.org/meeting/minutes/2025/07-15.html#adjourned
29. https://qt4cg.org/meeting/agenda/2025/07-15.html
30. https://qt4cg.org/meeting/minutes/2025/07-08.html
31. https://qt4cg.org/meeting/minutes/2025/07-15.html#technical-agenda
32. https://qt4cg.org/dashboard/#pr-2063
33. https://qt4cg.org/dashboard/#pr-2019
34. https://qt4cg.org/dashboard/#pr-1062
35. https://qt4cg.org/dashboard/#pr-2096
36. https://github.com/qt4cg/qtspecs/issues/2057
37. https://github.com/qt4cg/qtspecs/issues/1307
38. https://qt4cg.org/dashboard/#pr-2011
39. https://qt4cg.org/dashboard/#pr-2014
40. https://qt4cg.org/dashboard/#pr-2019
41. https://qt4cg.org/dashboard/#pr-2031
42. https://qt4cg.org/dashboard/#pr-2037
43. https://qt4cg.org/dashboard/#pr-2043
44. https://qt4cg.org/dashboard/#pr-2071
45. https://qt4cg.org/dashboard/#pr-2083
46. https://qt4cg.org/dashboard/#pr-2094
47. https://qt4cg.org/dashboard/#pr-2083
48. https://qt4cg.org/dashboard/#pr-2031
49. https://qt4cg.org/dashboard/#pr-2094
50. https://qt4cg.org/dashboard/#pr-2014
51. https://qt4cg.org/dashboard/#pr-2019
52. https://qt4cg.org/dashboard/#pr-2037
53. https://qt4cg.org/dashboard/#pr-2043
54. https://qt4cg.org/dashboard/#pr-2011
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 15 July 2025 16:41:41 UTC