Up-Cones and Down-Cones

The set of all transitive inputs of a node, that is the set consisting of all inputs of a node and all their inputs and so on, is called the up-cone of a node. The node itself is the apex of, and belongs to, its own up-cone.

Similarly, the down-cone of a node is the set of all the transitive outputs of the node, including the node itself.
Note: The commands used in the following examples include the UNIX command cp (copy) and vw vov wrapper.

Examples of Up-cone and Down-cone

Here is the graph of a simple flow which contains 3 jobs:
  1. vw cp aa bb
  2. vw cp bb cc
  3. vw cp bb dd

Figure 1.
The down-cone of node aa will be:
  1. job vw cp aa bb
  2. file bb
  3. job vw cp bb cc and vw cp bb dd
  4. file cc and dd

Figure 2.
Similarly, the up-cone of job vw cp bb dd will be:
  1. file aa and /bin/cp
  2. job vw cp aa bb
  3. file bb

Figure 3.
A typical up-cone or down-cone could be more complex. Here is an example of up-cone of a file:

Figure 4.
Here is another example of down-cone of a job:

Figure 5.

Compute Cones with vovcone

Either the graphical user interface or the utility vovcone can be used to compute the up-cone or down-cone of a set of nodes in the graph.

Figure 6.


vovcone: Usage Message
      Apply a set of upcone and downcone operations starting from 
      one or more jobs or files.  For every up/down cone operation, a list
      of filters (selection rules) can be applied.
      The resulting set can be saved if a result setname is provided.
      The content of the result can be formatted.
     -h           -- This help.
     -v           -- Increase verbosity.
     -file FILE   -- Specify the starting file (may be repeated)
     -job JOBID   -- Specify the starting job (may be repeated)
     -id  ID      -- Specify the starting id  (may be repeated)
     -setname     -- Specify the starting setname (may NOT be repeated) 
     -up          -- Start an upcone operation.
     -down        -- Start a downcone operation.
     -inputs      -- Start a "inputs" operation.
     -outputs     -- Start a "outputs" operation.
     -parents     -- Same as -inputs
     -children    -- Same as -outputs
     -filter      -- Define a filter for the current cone operation
     -result      -- Define name of result set.
     -format      -- Specify output format (default is no output)
     -O           -- Same as -format
     -inputs   and -outputs  move just one step up and down the
               dependency tree, while -upcone and -downcone move all the 
               way up and down the dependency tree.
     -filter   is reset for each new operation.
     -format and -result are applied only to the final result.
    % vovcone -file aa -up -format "@ID@ @LEVEL@ @NAME" -filter "isfile"
    % vovcone -job 00012345 -up -format "@ID@ @LEVEL@ @NAME" -filter "isfile"
    % vovcone -file aa -up   -filter "status==VALID" -filter isfile 
                       -down -filter "isjob status==RETRACING" 
                       -format "@ID@ @STATUS@ "