Skip to content
/ soup Public

Soup 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 creating the EKG to perform object-centric process mining analysis.

License

Notifications You must be signed in to change notification settings

soup-ocpm/soup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soup

Description

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 or YYYY-MM-DDThh:mm or YYYYMMDDThhmmss or YYYYMMDDThhmm or YYYYMMDDThh.

⚠ To avoid undesired bugs, please upload event logs without spaces in column headers.

Tecnhnologies

1. Memgraph Database

As a Graph database for storing and manipulated event data.

Useful links:

2. Python

The Backend is based on the Python programming language and the Flask library.

Useful links:

3. Angular

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.

Tool Setup - Instructions

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

Start tool by Docker

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.

Use case

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.

Filter data

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:

Cards data

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 :

Card visualization

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).

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.

Search nodes

Change graph visualization

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).

New class graph

Final Product

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.

Note

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.

Contact

Feedback

We'd love to hear from you! Please share your feedback by filling out our form ➡️ here

Additional Features

More exciting features coming soon...🫕

About

Soup 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 creating the EKG to perform object-centric process mining analysis.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •