- From: Norman Walsh <ndw@nwalsh.com>
- Date: Wed, 16 Mar 2016 16:39:57 -0500
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <87k2l2p0eq.fsf@nwalsh.com>
See http://www.w3.org/XML/XProc/2016/03/16-minutes
[1]W3C
- DRAFT -
XML Processing Model WG
Meeting 290, 16 Mar 2016
[2]Agenda
See also: [3]IRC log
Attendees
Present
Norm, Henry, Alex, Jim, Murray
Regrets
Chair
Norm
Scribe
Norm
Contents
* [4]Topics
1. [5]Accept this agenda?
2. [6]Accept minutes from the previous meeting?
3. [7]Next meeting, 23 Mar 2016
4. [8]Review of open action items
5. [9]Review of Jim’s rewrite of Henry’s pipeline and the discussion
that followed.
6. [10]Any other business
* [11]Summary of Action Items
* [12]Summary of Resolutions
--------------------------------------------------------------------------
Accept this agenda?
-> [13]http://www.w3.org/XML/XProc/2016/03/16-agenda
Accepted.
Accept minutes from the previous meeting?
-> [14]http://www.w3.org/XML/XProc/2016/03/02-minutes
Accepted.
Next meeting, 23 Mar 2016
Henry gives regrets.
Review of open action items
A-289-01: Alex to make a proposal for the syntax that uses explicit port
names instead of ‘@’
<scribe> Continued.
<scribe> ACTION: A-290-01 Norm to fix the github repos [recorded in
[15]http://www.w3.org/2016/03/16-xproc-minutes.html#action01]
Henry: Are the slides from XProc day available/
Alex: I have an outstanding request to send those to Jirka
Norm: Ok, please let us know when you do, or post them somewhere
<scribe> ACTION: A-290-02 Alex to post slides/presentation from XProc day
at XML Prague [recorded in
[16]http://www.w3.org/2016/03/16-xproc-minutes.html#action02]
A-289-02: Jim to attempt to write Henry's color pipeline in the new
syntax.
<scribe> Completed.
Review of Jim’s rewrite of Henry’s pipeline and the discussion that followed.
<jfuller>
[17]https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0001.html
Jim: I was shooting from the hip. I think the best version of this is
later in the thread.
->
[18]https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0004.html
<jfuller>
[19]https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0007.html
<ht> Is that dated 5 Mar 06:26:03 ?
<jfuller> nice it fits in one screen
Alex: Related to the proposal to get rid of @ notation and $1, $2, etc.
the matched subtree needs an output port reference.
... The output, the replacement, needs a variable as well.
... In the example we have $result being used but there's an implicit
input port.
... The subtree that's matched isn't matched in this example.
Jim: That's what I did, but I'm not sure that's what we want.
Alex: The inner step chain needs a $source.
Moving on to Alex's message, 0008
->
[20]https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0008.html
Alex: If we're going to get rid of @ and $1, $2, we need ways to declare
things and a default declaration.
... In the case of replace, there's a single referencable port that is the
matched entry. And a single output port.
Jim walks through the example in 0007.
<alexmilowski> In the original proposal, we had $source/*/@foo
Jim: The use of projection() and template() feels like a rough edge.
Alex: Yes, dynamic projection is a bit funky, but it's also a more
advanced case.
... The follow-up email from me talks about the fact that the input isn't
named.
Jim: I think it's a good starting point to name variables.
Alex: There are a couple of questions here: one is whether or not there's
any concept of a default input.
... I started from the position that there isn't; you have to name them.
... The reason for that is simply that some step chains start with
generator steps. We want it to be clear that there is no input in that
case.
Jim: My proposal is that we stick with naming ports for now, we can make a
late decision about defaults.
Moving on to message 0008
Norm: Where did $source come from?
Murray: $source is the name for the primary input to any step.
... I think projection() should just be called select()
Alex: I think that would be fine.
Some discussion of the confusion caused by $match in replace() which has
the semantics of p:viewport.
Suppose $source = <doc><div1/><div1><div2/></div1></doc>
replace("/doc/div1") => processes <div1/> and <div1><div2/></div1> in the
body
<alexmilowski> viewport: $source →for $x in subtree $match replace with $y
{ … }
<ht> Alex, why $y
Murray: I'm now all kind of weirded out about the $source in side the
curly braces.
<alexmilowski> THat’s the name of the output port
<alexmilowski> No default names
<ht> What, so inside the curly braces there must be a >> $y somewhere?
<alexmilowski> viewport with no output: $source →for $x in subtree $match
{ … }
<alexmilowski> Yes
<ht> OK
Jim: We'd talked about [] as an anonymous name.
<ht> I still prefer to see that on the other side
<alexmilowski> iteration: $source →for $x in subtree $match *output* $y {
… }
<alexmilowski> where we need a better syntax for output
Jim: If you replaced $source and $result with [], then you avoid the
naming confusion.
<jfuller> fixed version
<jfuller>
[21]https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0012.html
<jfuller> with [] proposal
Alex: I feel like we could do a better job with viewports and iteration.
<ht> I.e. viewport: $source →for $x in subtree $match replace with { ... }
$y
Alex: In both cases, it's running a projection and doing something over
that sequence.
... It's just what you do with the result, do you put it back in the tree
or do you produce a sequence.
<ht> So this is the anonymous step problem
<ht> Also
Alex: Or maybe you do nothing. In XProc1, I found it annoying to viewport
and discard the results.
... It seems like replacement could just be some additional options to
iteration.
... Then we get one syntax that people understand, iteration over stuff.
... If we give the user a way to name the thing being iterated, then they
can choose meaningful names and we're done.
<ht> So this is just filtered function application
Norm: We do have the option of differentiating steps from language
features.
Henry: I'm still trying to construct the semantics of these things. The
curly braces, and this goes back to the square bracket syntax
... of three or four weeks ago; it would be simpler to think about this
and about conditionals if we restricted ourselves to named steps.
<alexmilowski> $source ! step()
Henry: Iterate is just step application to a set of selected subtrees.
... If we had a simple, clean syntax for applying a named step to every
paragraph in the incoming document and replacing it with the result of the
named step.
<jfuller> replace could be implemented with xslt step as a drop in
replacement
Henry: That would be very similar to the one that said iterate over them
and so on. We'd then be in a better position to come up with a general
purpose simplification.
... We could then add anonymous steps later.
... This is just like adding lambda to Python.
Alex: I think that's a great observation. If we borrow the ! operator for
iteration, we need to think along those lines where the RHS is a step
invocation over a sequence of things.
... We have two use cases, one is simple iteration, the other is replace
or viewport. The reconstruction version of it.
... If we had one syntax that let us do both, I think we'd win.
... Maybe we should try to make every syntax that we propose as a step
invocation and then we can think of the anonymous case later.
... What that leads to then is the ability to call a flow in any point in
the pipeline. Flows become interchangeable with named steps and anonymous
steps.
... The current syntax doesn't allow that which is really unfortunate.
Norm: That seems reasonable.
Murray: Are there any other steps, besides replace, that operation the
document instead of running a filter on the document?
Alex: No, I think replace is unique in that respect.
<jfuller> observation- what comes out of replace could be a copy ...
immutability is king
Murray: It seems to me that this is a sharp distinction. It's not the
same. In terms of computing power, does replace put more of a burden on
the processor?
Norm: No, not really.
Alex: I think projection is also something that we want to make easy.
Some discussion of the cost of holding onto documents "when they're not
necessary"
Any other business
Jim: In doing this exercise, I think the flow became crisper which I think
is good validation of our direction.
Henry: I remain unconvinced that we don't need a simpler way to bind
variables.
Jim: I agree there's more work to be done.
... I was surprised we got down from two pages to one.
Adjourned.
Summary of Action Items
[NEW] ACTION: A-290-02 Alex to post slides/presentation from XProc day at
XML Prague [recorded in
[22]http://www.w3.org/2016/03/16-xproc-minutes.html#action02]
ACTION: A-290-01 Norm to fix the github repos [recorded in
[23]http://www.w3.org/2016/03/16-xproc-minutes.html#action01]
Summary of Resolutions
[End of minutes]
--------------------------------------------------------------------------
Minutes formatted by David Booth's [24]scribe.perl version 1.144 ([25]CVS
log)
$Date: 2016/03/16 21:38:25 $
--------------------------------------------------------------------------
References
1. http://www.w3.org/
2. http://www.w3.org/XML/XProc/2016/03/16-agenda
3. http://www.w3.org/2016/03/16-xproc-irc
4. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#agenda
5. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#item01
6. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#item02
7. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#item03
8. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#item04
9. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#item05
10. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#item06
11. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#ActionSummary
12. http://www.w3.org/XML/XProc/2016/03/16-minutes.html#ResolutionSummary
13. http://www.w3.org/XML/XProc/2016/03/16-agenda
14. http://www.w3.org/XML/XProc/2016/03/02-minutes
15. http://www.w3.org/2016/03/16-xproc-minutes.html#action01]
16. http://www.w3.org/2016/03/16-xproc-minutes.html#action02]
17. https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0001.html
18. https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0004.html
19. https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0007.html
20. https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0008.html
21. https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0012.html
22. http://www.w3.org/2016/03/16-xproc-minutes.html#action02
23. http://www.w3.org/2016/03/16-xproc-minutes.html#action01
24. http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
25. http://dev.w3.org/cvsweb/2002/scribe/
26. http://dev.w3.org/cvsweb/~checkout~/2002/scribe/
27. http://www.w3.org/XML/XProc/2016/03/16-agenda
28. http://www.w3.org/2016/03/16-xproc-minutes.html
29. http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
Received on Wednesday, 16 March 2016 21:40:24 UTC