The Soup Tool is a WebApp that allows the end user to create an Event Knowledge Graph (EKG)
Starting from an event log, saved in a .csv file, the user is guided in the creation of the EKG with the aim of performing object-centric process mining analysis.
ℹ Please refer to the project wiki for all the details.
📃You can download some event logs here.
⚠ As required by Memgraph, the timestamp should be in the following formats (optionally with milliseconds):
YYYY-MM-DDThh:mm:ss
orYYYY-MM-DDThh:mm
orYYYYMMDDThhmmss
orYYYYMMDDThhmm
orYYYYMMDDThh
.
⚠ To avoid undesired bugs, please upload event logs without spaces in column headers.
As a Graph database for storing and manipulated event data.
Useful links:
The Backend is based on the Python programming language and the Flask library.
Useful links:
The Angular framework is used as a frontend. Within Angular, the dagre-d3 library has been used to create graphs based on nodes and relations.
Useful links:
and other libraries in package.json.
The first step is to clone the project:
git clone [email protected]:proslabteam/soup.git
Make sure Git is installed on your computer. If Git is not installed, you will encounter an error message.
To download Git, visit the following page: Download Git
First, install Docker inside your computer: Download Docker
After successfully installing Docker, open the terminal in the main folder of the cloned project.
Run the following commands from the terminal to create a Container in Docker made up of all the projects:
docker-compose -p soup-tool up --build
Once the command is completed, Docker Compose automatically creates a container that includes the following sub-containers, all of which are already running:
- Angular container: represents the web tool, contactable at the
localhost:4200
- Python container (Backend): represents the Backend and Engine of the system, contactable at the
localhost:8080
- Memgraph container: in this container, the Memgraph database runs which offers 3 different ports.The most important is
localhost:3000
which will open Memgraph Lab.
The tool allows the end user to upload a .csv file containing evet logs and create EKGs.
First, go to the corresponding "Upload CSV" section and follow the tool's instructions to correctly upload the csv file.
Once loaded, the file will be parsed and the user can see a preview of the entities and properties of the file through the table.
A Sidebar coming from the right has the task of letting the user filter the entities and properties to take into consideration for his analysis.
Once this first phase is completed, the graph will be automatically generated within our Memgraph database and the graph data will be reported in the form of Cards, as illustrated:
Then it is possible to expand the cards to see the corresponding and specific JSON of the newly created data, with the possibility of searching within the JSON or even downloading it :
In the Sidebar coming from the right, the user can perform operations such as downloading the complete JSON of the Graph, deleting the graph or above all grouping the nodes
to create the graph composed of aggregate nodes (Class Graph).
Once the attributes to aggregate the nodes have been chosen, the Classes node will be created, and the user will automatically be redirected to the page which aims to view the complete graph.
In this section, the user can navigate the graprh. Above all, it is possible to search fo nodes or relationships, and through the Sidebar you can carry out other
operations such as customizing the graph view, exporting the graph to .svg or deleting the graph.
At the top left there is an arrow to return to the previous screen. In this case the tool recognizes that an aggregate graph has already been created (or in any case is present within the Database)
so you have the possibility to see the graph or create a new one (the current graph will be eliminated).
The user has the possibility to upload his own .csv file containing the data of interest via Drag&Drop. Once the .csv file is loaded, the user has the possibility to filter the data and therefore the columns of his .csv file. Once this operation has been done (optional) the Server will begin to create the Graph of interest through queries to the Memgraph Database and will return the generated graph as a result. Obviously, the user has the possibility to download his graph in .svg format, as the possibility of eliminating it, but above all grouping the entities by Classes, in such a way as to obtain a new graph of interest. All this achieved thanks to the Memgraph, Python and Angular libraries and documentation.
Our tool is called Soup, with a logo showcasing a mix of rainbow noodles, symbolizing the dynamic and interconnected flow of object-centric process mining, much like the iconic image of rainbow spaghetti.
-
Development support: Alessio Giacché ✉️ [email protected]
-
Research activities: Sara Pettinari ✉️ [email protected] & Lorenzo Rossi ✉️ [email protected]
We'd love to hear from you! Please share your feedback by filling out our form ➡️ here
More exciting features coming soon...🫕