Data::Hopen::G - Namespace for graph-related items in hopen
Almost everything graph-related in hopen lives under Data::Hopen::G. This includes nodes, edges, and graphs (specifically, directed acyclic graphs, DAGs).
Data::Hopen::G
Classes are (all under Data::Hopen::G):
Entity - something in the graph Runnable - something that has a run() method and need/want namesets (TODO should this be a Role::Tiny role?) Link - connection between Nodes Node - abstract graph node Op - abstract operation Goal - a node that just gives a name to a set of operations PassthroughOp - no-op concrete operation DAG - the graph
Specific use cases of the graph are not under ...::G, such as tools used in the hopen build system (App::hopen).
...::G
Data::Hopen::G::Op
An operation. Operations can, e.g., transform their inputs or invoke a visitor routine based on their inputs. Operations can output values representing the visitor action they took, or that will later be used by the visitor or downstream nodes.
Data::Hopen::G::Link
A connection between operations. Edges are not provided to a visitor Instead, they have the opportunity to transform their inputs to outputs, possibly with reference to the environment.
Data::Hopen::G::DAG
A graph of operations and edges. Every relationship between operations and edges is expressed in a DAG. A DAG has zero or more goals (Data::Hopen::G::Goal) that represent named activities expressed in the DAG.
"run" in Data::Hopen::G::DAG can take a visitor parameter. The visitor should be an instance of a concrete subclass of Data::Hopen::Visitor.
visitor
To install Data::Hopen, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Hopen
CPAN shell
perl -MCPAN -e shell install Data::Hopen
For more information on module installation, please visit the detailed CPAN module installation guide.