Workflows

Uses
- Data files
- Pipeline notation for functions
- One-dimensional arrays
- Python code

Workflows are computations that transform input data into output data, with all data stored in files (defined in Data files).

The smallest unit of computation in a workflow is a task (of sort task), which corresponds to the execution of a program that reads some input files and produces some output files.

Tasks are derived from steps, which are functions (see Functions) from input files to output files, by supplying concrete input and output files:
task(function:Array1D(file) Array1D(file), inputs:Array1D(file), outputs:Array1D(file)) : task

For convenience, a single input and output file can be specified without wrapping the files into arrays:
task(function:file file, input:file, output:file) : task

Tasks are implemented as Python code. The Python code attached to a function is accessible via:
domain:𝕊, image:𝕊, pythonCode(domain image) : String