1. A method of creating a workflow procedure, comprising the steps of: recalling a previously stored template associated with a prior workflow procedure; using a graphical user interface to customize the template by providing software tools, desired input products, and a desired output product associated with a new workflow procedure; recursively reasoning backwards from the output product to the input products to determine what processing paths and intermediate products will be necessary to perform the new procedure; prompting the user if processing paths are generated; if a valid processing path exists for a single input, automatically replacing that path for similar inputs; automatically replicating topology segments used to process a single input to satisfy multiple input tasks; and executing the procedure in accordance with the processing paths.