Flow-Based Programming consists of using ‘black boxes’, which we shall call Nodes, to modify or perform some process on the data. The data stream begins at one Node, and flows in one direction to other Nodes along paths called Links.
In Clario, nodes are arranged to form a Workflow. Sufficient links must be attached to allow the data stream to flow between nodes. Nodes, represented as square icons, are the building blocks of workflows. Nodes can perform various processes. For example, nodes can modify the data stream (Transform), perform an analysis (Univariate, Bivariate), suppress part of a data stream (Filter), bring a data stream into the workflow (Read File), export a data stream to a file (Write File), etc.
Read File Node
Filter Node
Transform Node
Write File Node
Link
Links, represented by lines, form the path for data streams to flow from one node’s output to another node’s input. To create a link, click on the green output connector of one node, drag the mouse to the yellow input connector of another node, and release the mouse. To remove a link, hover the mouse over the yellow input connector of a node until a red X appears, then click the mouse.
Creating a Link
Removing a Link
Data streams in Clario are merely rows of data from whatever file you’ve added to the workflow via a Read File node. Packets of data (a number of rows) flow along the links into a node, and once processed, they flow out of the node via the attached link. Read File nodes have only an output connector, and several nodes have only an input connector (Write File, Bivariate, Create Indicators, etc.). This last type of node is referred to as Terminal Node.
There is an endless variety of tasks that you can perform with data streams. For instance, it is possible to begin with multiple different data streams via multiple Read File nodes, combine them in a single data stream to perform similar modifications on all of them, re-separate the streams, and finally output the separate streams in addition to the combined stream. (See Figure)
Multiple Streams example