# Ink (unsupervised)
Ink is a workflow tool and a language.
### Terminology
* **Flow**: a DAG
* **Task**: Individual node in DAG. Can have many or no inputs and outputs.
* Tasks themselves can be a flow of other tasks (i.e. we have *composability*)
* Each task in a flow is an "isolated component" in that it does not know anything about the global state of the flow
* Task inputs and outputs are **serialized** as **artifacts** (stored in minio)
* Ink has a "database". Each job gets a uuid. A job can have many runs, each with a uuid.
### Inputs vs Config
**Inputs are...**
* Dynamically generated, have a *global scope*. They are dependent on/effect inputs and outputs in other tasks
* "Simple" containers with unpredictable components. I.e. an integer whose value depends on the state of other variables in other tasks
**Config is...**
* Statically defined, with a *local scope*. This does not change at run time. Does not effect the behavior of other tasks. Predictably alters the behavior of the local task code
* "Complex" containers with simply components. I.e. Nested dictionaries with string values at the leaves
---
Date: 20211028
Links to:
Tags:
References:
* [Powerpoint pres](https://docs.google.com/presentation/d/1UoiOqipltPJyEm0egY4G8ModH-xXseHSjbJ0uxSUXds/edit#slide=id.g7ebcf3f193_0_447)
* [Notion doc](https://www.notion.so/unsupervised/New-Ink-2020-02-27-e0c7393ffd8845dca90bd29dd2cddeb0)