Re: Parameters and pipelines proposal

/ Norman Walsh <ndw@nwalsh.com> was heard to say:
| The following proposal is essentially Henry's revised proposal with
| the amendments that seemed to garner support in email. I believe it
| provides a concrete answer for all of the open questions.

One small amendment following email discussion.

|  1) We add the concept of a 'primary parameter input port'. By analogy
|     with "ordinary" primary input ports: a step can have at most one;
|     if it has exactly one parameter input then that's the primary by
|     default.
|
|  2) If a pipeline contains a step which has a parameter input port and
|     if the pipeline has no parameter input ports declared, then it gets
|     an anonymous, primary parameter input port by default.
|
|  3) We add an optional 'port' attribute to p:parameter. If the port is
|     specified, then the parameter goes to the named parameter input
|     port. It's an error if no such parameter input port is declared. If
|     the port is not specified, then the parameter goes to the primary
|     parameter input port. It is an error if the step has no primary
|     parameter input port.
|
|  4) How an implementation determines what parameters are passed to the
|     initial pipeline is implementation defined.
|
|  5) Normal binding rules apply to the use of a step (including a
|     named pipeline step)
|
|  6) If a step has a primary parameter input port and if no binding is
|     specified for that port then the default binding is to the
|     primary parameter input port of the pipeline which contains it.
|
|     If the pipeline which contains it has no PPI, then it is bound
|     to p:empty. This can only arise in cases like this:
|
|     <p:pipeline ...>
|       <p:input port="parameters" primary="no"/>
|       ...
|
|     Alternatively, we could make it an error to leave an unbound PPI
|     on a step in this case.
|
|  7) If a binding is manufactured for the primary parameter input port,
|     it occurs logically "last" among the bindings on the step. In
|     other words, parameters specified on that parameter port will
|     override explicit p:parameter elements on that step.
|
|  8) If a step has a parameter input port that is not primary and if no
|     binding is specified for that port then the default binding is to
|     p:empty.

Deleted item 9. No change to status quo: p:parameter is not allowed on
p:pipeline.

| 10) The declaration of a parameter input port must be empty. It is a
|     static error to attempt to define a default input.
|
| Have I missed anythin?

Besides the g in "anything" :-)

                                        Be seeing you,
                                          norm

-- 
Norman Walsh <ndw@nwalsh.com> | Everything should be made as simple as
http://nwalsh.com/            | possible, but no simpler.

Received on Thursday, 12 July 2007 11:40:42 UTC