XProc Minutes 15 June 2006

See: http://www.w3.org/XML/XProc/2006/06/15-minutes.html

W3C[1]

                                   - DRAFT -

                            XML Processing Model WG

Meeting 25, 15 Jun 2006

   Agenda[2]

   See also: IRC log[3]

Attendees

   Present
           Michael, Alessandro, Alex, Rui, Norm, Henry, Richard, Mohamed,
           Andrew

   Regrets
           Paul

   Chair
           Norm

   Scribe
           Norm

Contents

     * Topics
         1. Accept this agenda?
         2. Accept minutes from the previous teleconferences?
         3. Next meeting: 22 June telcon
         4. Face-to-face: 2-4 Aug 2006.
         5. Review of open action items
         6. XProc syntax
         7. Any other business?
     * Summary of Action Items

     ----------------------------------------------------------------------

  Accept this agenda?

   -> http://www.w3.org/XML/XProc/2006/06/15-agenda.html

   Accepted.

  Accept minutes from the previous teleconferences?

   -> http://www.w3.org/XML/XProc/2006/06/01-minutes.html

   Accepted.

   -> http://www.w3.org/XML/XProc/2006/06/08-minutes.html

   Accepted.

  Next meeting: 22 June telcon

   Any regrets?

   Regrets from Norm, Michael, Mohamed, Andrew

   Henry to chair

  Face-to-face: 2-4 Aug 2006.

   Register and report your plans to Murray

  Review of open action items

   A-13-01: MSM to draft a complete table; ETA: 15 June 2006

   <scribe> Continued; new ETA: 20 July 2006

   A-23-02: Richard to write a syntax proposal

   <scribe> Continued.

   A-23-03: Norm to write a syntax proposal

   <scribe> Continued.

  XProc syntax

   Richard's email: ->
   http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jun/0026.html

   Richard summarizes his message.

   Richard: The end of that message shows a description of components that a
   processor could use to check that the pipeline was connected together
   correctly.
   ... Rather than making up names for each output of each step, I use the
   name of the step and the name of input or output from that component.
   ... There's a single param named xslt-params that would use a small syntax
   that we'd have to make up.

   <MSM> Richard, are you particularly attached to using '.' as the
   separator?

   Norm: Taking some of these ideas in reverse order, I hope we can do better
   with the parameters to for example XSLT

   Richard: I agree it's not very nice, we can certainly do it better.
   However, we'll need something like this in general for other components,
   even if we do something special for XSLT.

   Henry: I thought we had an emerging consensus that we'd have some
   parameter that could take a bag of name/value pairs.

   <ht> Not what I said, Norm

   Richard: The fact that there are things in XSLT that are called parameters
   and that they coincide with pipeline parameters is something of a
   coincidence.

   <ht> <with-param name="foo" value="baz"/>

   Henry: Not what I said. I thought there would never be a constraint on how
   many of these you'd include in a step.

   <alexmilowski> I've been thinking the same way too...

   Henry: Any component that had a notion of parameters could use that

   Richard: It's possible that there would be program parameters and
   stylesheet parameters that could have name collisions.

   <MoZ> where do we put, for example java parameters (-Xmx) ?

   Richard: Some XSLT processors have an "input" parameter for the input
   document. What if the stylesheet also has a parameter named "input"?

   Henry: It seems to me that the 80/20 point is to say that a parameter that
   has a signature in the component definition, then that's what it is. But
   if you find another parameter, then that's passed to the application.

   <MSM> Richard, in your example that seems to be handled / handleable by
   passing the *pipeline* input (pipeline stdin, so to speak) using
   'with-input' rather than 'with-parameter' -- so I'm not sure I grok the
   problem

   Richard: I'm not sure I'm happy with having those two things completely
   undistinguished. If you mistype a name, the compiler can't tell.

   Henry: It sounds like maybe we should have two element names.

   Richard: Yes, we should try to devise a more user-friendly syntax.

   Alex: A general rule of saying that there's an arbitrary number of
   parameters works for XSLT. The same is likely to be true for the pipeline
   itself. It's a good general mechanism.
   ... I don't see the harm in having extra parameters.

   Norm observes that we might easily be able to do better.

   Henry: I think we do indeed need to use the signature to specify
   required/expected parameters

   Norm: Richard's example also gives us an easy starting point for a
   discussion of how inputs and outputs are named.

   <ht> ... And we could put in the signature whether or not a component
   supports arbitrary name/value parameters, as e.g. XSLT

   Richard: It's a notable feature that you don't list anything about the
   outputs of a component. Which is a bit asymetrical.

   <MSM> [msm likes both the flexibility of passing unexpected parameters
   without an error and the cleanliness of getting a warning if you do so by
   accident, likes a --pedantic flag for that reason]

   Richard: but it probably has to be asymetrical.
   ... Henry wants to be able to not specify any inputs or outputs in a
   simple pipe. We can do that by having a component definition mark one
   input and one output as the primary inputs and outputs.

   Michael: Richard, are you saying that the reason it looks asymetric is the
   example?

   Richard: No. The mention of the inputs is to connect them to the outputs.
   There's no point connecting the outputs to the inputs if you've already
   connected the inputs to the outputs.

   Michael: Yes. An arc can be specified from either end and you don't need
   to do both.

   <MSM> (of course, some people wear a belt with their suspenders)

   Norm: The only part of this that bothers me a little bit is that you can't
   tell what the pipeline is doing if you don't also have in hand the
   component vocabulary.

   Richard: That's sort of true.

   <MSM> can you expound? not sure what 'having the component vocabulary in
   hand' means

   Norm tries

   <MoZ> +1 for being explicit

   Norm: There's a fairly straightforward choice to be made here. We can name
   the inputs and outputs individually in each step or we can use an approach
   like Richard has outlined.
   ... Does anyone feel strongly about what is the right answer?

   Henry: "Strong" might be too strong, but I'm inclined to do it Richard's
   way.
   ... There's probably not much support for a real two-level proposal with
   two syntaxes. The alternative, which is a medium level language with lots
   of defaulting, is probably more likely. Richard's approach is well suited
   to that story.

   Richard: Imagine taking my syntax and adding with-output to it.
   ... Then imagine that this with-output is optional, and a default name is
   generated for you but you can specify a different one i fyou'd like.

   Henry: I would like to perform s/with-// on Richard's example

   Norm: I think it would make two different variants and we should avoid
   that if we can.

   Richard: I'm inclined to agree with HST that we should remove "with-"
   ... In the components, you just say what the inputs and outputs are.

   <MoZ> we must have distinction between calling of step and definition of
   step

   Richard: But consider the pipeline program itself. Where it says <output
   name="result"> it's both defining that it has such an output and declaring
   what it's connected to. This will happen also in conditional and switch
   expressions.
   ... Given that, the distinction between input and with-input is slightly
   less meaningful because of that. Unless you make people specify both,
   which would be unnaturally verbose.
   ... We should just call them "input" and "output" in both places, and
   accept that sometimes it serves one, sometimes the other, and sometimes
   both purposes.

   Norm agrees, after some exploration of his own difficulties with
   conditionals.

   Richard: Another thing raised by that is that if we allow conditionals to
   do XPath tests against their inputs, we can no longer list all the inputs
   to the "if" component.
   ... And if we allow "param" to evaluate XPath expressions, that becomes
   true of all the components.
   ... It's rather analagous to the parameter case we were discussing
   earlier.

   Henry:

 <choose>
  <when test="/root/@version < 3.0">
   <step process="xsdValidate">
    <input name="schemaDoc" href="stale.xsd"/>
   </step>
  </when>
  <otherwise>
   <step process="xsdValidate">
    <input name="schemaDoc" href="current.xsd"/>
   </step>
  </otherwise>
 </choose>

   Henry: Those difficulties with conditionals makes me think we shouldn't
   allow those things in V1

   Alex: This is related to my concept of a straight-through "pipe"

   Norm asks about how to do HSTs example with two inputs.

   Henry: I'd write this instead:

   <ht> <input name="schemaDoc" from="foo.result"/>

   <alexmilowski> With <choose><input ref="foo.result"/> ...</choose>

   Richard: Norm's point is that this allows the choose step to refer to
   arbitrary parts outside the step.

   Henry: Choose is a language construct not a component.

   Richard: There are much more substantial problem with outputs from the
   choose. If things outside can reach back into the choose, then it becomes
   pervasive.
   ... Allowing inputs inside a choose to reach out but not allowing things
   outside reach in might work.

   Henry: All the branches of a choose have to have the same output
   cardinality.

   Richard: In my example, you'd have to have exactly one output.
   ... OTOH, if you say that choose is like pipeline, and declares its own
   inputs and outputs, then you can do more.

   Norm: My inclination is to have choose declare its inputs and outputs and
   then for the processor to make sure every branch produces the right
   outputs.

   Henry: Choose is a language construct, parallel with pipeline and not with
   component.

   Richard: I think there's much to be said for saying that it's equivalent
   to a pipeline in some way.

   Henry: The way a pipeline works in Richard's syntax, the pipeline output
   names a step output to hook up to.
   ... That won't work for the choose.

   Richard: Each branch is like a pipeline in that respect. But perhaps the
   surrounding choose is also like a pipeline.

   Henry: I don't think the inputs buys us anything.

   Richard: I see your point, and it would be more convenient from the users
   point of view, but I would still like the choose to be equivalent to the
   pipeline.
   ... The "choose" somehow has to define that all the branches have the same
   outputs. For each branch, you have to connect the output of branch to the
   output of the conditionals.

   Henry: They're going to be pushing not pulling.

   Richard: What you could say is that a conditional construct declares the
   pipelines that must be in it. Then the branches are like pipelines that
   have already been declared.

   Norm: I'm not sure I followed that.
   ... Are we coming to consensus on the naming?

   Michael: It depends on the separator.

   I think the answer is yes.

   Richard: I thought there was pushback earlier...
   ... If we imagine that with-output is optional, then we could change our
   minds later without having any pervasive effect.

  Any other business?

   None.

Summary of Action Items

   [End of minutes]

     ----------------------------------------------------------------------

   [1] http://www.w3.org/
   [2] http://www.w3.org/XML/XProc/2006/06/15-agenda.html
   [3] http://www.w3.org/2006/06/15-xproc-irc
   [8] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
   [9] http://dev.w3.org/cvsweb/2002/scribe/

    Minutes formatted by David Booth's scribe.perl[8] version 1.127 (CVS
    log[9])
    $Date: 2006/06/15 16:17:59 $

Received on Thursday, 15 June 2006 16:19:42 UTC