Inputs and Outputs
The dependencies are represented by connectors between files and jobs.
The connectors go from files to jobs for inputs and from jobs to files for outputs. For a job, the notion of its inputs and outputs is obvious. We extend the same notion to files: the "outputs of a file" are all the jobs that use the file as input; the "inputs of a file" are all the jobs that contribute to creating the file. Normally, each file has either zero or one input.
A primary input is a node that has no inputs. Similarly a primary output is a node that has no outputs. In the attached diagram, the files aa and cp are primary inputs and the files cc and dd are primary outputs.
Connectors have no attributes.
