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