Mercurial > hg > IntentMadeManifest
view README.txt @ 19:74ada5cb1cb8 default tip
more tools
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Fri, 04 Dec 2015 12:55:31 -0800 |
parents | 4fd7fb12b782 |
children |
line wrap: on
line source
IntentMadeManifest ================== /python workflow engine via directed graph/ As risen from the stillborn ashes: http://k0s.org/mozilla/hg/MozbaseWorkflow/ [TODO: port ^that^ -> this document] Intents ------- "Software [...] is communication" -- David "Whit" whitfield Morris /What is a directed graph?/ Several systems take the form of a directed graph: - dependencies - workflow IntentMadeManifest *utilizes* directed graphs. A framework is provided along with instances to form a library: - VCS: git, hg, etc. - decorators: actions http://k0s.org/hg/WSGraph is built upon for interface. Potential Uses -------------- * dependency curation: - DEPS: Dependency Extraction and Processing System; http://deps.alioth.debian.org/ , http://vasks.debian.org/projects/deps/ - Extraction of Attribute Dependency Graph from Database Applications http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6130680&contentType=Conference+Publications - MAKAO, reverse engineering build systems : http://mcis.polymtl.ca/~bram/makao/ - ceve, utility to parse package dependencies as set of constraints - edos, building Linux distributions; http://www.mancoosi.org/edos/ * workflow construction, execution, and curation: - edit+create+export workflow TTW - workflow manager: an application to manage the workflows created by IntentMadeManifest * hybrid: of course, since IRL `workflow = DAG; dependencies = DAG => ...` , Since a `transition` is causal but necessarily with the `t` of spacetime, indeed from the above: `workflow == dependency processing`. You can do some crazy things: - actions: a class with method dependencies noted by decorators (see actions.py) - control workflow via .ini files (see `examples/github.ini`) Meta: - A Formal Definition of Data Flow Graph Models http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1676696&contentType=Journals+%26+Magazines Links ----- /Links to software and other communiques/ Python: python.org itself has a page on flow based programming: https://wiki.python.org/moin/FlowBasedProgramming In addition there are some excellent packages: * https://pypi.python.org/pypi/pypipegraph/ A workflow (job) engine/pipeline for bioinformatics and scientific computing. http://code.google.com/p/pypipegraph/ http://pypipegraph.readthedocs.org/en/latest/ Very similar indeed! * https://pypi.python.org/pypi/finite Yet another finite state automaton * https://pypi.python.org/pypi/fluidity-sm State machine implementation for Python objects. * https://pypi.python.org/pypi/fysom pYthOn Finite State Machine * http://pypi.python.org/pypi/ginsfsm GinsFSM, a library to develop systems based in finite-state machines. It's a communication framework, including a full asynchronous http/wsgi/winsocket/sockjs server. Ideal for working with Pyramid using traversal dispatch. http://ginsfsm.org * https://pypi.python.org/pypi/graphwalker Finite state machine based testing tool. * https://pypi.python.org/pypi/luigi Workflow mgmgt + task scheduling + dependency resolution ^ REALLY worth looking in to * https://pypi.python.org/pypi/PySS Python Statechart Simulator for Python >=3.4 * https://pypi.python.org/pypi/pyscxml A pure Python SCXML parser/interpreter (see also: https://github.com/jroxendal/PySCXML) * https://pypi.python.org/pypi/ruffus Light-weight Python Computational Pipeline Management http://www.ruffus.org.uk/ http://www.ruffus.org.uk/tutorials/simple_tutorial/step1_follows.html !!!!!!!!!!! * https://pypi.python.org/pypi/ubik Minimal and elegant packages manager * https://pypi.python.org/pypi/workflow Simple workflows for Python; Not sure if this is really what's needed. And....1.01??? * https://pypi.python.org/pypi/xworkflows A library implementing workflows (or state machines) for Python projects. node.js: Those node.js people seem to know what they are doing. * conductor: http://howtonode.org/step-of-conductor https://github.com/creationix/conductor Looks (maybe?) like what IntentMadeManifest is supposed to be (???) * step: https://github.com/creationix/experiments/blob/master/step.js same author as conductor; again, impressive * composer: https://github.com/tmpvar/composer totally the WSGraph of node (!) State Machines: Workflow == state machines, so an understanding from either perspective is the same apropos the other. * http://en.wikipedia.org/wiki/Finite-state_machine * http://en.wikipedia.org/wiki/SCXML : State Machine Notation for Control Abstraction == Other Approaches == BPMN: Business Process Modeling Notation; not quite what I had in mind. Flowcharts are nice, but the sense of "state" + "transitions" is not the same as in the graph model. * http://www.bpmn.info/ ---- Jeff Hammel k0scist@gmail.com