- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 10 Oct 2023 17:46:14 +0100
- To: public-xslt-40@w3.org
- Message-ID: <m2ttqyjuh1.fsf@saxonica.com>
Hello,
Here are the draft minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2023/10-10.html
QT4 CG Meeting 049 Minutes 2023-10-10
Table of Contents
* [1]Draft Minutes
* [2]Summary of new and continuing actions [0/7]
* [3]1. Administrivia
+ [4]1.1. Roll call [10/11]
+ [5]1.2. Accept the agenda
o [6]1.2.1. Status so far...
+ [7]1.3. Approve minutes of the previous meeting
+ [8]1.4. Next meeting
+ [9]1.5. Review of open action items [6/12]
+ [10]1.6. Review of open pull requests and issues
o [11]1.6.1. Blocked
o [12]1.6.2. Merge without discussion
o [13]1.6.3. Close without action
o [14]1.6.4. XSLT focused
o [15]1.6.5. Substantive PRs
o [16]1.6.6. Requires confirmation
o [17]1.6.7. Proposed for V4.0
* [18]2. Technical Agenda
+ [19]2.1. Issue #397: Type names
+ [20]2.2. Issue #283: Enumeration types
+ [21]2.3. PR 659: 647: schema location hints
+ [22]2.4. PR #691: 688 Semantics of local union types,
enumeration types, etc
* [23]3. Any other business?
* [24]4. Adjourned
[25]Agenda index / [26]QT4CG.org / [27]Dashboard / [28]GH Issues /
[29]GH Pull Requests
Draft Minutes
Summary of new and continuing actions [0/7]
* [ ] QT4CG-045-02: RD to address comments on HTML namespaces in
another PR
* [ ] QT4CG-046-01: MK to continue the work on #129 for the other
specs (we accepted #703)
* [ ] QT4CG-046-04: CG to flesh out changes related to annotations in
other parts of the specs
* [ ] QT4CG-046-05: NW to updated parse-uri to use decode-from-uri
(issue #566)
* [ ] QT4CG-048-01: MK - to identify what happens with the mode
default rule behaviours.
* [ ] QT4CG-048-02: MK to clean up the proposal for adding @as to
xsl:sequence and elsewhere
* [ ] QT4CG-049-01: MK to make sure CastTarget is defined locally
* [ ] QT4CG-049-02: NW to sort out what has made the dashboard so
unwieldy
1. Administrivia
1.1. Roll call [10/11]
Regrets JL
* [X] Reece Dunn (RD)
* [X] Sasha Firsov (SF)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK) [:15-]
* [X] Michael Kay (MK)
* [ ] John Lumley (JL)
* [X] Dimitre Novatchev (DN)
* [X] Wendell Piez (WP)
* [X] Ed Porter (EP)
* [X] C. M. Sperberg-McQueen (MSM)
* [X] Norm Tovey-Walsh (NW). Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [30]the agenda.
Accepted.
1.2.1. Status so far...
issues-open-2023-10-10.png
Figure 1: "Burn down" chart on open issues
issues-by-spec-2023-10-10.png
Figure 2: Open issues by specification
issues-by-type-2023-10-10.png
Figure 3: Open issues by type
1.3. Approve minutes of the previous meeting
Proposal: Accept [31]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting [32]is scheduled for Tuesday, 17 October 2023.
JL gave regrets for the 17th as well. EP gives regrets.
1.5. Review of open action items [6/12]
* [X] QT4CG-029-07: NW to open the next discussion of #397 with a
demo from DN
+ See PR [33]#449. Discussion planned for meeting 049, 10
October 2023.
* [ ] QT4CG-045-02: RD to address comments on HTML namespaces in
another PR
* [ ] QT4CG-046-01: MK to continue the work on #129 for the other
specs (we accepted #703)
* [X] QT4CG-046-02: RD to draft the specification changes to allow
record(*)
* [X] QT4CG-046-03: MK to roll back the changes related to default
namespaces for elments and types (issue #372)
* [ ] QT4CG-046-04: CG to flesh out changes related to annotations in
other parts of the specs
* [ ] QT4CG-046-05: NW to updated parse-uri to use decode-from-uri
(issue #566)
* [X] QT4CG-047-01: MK to make a PR that renames break-when to
split-when
* [ ] QT4CG-048-01: MK - to identify what happens with the mode
default rule behaviours.
* [ ] QT4CG-048-02: MK to clean up the proposal for adding @as to
xsl:sequence and elsewhere
* [X] QT4CG-048-03: MK 5.4. - the section on type patterns - replace
3rd paragraph - belongs with predicate patterns. Fix cut-and-paste
issues.
* [X] QT4CG-048-04: MK to use xs: prefix
1.6. Review of open pull requests and issues
1.6.1. Blocked
The following PRs are open but have merge conflicts or comments which
suggest they aren't ready for action.
* PR [34]#635: 451: Schema compatibility
* PR [35]#538: 480: Attempt to allow xs:string to be 'promoted to'
xs:anyURI
* PR [36]#529: 528: revision of json(), and renaming to xdm-to-json()
* PR [37]#412: 409, QT4CG-027-01: xsl:next-match
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 [38]#732: 731 Capturing accumulators: Add error conditions,
revise streaming rules
* PR [39]#728: 52 Allow record(*)
* PR [40]#727: 725 Add clarification note for load-xquery-module
* PR [41]#715: 372 Rollback the default namespace changes
* PR [42]#650: 649: fix an xsl:fallback problem
Accepted.
1.6.3. Close without action
It has been proposed that the following issues be [43]closed without
action. If you think discussion is necessary, please say so.
None this week.
1.6.4. XSLT focused
The following PRs appear to be candidates for a future XSLT-focussed
meeting.
* PR [44]#470: 369 add fixed-prefixes attribute in XSLT
These issues identify the XSLT-focused changes that have been made to
the specifications but which have not been established by the community
group as the status quo.
* Issue [45]#169: Handling of duplicate keys in xsl:map Enhancement
* Issue [46]#168: XSLT Extension Instructions invoking Named
Templates
1.6.5. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
* PR [47]#737: 295 Boost the capability of recursive record types
* PR [48]#736: 730: Clarify (and correct) rules for maps as instances
of function types
* PR [49]#734: 517: fn:chain
* PR [50]#719: 413: Spec for CSV-related functions
* PR [51]#691: 688 Semantics of local union types, enumeration types,
etc
* PR [52]#659: 647: schema location hints
1.6.6. Requires confirmation
These issues identify changes that have been made to the specifications
but which have not been established by the community group as the
status quo.
* Issue [53]#571: XSLT: xsl:for-each-group/@break-when
+ Resolved in [54]meeting 047
* Issue [55]#372: Separate default namespace for elements from the
default namespace for types
+ Resolved in [56]meeting 046, abandon this change
* Issue [57]#283: Enumeration types
+ TBD
* Issue [58]#233: Declare the result type of a mode, via @as
+ Resolved in [59]meeting 048
* Issue [60]#172: Record Tests
+ Resolved in [61]meeting 048
1.6.7. Proposed for V4.0
The following issues are labled "proposed for V4.0".
* Issue [62]#716: Generators in XPath
* Issue [63]#479: fn:deep-equal: Input order
* Issue [64]#340: fn:format-number: Specifying decimal format
* Issue [65]#260: array:index-of
* Issue [66]#238: Support Invisible XML
* Issue [67]#130: New super/union type xs:binary?
* Issue [68]#129: Context item -> Context value?
+ Resolved in [69]meeting 045
2. Technical Agenda
2.1. Issue #397: Type names
See [70]#397
We'll begin this week with a demo by DN and a discussion of this issue.
* DN begins with a description of an XPath function library
+ ... A function returns a map that from strings to (usually)
functions
+ ... Could be constants or other variables
+ (Scribe fails to copy and paste the examples; the repository
isn't public)
+ ... DN describes a few of the functions shown
+ ... We begin with a function to load function libraries
+ ... When passed a path, it loads the document and evaluates it
+ ... (DN shows an example of id, flip, and compose functions)
+ ... A lot of functions and operators are defined in
operators.xpath
+ ... (DN demostrates a bunch of operator tests)
+ ... The next example shows a function library that loads other
function libraries. The special-folds.xpath library loads
folds.xpath and operators.xpath.
+ ... This library defines and, or, etc.
+ ... This demonstrates that libraries can be loaded by other
libraries.
+ ... (DN demonstrates the special folds test results)
* NW: Thank you, DN.
* NW: Trying to relate this back to issue 397, I think there was some
concern about how multiple expressions would share an environment.
Am I correct, that all of your examples are "single expressions" so
this isn't at all like the case of different XPath expressions on
different XSLT attributes.
* DN: I think that there should be no concern about separate XPath
expressions, it's very simple to do this.
Some discussion of whether or not multiple expressions is "easy".
* RD: This is similar to what JavaScript libraries when classes
weren't a feature; they'd define a function that returns a map.
(MSM asks about the repository; it's not public.)
* DN: I did many experiments; the code needs to be cleaned up.
* MK: Have you attempted to integrate this into some capability to do
tree construction.
* DN: I can't immediately recall. Node construction for example in
the multi-compose function, can construct any nodes.
+ ... Higher order functions aren't necessarily deterministic
because the functions passed as parameters can be
nondeterministic.
* DN: I will try to produce an example that produces nodes.
2.2. Issue #283: Enumeration types
See [71]#283.
* MK: Enumeration types allow you to define a type as a list of
strings. #283 attempts to describe the motivation.
+ ... Enumerations are useful. They exist in most other
languages.
+ ... Restrict to strings to keep it simple.
+ ... We could make them more strongly typed, but let's see what
limitations they have first.
+ ... Since this was written, the subtyping rules have been
tightened up which clarifies some things.
+ ... Could enumerations be made a restriction of xs:string?
o ... Maybe. The subtyping is done by making an enumeration
a union of singleton rules. That let's you piggy-back on
the rules of union types.
MK walks us through the spec prose in 3.6.2.2 and following.
The type system isn't a hierarchy around this area.
* DN: Is it possible to have an enumeration of "green", "green",
"blue"?
* MK: I don't think I ruled it out. We could be more paternalistic.
You don't need the rule, but it might be useful for catching things
the user didn't intend.
* DN: We could have a much more general type, a member of a set for
example.
+ ... We already have a proposal for adding sets to the
language. That would subsume this.
* MK: One reason to restrict it to strings is to keep very simple
equality semantics. So we don't have to debate if something is a
member of a set or not depending on how you compare it.
+ ... One could have an enumeration of dates or URIs but this
seems to cover the use cases.
* DN: Having any kind of types would be more useful.
* MK: Yes, it gets complicated but we could use the same comparisons
we use for maps.
* DN: It would be much better if it was not just strings.
* JK: What do we get out of an enum constructor that we don't get out
of binding to a global parameter or variable?
* MK: More expressive function parameters, mostly. You can express
that a parameter must be "ascending" or "descending" for example.
General agreement that more examples would be good.
* RD: This is currently used in a couple of places in the XPath
functions, especially the newer functions. It would be useful to go
through the functions and see which would benefit from it.
+ ... On DN's point, the HTML function takes a predefined set of
HTML versions a lot of which are a fixed enumeration of
numbers. That would benefit from extending enumerations to
support xs:decimal.
* RD: Thinking JK's point, as well as being useful for static
checking, it would be useful in IDEs and editors to provide things
like auto-completion and checking.
Accept the current prose as the status quo?
No objections.
Should we extend it in some way(s)?
* RD: If we do extend it, then it would make sense to keep the enum,
but how would we resolve the resulting types.
* MK: The subtyping rules become more complicated.
* RD: I think the easiest would be to say that the underlying type is
the simplest union.
* MK: It's better not to ask what type is it, but instead to ask what
instances does it match. There's no type label on a string that
says it's a member of an enumeration.
Some further discussion of the subtyping rule. MK asserts that the
current rule could be extended.
* DN: Should we introduce a special type, "membership of" that would
solve the problem.
* MK: A new kind of expression?
* DN: Yes. What can be put on the right hand side of the test.
There were assertions that other things should be on the list of items
that require consensus, among them the item type syntax and something
that MK spotted in XSLT. Please create issues and mark them
appropriately!
2.3. PR 659: 647: schema location hints
Just to take the substantive PRs in "the other" order this week...
See PR [72]#659
* MK: This attempts to define a bit more precisely what import schema
means with multiple hints.
(There seems to be an issue with the diff build of 659, skipping...)
2.4. PR #691: 688 Semantics of local union types, enumeration types, etc
See PR [73]#691
* MK reviews the PR.
* MK: This PR modifies enumeration types to add more semantics,
including the parallel with union types.
+ ... Putting it in the generalized atomic type makes it useful
in more places.
* MSM: Observe that the words here answer the question about the
meaning of "green", "green", "blue". At the type level you have a
union type with two members, not three. (Not three, two of which
are the same.)
+ ... No, I take it back. Unions are sequential not symmetric.
* MK: That's true if you cast to one.
* MSM: The effect is clear, there are two strings that match, not
three. I withdraw the claim that this answers the question!
MK proposes to press on and review the rest of the changes.
* MK: Enumerations are now in the general rules for atomic types.
+ ... A rule is added for coercion with union types and how
downcasting works.
+ ... This fills in the gaps with union types (more than about
enumeration types).
+ ... An instance of test doesn't allow casting or conversion
which sometimes leads to counter-intuitive results!
+ More changes in casting and castable.
+ Constructor functions are automatically created for
union/enumeration types.
* RD: Where is cast target defined in that syntax?
* MK: It's only in the appendix, but it should be defined locally.
ACTION QT4CG-049-01: MK to make sure CastTarget is defined locally
* MK: An example of a type alias for a constructor function is added.
+ ... Error conditions have been added for duplicate names for
the types or constructor functions.
Proposal: Accept this PR.
Accepted.
3. Any other business?
None heard.
4. Adjourned
References
1. https://qt4cg.org/meeting/minutes/2023/10-10.html#minutes
2. https://qt4cg.org/meeting/minutes/2023/10-10.html#new-actions
3. https://qt4cg.org/meeting/minutes/2023/10-10.html#administrivia
4. https://qt4cg.org/meeting/minutes/2023/10-10.html#roll-call
5. https://qt4cg.org/meeting/minutes/2023/10-10.html#agenda
6. https://qt4cg.org/meeting/minutes/2023/10-10.html#so-far
7. https://qt4cg.org/meeting/minutes/2023/10-10.html#approve-minutes
8. https://qt4cg.org/meeting/minutes/2023/10-10.html#next-meeting
9. https://qt4cg.org/meeting/minutes/2023/10-10.html#open-actions
10. https://qt4cg.org/meeting/minutes/2023/10-10.html#open-pull-requests
11. https://qt4cg.org/meeting/minutes/2023/10-10.html#blocked
12. https://qt4cg.org/meeting/minutes/2023/10-10.html#merge-without-discussion
13. https://qt4cg.org/meeting/minutes/2023/10-10.html#close-without-action
14. https://qt4cg.org/meeting/minutes/2023/10-10.html#xslt-focused
15. https://qt4cg.org/meeting/minutes/2023/10-10.html#substantive
16. https://qt4cg.org/meeting/minutes/2023/10-10.html#requires-confirmation
17. https://qt4cg.org/meeting/minutes/2023/10-10.html#proposed-40
18. https://qt4cg.org/meeting/minutes/2023/10-10.html#technical-agenda
19. https://qt4cg.org/meeting/minutes/2023/10-10.html#type-names
20. https://qt4cg.org/meeting/minutes/2023/10-10.html#h-0612CA13-7474-4617-8818-6AB4F722679E
21. https://qt4cg.org/meeting/minutes/2023/10-10.html#schema-location-hints
22. https://qt4cg.org/meeting/minutes/2023/10-10.html#local-union-types
23. https://qt4cg.org/meeting/minutes/2023/10-10.html#any-other-business
24. https://qt4cg.org/meeting/minutes/2023/10-10.html#adjourned
25. https://qt4cg.org/meeting/minutes/
26. https://qt4cg.org/
27. https://qt4cg.org/dashboard
28. https://github.com/qt4cg/qtspecs/issues
29. https://github.com/qt4cg/qtspecs/pulls
30. https://qt4cg.org/meeting/agenda/2023/10-10.html
31. https://qt4cg.org/meeting/minutes/2023/10-03.html
32. https://qt4cg.org/meeting/agenda/2023/10-17.html
33. https://qt4cg.org/dashboard/#pr-449
34. https://qt4cg.org/dashboard/#pr-635
35. https://qt4cg.org/dashboard/#pr-538
36. https://qt4cg.org/dashboard/#pr-529
37. https://qt4cg.org/dashboard/#pr-412
38. https://qt4cg.org/dashboard/#pr-732
39. https://qt4cg.org/dashboard/#pr-728
40. https://qt4cg.org/dashboard/#pr-727
41. https://qt4cg.org/dashboard/#pr-715
42. https://qt4cg.org/dashboard/#pr-650
43. https://github.com/qt4cg/qtspecs/labels/Propose%20Closing%20with%20No%20Action
44. https://qt4cg.org/dashboard/#pr-470
45. https://github.com/qt4cg/qtspecs/issues/169
46. https://github.com/qt4cg/qtspecs/issues/168
47. https://qt4cg.org/dashboard/#pr-737
48. https://qt4cg.org/dashboard/#pr-736
49. https://qt4cg.org/dashboard/#pr-734
50. https://qt4cg.org/dashboard/#pr-719
51. https://qt4cg.org/dashboard/#pr-691
52. https://qt4cg.org/dashboard/#pr-659
53. https://github.com/qt4cg/qtspecs/issues/571
54. https://qt4cg.org/meeting/minutes/2023/09-26.html#iss-571
55. https://github.com/qt4cg/qtspecs/issues/372
56. https://qt4cg.org/meeting/minutes/2023/09-19.html#issue-372
57. https://github.com/qt4cg/qtspecs/issues/283
58. https://github.com/qt4cg/qtspecs/issues/233
59. https://qt4cg.org/meeting/minutes/2023/10-03.html#h-2476E3A4-7AB9-474C-8122-04FA7CDC9551
60. https://github.com/qt4cg/qtspecs/issues/172
61. https://qt4cg.org/meeting/minutes/2023/10-03.html#h-2A975F7E-9A4C-469B-9102-16E450DC8B88
62. https://github.com/qt4cg/qtspecs/issues/716
63. https://github.com/qt4cg/qtspecs/issues/479
64. https://github.com/qt4cg/qtspecs/issues/340
65. https://github.com/qt4cg/qtspecs/issues/260
66. https://github.com/qt4cg/qtspecs/issues/238
67. https://github.com/qt4cg/qtspecs/issues/130
68. https://github.com/qt4cg/qtspecs/issues/129
69. http://localhost:8132/meeting/minutes/2023/09-12.html#h-D8A3B62B-C816-4F24-A3F5-26A39109E0FC
70. https://github.com/qt4cg/qtspecs/issues/397
71. https://github.com/qt4cg/qtspecs/issues/283
72. https://qt4cg.org/dashboard/#pr-659
73. https://qt4cg.org/dashboard/#pr-691
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 10 October 2023 16:47:03 UTC