- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 27 Feb 2024 17:44:07 +0000
- To: "public-xslt-40@w3.org" <public-xslt-40@w3.org>
- Message-ID: <m27cipg5tf.fsf@saxonica.com>
Here are today’s minutes:
https://qt4cg.org/meeting/minutes/2024/02-27.html
QT4 CG Meeting 067 Minutes 2024-02-27
Table of Contents
* [1]Draft Minutes
* [2]Summary of new and continuing actions [0/11]
* [3]1. Administrivia
+ [4]1.1. Roll call [9/13]
+ [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 [1/11]
+ [10]1.6. Review of open pull requests and issues
o [11]1.6.1. Merge without discussion
o [12]1.6.2. Close without action
* [13]2. Technical Agenda
+ [14]2.1. PR #1003: 919 Use EBV in boolean callbacks
+ [15]2.2. PR #1042: 1016 Editorial cleanup - csv-to-arrays
+ [16]2.3. PR #1041: 236 map:build: sequence of keys
+ [17]2.4. PR #1040: 485 Predeclared namespaces in XQuery:
output
+ [18]2.5. PR #988: 960 Pinned and labeled values
+ [19]2.6. PR #832: 77 Add map:deep-update and array:deep-update
* [20]3. Any other business
* [21]4. Adjourned
[22]Meeting index / [23]QT4CG.org / [24]Dashboard / [25]GH Issues /
[26]GH Pull Requests
Draft Minutes
Summary of new and continuing actions [0/11]
* [ ] QT4CG-052-02: NW to consider how to schedule an "editor's
meeting"
* [ ] QT4CG-056-04: MK to write a proposal for adding a select
attribute to xsl:text
* [ ] QT4CG-058-02: MK to consider providing more advice about the
pitfalls of mixing decimal and double when sorting
* [ ] QT4CG-063-01: MK to revise #956 especially with respect to the
options parameter
* [ ] QT4CG-063-02: JK to consider whether the roman numeral example
is appropriate for the spec.
* [ ] QT4CG-063-04: NW to try to add test review to the editorial
meeting.
* [ ] QT4CG-063-05: MK to revise PR #953 to take account of CG's
comments
* [ ] QT4CG-063-06: MK to consider refactoring the declare item type
syntax to something like declare record
* [ ] QT4CG-064-08: NW to open an issue to try to resolve $search to
$target consistently.
* [ ] QT4CG-066-01: MK to add a note that the grammar rules for
regular expressions apply after comments are removed
* [ ] QT4CG-067-01: NW to ask the XML Prague organizers for hosting
* [ ] QT4CG-067-02: MK to revert the changes to the test suite for
EBV (PR 1003)
1. Administrivia
1.1. Roll call [9/13]
Regrets SF, DN.
* [X] Reece Dunn (RD)
* [ ] Sasha Firsov (SF)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK) [:30-]
* [X] Michael Kay (MK)
* [ ] Juri Leino (JLO)
* [X] John Lumley (JLY)
* [ ] Dimitre Novatchev (DN)
* [X] Wendell Piez (WP)
* [X] Ed Porter (EP)
* [ ] Adam Retter (AR) [:10-]
* [X] C. M. Sperberg-McQueen (MSM)
* [X] Norm Tovey-Walsh (NW). Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [27]the agenda.
Accepted.
1.2.1. Status so far...
issues-open-2024-02-27.png
Figure 1: "Burn down" chart on open issues
issues-by-spec-2024-02-27.png
Figure 2: Open issues by specification
issues-by-type-2024-02-27.png
Figure 3: Open issues by type
1.3. Approve minutes of the previous meeting
Proposal: Accept [28]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting [29]is scheduled for Tuesday, 5 March 2024.
Any regrets for the next meeting?
Propose: meet 4-5 June in Prague.
No objections raised.
ACTION: NW to ask the XML Prague organizers for hosting
1.5. Review of open action items [1/11]
* [ ] QT4CG-052-02: NW to consider how to schedule an "editor's
meeting"
* [ ] QT4CG-056-04: MK to write a proposal for adding a select
attribute to xsl:text
* [ ] QT4CG-058-02: MK to consider providing more advice about the
pitfalls of mixing decimal and double when sorting
* [ ] QT4CG-063-01: MK to revise #956 especially with respect to the
options parameter
* [ ] QT4CG-063-02: JK to consider whether the roman numeral example
is appropriate for the spec.
* [ ] QT4CG-063-04: NW to try to add test review to the editorial
meeting.
* [ ] QT4CG-063-05: MK to revise PR #953 to take account of CG's
comments
* [ ] QT4CG-063-06: MK to consider refactoring the declare item type
syntax to something like declare record
* [ ] QT4CG-064-08: NW to open an issue to try to resolve $search to
$target consistently.
* [X] QT4CG-065-01: CG to amend PR #795 to address MK's comment re:
implementation defined behavior
* [ ] QT4CG-066-01: MK to add a note that the grammar rules for
regular expressions apply after comments are removed
1.6. Review of open pull requests and issues
d*** Blocked
The following PRs are open but have merge conflicts or comments which
suggest they aren't ready for action.
* PR [30]#956: 850-partial Editorial improvements to parse-html()
* PR [31]#529: 528 fn:elements-to-maps
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 [32]#1034: QT4CG-066-xx Add note regarding absence of drop-while
/ skip-while
* PR [33]#1033: QT4CG-066-01 Add note that whitespace and comments in
regexen are lexical constructs
* PR [34]#1032: 1029 Make argument of fn:void optional
* PR [35]#1031: 1024 Change precedence of 'otherwise' operator
Proposed: 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 [36]#1030: allow pattern matches in axis expression
* Issue [37]#1007: How to invert a predicate function
* Issue [38]#990: Transitive closure on non-nodes
* Issue [39]#872: Symmetry: fn:items-at -> fn:get
* Issue [40]#843: Standard, array & map functions: Equivalencies
* Issue [41]#825: array:members-at
* Issue [42]#356: array:leaves
Proposed: close without action
Accepted.
2. Technical Agenda
2.1. PR #1003: 919 Use EBV in boolean callbacks
See PR [43]#1003
* MK: The proposal introduces a backwards incompatibility. If the
callback function returns a node (currently) we atomize the node
and look at it's boolean value (if it has one). If we use EBV, the
value becomes true if the node exists and false if it doesn't.
+ ... That doesn't effect very many functions because many of
them are new, but it does effect a few established functions.
* MK: We could do it anyway, do it differently for old versus new, or
revert the change.
* NW: I would object to doing old functions differently than one
news.
* JLY: How easy is it to put an exists around the callback itself?
* MK: You can always convert existing calls, but if you run a query
and it gives different results, they have to go on a bug hunt.
Sentiment appears to be reverting the change.
* RD: What are we reverting?
* MK: The proposal to change callback functions that return a boolean
to take the EBV instead of requiring a boolean.
* WP: Bravo for finding the problem in tests.
* RD: I think reverting it would be sensible given that it hasn't
been accepted. While it's nice, introducing backwards
incompatibilities is a risk.
Proposed: revert the change, abandon PR 1003
Accepted.
ACTION: MK to revert the changes to the test suite for EBV (PR 1003)
2.2. PR #1042: 1016 Editorial cleanup - csv-to-arrays
See PR [44]#1042
* MK: This changes the name of one function, csv-to-arrays appears in
the current spec as csv-to-simple-records. I think this name is
simpler and clearer.
+ ... It's the function that turns a raw CSV into a sequence of
rows.
+ ... The rest of the PR is editorial, but it's a substantial
rewrite in a few places; it's intended to be equivalent.
* MSM asks about the substantial rewrite
* MK: The csv-to-xml function is now defined in terms of parse-csv to
reduce duplication. It's now a three-level layering. I've thought
of trying to redefine parse-csv on top of csv-to-array; potentially
doable, but maybe complicated.
* MK: There's still scope to do a bit more, I opened issues for a
couple of things.
Proposal: accept this PR.
Accepted.
2.3. PR #1041: 236 map:build: sequence of keys
See PR [45]#1041
* CG reviews the PR.
* CG: Generalized the map:build function to take a sequence of keys
rather than a single key. The implementation is now nested. There's
an example that shows how it works.
* JLY: Sounds good to me.
* MSM: Are there four titles, or three titles one that appears in two
lists?
* MK: There are three titles.
* MSM: Is that moderately clear from the exposition?
* NW: If it copied, it would need a warning with flashing red lights!
Proposal: accept this PR.
Accepted.
* JLY: Is there any point in returning an empty list if there's no
key?
* RD: The function already has a zero or one argument.
2.4. PR #1040: 485 Predeclared namespaces in XQuery: output
See PR [46]#1040
* CG: We already added some predeclared namespaces to XQuery: array,
map, and math.
+ ... JK suggested we add the namespace used for output
parameters
+ ... I removed some redundancy.
* MSM: Is there a logic to the order in the list?
* CG: Sorted by URI.
Proposal: accept this PR.
Accepted.
2.5. PR #988: 960 Pinned and labeled values
See PR [47]#988
* MK: I've done more work on it; my confidence is increased.
+ ... I've done some implementation and I think the proposal is
sound.
* MK: First, there's a data model change: in 2.9.5 Map Items.
+ ... While you're doing a deep update (PR in the works), you
use a transient identifier with fn:pin
+ ... It says the same for arrays.
+ ... Then it talks about labeled items, 2.10. It can be applied
to any item.
+ ... At the moment, there's no way to make a subject or a label
that is itself labeled, but there's nothing in the data model
to forbid it.
+ ... Operations that construct new items don't label them
unless asked to.
+ ... Labeled items are used in lookup operations, etc. but not
described in the data model.
* MK: The next part is in XPath:
+ ... In 4.15.4 we discuss pinned maps and arrays in the context
of navigation in JSON.
+ ... Ancestors goes upward and path goes downward, will that be
more or less confusing?
* RD: That's consistent with XPath selectors
+ ... In terms of intuitiveness, it's better that these be the
same
* MK: The formal model for fn:pin is described in terms of a deep
copy, but you wouldn't actually do it this way!
* MK: The example shows how to find the co-authors in the ancestors
of a map value.
* MK: There's a note that using empty sequences as JSON null values.
* NW observes that we accepted the PR for alternative representations
of JSON null last week.
* MK: Finally, in F&O we have new functions: fn:pin describes the
formal detail of how labels are added.
* MK: Then there's fn:label that just extracts the labels.
* MK: In writing examples, I was tempted to add some conveniences.
Then I decided to just get the primitives in place first.
* MSM: In my variant of English, the term "label" pretty definitely
suggests a simple flat value like a string; having label be a
structured annotation instead bothers me.
* MK: I thought that, then I looked at the label on my shirt and it
has lots of properties on it!
* RD: Maybe fn:labels to indicate that it's multi-valued?
* MSM: Is the following paraphrase accurate: the rational offered for
introducing maps when they were introduced against the question "we
already have structed data". The primary answer was that they were
lighter weight, faster, only downward pointers. This is an add-on
for maps so that they can be as heavy weight as elements.
* MK: It still doesn't add the full weight because you can still
update a map without making a complete copy. You can still do
updates in constant time rather than in time proportional to the
size of the map.
+ ... This translates into a "zipper" function in functional
terms. All of the items that haven't been touched are reused.
+ ... Trying to do that for node trees is very hard because node
identity is so deeply embedded.
* WP: I like the direction; but I'm concerned about the
implementation details.
* JK: Will there be a "pin" attribute in xsl:map so that we can do it
at the outset?
* MK: No, you just use the map constructor and pipe it into the
fn:pin function.
+ ... I think there are use-cases for automatic pinning; for
example, should apply-templates automatically pin a map as
it's going.
+ ... One of the things on the follow-up list from this proposal
is that it becomes possible to match things within a JSON tree
according to their ancestry.
* NW: Is this ready to be mergee?
Proposal: accept this PR.
Accepted.
2.6. PR #832: 77 Add map:deep-update and array:deep-update
See PR [48]#832
Not yet ready for more discussion.
3. Any other business
JLY has something to discuss about iXML and grammars.
* JLY: I'm doing a lot of work with iXML (with NW and MSM and Steven
Pemberton).
+ ... I've been thinking about how you can generate and modify
iXML grammars.
+ ... I've now got it working with the XPath 4.0 grammar.
JLY does a jwiXML demo showing an iXML grammar for XPath generated from
the XPath 4.0 grammar.
This has revealed an ambiguity in the grammar, AtomicOrUnionType and
TypedRecordType
RD has worked on [49]modified grammars that integrate
MarkLogic/BaseX/Saxon grammars.
4. Adjourned
References
1. https://qt4cg.org/meeting/minutes/2024/02-27.html#minutes
2. https://qt4cg.org/meeting/minutes/2024/02-27.html#new-actions
3. https://qt4cg.org/meeting/minutes/2024/02-27.html#administrivia
4. https://qt4cg.org/meeting/minutes/2024/02-27.html#roll-call
5. https://qt4cg.org/meeting/minutes/2024/02-27.html#agenda
6. https://qt4cg.org/meeting/minutes/2024/02-27.html#so-far
7. https://qt4cg.org/meeting/minutes/2024/02-27.html#approve-minutes
8. https://qt4cg.org/meeting/minutes/2024/02-27.html#next-meeting
9. https://qt4cg.org/meeting/minutes/2024/02-27.html#open-actions
10. https://qt4cg.org/meeting/minutes/2024/02-27.html#open-pull-requests
11. https://qt4cg.org/meeting/minutes/2024/02-27.html#merge-without-discussion
12. https://qt4cg.org/meeting/minutes/2024/02-27.html#close-without-action
13. https://qt4cg.org/meeting/minutes/2024/02-27.html#technical-agenda
14. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1003
15. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1042
16. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1041
17. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-1040
18. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-988
19. https://qt4cg.org/meeting/minutes/2024/02-27.html#pr-832
20. https://qt4cg.org/meeting/minutes/2024/02-27.html#any-other-business
21. https://qt4cg.org/meeting/minutes/2024/02-27.html#adjourned
22. https://qt4cg.org/meeting/minutes/
23. https://qt4cg.org/
24. https://qt4cg.org/dashboard
25. https://github.com/qt4cg/qtspecs/issues
26. https://github.com/qt4cg/qtspecs/pulls
27. https://qt4cg.org/meeting/agenda/2024/02-27.html
28. https://qt4cg.org/meeting/minutes/2024/02-20.html
29. https://qt4cg.org/meeting/agenda/2024/03-05.html
30. https://qt4cg.org/dashboard/#pr-956
31. https://qt4cg.org/dashboard/#pr-529
32. https://qt4cg.org/dashboard/#pr-1034
33. https://qt4cg.org/dashboard/#pr-1033
34. https://qt4cg.org/dashboard/#pr-1032
35. https://qt4cg.org/dashboard/#pr-1031
36. https://github.com/qt4cg/qtspecs/issues/1030
37. https://github.com/qt4cg/qtspecs/issues/1007
38. https://github.com/qt4cg/qtspecs/issues/990
39. https://github.com/qt4cg/qtspecs/issues/872
40. https://github.com/qt4cg/qtspecs/issues/843
41. https://github.com/qt4cg/qtspecs/issues/825
42. https://github.com/qt4cg/qtspecs/issues/356
43. https://qt4cg.org/dashboard/#pr-1003
44. https://qt4cg.org/dashboard/#pr-1042
45. https://qt4cg.org/dashboard/#pr-1041
46. https://qt4cg.org/dashboard/#pr-1040
47. https://qt4cg.org/dashboard/#pr-988
48. https://qt4cg.org/dashboard/#pr-832
49. https://rhdunn.github.io/xquery-intellij-plugin/specifications/XQuery%20IntelliJ%20Plugin%20XQuery.html
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 27 February 2024 17:44:52 UTC