# Process mining

Il process mining è una tecnica di process management, che permette l'analisi dei processi di business basati sui log degli eventi. Attraverso l'uso di specifici algoritmi di data mining applicati ai log degli eventi si può estrarre conoscenza da questi ultimi: è infatti possibile scoprire mode, modelli e molte altre informazioni riguardanti un sistema informativo. L'obiettivo del process mining, infatti, è di migliorare quest'ultimo, fornendo tecniche e strumenti per la scoperta di strutture di processi, di dati, di organizzazioni e strutture sociali a partire dai log.

## Idea generale

Le tecniche di process mining sono spesso usate quando non è disponibile, tramite altri mezzi, una descrizione del processo oppure quando la qualità di questa documentazione è discutibile. L'analisi dei log degli eventi può essere utilizzata anche per confrontare i log degli eventi con modelli a priori per studiare se quanto osservato sia conforme ad un modello descrittivo o prescrittivo.
I trend di management odierni come BAM (Business Activity Monitoring), BOM (Business Operations Management), BPI (Business process intelligence), mostrano l'interesse nel supportare le funzionalità di diagnosi nel contesto delle tecnologie di Business Process Management (ad esempio, i Workflow Management System ma anche altri).

## Applicazioni

Il process mining segue le opzioni stabilite dalla progettazione dei processi aziendali, poi va oltre queste opzioni fornendo un feedback per la rappresentazione dei processi aziendali:
* l'analisi dei processi filtra, ordina e comprime i file di log per approfondire lo studio nel contesto delle operazioni dei processi;
* la modellazione dei processi può essere supportata dai feedback provenienti dal monitoraggio dei processi attraverso la registrazione di azioni o eventi (file di log);
* lo sviluppo dei processi sfrutta i risultati del process mining basati sui log per sviluppare ulteriori operazioni dei processi.

## Classificazione

Ci sono tre classi principali di tecniche di process mining. Questa classificazione si basa sulla presenza o meno di un modello a priori e su come questo viene usato.
* Scoperta: non c'è alcun modello a priori, ovvero, sulla base degli eventi registrati nel log si ricostruisce un modello. Ad esempio, usando l'algoritmo Alpha è possibile ricostruire un modello di processo. Esistono molte tecniche per la costruzione automatica di modelli di processo (ad esempio in termini di Reti di Petri). Recentemente, la ricerca sul process mining ha iniziato ad esplorare altre prospettive, quali i dati, le risorse il tempo, ecc. Ad esempio le tecniche descritte in (Aalst, Reijers, & Song, 2005) possono essere utilizzate per costruire una rete sociale.
* Conformità: è presente un modello a priori e questo modello è confrontato con un log di eventi e le discrepanze fra il log ed il modello sono analizzate. I controlli di conformance potrebbero essere usati per identificare discrepanze dal modello originale. Successivamente, è possibile utilizzare le classiche tecniche di data mining per monitorare quali dati sono quelli che più influenzano le scelte (ad esempio generando un albero di decisione per ogni scelta del processo).
* Miglioramento: è presente un modello a priori. Questo modello è esteso con un nuovo aspetto o prospettiva; l'obiettivo non è quello di controllare le discrepanze ma di arricchire il modello originario. Un esempio è l'estensioni di un modello con dati sulle performance (ad esempio si possono evidenziare colli di bottiglia all'interno del processo).

## Software per process mining

Un framework software per la valutazione degli algoritmi di process mining è stato sviluppato alla Technische Universiteit Eindhoven da Wil van der Aalst ed altri ed è disponibile come toolkit open source.
* Process Mining
* Prom Framework
* Prom Import Framework
Altre librerie open source che supportano il process mining sono:
* PM4Py, una libreria di Process Mining in Python open source e general purpose sviluppata dal Fraunhofer FIT
* bupaR, una libreria di Process Mining in R
* pMineR, una libreria di Process Mining for Healthcare, in R
* PM4JS, una libreria di Process Mining in Javascript
* MicroPM4Py, una libreria di Process Mining in Python per microcontrollers e sistemi embedded
* PMLAB, una libreria di Process Mining in Python
Le funzionalità del process mining sono anche realizzate dai seguenti vendors commerciali:
* Futura Reflect, un suite sviluppata da Futura Technology per il process mining e process intelligente.
* Interstage Automated Process Discovery, un servizio di process mining offerto da Fujitsu, Ltd. come parte di Interstage Integration Middleware Suite.
* QPR ProcessAnalyzer offerto da QPR Software Plc.
* Nitro è un tool realizzato da Fluxicon per convertire facilmente log di eventi in formato CSV o XLS in modo che possano essere utilizzati in ProM
* Disco un software di process mining che si concentra sulla semplicità dell'interfaccia e dell'analisi, realizzato da Fluxicon.
* IBM Process Mining, un servizio cloud che offre funzionalità di process mining, realizzato da IBM.
* ProcessMind, uno strumento di intelligence di processo self-service che combina il process mining con la modellazione dei processi, realizzato da ProcessMind.