Information Requirement Diagram, or in short IRD, is unique to FlexRule in that it allows data logic be composed and reused from smaller building blocks (data operators) visually. The Information Requirement Diagram (IRD) is powered by our rich and dynamic monadic operators and places this power in the hands of everyone with a visualization method to model, simulate and execute data and information logic.
The Information Requirement Diagram is a graph that allows you to transform data into information which will then be used by other consumers. There are tree simple nodes in any IRD graph with two types of associations:
|Operator||Presents the act of applying an operator on a source of data which would create/generate new set of data as a source to the other nodes of graph. e.g. select, filter…|
|Input Data||Data used as an input by one or more monadic operators.|
|Output Data||Denotes the output of the IRD model at any stage.|
|Information||Denotes relation between nodes that passes a source as an input information to a destination node. Information is the source of the next monadic operator.|
|Knowledge||Denotes relation between nodes that passes source as the processing parameters to a destination node.|
Let's have a look at an example and see the Information Requirement Diagram in action. In the below list of cars:
All common cars between these two groups: G1 and G2
We have answered this before using monadic operators, but let's see the result in an Information Requirement Diagram.
Input and Output Data
In an IRD we can define as many as inputs and outputs as required. Then we connect different data sources to inputs and the network/graph of operators, and navigate them to the output results.
In this example, we are going to have one input (list of cars) and one output (command and all unique cars).
There are many different data operators pre-built into an IRD (i.e. Group, Filter, Select, Minus, Union, Intersect, etc.). They can be used as many times as required. All operators must be connected to a source of information. In this example, they need to connect to “Cars”.
For the first step of this task we need to group the cars into two groups/lists by “Group” value. So, let's select Group operator from the toolbox and add it to our model:
Associations: Information or Knowledge
There are two types of associations between any node in an IRD, through which it passes information to the next nodes either as it is, or further processes these before passing. As mentioned, all operator nodes must have a source. If the source of a node comes from another node, it is an Information association. Otherwise it is a Knowledge association.
Knowledge ensures the result of a node (operator) is passed to other nodes as known information, which you will see in the next section.
For now, let's connect cars to the group operator by setting the group operator's source:
To view the full tutorial please visit https://resource.flexrule.com/knowledge-base/creating-an-ird/
After you follow the above tutorial, you can build the full model as shown below, feed in your data and check the results using the data viewer:
Once the execution is finished, you will see the result below in the data viewer:
The Information Requirement Diagram (IRD) is powered by our rich and dynamic monadic operators and gives this power to every one with a visualization method to model, simulate and execute data/information logic.
Now the data logic can be modeled, maintained and executed in a reliable way, and when an update to the model is required, you can simply add more operators, outputs and inputs to the model. No SQL stored procedure, view or hard-coded application logic is required!
* To learn more please visit https://resource.flexrule.com/knowledge-base/information-requirement-diagram.
* You can download FlexRule v6.3 from http://download.flexrule.com and try this tutorial yourself by opening a project called “Collections”.
* To follow the tutorial step-by-step please visit our wiki at https://resource.flexrule.com/knowledge-base/creating-an-ird/