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


vovcone: Usage Message

DESCRIPTION:
    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.

OPTIONS:
   -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
   -sel         
   -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

NOTE:
   -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.

EXAMPLES:
  % 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@ "