XProc Minutes 16 Mar 2016

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