Workflow nets

The project

We produced an editor and (basic) simulator for industry workflow nets (inets), a model of inter-organizational workflows based on petrinets. This editor incorporates the first (and so far, only) implementation of the industry workflow net model specified in a paper written by Prof. Dr. Jetty Kleijn and Drs. Pieter M. Kwantes.
Since we didn’t have any pre-existing code to interface with, we were free to design the codebase of the editor whichever way we liked, as long as we made reasonable design choices and documented them. Because of the nature of our project, we were able to publish it as free and open source software, available under version three of the GNU General Public License.


The customer

Our client was Drs. P.M. Kwantes, a PhD Candidate at the theory group of the Leiden Institute of Advanced Computer Science. At the beginning of the project, we’d meet once a week, at a fixed time, in order to clear up the scope and goal of the project. Once we had a more lucid picture of the demands and desires, we only met when we had readied a new demo.

"We hope that our project which will see a real-world application."
The team

In our team, we had two students who are studying mathematics as well as computer science and one former student of mathematics. This helped us understand the problem at hand and the mathematical notation and concepts employed in the relevant paper. The sole student of “Informatica & Economie” in our team, while also adapt with mathematical notation, took a managerial role upon himself, organizing meetings, communicating with the client, etc. This greatly improved our group dynamic. We also had one group member with extensive experience with Python, our language of choice. This proved rather valuable.


The technologies

We made use of python (version 3.6 and up) and pyqt5. This choice of technologies ensures that our program is cross-platform and portable. We also added functionality to export the underlying petri net of an industry net as a PNML (Petri Net Markup Language) file, this allows for interaction with a wealth of other tools for petri nets. Due to lack of time, we ended up not writing a wrapper around the bisimulation functionality in LTSmin (and thus not really using it in our project), even though we had originally intended to.