- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 04 Apr 2023 17:25:08 +0100
- To: ublic-xslt-40@w3.org
- Message-ID: <m2h6tvipgm.fsf@saxonica.com>
Hello folks,
Here are today’s minutes:
https://qt4cg.org/meeting/minutes/2023/04-04.html
QT4 CG Meeting 029 Minutes 2023-04-04
Table of Contents
* [1]Draft Minutes
* [2]Summary of new and continuing actions [0/14]
* [3]1. Administrivia
+ [4]1.1. Roll call [11/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 [0/7]
* [10]2. Technical Agenda
+ [11]2.1. PR #411: Remove the note from the parse-html
unparsed-entity sections
+ [12]2.2. Issue #399: Using Multilevel Hierarchy and
Abstraction...deep-equal
+ [13]2.3. Issue #280: Why is resolve-uri forbidden ... a
fragment identifier?
+ [14]2.4. Issue #293: Error in fn:doc-available specification
+ [15]2.5. Issue #315: fn:transform inconsistency: initial-mode
+ [16]2.6. Issue #367: Focus for RHS of thin arrow expressions
+ [17]2.7. Issue #397: Type names
* [18]3. Adjourned
Draft Minutes
Summary of new and continuing actions [0/14]
* [ ] QT4CG-002-10: BTW to coordinate some ideas about improving
diversity in the group
* [ ] QT4CG-016-08: RD to clarify how namespace comparisons are
performed.
* [ ] QT4CG-023-01: NW to review the stylesheets for functions across
XPath and XSLT
* [ ] QT4CG-025-03: MK to revise and expand technical detail in PR
#375
* [ ] QT4CG-026-01: MK to write a summary paper that outlines the
decisions we need to make on "value sequences"
* [ ] QT4CG-027-01: MK to update the text for next-match wrt type()
matching
* [ ] QT4CG-028-01: MK to summarize the options available wrt deep
equal and errors
* [ ] QT4CG-029-01: RD+DN to draft spec prose for the "divide and
conquer" approach outlined in issue #399
* [ ] QT4CG-029-02: NW to check how Java and JavaScript behave when
resolving a relative URI against a base URI that has a fragment
identifier.
* [ ] QT4CG-029-03: NW to draft a PR that resolves issue #280
* [ ] QT4CG-029-04: CG to draft a PR that resolves issue #293
* [ ] QT4CG-029-05: NW to draft a PR that resolves issue #315
* [ ] QT4CG-029-06: NW to put a review of the thin arrow operator on
the agenda (with links to the relevant issues)
* [ ] QT4CG-029-07: NW to open the next discussion of #397 with a
demo from DN
1. Administrivia
1.1. Roll call [11/13]
* [ ] Anthony (Tony) Bufort (AB)
* [X] Reece Dunn (RD)
* [X] Sasha Firsov (SF)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK) [0:10-]
* [X] Michael Kay (MK)
* [X] John Lumley (JL)
* [X] Dimitre Novatchev (DN)
* [X] Ed Porter (EP)
* [X] C. M. Sperberg-McQueen (MSM)
* [ ] Bethan Tovey-Walsh (BTW)
* [X] Norm Tovey-Walsh (NW). Scribe. Chair.
* [X] Mohamed Zergaoui
SF announces [19]his proposal for templating using XSLT in the
webcomments group!
1.2. Accept the agenda
Proposal: Accept [20]the agenda.
Accepted.
1.2.1. Status so far...
issues-open-2023-04-03.png
Figure 1: "Burn down" chart on open issues
issues-by-spec-2023-04-03.png
Figure 2: Open issues by specification
issues-by-type-2023-04-03.png
Figure 3: "Burn down" chart on open issues
1.3. Approve minutes of the previous meeting
Proposal: Accept [21]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting [22]is scheduled for Tuesday, 11 April 2023.
No regrets heard.
1.5. Review of open action items [0/7]
* [ ] QT4CG-002-10: BTW to coordinate some ideas about improving
diversity in the group
* [ ] QT4CG-016-08: RD to clarify how namespace comparisons are
performed.
* [ ] QT4CG-023-01: NW to review the stylesheets for functions across
XPath and XSLT
* [ ] QT4CG-025-03: MK to revise and expand technical detail in PR
#375
* [ ] QT4CG-026-01: MK to write a summary paper that outlines the
decisions we need to make on "value sequences"
* [ ] QT4CG-027-01: MK to update the text for next-match wrt type()
matching
* [ ] QT4CG-028-01: MK to summarize the options available wrt deep
equal and errors
2. Technical Agenda
In response to feedback from last week, this agenda includes more
issues and fewer PRs. MSM and I reviewed the issues list and selected a
group of issues that (a) looked like they would benefit from discussion
and (b) were not marked Feature or Enhancement. (We obviously need to
discuss enhancements and features too, but focusing on bugs and errors
seemed like a good initial strategy.)
I propose an initial 15 minute time box on each issue. If, after 10
minutes, if we aren't closing in on a resolution, let's work out what
we need to do to improve our chances of being able to resolve it next
time.
2.1. PR #411: Remove the note from the parse-html unparsed-entity sections
See [23]issue #411
Proposal: accept this PR.
Accepted.
2.2. Issue #399: Using Multilevel Hierarchy and Abstraction...deep-equal
See [24]issue #399
DN outlines his proposal in issue #399. The strategy we should employ
is "divide and conquer."
DN walks through the expanding list in the issue: deep-equal,
deep-equal-sequence, etc. There are functions for sequences, atomic
values, maps, arrays, nodes, elements, etc.
* DN: As you can see on the screen, this decomposes the problem into
smaller, easier to understand pieces.
* JL: Is it my understanding that things that are normalizations
happen at the level when you've got a set of things, before they
then get compared?
* DN: Yes, I think so. And I forgot: maybe implicitly in the current
specification, there is such division. But it is not explicitly
stated. Some people may not even notice this aspect of the
specification.
* JL: I'm still confused. Are there any of these functions where
there are normalization checks that have some influence up and down
the hierarchy?
* MSM: What do you mean by normalization?
* JL: Well, you might want to ignore whitespace nodes, for example.
* DN: This is the issue that RD raised, we will still need to have
some kind of options or configurations that tells us what to do in
each case. What I thought we could do in each case is to make a
nested map that has the configuration data for each level. We can
provide this as a system function. When ever someone needs to
provide different options, they can use some sort of put operation
only on the level they need.
* RD: Looking at the current definition of deep equals, the rules
section has four groups, one dealing with atomics, then maps, then
arrays, then nodes. This is essentially the decomposition strategy.
So my question is, are you talking about splitting those into
separate subsections, or making them specific functions?
* DN: I believe that the quality of our documentation would benefit
from splitting larger problems into smaller. Making different
sections and referring to them explicilty. I think we could have
different functions explicitly, but maybe we don't need to expose
them all at the user level.
* RD: So if this is purely an organization and presentation thing,
would it make more sense to have a top-level heading, something
like "deep equals" or "comparison" and then have a section for the
record definition, one for the function, and then one for each of
the four sections we already have. Would organizing that way make
sense? We have similar precedents in the casting rules, for
example?
* DN: I'm not sure I understand clearly what the difference is
between that proposal and what we have here.
* RD: We'd need to make something that was a "table of contents"
section similar to the way that we do the casting rules. Then we
can move rules into their own subsections. And move the record type
definition out.
* SF: DN says we need to use feature flags for different deep-equal
subfeatures. I'd like to elevete this to something that's available
at the system level on every subtree.
* NW: There's the question of the "configuration map" that I think
isn't spelled out clearly enough for me.
* MK: I'd like to see someone experiment with different ways of
presenting it. The one thing I don't want to be here is defensive.
* RD: I could go have a go at it.
ACTION QT4CG-029-01: RD+DN to draft spec prose for the "divide and
conquer" approach outlined in issue #399
* DN: I'd like to make sure that the minutes record the idea of
having a map to be used for configuration options. In any case we
can have preference provided as a system function.
* NW: I've done my best, but that configuration map is one of the
things I'm confused bout.
2.3. Issue #280: Why is resolve-uri forbidden ... a fragment identifier?
See [25]issue 280.
* NW outlines the issue.
General agreement.
* MSM: Can we make it clear that strictly speaking, in at least one
reading of the RFC, this is a little more relaxed.
* RD: Is this a change in behavior with how Java and JavaScript work?
ACTION QT4CG-029-02: NW to check how Java and JavaScript behave when
resolving a relative URI against a base URI that has a fragment
identifier. ACTION QT4CG-029-03: NW to draft a PR that resolves issue
#280
2.4. Issue #293: Error in fn:doc-available specification
See [26]issue 293.
* CG: There's a difference here between what the normative prose says
and what the note says. MK outlines the solution in a comment.
* MK: I have a vague memory of this issue. It looks like the main
prose was updated but the error code wasn't.
* JL: The same thing happens for unparsed-text-available()
ACTION QT4CG-029-04: CG to draft a PR that resolves issue #293
2.5. Issue #315: fn:transform inconsistency: initial-mode
See [27]issue 315.
MK explains the issue.
* MK: This is technically a breaking change, but it
* DN: What is the difference between the unnamed mode and the default
mode?
* MK: You can declare that a mode other than the unnamed mode is the
default.
ACTION QT4CG-029-05: NW to draft a PR that resolves issue #315
2.6. Issue #367: Focus for RHS of thin arrow expressions
See [28]issue 367.
MK explains the issue.
* MK: I think describing the -> in terms of the ! operator was done
without considering the fact that doing so changes the context for
the other arguments.
+ ... This makes -> and => different in a subtle way.
+ ... This proposal is to define -> in terms of a for
expression.
* DN: I'm not ready to vote either way because I don't think I've
seen this before.
* MK: Can I suggest an action then to put on the agenda a review of
the thin arrow operator?
* RD: There are also a couple of issues that folks have raised around
those. It would be good to include those as well.
ACTION QT4CG-029-06: NW to put a review of the thin arrow operator on
the agenda (with links to the relevant issues)
2.7. Issue #397: Type names
See [29]issue 397.
* MK: This went into the initial draft I produced, but there are some
inconsistency in the presentation there and it generally needs
review.
+ ... Background here is that I started writing stylesheets
using record types and that turned out to be pretty unweildy.
Having to repeat the record type definition everywhere is too
cumbersome. (h/t to John Snelson for the original idea.)
+ ... The proposal here is that you can declare a name that maps
to an item type and then in place of the item type you can use
that type name.
+ ... MK walks through some of the details of the proposal.
* MK: I think I've been persuaded that they should be in the same
symbol space works better. When you declare an item type, it's not
allowed to conflict with an item type that you've imported from a
schema. You could do that at the namespace level or the individual
name level. I'd go for at the level of the individual name.
* DN: I think this is a very good idea.
+ ... DN discusses his objection raised in his first comment on
the issue
+ ... Why isn't this in XPath? It means that the user has to
redundantly make the definition in both XQuery and XSLT. It
would be much better to have it in XPath. I'm convinced that
this is inferior to have the decision to have it in XPath.
* MK: I think the problem with doing it at the XPath level is knowing
how to do it. In many cases, languages that use XPath have
different expressions in many different places and no one
expression can change the static context for any other expression.
If you're calling XPath from JavaScript, how can you do this?
* DN: I can answer that, you can have a function library that's
written purely in XPath that declares the types and you can import
them.
* RD: The type names operate in the prologue that defines the static
context. If you disallow it in the context, then you'd be
disallowing global variables and all sorts of other things. It
makes sense for this to be part of the prologue so that it applies
to the entire XQuery module that you can then import into other
modules.
+ ... The reason it has an XQuery and XSLT declaration is the
same way that you have xsl:variable and xsl:function in XSLT
and declare variable and declare function in XQuery: you're
defining parts of the global context.
* DN: I never said that having type names defined in the prologue
should be forbidden, I think that you could define them there and
it doesn't forbid having them in XPath.
* MK: How is this useful though, the scope of XPath is an expression.
* DN: But you can import libraries into XPath.
* RD: If I understand what you're proposing, it's that we have and
keep the global item types, but we also have a local version kind
of like let expressions that can appear in XPath.
* DN: I care very little about the global level of XQuery and XSLT,
but I care a lot about XPath. I've pointed out the redundancy
problem that follows from this.
* RD: I think we can have all three: a global XSLT syntax, a global
XQuery one like define variable, and an expression-scope specific
syntax like the let expression.
* DN: Yes, and it's not unfamiliar. The map data type was first
defined in XPath and then later that got added to XSLT, for
example. It would be extermely inconvenient, unusual, and
unjustified to only be able to define maps in XQuery and XSLT but
not XPath and this problem is exactly the same.
* MK: But the use case for this is about reusing types that are in
your function library.
* DN: Yes, and there are global function libraries that can be
imported.
* MK: Not in our specifications, we don't. There's no import
mechanism in XPath. People can implement it, but it's not part of
our language!
* DN: But that doesn't mean that people don't do this!
* MK: But if you can extend beyond our specifications to a global
function library, then you can extend it to a global type library
as well.
* RD: As a way forward here, if we just consider the global scope in
this proposal, we can have a separate proposal for a local scope
proposal.
* DN: I don't think there is a need for a special proposal, it's just
this proposal but remove the references to XSLT and XQuery.
* RD outlines some ideas about how it might be possible to build on
this proposal in the future to have local scopes.
* RD: Not everyone uses the approach of allowing a global function
library in XPath.
* DN: Not everyone uses xsl:map, some people just use XPath!
* RD: The analagous things here are functions and variables. It makes
sense to have both mechanisms and let the user choose.
We've reached the end of the hour without resolving this issue.
* NW: What next?
* MK: If DN has a concept of loading global libraries into XPath, we
need to understand that better.
ACTION QT4CG-029-07: NW to open the next discussion of #397 with a demo
from DN
3. Adjourned
None heard.
References
1. https://qt4cg.org/meeting/minutes/2023/04-04.html#minutes
2. https://qt4cg.org/meeting/minutes/2023/04-04.html#new-actions
3. https://qt4cg.org/meeting/minutes/2023/04-04.html#administrivia
4. https://qt4cg.org/meeting/minutes/2023/04-04.html#roll-call
5. https://qt4cg.org/meeting/minutes/2023/04-04.html#agenda
6. https://qt4cg.org/meeting/minutes/2023/04-04.html#h-C1590AE6-AA6D-49E9-A040-5006E92C0784
7. https://qt4cg.org/meeting/minutes/2023/04-04.html#approve-minutes
8. https://qt4cg.org/meeting/minutes/2023/04-04.html#next-meeting
9. https://qt4cg.org/meeting/minutes/2023/04-04.html#open-actions
10. https://qt4cg.org/meeting/minutes/2023/04-04.html#technical-agenda
11. https://qt4cg.org/meeting/minutes/2023/04-04.html#h-F1FFD1AB-0328-4748-8384-BA8AD7A2C576
12. https://qt4cg.org/meeting/minutes/2023/04-04.html#iss-399
13. https://qt4cg.org/meeting/minutes/2023/04-04.html#iss-280
14. https://qt4cg.org/meeting/minutes/2023/04-04.html#iss-293
15. https://qt4cg.org/meeting/minutes/2023/04-04.html#iss-315
16. https://qt4cg.org/meeting/minutes/2023/04-04.html#iss-367
17. https://qt4cg.org/meeting/minutes/2023/04-04.html#iss-397
18. https://qt4cg.org/meeting/minutes/2023/04-04.html#adjourned
19. https://github.com/WICG/webcomponents/issues/997
20. https://qt4cg.org/meeting/agenda/2023/04-04.html
21. https://qt4cg.org/meeting/minutes/2023/03-28.html
22. https://qt4cg.org/meeting/agenda/2023/04-11.html
23. https://qt4cg.org/dashboard/#pr-411
24. https://github.com/qt4cg/qtspecs/issues/399
25. https://github.com/qt4cg/qtspecs/issues/280
26. https://github.com/qt4cg/qtspecs/issues/293
27. https://github.com/qt4cg/qtspecs/issues/315
28. https://github.com/qt4cg/qtspecs/issues/367
29. https://github.com/qt4cg/qtspecs/issues/397
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 4 April 2023 16:26:20 UTC