- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Wed, 21 Mar 2007 17:16:15 +0000
- To: public-xml-processing-model-wg <public-xml-processing-model-wg@w3.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
So here's my reasoning/proposal for the environment.
(I'm going to concentrate on only two uses to which it is/can be put:
a) bounding the set of candidate bindings for input ports
(_readable ports_);
b) determining the binding for the primary input if none is
specified explicitly (_default readable port_).
I think the paramater/option and prefix issues are simpler, and don't
require the same care. . .)
The environment for every step is determined by three things:
1) The environment for its containing subpipeline;
2) Its own p:parameter, p:import-parameter, p:option and
p:ignore-prefixes declarations;
3) Its position in its containing subpipeline, first or later.
The environment for a subpipeline is determined by two things:
1) The environment of its containing compound step;
2) The idiosyncratic semantics of that particular compound step.
Here's how it think it goes:
The environment of every step is constructed from the environment of
its containing subpipeline by
a) adding/replacing(?) params, options and prefixes based on its own
markup in the obvious way;
b) If it is not first in its containing subpipeline:
If the preceding step has only one declared output, or an output
marked as the default, make that the _default readable port_,
otherwise remove any existing _default readable port_.
(otherwise the _default readable port_ is unchanged)
The environment for a subpipeline is constructed from the environment
of its containing compound step as follows:
a) The union of all the declared outputs of the contained steps are
added to the _readable ports_;
b) Any step-specific changes are done.
On this basis, we can state the following invariants:
1) A step's input port is always bound to a _readable port_ from the
environment for that step;
2) A compound step's output port is always bound to a _readable port_
from the environment of its subpipeline.
And the following defaulting rules:
1) An unspecified primary input for a step is defaulted to the
_default readable port_ of its environment;
2) An unspecified primary output for a compound step is defaulted to
what would be the _default readable port_ from the environment of
a step after the last step in its subpipeline.
I think this all is clean and straightforward, but involves a number
of slight changes to the _status quo_.
ht
- --
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
iD8DBQFGAWhfkjnJixAXWBoRAhWBAJ9xWsHG4AkDSIgxBe0EGL4a1BilJQCfYOgx
f1v3Wz6GSmz96eNPw0aWBMc=
=8Ocq
-----END PGP SIGNATURE-----
Received on Wednesday, 21 March 2007 17:16:26 UTC