Example Usage
For use from python programs cf. API
On the command line given an eventlog like:
❯ cat tests/fixtures/basic/small-eventlog.csv
#case_id,task,user,ts_text
c1,t1,u1,2021-11-27 12:34:56
c1,t2,u2,2021-11-27 12:34:57
c1,t3,u3,2021-11-27 12:34:58
c2,t1,u1,2021-11-27 12:34:57
c2,t2,u1,2021-11-27 12:34:58
c2,t3,u2,2021-11-27 12:34:59
c3,t1,u1,2021-11-27 12:34:56
c3,t2,u2,2021-11-27 12:34:57
c3,t3,u3,2021-11-27 12:34:58
c4,t1,u1,2021-11-27 12:34:51
c5,t1,u1,2021-11-27 12:31:52
c5,t2,u2,2021-11-27 12:31:53
c5,t3,u3,2021-11-27 12:31:54
c5,t4,u4,2021-11-27 12:31:55
c6,t1,u1,2021-11-27 12:34:52
c6,t2,u2,2021-11-27 12:34:53
c7,t1,u1,2021-11-27 12:34:54
c8,t1,u1,2021-11-27 12:34:55
c9,t1,u1,2021-11-27 12:34:56
c10,t1,u1,2021-11-27 12:34:57
c10,t2,u3,2021-11-27 13:34:57
Asking for a dryrun:
❯ prosessilouhinta extract --dryrun < test/fixtures/basic/small-eventlog.csv
dryrun requested
# ---
* resources used:
- input from: STDIN
- output to: STDOUT
Calling the app (and piping the out put into jq) gives:
❯ prosessilouhinta extract < test/fixtures/basic/small-eventlog.csv | jq . -C
{
"activity_counts": {
"t1": 10,
"t2": 6,
"t3": 4,
"t4": 1
},
"average_time_differences": {
"t1": {
"t2": 600
},
"t2": {
"t3": 1
},
"t3": {
"t4": 1
}
},
"control_flow": {
"t1": {
"t2": 6
},
"t2": {
"t3": 4
},
"t3": {
"t4": 1
}
},
"time_differences": {
"t1": {
"t2": [
1,
1,
1,
1,
1,
3600
]
},
"t2": {
"t3": [
1,
1,
1,
1
]
},
"t3": {
"t4": [
1
]
}
},
"user_activities": {
"u1": [
"t1",
"t2"
],
"u2": [
"t2",
"t3"
],
"u3": [
"t2",
"t3"
],
"u4": [
"t4"
]
},
"work_distribution": {
"u1": {
"t1": 10,
"t2": 1
},
"u2": {
"t2": 4,
"t3": 1
},
"u3": {
"t3": 3,
"t2": 1
},
"u4": {
"t4": 1
}
},
"working_together": {
"u1": {
"u2": 5,
"u3": 4,
"u4": 1
},
"u2": {
"u3": 3,
"u4": 1
},
"u3": {
"u4": 1
}
}
}
Currently not much more is implemented.
Asking for help:
❯ prosessilouhinta
Usage: prosessilouhinta [OPTIONS] COMMAND [ARGS]...
Process mining (Finnish prosessilouhinta) from eventlogs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version -V Display the prosessilouhinta version and exit │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ cpa Apply Critical Path Analysis (CPA) on input and produce activity-on-nodes diagram for critical path. │
│ extract Translate from a language to a 'langauge'. │
│ version Display the prosessilouhinta version and exit │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Creating an activity-on-nodes diagram per critical path analysis:
❯ prosessilouhinta cpa test/fixtures/basic/cpa-micro.json
+-----------+ +-----------+ +------------+
| DUR=3 | | DUR=6 | | DUR=5 |
+-----------+ +-----------+ +------------+
|ES=0| |EF=3| |ES=3| |EF=9| |ES=9| |EF=14|
|----|A|----| => |----|D|----| => |----|E|-----|
|LS=0| |LF=3| |LS=3| |LF=9| |LS=9| |LF=14|
+-----------+ +-----------+ +------------+
| DRAG=n/a | | DRAG=n/a | | DRAG=n/a |
+-----------+ +-----------+ +------------+
Some more help:
❯ python -m prosessilouhinta cpa --help
Usage: prosessilouhinta cpa [OPTIONS] [SOURCE]
Apply Critical Path Analysis (CPA) on input and produce activity-on-nodes diagram for critical path.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ source [SOURCE] [default: STDIN] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --input -i <sourcepath> Path to input eventlog file (default is reading from standard in) │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Finding the version:
❯ prosessilouhinta version
Process mining (Finnish prosessilouhinta) from eventlogs. version 2022.11.13+parent.2f7619f1