IRC log of xproc on 2016-03-16

Timestamps are in UTC.

16:57:48 [RRSAgent]
RRSAgent has joined #xproc
16:57:48 [RRSAgent]
logging to http://www.w3.org/2016/03/16-xproc-irc
16:58:32 [Norm]
rrsagent, set logs world-visible
16:58:32 [Norm]
Meeting: XML Processing Model WG
16:58:32 [Norm]
Date: 16 Mar 2016
16:58:32 [Norm]
Meeting: 290
16:58:33 [Norm]
Chair: Norm
16:58:33 [Norm]
Scribe: Norm
16:58:35 [Norm]
ScribeNick: Norm
16:58:37 [Norm]
Agenda: http://www.w3.org/XML/XProc/2016/03/16-agenda
16:58:40 [Norm]
Present: Norm, Henry, Alex, Jim
17:01:26 [Norm]
Present: Norm, Henry, Alex, Jim, Murray
17:05:45 [jfuller]
I propose to abandon TZ
17:05:48 [Norm]
Topic: Accept this agenda?
17:05:48 [Norm]
-> http://www.w3.org/XML/XProc/2016/03/16-agenda
17:05:58 [Norm]
Accepted.
17:06:02 [Norm]
Topic: Accept minutes from the previous meeting?
17:06:02 [Norm]
-> http://www.w3.org/XML/XProc/2016/03/02-minutes
17:06:13 [Norm]
Accepted.
17:06:28 [Norm]
Topic: Next meeting, 23 Mar 2016
17:06:33 [Norm]
No regrets heard.
17:06:37 [Norm]
Topic: Review of open action items
17:06:37 [Norm]
A-289-01: Alex to make a proposal for the syntax that uses explicit port names instead of ‘@’
17:06:52 [Norm]
s/No regrets heard/Henry gives regrests/
17:07:18 [Norm]
s/regrests/regrets/
17:07:39 [Norm]
Continued.
17:07:49 [Norm]
ACTION: A-290-01 Norm to fix the github repos
17:08:04 [Norm]
Continued
17:08:33 [Norm]
Henry: Are the slides from XProc day available/
17:08:48 [Norm]
Alex: I have an outstanding request to send those to Jirka
17:08:58 [Norm]
Norm: Ok, please let us know when you do, or post them somewhere
17:09:14 [Norm]
ACTION: A-290-02 Alex to post slides/presentation from XProc day at XML Prague
17:09:18 [Norm]
A-289-02: Jim to attempt to write Henry's color pipeline in the new syntax.
17:09:26 [Norm]
Completed.
17:09:50 [Norm]
Topic: Review of Jim’s rewrite of Henry’s pipeline and the discussion that followed.
17:09:53 [jfuller]
https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0001.html
17:10:01 [alexmilowski]
alexmilowski has joined #xproc
17:10:43 [Norm]
Jim: I was shooting from the hip. I think the best version of this is later in the thread.
17:10:58 [Norm]
-> https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0004.html
17:11:56 [jfuller]
https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0007.html
17:13:03 [ht]
Is that dated 5 Mar 06:26:03 ?
17:13:56 [jfuller]
nice it fits in one screen
17:14:39 [Norm]
Alex: Related to the proposal to get rid of @ notation and $1, $2, etc. the matched subtree needs an output port reference.
17:14:48 [Norm]
... The output, the replacement, needs a variable as well.
17:15:02 [Norm]
... In the example we have $result being used but there's an implicit input port.
17:15:11 [Norm]
... The subtree that's matched isn't matched in this example.
17:15:21 [Norm]
Jim: That's what I did, but I'm not sure that's what we want.
17:15:29 [Norm]
Alex: The inner step chain needs a $source.
17:15:51 [Norm]
Moving on to Alex's message, 0008
17:15:58 [Norm]
-> https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0008.html
17:16:14 [Norm]
Alex: If we're going to get rid of @ and $1, $2, we need ways to declare things and a default declaration.
17:16:38 [Norm]
... In the case of replace, there's a single referencable port that is the matched entry. And a single output port.
17:17:32 [ht]
No, Alex can't hear us
17:17:39 [ht]
Alex, you aren't listening
17:17:43 [ht]
Alex!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17:18:01 [ht]
alexmilowski!
17:18:17 [jfuller]
wish we were recording the video
17:18:19 [Norm]
alexmilowski: we can hear you, you apparently can't hear us
17:21:03 [Norm]
Jim walks through the example in 0007.
17:28:36 [alexmilowski]
In the original proposal, we had $source/*/@foo
17:32:04 [Norm]
Jim: The use of projection() and template() feels like a rough edge.
17:32:20 [Norm]
Alex: Yes, dynamic projection is a bit funky, but it's also a more advanced case.
17:32:36 [Norm]
... The follow-up email from me talks about the fact that the input isn't named.
17:32:48 [Norm]
Jim: I think it's a good starting point to name variable.s
17:32:48 [Norm]
s/e.s/es./
17:33:04 [Norm]
Alex: There are a couple of questions here: one is whether or not there's any concept of a default input.
17:33:19 [Norm]
... I started from the position that there isn't; you have to name them.
17:33:51 [Norm]
... 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.
17:34:06 [Norm]
Jim: My proposal is that we stick with naming ports for now, we can make a late decision about defaults.
17:34:57 [Norm]
Moving on to message 0008
17:35:09 [Norm]
Norm: Where did $source come from?
17:35:20 [Norm]
Murray: $source is the name for the primary input to any step.
17:36:07 [Norm]
... I think projection() should just be called select()
17:36:14 [Norm]
Alex: I think that would be fine.
17:38:02 [Norm]
Some discussion of the confusion caused by $match in replace() which has the semantics of p:viewport.
17:40:16 [Norm]
Suppose $source = <doc><div1/><div1><div2/></div1></doc>
17:40:37 [Norm]
replace("/doc/div1") => processes <div1/> and <div1><div2/></div1> in the body
17:43:49 [alexmilowski]
viewport: $source →for $x in subtree $match replace with $y { … }
17:44:22 [ht]
Alex, why $y
17:44:25 [Norm]
Murray: I'm now all kind of weirded out about the $source in side the curly braces.
17:44:36 [alexmilowski]
THat’s the name of the output port
17:44:40 [alexmilowski]
No default names
17:45:07 [ht]
What, so inside the curly braces there must be a >> $y somewhere?
17:45:07 [alexmilowski]
viewport with no output: $source →for $x in subtree $match { … }
17:45:14 [alexmilowski]
Yes
17:45:17 [ht]
OK
17:45:26 [Norm]
Jim: We'd talked about [] as an anonymous name.
17:45:29 [ht]
I still prefer to see that on the other side
17:45:40 [alexmilowski]
iteration: $source →for $x in subtree $match *output* $y { … }
17:45:47 [alexmilowski]
where we need a better syntax for output
17:45:48 [Norm]
... If you replaced $source and $result with [], then you avoid the naming confusion.
17:46:12 [jfuller]
fixed version
17:46:13 [jfuller]
https://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2016Mar/0012.html
17:46:19 [jfuller]
with [] proposal
17:46:19 [Norm]
Alex: I feel like we could do a better job with viewports and iteration.
17:46:28 [ht]
I.e. viewport: $source →for $x in subtree $match replace with { ... } $y
17:46:53 [Norm]
... In both cases, it's running a projection and doing something over that sequence.
17:47:08 [Norm]
... It's just what you do with the result, do you put it back in the tree or do you produce a sequence.
17:47:16 [ht]
So this is the anonymous step problem
17:47:19 [ht]
Also
17:47:36 [Norm]
... Or maybe you do nothing. In XProc1, I found it annoying to viewport and discard the results.
17:48:21 [Norm]
Alex: It seems like replacement could just be some additional options to iteration.
17:48:48 [Norm]
... Then we get one syntax that people understand, iteration over stuff.
17:48:55 [ht]
q+ to argue for no anonymous steps
17:49:00 [Norm]
... If we give the user a way to name the thing being iterated, then they can choose meaningful names and we're done.
17:49:43 [ht]
So this is just filtered function application
17:49:48 [Norm]
Norm: We do have the option of differentiating steps from language features.
17:50:12 [Norm]
Henry: I'm still trying to construct the semantics of these things. The curly braces, and this goes back to the square bracket syntax
17:50:37 [Norm]
... of three or four weeks ago; it would be simpler to think about this and about conditionals if we restricted ourselves to named steps.
17:51:00 [alexmilowski]
$source ! step()
17:51:04 [Norm]
... Iterate is just step application to a set of selected subtrees.
17:51:31 [Norm]
... 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.
17:51:46 [jfuller]
replace could be implemented with xslt step as a drop in replacement
17:51:58 [Norm]
... 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.
17:52:03 [Norm]
... We could then add anonymous step slater.
17:52:09 [Norm]
s/step slater/steps later/
17:52:18 [Norm]
Henry: This is just like adding lambda to Python.
17:53:08 [Norm]
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.
17:53:25 [Norm]
... We have two use cases, one is simple iteration, the other is replace or viewport. The reconstruction version of it.
17:53:33 [Norm]
... If we had one syntax that let us do both, I think we'd win.
17:54:05 [Norm]
... 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.
17:54:32 [Norm]
... What that leads to then is the ability to call a flow in any point in the pipeline. Flows become interchangable with named steps and anonymous steps.
17:54:38 [Norm]
s/changable/changeable/
17:54:50 [Norm]
Alex: The current syntax doesn't allow that which is really unfortunate.
17:55:01 [Norm]
Norm: That seems reasonable.
17:55:20 [Norm]
Murray: Are there any other steps, besides replace, that operation the document instead of running a filter on the document?
17:55:30 [Norm]
Alex: No, I think replace is unique in that respect.
17:56:07 [jfuller]
observation- what comes out of replace could be a copy ... immutability is king
17:56:36 [Norm]
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 process?
17:56:54 [Norm]
Norm: No, not really.
17:57:52 [Norm]
s/process/processor/
17:58:02 [Norm]
Alex: I think projection is also something that we want to make easy.
18:00:00 [Norm]
Some discussion of the cost of holding onto documents "when they're not necessary"
18:01:11 [Norm]
Topic: Any other business
18:01:35 [Norm]
Jim: In doing this exercise, I think the flow became crisper which I think is good validation of our direction.
18:01:48 [Norm]
Henry: I remain unconvinced that we don't need a simpler way to bind variable.s
18:01:55 [Norm]
Jim: I agree there's more work to be done.
18:02:02 [Norm]
... I was surprised we got down from two pages to one.
18:02:18 [Norm]
Adjourned.
18:05:29 [alexmilowski]
alexmilowski has joined #xproc
18:05:48 [Norm]
rrsagent, set logs world-visible
18:05:49 [Norm]
rrsagent, draft minutes
18:05:49 [RRSAgent]
I have made the request to generate http://www.w3.org/2016/03/16-xproc-minutes.html Norm
19:38:39 [liam]
liam has joined #xproc