Controlled vs Uncontrolled Nodes
In Intellectible, nodes can be controlled or uncontrolled. This distinction is important because it affects how the node behaves in the workflow editor. Controlled nodes run when something triggers the node, while uncontrolled nodes run when their outputs are read.
Events and Data
You will notice in the editor there are two types of wire to connect output and input ports, a gray dashed wire, and a solid wire. The dashed wire carries an event, while the solid wire carries data and nodes can have input / output ports that receive / send either data or events. Events represent actions that happen, for example when a node has finished running the done event will fire. Data can be one / a combination of text, numbers, booleans (true/false), dictionaries, lists. Node input and output ports are gray triangles for event ports and solid circles for data.
Node Types
A Controlled node is any node that is triggered to run with an event, for example the AI Write node has a run input event port which when triggered causes the AI to start writing. Uncontrolled nodes are nodes that run when their outputs are read, for example the Variable node will find and output the value of a specific variable when any node connected to it's output requires the data it provides. A workflow will have a mix of controlled and uncontrolled nodes, and the editor will automatically manage the flow of data and events between them.
It's important to understand how uncontrolled nodes work as you don't explicitly define when the are run. The same node can run multiple times if read multiple times and the editor will manage this automatically. Equally it's important to remember to trigger controlled nodes using events (via the gray dashed wires), and to do so in the correct order.