Re: QT4CG meeting 118 draft agenda, 22 April 2025

Hello folks,

Here are the minutes from today’s meeting:

   https://qt4cg.org/meeting/minutes/2025/04-22.html

QT4 CG Meeting 118 Minutes 2025-04-22

   [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/10]
     * [8]1. Administrivia
          + [9]1.1. Roll call [10/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 [2/9]
          + [15]1.6. Review of open pull requests and issues
               o [16]1.6.1. Merge without discussion
               o [17]1.6.2. Close without action
               o [18]1.6.3. Substantive PRs
               o [19]1.6.4. Required for V4.0
               o [20]1.6.5. To be triaged
     * [21]2. Technical agenda
          + [22]2.1. Review of pull requests
               o [23]2.1.1. PR #1906: 1797
                 elements-to-maps-conversion-plan function
               o [24]2.1.2. PR #1937: 1936 Mark attribute declarations as
                 form=qualified
               o [25]2.1.3. PR #1933: 1271 fn:validate() function
               o [26]2.1.4. PR #1929: 1725 xsl:mode/@copy-namespaces
               o [27]2.1.5. PR #1928: 1844b Arrow Expressions
               o [28]2.1.6. PR #1926: 1907 method lookup (disallow
                 wildcard selection)
               o [29]2.1.7. PR #1922: 1921 Expand definition of version
                 ranges in XSLT
     * [30]3. Any other business
     * [31]4. Adjourned

Draft Minutes

