Automatically solve different classes of tasks just by implementing required submodules for task dataflow.
Basically, dynamic dataflow programming framework. Just like regular data flow framework, but flows are constructed dynamically.
- Executor of
Set<Node>
- Context of
Executor
,Set<Edge>
isEventEmitter
- Edge of
Set<Token>
,Node
- Token of
impl
,data
,confidence
,path
- Node of
_generateInputs()
,process()
- ?GeneratorNode is
Node
- ProcessorNode is
Node
ofinput
- ?JoinNode is
GeneratorNode
Виды узлов:
- ProcessorNode
- LastJoinNode - вызывается когда нечего делать, со всеми токенами заданного типа
- EachJoinNode - при появлении новых данных вызывается заново (предполагается использование вкупе с LazyToken)
- ProcessorJoinNode - работает как ProcessorNode, но получает помимо основного набора токенов все токены одного заданного типа API:
- Executor.addNode
- remove
data
fromContext
- fire events on progress
- add
ProcessorNode
(that pushes data on process) - add
GeneratorNode
(that generates data on demand) - zero-input nodes support (useful for
GeneratorNode
) - add
JoinNode
(input all existing tokens of same type, only last output actual) Token.implements
field- lazy tokens (make
token.data
apromise<any>
) - parallel computing support