QT4 CG Meeting 009 Minutes 2022-11-01
Table of Contents
Minutes
Approved at meeting 010 on 8 November 2022.
Summary of new and continuing actions [0/9]
[ ]QT4CG-002-10: BTW to coordinate some ideas about improving diversity in the group[ ]QT4CG-007-05: NW to make an issue for Martin’s proposed ammendment to map:build[ ]QT4CG-009-01: NW to coordinate with MK on an agenda for next week.[ ]QT4CG-009-02: NW to work with MK to make sure PR #197 is updated correctly[ ]QT4CG-009-03: NW to investigate the relationship between PR #215 andresolve-uri.[ ]QT4CG-009-04: NW to review RFC 3896 wrt relative URIs[ ]QT4CG-009-05: NW to fix the return type forparse-uri; consider using a record type.[ ]QT4CG-009-06: NW to add error tests forparse-uri.[ ]QT4CG-009-06: NW to make the query segments an array of maps.
1. Administrivia
1.1. Roll call [9/13]
Regrets: BTW
[ ]Anthony (Tony) Bufort (AB)[X]Reece Dunn (RD)[X]Christian Grün (CG)[X]Joel Kalvesmaki (JK)[X]Michael Kay (MK)[X]John Lumley (JL)[X]Dimitre Novatchev (DN)[X]Ed Porter (EP)[ ]Liam Quin (LQ)[ ]Adam Retter[X]C. M. Sperberg-McQueen (MSM)[ ]Bethan Tovey-Walsh (BTW)[X]Norm Tovey-Walsh (NW). Chair. Scribe.
1.2. Accept the agenda
Proposal: Accept the agenda.
Accepted.
1.3. Next meeting
The next meeting is scheduled for Tuesday, 8 November. This conflicts with Declarative Amsterdam.
Shall we meet?
After some discussion, yes, next week will be chaired by MSM and will focus on XSLT issues.
ACTION: QT4CG-009-01: NW to coordinate with MK on an agenda for next week.
Regrets for 8 November: NW, JL, CG.
1.4. Approve minutes of the previous meeting
Proposal: Accept the minutes of the previous meeting.
Accepted.
1.5. Review of open action items [4/6]
[ ]QT4CG-002-10: BTW to coordinate some ideas about improving diversity in the group[X]QT4CG-005-03: RD to review the variadic functions proposal in #197 (formerly #166)[ ]QT4CG-007-05: NW to make an issue for Martin’s proposed ammendment to map:build[X]QT4CG-008-01: MK to review RD’s comments on PR #202[X]QT4CG-008-02: NW to review MKs comments on PR #215- Updates to PR #215
[X]QT4CG-008-03: MK to make a PR for issue #96, starts|ends-with-sequence- PR #222
2. Technical Agenda
2.1. Review pull request #197 (was 166; variadic functions)
See pull request #197 (you’ll find links to formatted versions of the specs at https://qt4cg.org/).
See also the nexus of issues #162, #161, #160, #159, #158, #157, and #155.
See the discussion from three weeks ago, two weeks ago, and last week.
We hope to resolve this PR this week.
- MK: I believe I responded to all the comments. None were particularly problematic. Just minor mistakes. One technical issue that is now an error condition.
- RD: I made a few comments about an hour ago.
- RD walks us through his comments on the pull request
It appears that MK’s most recent commits haven’t been reflected in the diffs.
ACTION: QT4CG-009-02: NW to work with MK to make sure PR #197 is updated correctly
We’ll revisit this in two weeks.
2.2. Review pull request #202 (was 196; subtyping)
- MK: No progress, I haven’t responded to the latest comments.
2.3. Review pull request #210: Issue 80: fn:while
- CG: The latest issue was how to name the function. If the function
is named
fn:whilethen we can’t introduce awhilekeyword later because it will create a conflict. MK proposedfn:iterate. We could also usefn:untilwith the semantics reversed. - NW: I like the similarity of
fn:iteratewith XSLT. - MSM: Is that a conflict with XSLT?
- NW: No, because it’s an instruction in XSLT, not a function.
- MK: The semantics have enough of an analogy that it seems reasonable.
- JK: Is there a way to setup the keyword
whileso that there’s some sytax after it that prevents any confusion?
Some discussion of whether or not we could distingish the keyword from the function.
- MSM: Depending on exactly what people have in mind for a
whilekeyword, my gut feeling is that I expect awhileto be followed by a boolean expression. So we can’t solve the lookahead problem that way. - RD: The only problem using
whilewhich would confuse it with a keyword would be in the case wherewhilewould have a parenthesis following it because that applies to keywords liketypeswitch,if, and others. Given that thewhileexpression is following the FLOWR syntax, I don’t see it raising a clash in the grammar. - MK: There would be a conflict if you allowed it as the first thing in an expression and allowed it to be followed by an expresison.
- CG: Do we think in the future we may get rid of the
forandletas the beginning of the FLOWR clause? - MK: I think this is a question of trying to avoid restricting our options downstream.
- MSM: CG, was your alternative name
untilorrepeat? - CG: It was
untilbut it could berepeat. - MK: I quite like
repeat. - MSM: For those of us with Pascal backgrounds,
repeatdiffers fromwhilein that the loop is bound to occur once. - CG: If you inverted the condition, it would always execute at least
once. I like
whilebecause it’s more popular and you don’t have to have a negated condition. - DN: Comparing
whileanduntil, I don’t think they’re the same at all. - MSM: I think I could live with any (almost any?) of the proposed
names, but in the end if we don't want to use
while, I think I lean towardsiteratefor the parallel toxsl:iterate - DN: There is also a proposal for a
whilekeyword. What’s the difference? - CG: I think the main difference is that if you have a FLOWR
epxression you’re operating on a sequence . With the
whilefunction you can have arbitrary inputs that are transformed by the body. - MK: In that respect, it is quite different from
xsl:iterateas that does operate over a sequence. - NW: Mmm, true.
- MSM: That pushes me back to
repeatoruntilif we can’t usewhile. That difference that CG has just identifeid is significant.
Leave it for a week?
- MK: One approach is to adopt a name that we don’t like and then after you’ve used it for a while, and you can revisit the name later.
- RD: Would it make sense to keep
whilefor now in that case? - DN: Can someone write some comments on the issue? I feel very confused right now.
Let’s come back to this in two weeks.
Let’s all try to follow up in the issue so that in two weeks we’re ready to pick a name, or pick a name we don’t exactly like to live with for a while. In either case, pick a name!
2.4. Review pull request #215: parse-uri and build-uri functions
NW walks through the current prose for parse-uri.
- JL: Does reconstructing give back the original or an equivalent?
- NW: That’s a little hard to answer before I redraft the build function.
- MK: How well does this play with
resolve-uri?
Some discussion. MK observes that if resolve-uri has stricter
semantics, you could end up deciding you had a relative path but then
it would be rejected by resolve-uri. That’s a mess.
ACTION: QT4CG-009-03: NW to investigate the relationship between PR #215 and resolve-uri.
- MSM: Two questions and a comment. you said in introducing the function you had started by thinking we could parse against RFC 3986 and shifted to something else to deal with relative URIs. But RFC 3986 has two roots, wouldn’t that be sufficient.
ACTION: QT4CG-009-04: NW to review RFC 3896 wrt relative URIs
MSM highlights the rule about matching a drive letter that NW had missed in his description.
- MSM: This rule and the backslash rule will be lossy. So to JL’s question, you’ll get a functionally equivalent URI.
- RD: Three points. First, the return type is map where the value is string, but some of the components return an array of strings. Second, wouldn’t this be better specified as a record type? Third, Do we want to reference what the WHAT WG URL document?
ACTION: QT4CG-009-05: NW to fix the return type for parse-uri; consider using a record type.
- DN: This question is more of a wish: I’d prefer if the test cases included tests for the error conditions.
- NW: Yes, of course, that’s an oversight.
ACTION: QT4CG-009-06: NW to add error tests for parse-uri.
- CG: Instead of returning an array of strings, what about returning a map of the query segments?
- NW: That’s tricky because the keys aren’t necessarily unique, it would have to be an array of maps.
- MK: We’re considering improvements to the lookup operator that would work on an array of maps.
- NW: Right then, that’s enough to make me think that’s better.
ACTION: QT4CG-009-06: NW to make the query segments an array of maps.
2.5. Review pull request #222: Sequence comparision
See pull request #222 and issues #94 and #96.
- MK: I’ve propopsed three new functions. The main thing I discovered is that these are far more poweful than I realized in that the matching doesn’t have to be an equality match. You can look for a sequence of paragraphs by matching on the name of the child element, for example.
Proposal: Accept this PR.
Accepted.
3. Any other business
None heard.