- 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