Summary of new and continuing actions [0/10]

     * [ ] 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-112-01: JLO to propose a concrete example that uses "."
       in a ~%method~s.
     * [ ] QT4CG-113-02: NW to investigate a way to show extra attributes
       in the syntax summary.
     * [ ] QT4CG-115-02: JWL to write a few tests for xsl:record
     * [ ] QT4CG-116-01: Add a specific error code for unsupported options
       on doc and doc-available
     * [ ] QT4CG-116-03: NW to review the star/plus/delta symbols in the
       ToC. (See [32]1838)
     * [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
       #1906
     * [ ] QT4CG-118-02: DN to open an issue about methods in records
     * [ ] QT4CG-118-03: NW to make sure compose/chain and binary are on
       the agenda for next week

1. Administrivia

1.1. Roll call [10/13]

   Regrets: BTW, JK
     * [X] David J Birnbaum (DB)
     * [X] Reece Dunn (RD)
     * [X] Sasha Firsov (SF)
     * [X] Christian Gr¸n (CG)
     * [ ] Joel Kalvesmaki (JK)
     * [X] Michael Kay (MK)
     * [ ] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [X] 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 [33]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-04-22.png

   Figure 1: "Burn down" chart on open issues

   issues-by-spec-2025-04-22.png

   Figure 2: Open issues by specification

   issues-by-type-2025-04-22.png

   Figure 3: Open issues by type

1.3. Approve minutes of the previous meeting

   Proposal: Accept [34]the minutes of the previous meeting.

   Accepted.

1.4. Next meeting

   The next meeting is scheduled for 29 April 2025.

   JWL gives regrets for 29 April and the following week.

1.5. Review of open action items [2/9]

   (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-112-01: JLO to propose a concrete example that uses "."
       in a ~%method~s.
     * [ ] QT4CG-113-02: NW to investigate a way to show extra attributes
       in the syntax summary.
     * [ ] QT4CG-115-02: JWL to write a few tests for xsl:record
     * [ ] QT4CG-116-01: Add a specific error code for unsupported options
       on doc and doc-available
     * [ ] QT4CG-116-03: NW to review the star/plus/delta symbols in the
       ToC. (See [35]1838)
     * [X] QT4CG-117-01: MK to add errors for invalid plans.
     * [X] QT4CG-117-02: MK to rename `fallback' to `default', then merge
       the PR.

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 [36]Technical Agenda below for
   the focus of this meeting.

1.6.1. 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 [37]#1940: 1939 XQDY0153 (from try/finally) should be a type
       error
     * PR [38]#1937: 1936 Mark attribute declarations as form=qualified
     * PR [39]#1931: QT4-CG-116-02 improve description of validation

   Proposal: merge without discussion

   Accepted.

1.6.2. 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 [40]#910: Introduce a Kollection object with functions that
       operate on all types of items that can be containers of unlimited
       number of "members"

   Proposal: close without further action

   Accepted.

1.6.3. Substantive PRs

   The following substantive PRs were open when this agenda was prepared.
     * PR [41]#1937: 1936 Mark attribute declarations as form=qualified
     * PR [42]#1933: 1271 fn:validate() function
     * PR [43]#1929: 1725 xsl:mode/@copy-namespaces
     * PR [44]#1928: 1844b Arrow Expressions
     * PR [45]#1926: 1907 method lookup (disallow wildcard selection)
     * PR [46]#1922: 1921 Expand definition of version ranges in XSLT
     * PR [47]#1906: 1797 elements-to-maps-conversion-plan function
     * PR [48]#1894: Additional examples to fn:chain - in a new branch
     * PR [49]#1883: 882 Replace fn:chain by fn:compose
     * PR [50]#1587: 557 Add fn:binary-resource

1.6.4. Required for V4.0

   The following issues are labeled "required for V4.0".
     * Issue [51]#1777: Shallow copy in XSLT with maps and arrays
     * Issue [52]#1584: Review the XML Schema and RELAX NG schemas for
       XSLT 4.0 for compatibility
     * Issue [53]#1240: $sequence-of-maps ? info()
     * Issue [54]#1127: Binary resources
     * Issue [55]#1045: Functions to manage namespace usage
     * Issue [56]#1021: Extend `fn:doc`, `fn:collection` and
       `fn:uri-collection` with options maps
     * Issue [57]#1011: fn:transform() improvements
     * Issue [58]#986: Numeric Comparisons
     * Issue [59]#967: XPath Appendix I: Comparisons
     * Issue [60]#748: Parse functions: consistency
     * Issue [61]#714: Function annotations in XSLT
     * Issue [62]#675: XSLT streaming rules for new constructs
     * Issue [63]#407: XSLT-specific context properties used in function
       items
     * Issue [64]#366: Support xsl:use-package with xsl:package-location
     * Issue [65]#272: Setting parameter values in xsl:use-package

1.6.5. To be triaged

   The following issues need to be triaged.
     * Issue [66]#1938: Invoking coerced methods
     * Issue [67]#1935: doc-available() with invalid options
     * Issue [68]#1934: Supporting RELAX NG validation
     * Issue [69]#1920: Parse functions: determinism
     * Issue [70]#1912: Error handling: `fn:throw`
     * Issue [71]#1903: `fn:scan-left`, `fn:scan-right`: missing steps
     * Issue [72]#1889: HTML serialization: `html-version` and `version`
       parameters; allowed values
     * Issue [73]#1885: Use the spcification grammar markup to define the
       regular expression grammar in F&O
     * Issue [74]#1871: Arrays and maps: consistency
     * Issue [75]#1868: array:members() to include index position
     * Issue [76]#1859: Question on `fn:chain` and `err:FOAP0001`
     * Issue [77]#1852: fn:values-except: Return atomic values that occur
       in A but not in B
     * Issue [78]#1844: Drop mapping arrow operator
     * Issue [79]#1795: XSLT templates: Matching values in a map by key
     * Issue [80]#1787: Sorted maps revisited
     * Issue [81]#1775: Navigation in JSON trees
     * Issue [82]#1774: Nomenclature: relabelling
     * Issue [83]#1736: Add option retain-order=false when constructing
       maps
     * Issue [84]#1718: Ordered Maps: positions in callback functions
     * Issue [85]#1704: Ignore the byte order mark more
       completely/globally
     * Issue [86]#1697: Add documentary names to callback function
       signatures
     * Issue [87]#1661: QName arguments: also allow strings
     * Issue [88]#1644: fn:elements-to-maps: Mixed Content
     * Issue [89]#1618: Adaptive serialization: doubles
     * Issue [90]#1591: Implausible filter expressions
     * Issue [91]#1583: JSON: Parsing and serializing numbers, often
       undesired E notation
     * Issue [92]#1568: Define a Unicode case-insensitive collation
     * Issue [93]#1528: Computed node constructors: observations
     * Issue [94]#1484: Functions that expect a record type should make it
       extensible
     * Issue [95]#1479: Default element namespace in XQuery: interaction
       of 'fixed' and '##any'
     * Issue [96]#1459: Function properties and arities (editorial)
     * Issue [97]#1416: Key-value pairs: built-in record type `pair`
     * Issue [98]#1310: add fn:match-groups() function
     * Issue [99]#1307: For symmetry, add functions array:scan-left and
       array:scan-right
     * Issue [100]#1175: XPath: Optional parameters in the definition of
       an inline function
     * Issue [101]#760: Serialize functions: consistency
     * Issue [102]#641: Serialization fallback.

2. Technical agenda

2.1. Review of pull requests

   I've put 1906 back on the top of the agenda because we seem to be
   making good progress. I propose once again to time box this so we don't
   spend the whole meeting discussing it.

2.1.1. PR #1906: 1797 elements-to-maps-conversion-plan function

   See PR [103]#1906

   We begin by reviewing comments by CG on the PR.
     * CG: Item 12, there's a possibly out of date comment.
          + ... Item 13, would it be better to raise an error instead of
            ignoring the type?
               o ... MK: An error would be consistent.

   ACTION: QT4CG-118-01: MK to make an incorrect type raise an error in
   #1906
     * CG: Item 14, should we drop the child attribute from list?
          + ... MK: I found the attribute useful for error detection.
          + ... MK: All errors in the plan raise the same error.
     * CG: Item 15, what is the expected result for this query...(see
       issue)
          + ... MK: The xsi:* attributes are ignored. It says that
            somewhere.
          + ... MK: The plan should allow for skipping particular
            attributes.
     * CG: Item 16, The element-to-map-plan and element-to-map should
       accept the same kinds of nodes
          + ... MK: Allowing a document node there means you can pass a
            collection
          + ... MK: But it wouldn't do any harm to allow a document node.
            But it's not a hardship to extract it.

   There's a test case that the Query code works!
     * JWL: What happens if the document node you pass to a plan is empty?

   Consensus: you get back an empty map.
     * JWL: I agree with CG, having the formal equivalent has made it much
       easier to understand.
          + ... But that's not an XPath expression because it uses
            grouping. It's XQuery.
     * MK: Yes.

   Some discussion of whether and how it could be done with XSLT.

   Plan: MK will make these changes and then we'll assume it can be put on
   the "accept without discussion list" for next week.

2.1.2. PR #1937: 1936 Mark attribute declarations as form=qualified

   See PR [104]#1937

   This is a very trivial collection to the schema for XSLT. Hat tip to
   Priscilla.

   Proposal: accept this PR.

   Accepted.

   (Following the meeting, it was discovered that the PR had been deleted.
   Perhaps accidentally?)

2.1.3. PR #1933: 1271 fn:validate() function

   See PR [105]#1933
     * MK: I proposed this as a function to do XSD validation.
          + ... It's a pretty exact mirror of the validate expression in
            XQuery.
          + ... It has options for using the schema location hints.
          + ... Partly, this makes the functionality available in XPath
            and making it into a function makes it easier to use with the
            function machinery we have in place.
     * MK: It raised questions about how to do validation with RELAX NG
       schemas or DTDs.
          + ... There are scoping questions. But I think RELAX NG
            validation is more free standing.
     * JWL: When I looked at this, I looked at xsi-schema-location and
       thought maybe I could put a schema there. The name doesn't quite
       ring correctly.
          + ... Is there an argument for a version where you specify the
            schema?
     * MK: I think a function that loads a schema and returns a function
       that can be used to validate documents. But it raises questions
       about how that schema interacts with the schema(s) in the static
       context.
          + ... The other issue is, if it's going to return a document
            with type annotations, those are effectively references into
            that schema, so you have questions about what those references
            are. I was trying to avoid those problems.
     * CG: Would caching be interesting for XSD validation too?
     * MK: The validate expression works against the schemas in the static
       context, so caching isn't relevant.
     * CG: Maybe the function validate-xsd?

   Some discussion of the name. Perhaps validate-with-xsd?
     * DN: I'm not a specialist in schema validation. I'd like to see
       examples of what is being returned. I thought that in XQuery and
       XSLT, there would be a way to specify that the input document
       should be validated.
     * MK: Validating the input document is very implementation defined at
       the moment; it's defined by the invocation and happens before you
       do the query.
          + ... You can validate result documents in XSLT with an
            attribute.
          + ... In XQuery and XSLT, there are mechanisms for validating
            intermediate values.
          + ... But those mechanisms aren't convenient in our function
            mechanisms.
     * DN: So what would one do with the nodes that is produced?

   Some discussion of whether and how examples could be added here.
     * DN: Am I correct that this function would be used mainly while
       debugging?
     * MK: No, I think it's more likely that you'd put validation into a
       production pipeline.
          + ... A common use case is to do a little preprocessing before
            you do validation.
     * DN: Some notes about common usage scenarious might be good.
     * WP: I think this is important and useful. I'm wondering why we
       don't tell people to use XProc? What's the requirement here?
          + ... The three-tiered approach is valuable: a boolean, a
            validation report, or errors.
     * MK: There's a gap in the validate expression (and XSLT) that you
       can't get diagnostic messages. We could enhance this.

   Some discussion of XProc and the optionality of validation.
     * WP: Maybe we should open it up further and do things to return
       validation reports.

   MK proposes to review the PR and resubmit it.

2.1.4. PR #1929: 1725 xsl:mode/@copy-namespaces

   See PR [106]#1929

   MK describes the PR.

   Proposal: accept this PR.

   Accepted.

2.1.5. PR #1928: 1844b Arrow Expressions

   See PR [107]#1928
     * MK: This started with a suggestion from CG to drop the mapping
       arrow.
          + ... I looked at rewriting expressions and persuaded myself
            that we still want the mapping arrow.
     * MK: That left me with some other ideas that grew out of that
       process.
          + ... This PR is entirely editorial.
     * CG: In the past we've discussed three character operators and a
       desire to get rid of them.
     * MK: I prefer the one we've got.
     * DN: Tangentially, speaking of operators with too many characters,
       maybe we should note somewhere that produce more readable and
       understandable expressions.

   Proposal: accept this PR.

   Accepted.

2.1.6. PR #1926: 1907 method lookup (disallow wildcard selection)

   See PR [108]#1926

   MK introduces the PR.
     * MK: This makes the magic only apply to lookup expressions that are
       NCName or StringLiteral.
     * DN: We should have some examples of how to do methods in records.

   ACTION: QT4CG-118-02: DN to open an issue about methods in records

   Proposal: accept this PR.

   Accepted.

2.1.7. PR #1922: 1921 Expand definition of version ranges in XSLT

   See PR [109]#1922
     * MK: This was raised by a third party.
          + ... It pointed out something that didn't work in Saxon,
            because there weren't any tests, because the spec was pretty
            unclear and needing interpretation.
          + ... It also adds some tests.
     * MK: The change to the syntax is just for presentation.
     * MK: The description of package versions is expanded, fleshing out
       the rules.

   Proposal: accept this PR.

   Accepted.

3. Any other business

   ACTION: QT4CG-118-03: NW to make sure compose/chain and binary are on
   the agenda for next week

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/04-22.html#minutes
   7. https://qt4cg.org/meeting/minutes/2025/04-22.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2025/04-22.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2025/04-22.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2025/04-22.html#agenda
  11. https://qt4cg.org/meeting/minutes/2025/04-22.html#so-far
  12. https://qt4cg.org/meeting/minutes/2025/04-22.html#approve-minutes
  13. https://qt4cg.org/meeting/minutes/2025/04-22.html#next-meeting
  14. https://qt4cg.org/meeting/minutes/2025/04-22.html#open-actions
  15. https://qt4cg.org/meeting/minutes/2025/04-22.html#open-pull-requests
  16. https://qt4cg.org/meeting/minutes/2025/04-22.html#merge-without-discussion
  17. https://qt4cg.org/meeting/minutes/2025/04-22.html#close-without-action
  18. https://qt4cg.org/meeting/minutes/2025/04-22.html#substantive
  19. https://qt4cg.org/meeting/minutes/2025/04-22.html#required-40
  20. https://qt4cg.org/meeting/minutes/2025/04-22.html#triage
  21. https://qt4cg.org/meeting/minutes/2025/04-22.html#technical-agenda
  22. https://qt4cg.org/meeting/minutes/2025/04-22.html#technical-prs
  23. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1906
  24. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1937
  25. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1933
  26. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1929
  27. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1928
  28. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1926
  29. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1922
  30. https://qt4cg.org/meeting/minutes/2025/04-22.html#any-other-business
  31. https://qt4cg.org/meeting/minutes/2025/04-22.html#adjourned
  32. https://github.com/qt4cg/qtspecs/pull/1838#issuecomment-2682372207
  33. https://qt4cg.org/meeting/agenda/2025/04-22.html
  34. https://qt4cg.org/meeting/minutes/2025/04-15.html
  35. https://github.com/qt4cg/qtspecs/pull/1838#issuecomment-2682372207
  36. https://qt4cg.org/meeting/minutes/2025/04-22.html#technical-agenda
  37. https://qt4cg.org/dashboard/#pr-1940
  38. https://qt4cg.org/dashboard/#pr-1937
  39. https://qt4cg.org/dashboard/#pr-1931
  40. https://github.com/qt4cg/qtspecs/issues/910
  41. https://qt4cg.org/dashboard/#pr-1937
  42. https://qt4cg.org/dashboard/#pr-1933
  43. https://qt4cg.org/dashboard/#pr-1929
  44. https://qt4cg.org/dashboard/#pr-1928
  45. https://qt4cg.org/dashboard/#pr-1926
  46. https://qt4cg.org/dashboard/#pr-1922
  47. https://qt4cg.org/dashboard/#pr-1906
  48. https://qt4cg.org/dashboard/#pr-1894
  49. https://qt4cg.org/dashboard/#pr-1883
  50. https://qt4cg.org/dashboard/#pr-1587
  51. https://github.com/qt4cg/qtspecs/issues/1777
  52. https://github.com/qt4cg/qtspecs/issues/1584
  53. https://github.com/qt4cg/qtspecs/issues/1240
  54. https://github.com/qt4cg/qtspecs/issues/1127
  55. https://github.com/qt4cg/qtspecs/issues/1045
  56. https://github.com/qt4cg/qtspecs/issues/1021
  57. https://github.com/qt4cg/qtspecs/issues/1011
  58. https://github.com/qt4cg/qtspecs/issues/986
  59. https://github.com/qt4cg/qtspecs/issues/967
  60. https://github.com/qt4cg/qtspecs/issues/748
  61. https://github.com/qt4cg/qtspecs/issues/714
  62. https://github.com/qt4cg/qtspecs/issues/675
  63. https://github.com/qt4cg/qtspecs/issues/407
  64. https://github.com/qt4cg/qtspecs/issues/366
  65. https://github.com/qt4cg/qtspecs/issues/272
  66. https://github.com/qt4cg/qtspecs/issues/1938
  67. https://github.com/qt4cg/qtspecs/issues/1935
  68. https://github.com/qt4cg/qtspecs/issues/1934
  69. https://github.com/qt4cg/qtspecs/issues/1920
  70. https://github.com/qt4cg/qtspecs/issues/1912
  71. https://github.com/qt4cg/qtspecs/issues/1903
  72. https://github.com/qt4cg/qtspecs/issues/1889
  73. https://github.com/qt4cg/qtspecs/issues/1885
  74. https://github.com/qt4cg/qtspecs/issues/1871
  75. https://github.com/qt4cg/qtspecs/issues/1868
  76. https://github.com/qt4cg/qtspecs/issues/1859
  77. https://github.com/qt4cg/qtspecs/issues/1852
  78. https://github.com/qt4cg/qtspecs/issues/1844
  79. https://github.com/qt4cg/qtspecs/issues/1795
  80. https://github.com/qt4cg/qtspecs/issues/1787
  81. https://github.com/qt4cg/qtspecs/issues/1775
  82. https://github.com/qt4cg/qtspecs/issues/1774
  83. https://github.com/qt4cg/qtspecs/issues/1736
  84. https://github.com/qt4cg/qtspecs/issues/1718
  85. https://github.com/qt4cg/qtspecs/issues/1704
  86. https://github.com/qt4cg/qtspecs/issues/1697
  87. https://github.com/qt4cg/qtspecs/issues/1661
  88. https://github.com/qt4cg/qtspecs/issues/1644
  89. https://github.com/qt4cg/qtspecs/issues/1618
  90. https://github.com/qt4cg/qtspecs/issues/1591
  91. https://github.com/qt4cg/qtspecs/issues/1583
  92. https://github.com/qt4cg/qtspecs/issues/1568
  93. https://github.com/qt4cg/qtspecs/issues/1528
  94. https://github.com/qt4cg/qtspecs/issues/1484
  95. https://github.com/qt4cg/qtspecs/issues/1479
  96. https://github.com/qt4cg/qtspecs/issues/1459
  97. https://github.com/qt4cg/qtspecs/issues/1416
  98. https://github.com/qt4cg/qtspecs/issues/1310
  99. https://github.com/qt4cg/qtspecs/issues/1307
 100. https://github.com/qt4cg/qtspecs/issues/1175
 101. https://github.com/qt4cg/qtspecs/issues/760
 102. https://github.com/qt4cg/qtspecs/issues/641
 103. https://qt4cg.org/dashboard/#pr-1906
 104. https://qt4cg.org/dashboard/#pr-1937
 105. https://qt4cg.org/dashboard/#pr-1933
 106. https://qt4cg.org/dashboard/#pr-1929
 107. https://qt4cg.org/dashboard/#pr-1928
 108. https://qt4cg.org/dashboard/#pr-1926
 109. https://qt4cg.org/dashboard/#pr-1922

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 22 April 2025 16:26:01 UTC