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