- 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