- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 11 Mar 2025 17:20:54 +0000
- To: public-xslt-40@w3.org
Hello, Here are the draft minutes from today’s call: https://qt4cg.org/meeting/minutes/2025/03-11.html QT4 CG Meeting 113 Minutes 2025-03-11 [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/4] * [8]1. Administrivia + [9]1.1. Roll call [9/13] + [10]1.2. Accept the agenda o [11]1.2.1. Status so far... + [12]1.3. Approve minutes of the previous meeting + [13]1.4. Next meeting + [14]1.5. Review of open action items [4/7] + [15]1.6. Review of open pull requests and issues o [16]1.6.1. Blocked o [17]1.6.2. Substantive PRs * [18]2. Technical agenda + [19]2.1. Review of pull requests o [20]2.1.1. PR #1735: 1341 Drop $position callback from many functions o [21]2.1.2. PR #1740: 1725b Further elaboration of duplicates handling in maps o [22]2.1.3. PR #1778: 1456 Lookup expressions filtered by type o [23]2.1.4. PR #1858: Initial xsl:record * [24]3. Any other business * [25]4. Adjourned Draft Minutes Summary of new and continuing actions [0/4] * [ ] QT4CG-082-02: DN to work with NW to come to agreement on the fn:ranks proposal * [ ] QT4CG-107-05: JLO and DN to consider a proposal for system defined records. * [ ] QT4CG-110-04: JK to consider a PR for #366, xsl:use-package with xsl:package-location * [ ] QT4CG-112-01: JLO to propose a concrete example that uses "." in a ~%method~s. * [ ] QT4CG-113-01: MK to make a PR to drop the position callback on fold-left/fold-right * [ ] QT4CG-113-02: NW to investigate a way to show extra attributes in the syntax summary. * [ ] QT4CG-113-03: JWL to consider shadow attributes and all the other standard attributes on xsl:record. 1. Administrivia 1.1. Roll call [9/13] Regrets: EP, WP, RD. * [X] David J Birnbaum (DB) * [ ] Reece Dunn (RD) * [ ] Sasha Firsov (SF) [-0:30] * [X] Christian Gr¸n (CG) * [X] Joel Kalvesmaki (JK) * [X] Michael Kay (MK) * [X] Juri Leino (JLO) * [X] John Lumley (JWL) * [X] Dimitre Novatchev (DN) * [ ] Wendell Piez (WP) * [ ] Ed Porter (EP) * [X] Bethan Tovey-Walsh (BTW) * [X] Norm Tovey-Walsh (NW). Scribe. Chair. 1.2. Accept the agenda Proposal: Accept [26]the agenda. Accepted. 1.2.1. Status so far... These charts have been adjusted so they reflect the preceding six months of work. issues-open-2025-03-11.png Figure 1: "Burn down" chart on open issues issues-by-spec-2025-03-11.png Figure 2: Open issues by specification issues-by-type-2025-03-11.png Figure 3: Open issues by type 1.3. Approve minutes of the previous meeting Proposal: Accept [27]the minutes of the previous meeting. Accepted. 1.4. Next meeting The next meeting is scheduled for 18 March 2025. Note: The QT4CG meeting is scheduled on UK/European civil time. The United States switched to daylight saving time on 9 March 2025, so the meetings of 18 and 25 March will be one hour later there (12:00 EDT, 09:00 PDT) until the UK/Europe also switches (on 30 March 2024). No regrets heard. 1.5. Review of open action items [4/7] (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-107-05: JLO and DN to consider a proposal for system defined records. * [ ] QT4CG-110-04: JK to consider a PR for #366, xsl:use-package with xsl:package-location * [ ] QT4CG-112-01: JLO to propose a concrete example that uses "." in a ~%method~s. 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 [28]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 [29]#1766: 1715 Drop array bound checking * PR [30]#1735: 1341 Drop $position callback from many functions * PR [31]#1587: 557 Add fn:binary-resource * PR [32]#1296: 982 Rewrite of scan-left and scan-right * PR [33]#1283: 77b Update expressions * PR [34]#1227: 150 PR resubmission for fn ranks * PR [35]#1062: 150bis revised proposal for fn:ranks 1.6.2. Substantive PRs The following substantive PRs were open when this agenda was prepared. * PR [36]#1740: 1725b Further elaboration of duplicates handling in maps * PR [37]#1778: 1456 Lookup expressions filtered by type * PR [38]#1819: 451 Multiple schemas in XSLT * PR [39]#1856: 998 Add boundary and lookahead/behind assertions * PR [40]#1858: Initial xsl:record 2. Technical agenda 2.1. Review of pull requests 2.1.1. PR #1735: 1341 Drop $position callback from many functions See PR [41]#1735 Straw poll: * (a) drop the position callback on fold-left/fold-right * (b) add the position callback to scan-left/scan-right * (c) drop the scan-left/scan-right functions entirely (a): 4 (b): 1 (c): 3 Proposal: drop the position callback on fold-left/fold-right Accepted. Proposal: drop the scan-left/scan-right functions entirely There are some objections. * DN: I think running totals are a use case for the scan functions. And I have some other use cases. * NW: Can you send them in email or add them to an appropriate issue or PR? * JWL: Can the scan-left and scan-right functions be written in XPath? * CG: Yes, you can use fold-left and fold-right, but it's a bit more sophisticated use. * JWL: Okay, but if it's an uncommon requirement, that might be okay. * CG: I think we need some reasonably intuitive use case for scan-right. And we'd need to add the array equivalents as well. + ... Do we really want four functions for this feature? * DN: I'm happy to make a PR. We have both sequences and arrays, but it's not specific to the scan functions. * MK: I think we need to start to become a bit more disciplinarian about proposals for things that don't have any test cases. + ... I think we need to move to a position where we don't accept things without test cases. * DN: Can the examples be made tests? * MK: Yes, but test cases need to cover all the edge cases, where the examples don't. * JLO: Could we reach out to the broader community to find out if the scan functions are needed? * CG: We've had a scan function for maybe ten years, but I've never seen anyone use it. But maybe they would if it had been in the main spec. + ... But the right version has never been used. ACTION QT4CG-113-01: MK to make a PR to drop the position callback on fold-left/fold-right 2.1.2. PR #1740: 1725b Further elaboration of duplicates handling in maps See PR [42]#1740 * MK: This is an attempt to make duplicate handling more consistent. Thanks to CG or one of his users for the recommendation. * MK: We now have an options map on fn:map-build with a combine option. + ... There are some string options, or you can provide a function to do it. + ... So three functions in F&O * MK: In XSLT, there are a few similar changes. + ... on-duplicates becomes duplicates + ... Similar changes and a few other corrections. * DN: I think a "drop-both" keys option would also be useful. + ... If we have two sets, we can have union, difference, or the symmetric difference * MK: It's a bit harder to integrate, but it could be made one of the text options. * NW: DN, can you make an issue for that? * JLO: Isn't that just a function that returns the empty sequence? * MK: No that would give you the empty sequence as the value, not remove the key! Some discussion of the semantics of the function and why "drop-both" can't be implemented with the function. * DN: If the function had different results: accept-first, accept-last, combine, or drop-both, that would work. * MK: Let's park that as a new suggestion. Proposal: Accept this PR. Accepted. 2.1.3. PR #1778: 1456 Lookup expressions filtered by type [DEL: See PR [43]#1778 :DEL] * MK: I abandoned #1778 and made a new PR to work around some merge conflicts. See PR [44]#1864 * MK introduces the PR. * MK: Most of the use cases I've seen are where you want to select a record type. + ... KeySpecifier now allows a TypeSpecifier + ... The reason for using the tilde syntax is that the longer form becomes very unwieldy in more realistic examples. + ... Generally, if you're processing deep selection into JSON structures, the way that you select which things you're interested in, unlike XML you don't have a name, you identify them by content instead: "all the records that have a `to' and `distant' field", for example. + ... Or refer to it by name if it has one. * DN: I think the ~ symbol is makes the syntax even more cryptic. + ... I propose that we don't use a symbol for this, we can have a function "of-type" that very clearly shows what is being done. + ... Also, ~ typically means "approximately the same". + ... If we accept this PR, then we will have the problem of not being able to distinguish between empty sequence values and a missing value. * MK: The second point is completely orthogonal. This PR doesn't change that at all. + .. The choice of symbol is constrained by the fact that we can't have an NCName after the question mark because that selects a field of the map. We have to have some syntax there that isn't currently allowed, that's why I chose a new symbol. I think we could extend the use of ~ to mean an instance of operation and I find it a good choice of symbol. It's a bit like "@" for attributes in that "~" and type have some phonological connection. o ... ~ has a very wide range of uses; saying it's a kind of "x" is certainly one of those uses. * JWL: Are we allowed to have a record type who's name is "record"? Wouldn't that introduce an ambiguity, potentially? * MK: Is this specifically related to ~? * JWL: Yes. Some further discussion of the various flavors of ambiguity that might or might not be ambiguous here. Scribe concludes "probably not." * JLO: I think these are valid points; I like this, but there was a "pairs" thing in some of the examples. * MK: Yes, the modifier, :ø:. + ... But this is logically part of the key specifier, not part of the modifier. * JLO: I don't have a big problem with ~, but it would be nice to have something more explicit. + ... What happens if I select a thing that has additional attributes? + ... If it's not a named record? * MK: Only if you specify , *. * JLO: Yes, then I really like it. * DN: If we can't use a name, and I'm not convinced we can't, but having a single character to specify this is very error prone. I'd prefer to have something longer and more visible, perhaps three *. I like that better than ~. * MK: I sort of feel like the more punctuation characters you have there, the more likely users are to get them wrong. * DN: It's very unlikely for someone to type three * if they didn't mean that. It's very visual. * MK: Unfortunately, "*" is grossly overloaded already. * MK: I've gone around in circles a lot of times to find a better syntax. I've tried lots of things and they either raised ambiguities or were confusing. * JK: I support ~, I find it clear and I have the opposite reaction to DN. Proposal: Accept this PR. Accepted. 2.1.4. PR #1858: Initial xsl:record See PR [45]#1858 JWL introduces the PR. * JWL: This is basically a shortcut for forming up a map. + ... There are two attributes in the xsl: namespace, we'll come back to that. + ... xsl:record basically takes attributes that form the map. JWL walks through an example. * JWL: It only works when the keys (attributes) are xs:NCNames. + ... The values are evaluated as expressions. + ... We can define xsl:record in terms of a source transformation. + ... The problem is the xsl: qualified names. JWL outlines the problem with "as" and "duplicates": are the controls for the map or are they entries? * JWL: One option might be to put the options in a special child in the xsl:record. + ... Note that duplicates is only necessary if you have a sequence constructor. * NW: I was enthusiastic, but my enthusiasm crashed on the attributes. * MK: I think we need something to describe extra attributes in the syntax summary. ACTION QT4CG-113-02: NW to investigate a way to show extra attributes in the syntax summary. * MK: I think we should say the values are coerced. * MK: I think we should go either with a child element or the namespace qualified names. * JWL: That's almost as ugly. * MK: Probably need to say something about shadow attributes. Simplest thing is to say there aren't any. ACTION QT4CG-113-03: JWL to consider shadow attributes and all the other standard attributes on xsl:record. * JK: My initial question was going to ask how this hooks up with named records. * JLO: Two questions, why is the xsl:as defaulted to map, what else would it be? * JWL: Well it might be a named item type... * JLO: For duplicates, what does `expression' mean? * JWL: The default will be an expression or one of a set of strings. The default is a function that throws an error. It's exactly the same as on fn:map-merge etc. * JK: It's worth mentioning that you may need some words about type conversion. JWL will revise for next time. 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/03-11.html#minutes 7. https://qt4cg.org/meeting/minutes/2025/03-11.html#new-actions 8. https://qt4cg.org/meeting/minutes/2025/03-11.html#administrivia 9. https://qt4cg.org/meeting/minutes/2025/03-11.html#roll-call 10. https://qt4cg.org/meeting/minutes/2025/03-11.html#agenda 11. https://qt4cg.org/meeting/minutes/2025/03-11.html#so-far 12. https://qt4cg.org/meeting/minutes/2025/03-11.html#approve-minutes 13. https://qt4cg.org/meeting/minutes/2025/03-11.html#next-meeting 14. https://qt4cg.org/meeting/minutes/2025/03-11.html#open-actions 15. https://qt4cg.org/meeting/minutes/2025/03-11.html#open-pull-requests 16. https://qt4cg.org/meeting/minutes/2025/03-11.html#blocked 17. https://qt4cg.org/meeting/minutes/2025/03-11.html#substantive 18. https://qt4cg.org/meeting/minutes/2025/03-11.html#technical-agenda 19. https://qt4cg.org/meeting/minutes/2025/03-11.html#technical-prs 20. https://qt4cg.org/meeting/minutes/2025/03-11.html#pr-1735 21. https://qt4cg.org/meeting/minutes/2025/03-11.html#pr-1740 22. https://qt4cg.org/meeting/minutes/2025/03-11.html#pr-1778 23. https://qt4cg.org/meeting/minutes/2025/03-11.html#pr-1819 24. https://qt4cg.org/meeting/minutes/2025/03-11.html#any-other-business 25. https://qt4cg.org/meeting/minutes/2025/03-11.html#adjourned 26. https://qt4cg.org/meeting/agenda/2025/03-11.html 27. https://qt4cg.org/meeting/minutes/2025/03-04.html 28. https://qt4cg.org/meeting/minutes/2025/03-11.html#technical-agenda 29. https://qt4cg.org/dashboard/#pr-1766 30. https://qt4cg.org/dashboard/#pr-1735 31. https://qt4cg.org/dashboard/#pr-1587 32. https://qt4cg.org/dashboard/#pr-1296 33. https://qt4cg.org/dashboard/#pr-1283 34. https://qt4cg.org/dashboard/#pr-1227 35. https://qt4cg.org/dashboard/#pr-1062 36. https://qt4cg.org/dashboard/#pr-1740 37. https://qt4cg.org/dashboard/#pr-1778 38. https://qt4cg.org/dashboard/#pr-1819 39. https://qt4cg.org/dashboard/#pr-1856 40. https://qt4cg.org/dashboard/#pr-1858 41. https://qt4cg.org/dashboard/#pr-1735 42. https://qt4cg.org/dashboard/#pr-1740 43. https://qt4cg.org/dashboard/#pr-1778 44. https://qt4cg.org/dashboard/#pr-1864 45. https://qt4cg.org/dashboard/#pr-1858 Be seeing you, norm -- Norm Tovey-Walsh Saxonica
Received on Tuesday, 11 March 2025 17:21:04 UTC