Pipeline Composition and our Recent Pipeline Name/Library Decision

It is often the case that I want to reuse a pipeline as a single step
in my pipelines.  In our current syntax, you can just import that
single pipeline by pointing to the pipeline document.  You do not
need to create a new document that starts with "p:pipeline-library".

For example, suppose I have pipeline A (a.xpd) and I want pipeline B (b.xpd)
to use that pipeline as a step.  Right now I can import that pipeline
via:

  a.xpd:

   <p:pipeline name="a" ...>
      <p:import href="b.xpd"/>
      <b name="invoke-b"> ... </b>
   </p:pipeline>

 b.xpd:

  <p:pipeline name="b" ...>
   ...
   </p:pipeline>

if I then want to include that in a library, I import the
same pipeline:

lib.xpd

<p:pipeline-library>
   <p:import href="b.xpd"/>
   ...
</p:pipeline-library>

(which, BTW, is underspecified in the spec right now).

If the pipeline library has a target namespace:

<p:pipeline-library namespace="http://www.milowski.com/lib">
   <p:import href="b.xpd"/>
   ...
</p:pipeline-library>

then b inside that library would have a different name that if I just
imported the name directly.

That is, the same pipeline has a different invocation with the same NCName
value:

<p:pipeline name="a" ...>
   <p:import href="b.xpd"/>
    <b name="invoke-b">...</b>
</p:pipeline>

<p:pipeline name="a" xmlns:m="http://www.milowski.com/lib" ...>
   <p:import href="lib.xpd"/>
   <m:b name="invoke-b">...</m:b>
</p:pipeline>

If the name of the pipeline remained a QName value, the invocation
would be the same.

If you just have two pipelines and you want one to invoke the other,
then not using a pipeline library (which requires a third document) is
the simplest case of reuse.  I presume that it will be natural for
people to start with that kind of reuse and consider making a library of
them later.  As such, they'll be surprised when the invocation changes.

-- 
--Alex Milowski
"The excellence of grammar as a guide is proportional to the paucity of the
inflexions, i.e. to the degree of analysis effected by the language
considered."

Bertrand Russell in a footnote of Principles of Mathematics

Received on Thursday, 15 March 2007 18:28:52 UTC