Skip to content

gemmadifederico/VIOLA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VIOLA

Viola: Detecting Violations of Behaviors from Streams of Sensor Data

Viola is a streaming conformance checking approach which allows the discovery and conformance of a process, where the data is generated from IoT devices.

Features

  • Automatically derive a EGSM process model starting from a labeled sensor log
  • Process a stream of unlabeled data, in order to be provided to the EGSM engine
  • Recognize activities starting from a stream of data
  • Verify the conformance at runtime

How it works

VIOLA requires Python and Node.js to run.

Offline Phase

Pre-process the labeled sensor log in order to obtain a format suitable for the classification algorithm.

For example:

run "Experiments - Linac/normal/LogPreprocessing - Windowing.ipynb"

Derive a Decision Tree and convert it to rules.

For example:

run "Experiments - Linac/normal/Dtree - Classifier.ipynb"

Discover a Directly-Follows Graph.

For example:

python "Experiments - Linac/discover-dfg.py"

Create the EGSM process model.

For example:

python "Experiments - Linac/build-egsm.py"

Online Phase

Run the EGSM engine:

  • Download the SMARTifact E-GSM Engine
  • Copy the files siena.xml and infoModel.xsd produced during the offline phase inside the data/dfg folder (create the folder if does not exist)
  • Start the engine:
    node server.js 

Process the stream of data:

  • Run the CEP system.

For example:

python "Experiments - Linac/Server-lerror1.py"

And visualize the results!

For example:

python "Experiments - Linac/validator.py"