- From: Norman Walsh <ndw@nwalsh.com>
- Date: Mon, 27 Mar 2017 18:03:46 -0500
- To: XProc Dev <xproc-dev@w3.org>
- Message-ID: <87tw6ee2zx.fsf@nwalsh.com>
Hi folks, Achim and Gerrit and I were talking recently about the p:eval step. In the course of that discussion, I had an idea. One of the problems with the eval step is that atomic steps have a fixed signature and pipelines don’t. There has to be some kind of multiplexing of inputs and outputs in order to translate from the actual pipeline’s ports to the declared ports on p:eval. What occurred to me was that compound steps don’t have this limitation, so what if p:eval was a compound step? The idea is that one of its input ports would be the pipeline to evaluate. All of the other input ports and output ports would be connected up to the eval’d pipeline. Because each invocation of a compound step gets to declare its inputs and outputs, you could simply make the names match in each case. There are a few details to work out. 1. What about the case where you don’t know what the inputs and outputs are? I’m suspicious that this is such a rare edge case we don’t have to stress about it too much. 2. What about the subpipeline in the compound step? It doesn’t make sense to have one, so I think we’d have to adjust the rules to say that it was required to be empty. 3. What’s the name of the port from which the step gets the pipeline? I can think of a couple of possibilities. One is that the port is called “pipeline”. It’s an error if you attempt to use the p:eval step without providing a “pipeline” port. Then you have the problem of what to do if the pipeline you want to run has an input port named “pipeline”. So maybe there’s an option on the p:eval step to specify an alternate name. Another, perhaps better, possibility is to say that you have to declare it and the first input port you declare (irrespective of what name you give it) is the one from which the pipeline will be read. There may be other problems, but that’s the outline of my idea. Be seeing you, norm -- Norman Walsh Lead Engineer MarkLogic Corporation Phone: +1 512 761 6676 www.marklogic.com
Received on Monday, 27 March 2017 23:04:23 UTC