QT4CG meeting 104 draft minutes, 7 January 2025

Hello,

Here are today’s minutes:

  https://qt4cg.org/meeting/minutes/2025/01-07.html

QT4 CG Meeting 104 Minutes 2025-01-07

   [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/7]
     * [8]1. Administrivia
          + [9]1.1. Roll call [10/12]
          + [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. Blocked
               o [17]1.6.2. Merge without discussion
               o [18]1.6.3. Substantive PRs
     * [19]2. Technical agenda
          + [20]2.1. PR #1679: 1678 Define element(E,T) and attribute(A,T)
            in terms of "derives-from"
          + [21]2.2. PR #1677: 1675 Fixes for CSV parsing
          + [22]2.3. PR #1676: 1621 Capabilities of Collations
          + [23]2.4. PR #1674: 1662 Allow composite sort keys in xsl:sort
          + [24]2.5. PR #1671: 1261 New fn:divide-decimals() function
          + [25]2.6. PR #1617: 1606 Drop named item types, refine named
            record types, esp in XSLT
     * [26]3. Any other business
     * [27]4. Adjourned

Draft Minutes

Summary of new and continuing actions [0/7]

     * [ ] QT4CG-080-07: NW to update the build instructions in the README
     * [ ] QT4CG-082-02: DN to work with MK to come to agreement on the
       fn:ranks proposal
     * [ ] QT4CG-088-01: NW to consider how best to add a dedication to
       MSM.
     * [ ] QT4CG-088-04: [Someone] needs to update the processing model
       diagram needs vis-a-vis the static typing feature
     * [ ] QT4CG-089-01: CG to draft a PR that attempts to resolve the
       operators described in #755 to a smaller number of orthogonal
       choices.
     * [ ] QT4CG-097-03: DN to proposal an axis for accessing the siblings
       of a node.
     * [ ] QT4CG-103-01: MK to add an example of showing all the
       properties for an untyped node.
     * [ ] QT4CG-104-01: MK to improve the wording around trim-whitespace
       wrt spaces outside the quoted string
     * [ ] QT4CG-103-02: MK to research alternative names for
       divide-decimals.

1. Administrivia

   "Happy New Year!"

1.1. Roll call [10/12]

   Regrets: JK
     * [X] David J Birnbaum (DB)
     * [X] Reece Dunn (RD)
     * [ ] Sasha Firsov (SF)
     * [X] Christian Gr¸n (CG)
     * [ ] Joel Kalvesmaki (JK)
     * [X] Michael Kay (MK)
     * [X] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [X] Dimitre Novatchev (DN)
     * [X] Wendell Piez (WP)
     * [X] Ed Porter (EP)
     * [X] Norm Tovey-Walsh (NW). Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [28]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-01-07.png

   Figure 1: "Burn down" chart on open issues

   issues-by-spec-2025-01-07.png

   Figure 2: Open issues by specification

   issues-by-type-2025-01-07.png

   Figure 3: Open issues by type

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   This next meeting is planned for 14 January 2025.

   DN gives regrets.

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-080-07: NW to update the build instructions in the README
     * [ ] QT4CG-082-02: DN to work with MK to come to agreement on the
       fn:ranks proposal
     * [ ] QT4CG-088-01: NW to consider how best to add a dedication to
       MSM.
     * [ ] QT4CG-088-04: [Someone] needs to update the processing model
       diagram needs vis-a-vis the static typing feature
     * [ ] QT4CG-089-01: CG to draft a PR that attempts to resolve the
       operators described in #755 to a smaller number of orthogonal
       choices.
     * [X] QT4CG-097-02: MK to make the XSD schema component references
       into links to XSD
     * [ ] QT4CG-097-03: DN to proposal an axis for accessing the siblings
       of a node.
     * [ ] QT4CG-103-01: MK to add an example of showing all the
       properties for an untyped node.
     * [X] QT4CG-103-02: MK to review other ways of handling namespaces in
       fn:path

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 [30]#1587: 557 Add fn:binary-resource
     * PR [31]#1296: 982 Rewrite of scan-left and scan-right
     * PR [32]#1283: 77b Update expressions
     * PR [33]#1062: 150bis revised proposal for fn:ranks
     * PR [34]#1227: 150 PR resubmission 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]#1673: 1407 TOC structure for types
     * PR [36]#1669: 1667 Revise handling of non-XML characters in
       parse-json
     * PR [37]#1668: Minor copy edits (no issue raised)
     * PR [38]#1666: 1649 result of function annotations
     * PR [39]#1665: 1650 Tidy up fn:type-of
     * PR [40]#1663: Remove DTD/stylesheet distractions at the top of the
       schema
     * PR [41]#1670: Action QT4CS-097-02: Enable xtermref links to XSD SCM
       property names

   Proposal: merge these PRs without further discussion.

   Accepted.

1.6.3. Substantive PRs

   The following substantive PRs were open when this agenda was prepared.
     * PR [42]#1679: 1678 Define element(E,T) and attribute(A,T) in terms
       of "derives-from"
     * PR [43]#1677: 1675 Fixes for CSV parsing
     * PR [44]#1676: 1621 Capabilities of Collations
     * PR [45]#1674: 1662 Allow composite sort keys in xsl:sort
     * PR [46]#1671: 1261 New fn:divide-decimals() function
     * PR [47]#1617: 1606 Drop named item types, refine named record
       types, esp in XSLT
     * PR [48]#1609: 1651 Ordered Maps

2. Technical agenda

2.1. PR #1679: 1678 Define element(E,T) and attribute(A,T) in terms of
"derives-from"

   See PR [49]#1679
     * MK: This was a bug I introduced while reorganizing some text
       previously.
          + ... There's a little bit of reorganizing in the prose...
          + ... Fixed the bug about type "T": it isn't only possible to
            define it by restriction, it can also be defined by extension
            or by membership in a substitution group.
     * MK: Attribute tests have the same problem and the same solution.

   Proposal: Accept this PR.

   Accepted.

2.2. PR #1677: 1675 Fixes for CSV parsing

   See PR [50]#1677
     * MK: This arose from an issue raised externally.
          + ... row-delimiter is a character, not a string.
          + ... trim-whitespace was being applied inconsistently
          + ... My feeling is we shouldn't trim quoted fields.
          + ... The get function signature was inconsistent, I corrected
            that.
          + ... We were slightly inconsistent about headers, I decided to
            allow an empty list.
          + ... Fixed the prose around "column names extracted" to clarify
            it.
     * JWL: We don't have xs:char, do we?
     * MK: No.
     * CG: Gunther is adding the feature for Base-X. Regarding whitespace
       trimming, when a field is quoted, there could be whitespace before
       or after the quotes. I think his idea is that we should trim those
       spaces.
     * MK: Yes, I'd be sympathetic to that. I'd be tempted to do it
       unconditionally. But maybe that's too problematic.

   ACTION QT4CG-104-01: MK to improve the wording around trim-whitespace
   wrt spaces outside the quoted string
     * RD: Should we look at what libraries do before we decide?
     * CG: Gunther looked at several libraries.
     * JWL: There is an error if those delimiter strings are more than one
       character?
     * MK: Yes. I'd hesitate to say where, but they are expected to be a
       single character.

   Proposal: Accept this PR.

   Accepted.

2.3. PR #1676: 1621 Capabilities of Collations

   See PR [51]#1676
     * MK: This is an observation of mine that we're inconsistent about
       whether collations had to support ordering or just equality. The
       way we define things with deep equal, that would fail, if the
       collation doesn't support ordering.
          + ... After discussion on the issue, I concluded that the
            simplest answer was to say that all collations must support
            ordering, even if it's implementation defined.
          + ... It effects the fn:collation-available function.
          + ... There's an editorial rewrite of the section on collations.
          + ... Added a section on collation capabilities that says all of
            them support comparison.
          + ... Added a note that says that the code point collation is
            not the same as UTF-16 code unit collation. That's caught me
            out more than once!
          + ... In fn:collation-available, sort is dropped as a capability
            but adds key for collation keys.
     * DN: Can we find out if a collation supports equality? What's the
       granularity of the capability.
     * MK: You can ask for any combination of those three capabilities.
     * DN: If I ask about the capability of a collation and then later ask
       again, am I guaranteed that the answer will be the same later? Is
       it meaningful to cache them for later?
     * MK: Not for a user-defined collation.
          + ... For the collations we've defined...
     * DN: Then maybe another property would be nice, are these answers
       permanent or temporary?
     * RD: I'd expect the answers to remain constant. But the comparison
       might change, for example, between Unicode versions.

   Some discussion of when things might change. National bodies can change
   the rules at any time.
     * RD: Even if the rules change, the fact that a collation can do the
       comparison will remain unchanged, even if the answers change.
     * MK: We leave the question of what to do when the world changes to
       implementors.
     * WP: This sounds like a collation governance issue; it's outside of
       our purview.
     * DN: If collation capabilities can change, a property that defines
       when it was last changed would be helpful.
     * MK: It's similar to the problem with Unicode block names which have
       changed across Unicode versions. The Unicode consortium has tried
       to impose rules on itself, but they have moved characters and done
       other things. Inevitably, implementations struggle with these
       questions.
     * NW: I had to do Unicode versions "by hand" for iXML testing.
     * RD: I think DN is refering to the specific URI. Whether a
       particular German collation gains or loses a capability.
     * MK: If it's a collation we define, then I think we define the
       capabilities. For other collations, it depends on who defines the
       collation.
     * NW: I think if you're using a collation defined by someone else,
       you're at the mercy of the providers.
     * MK: There's a long standing bug in Saxon related to the fact that
       the ICU implementation doesn't do what the spec says it should
       under some circumstances.

   Some more general discussion of what conformanc means and how we can
   set the expectations appropriately. Implementations have difficulty
   conforming in some edge cases and that's just a fact. Occasionally, we
   make concessions in the spec for those reasons, but I think we should
   aim high.
     * WP: To say nothing of how fixing the bugs can introduce new
       problems.
     * MK: Indeed.
     * JWL: It's pretty analogous to referring to a document; we make
       gauranteeds within the scope of a query but not outside it.

   Proposal: Accept this PR.

   Accepted.

2.4. PR #1674: 1662 Allow composite sort keys in xsl:sort

   See PR [52]#1674
     * MK: This was a third party suggestion. It got some "thumbs up" and
       it seemed straightforward.
          + ... It removes an error condition that said that a sort key
            couldn't contain more than one item.
          + (MK reviews the rules)
          + ... The text on individual atomic items hasn't changed, it's
            just been moved.
     * JLO: Interesting that you mentioned the XQuery problem of "empty
       first" or "empty last".
     * MK: In XSLT empty always come first.
     * JLO: Why both in XQuery?
     * MK: Because the empty sequence maps to NULL in SQL and SQL gives
       you a choice for where NULL sorts.

   Proposal: Accept this PR.

   Accepted.

2.5. PR #1671: 1261 New fn:divide-decimals() function

   See PR [53]#1671
     * MK: This has been an open issue for a while; it's been a Saxon
       extension for many years.
          + ... Decimal is a bit incomplete if you can't control the
            precision of division.
          + ... This is just a standard feature of all big decimal
            libraries.

   MK reviews the prose of the new function.
     * DN: It seems confusing to me; I was expecting the result of decimal
       division to be a decimal, not a fraction. The record is a fraction.
          + ... It seems inconvenient to me. If I'm using it in a sequence
            of functions, I'm going to have to deal with the fraction.
     * MK: You get two decimals. That's the way most of the decimal
       arithmetic libraries do it. That's how it's done on C# and Java.
          + ... It's a little awkward to use a function that delivers two
            results, but this is a reasonable way in our language.
     * MK: This isn't a fraction: it's a decimal quotient and a decimal
       remainder.
     * DN: Then perhaps I misunderstood.
     * RD: This is a decimal generalization of integer division modulus
       combined operation.
     * MK: Yes, I guess so.
     * RD: So you could use it that way if you only have integer types.
     * DN: In the examples, divide-decmails(10, -3) = {"quotient": 3,
       "remainder": -1 } is confusing.
     * RD: You have three lots of -3 within 10 which gives you -9. The
       remainder is -1.
     * JLO: I'm also not familiar with this kind of arithemetic, who uses
       it?
     * DN: I propose that we rename this to decimal-division-results
     * MK: You could call it quotient-and-remainder
     * RD: The name divmod seems to be what other languages use.
     * NW: That's not a very XPath/XQuery name.
     * RD: We have idiv etc.

   ACTION QT4CG-103-02: MK to research alternative names for
   divide-decimals.

   Proposal: Accept this PR.

   Accepted.

2.6. PR #1617: 1606 Drop named item types, refine named record types, esp in
XSLT

   See PR [54]#1617

   This PR currently has merge conflicts, we'll discuss it if those are
   resolved.
     * MK: The merge conflicts are a manifestation of a more logical
       problem.

   This PR needs more work.
     * JWL: I looked through this one. There are a couple of spelling
       errors in the large example.
          + ... This is about record types, what about function types?
     * MK: There was pushback last time we talked about it.

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/01-07.html#minutes
   7. https://qt4cg.org/meeting/minutes/2025/01-07.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2025/01-07.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2025/01-07.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2025/01-07.html#agenda
  11. https://qt4cg.org/meeting/minutes/2025/01-07.html#so-far
  12. https://qt4cg.org/meeting/minutes/2025/01-07.html#approve-minutes
  13. https://qt4cg.org/meeting/minutes/2025/01-07.html#next-meeting
  14. https://qt4cg.org/meeting/minutes/2025/01-07.html#open-actions
  15. https://qt4cg.org/meeting/minutes/2025/01-07.html#open-pull-requests
  16. https://qt4cg.org/meeting/minutes/2025/01-07.html#blocked
  17. https://qt4cg.org/meeting/minutes/2025/01-07.html#merge-without-discussion
  18. https://qt4cg.org/meeting/minutes/2025/01-07.html#substantive
  19. https://qt4cg.org/meeting/minutes/2025/01-07.html#technical-agenda
  20. https://qt4cg.org/meeting/minutes/2025/01-07.html#pr-1679
  21. https://qt4cg.org/meeting/minutes/2025/01-07.html#pr-1677
  22. https://qt4cg.org/meeting/minutes/2025/01-07.html#pr-1676
  23. https://qt4cg.org/meeting/minutes/2025/01-07.html#pr-1674
  24. https://qt4cg.org/meeting/minutes/2025/01-07.html#pr-1671
  25. https://qt4cg.org/meeting/minutes/2025/01-07.html#pr-1617
  26. https://qt4cg.org/meeting/minutes/2025/01-07.html#any-other-business
  27. https://qt4cg.org/meeting/minutes/2025/01-07.html#adjourned
  28. https://qt4cg.org/meeting/agenda/2025/01-07.html
  29. https://qt4cg.org/meeting/minutes/2024/12-17.html
  30. https://qt4cg.org/dashboard/#pr-1587
  31. https://qt4cg.org/dashboard/#pr-1296
  32. https://qt4cg.org/dashboard/#pr-1283
  33. https://qt4cg.org/dashboard/#pr-1062
  34. https://qt4cg.org/dashboard/#pr-1227
  35. https://qt4cg.org/dashboard/#pr-1673
  36. https://qt4cg.org/dashboard/#pr-1669
  37. https://qt4cg.org/dashboard/#pr-1668
  38. https://qt4cg.org/dashboard/#pr-1666
  39. https://qt4cg.org/dashboard/#pr-1665
  40. https://qt4cg.org/dashboard/#pr-1663
  41. https://qt4cg.org/dashboard/#pr-1670
  42. https://qt4cg.org/dashboard/#pr-1679
  43. https://qt4cg.org/dashboard/#pr-1677
  44. https://qt4cg.org/dashboard/#pr-1676
  45. https://qt4cg.org/dashboard/#pr-1674
  46. https://qt4cg.org/dashboard/#pr-1671
  47. https://qt4cg.org/dashboard/#pr-1617
  48. https://qt4cg.org/dashboard/#pr-1609
  49. https://qt4cg.org/dashboard/#pr-1679
  50. https://qt4cg.org/dashboard/#pr-1677
  51. https://qt4cg.org/dashboard/#pr-1676
  52. https://qt4cg.org/dashboard/#pr-1674
  53. https://qt4cg.org/dashboard/#pr-1671
  54. https://qt4cg.org/dashboard/#pr-1617

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 7 January 2025 17:43:59 UTC