- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 10 Jun 2025 17:25:35 +0100
- To: public-xslt-40@w3.org
Hello,
Here are the draft minutes for today’s meeting:
https://qt4cg.org/meeting/minutes/2025/06-10.html
QT4 CG Meeting 124 Minutes 2025-06-10
[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 [8/12]
+ [10]1.2. Accept the agenda
+ [11]1.3. Approve minutes of the previous meeting
+ [12]1.4. Next meeting
+ [13]1.5. Review of open action items [1/6]
+ [14]1.6. Review of open pull requests and issues
o [15]1.6.1. Blocked
o [16]1.6.2. Merge without discussion
o [17]1.6.3. Close without action
* [18]2. Technical agenda
+ [19]2.1. PR #2031: 2025 JNodes
+ [20]2.2. PR #2028: 2027 '#' syntax for computed PIs and
namespaces
* [21]3. Any other business
* [22]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/7]
* [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
fn:ranks proposal
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [ ] QT4CG-123-01: MK to do the set example in XQuery.
* [ ] QT4CG-124-01: MK to provide a copy of the slide deck for the
minutes.
1. Administrivia
1.1. Roll call [8/12]
Regrets: BTW, DB
* [ ] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK)
* [X] Michael Kay (MK)
* [ ] Juri Leino (JLO)
* [X] John Lumley (JWL)
* [ ] 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 [23]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [24]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is scheduled for 17 June 2025.
JL gives regrets.
1.5. Review of open action items [1/6]
(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-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [X] QT4CG-119-02: MK to add a note about how schema composition is
done for multiple options
* [ ] QT4CG-123-01: MK to do the set example in XQuery.
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 [25]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 [26]#2019: 1776: XSLT template rules for maps and array
* PR [27]#1942: 37 Support sequence, array, and map destructuring
declarations
* PR [28]#1283: 77b Update expressions
* PR [29]#1062: 150bis revised proposal for fn:ranks
RD suggests that #1942 is ready for discussion again.
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 [30]#2033: 2032 Fix typo in example
* PR [31]#2026: 2022 Drop module feature
Proposal: merge without discussion.
Accepted.
1.6.3. 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 [32]#1127: Binary resources
Proposal: close without further action.
Accepted.
2. Technical agenda
The following substantive PRs are scheduled for discussion this week.
2.1. PR #2031: 2025 JNodes
See PR [33]#2031
MK reviews a presentation prepared about JNodes.
See also MK's [34]MarkupUK paper.
ACTION QT4CG-124-01: MK to provide a copy of the slide deck for the
minutes.
(The scribe isn't going to attempt to transcribe the slides.)
Slide 7:
* JL: Are you saying that the child is implicit in the syntax but
whether or not there's a wrapper is open.
* MK: Yes, but you get flattening if there's a bare key on the right
hand side.
Slide 10:
* NW: What's the significance of the ∂?
* MK: It's just to indicate the properties of JNodes.
MK wraps up his presentation.
* JL: On slide 12, in template match ?name, I assume you can add
predicates?
* MK: Yes.
* JL: You can get to an XNode tree from a JNode tree, but you can
never get back. Is that right?
* MK: If you have a map that points to nodes. The child access will
give you a JNode that maps the XNode.
* JL: That's a leaf in the JTree.
* JL: Can I do a composite path, so ?? through the JTree then / when
it's an XTree?
* MK: Yes, though there might questions of priority.
* RD: I like the general direction and approach. This is somewhat
similar to how MarkLogic and JSoniq work. The difference with those
is that they have specific nodes for maps and arrays. I wonder if
would make sense to do something similar, rather than wrapping it
in a JNode.
+ ... Then every map would effectively be a map node, every
array an array node, etc.
+ ... Then you don't need pin or unpin.
* MK: I think the main problem is that you don't want a "string" to
have a parent.
+ ... In the same way we distinguish a text node from a string,
we want to distinguish the strings in an array.
* RD: Don't we have types in the hierarchy that are multiple types,
so in effect you could have a string not part of a JSON structure
be the existing string, but a string in a JSON structure be both an
xs:string and a JSON string.
* MK: We get benefits from the fact that maps and arrays don't have
identity that effects the semantics.
+ ... We have an enormous cost making as small change to a big
XTree because we have to make something that looks like a copy
with new node identities everywhere.
+ ... We don't have that cost with maps. You don't have that
overhead.
+ ... I've found it very hard to find an implementation of small
updates that works with nodes.
* RD: When pinning and unpinning the nodes to construct the JNodes,
would it make sense there to differentiate, map, array, and value
nodes?
* MK: In the item type syntax the JNode is parameterized by the thing
it contains.
+ ... It's more like a generic type.
* RD: I'm wondering then if we can take advantage of the data model
functions and define those on the specific JNodes.
* MK: Which functions?
* RD: When you look at the definition of elements and attributes, it
maps them to things like dm:parent etc.
* MK: Yes, I'm sure one can define as much aparatus as you like. It's
an open question how much is useful.
* RD: If we define those on JNodes then a lot of the features that
are derived from them come for free.
* JK: As I expressed last night, this is fantastic.
+ ... The slide on "benefits", I would add that this potentially
unifies the syntax that XPath uses on trees, arrays, and maps.
They snap together.
* MK: Yes, we get benefits and the users get different benefits.
* JK: Thinking of arrays and maps as types of trees is very natural.
+ ... We'll have to review all the function signatures to see if
the should or should not work with JNodes.
* JK: Are predicate fair game?
* MK: Yes, they're applied to those just as they would be to any
other items in the sequence. The JNode is the context item.
+ ... I'm sure there are examples in the proposal somewhere.
* JK: We need more examples of how to convert XPath
* JK: If the ?? finds deeply embedded XNodes, do they fall into a
trap?
* MK: The ?? operator will give you a JNode, but it gets implicitly
unpinned if you use an operator that doesn't work on JNodes.
* JK: So given a map that contains a bunch of book trees,
??book/title will return the titles.
* JL: Was there a proposal where the right hand side of ? can be a
variable binding?
* MK: It can be a variable reference.
* JL: Do we want to do the same for XNodes on XPath?
* MK: Unfortunately, it has a different meaning.
* JL: You can get higher order like functionality.
* MK: This is why we can't unify / and ??, there's a deep difference.
* CG: I really like it. It looks very intuitive.
+ ... Referring to the backwards compatibility, I guess it will
be difficult to fix it.
+ ... There are instance of checks and other things that don't
do implicity coercion.
* CG: One very general thought, how much time will it take to get
this rather fundamental change finalized? People are asking when
4.0 will be finished.
* MK: The time taken all depends on how many good ideas people come
up with!
+ ... It takes far less time to make things work if you have a
good proposal.
* NW: It's going to be a fair bit of work...
* JL: Might it go as far as influencing the serialization specs?
* MK: There's a minor impact in that if you serialize a JNode, it
just gives you the serialization of its value.
* WP: Briefly, I too am very impressed. I'd like to see conference
papers and other explorations of this idea.
+ ... The radical thing here is how it treats JSON.
+ ... I'd like to see more attention drawn to it. If it's as
good as we think, maybe we need to air the idea more broadly.
What can we do?
* MK: Please review the proposal in detail and make comments. I think
it's capable of being merged in roughly in its current state. I'd
like to establish it as a baseline quickly, so we can build other
things on top of it.
We'll spend next week doing something else and come back to it in two
weeks.
2.2. PR #2028: 2027 '#' syntax for computed PIs and namespaces
See PR [35]#2028
MK reviews the PR.
* MK: We added QName literals to element and attribute constructors.
+ ... That left the question of what to do with PI and namespace
constructors.
+ ... This proposal says we should use a MarkedNCName that's
only used in this context.
Proposal: Merge this PR.
Accepted.
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/06-10.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/06-10.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/06-10.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/06-10.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/06-10.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/06-10.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/06-10.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/06-10.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/06-10.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/06-10.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/06-10.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/06-10.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2025/06-10.html#technical-agenda
19. https://qt4cg.org/meeting/minutes/2025/06-10.html#pr-2031
20. https://qt4cg.org/meeting/minutes/2025/06-10.html#pr-2028
21. https://qt4cg.org/meeting/minutes/2025/06-10.html#any-other-business
22. https://qt4cg.org/meeting/minutes/2025/06-10.html#adjourned
23. https://qt4cg.org/meeting/agenda/2025/06-10.html
24. https://qt4cg.org/meeting/minutes/2025/05-27.html
25. https://qt4cg.org/meeting/minutes/2025/06-10.html#technical-agenda
26. https://qt4cg.org/dashboard/#pr-2019
27. https://qt4cg.org/dashboard/#pr-1942
28. https://qt4cg.org/dashboard/#pr-1283
29. https://qt4cg.org/dashboard/#pr-1062
30. https://qt4cg.org/dashboard/#pr-2033
31. https://qt4cg.org/dashboard/#pr-2026
32. https://github.com/qt4cg/qtspecs/issues/1127
33. https://qt4cg.org/dashboard/#pr-2031
34. https://markupuk.org/webhelp/index.html#ar04.html
35. https://qt4cg.org/dashboard/#pr-2028
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 10 June 2025 16:25:42 UTC