- From: Norman Walsh <Norman.Walsh@Sun.COM>
- Date: Thu, 15 Jun 2006 12:19:18 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <8764j2cry1.fsf@nwalsh.com>
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