Software

 

Creative Commons License GPL License

The copyright for all software and documents rests with the author, Joerg Evermann. Software is distributed under the GPL V3 unless otherwise noted. Documents, slides, diagrams, images etc. are distributed under the CC-BY-NC-ND V3 license unless otherwise noted.

 

Intro to Data Visualization

This material was developed for and presented at a data analytics competition held at Memorial University in the fall of 2023, as preparation for participating students.

 

This very brief introduction focuses on creating charts/graphs/plots in R and in Python. For R, the material is based on the Tidyverse and GGPlot packages; for Python, I use Pandas and Plotly Express. An introduction to the purposes of visualization, guidelines for good visualizations, and a brief mention of colour vision deficiency precede the applied material. Dashboarding (interactive data presentations) are briefly demonstrated using Plotly Dash in Python.

 

 

 

A Tutorial on Blockchain Technology

This tutorial was presented during the one-week long Blockwoche seminar in May 2019 at the Hochschule Osnabrueck.

 

Cryptocurrencies like Blockchain, have recently gained significant attention, both from consumers looking for payment mechanisms and possible investments, from businesses, including banks, retailers, and others, and from governments and regulators. Underlying these cryptocurrencies is a technology called blockchain. Blockchain is a generic technology with many applications besides cryptocurrencies.

This seminar first examines blockchain technology from first principles. It takes a deep-dive into the cryptographic principles underlying blockchain and examines the inner workings of Bitcoin, including the generation of Bitcoins and “Mining”. It then examines Ethereum, a general purpose blockchain that offers "smart contracts". That part of the seminar includes hands-on computer exercises.

 

 

YAWL Workflow Management System on a BFT Blockchain

Many implementations of workflow management systems on blockchains re-implement the workflow engine and work item management on the blockchain itself, using smart contracts. In contrast, this work takes an existing 'off-the-shelf' workflow management systems and adapts it to use a blockchain as an infrastructure to offer inter-organizational collaboration and fault tolerant engines. The BFT blockchain is based on the BFT-SMART Java library. Calls to the workflow engine are interecepted and run through the BFT ordering and then the blockchain service, then fed to each workflow engine in the system. This ensures consensus about the order of workflow transactions and information integrity on the blockchain. This is not meant as a production-ready tool, it was developed to explore how blockchain technology may be used and what issues can arise in the context of process management.

 

This implementation forms the basis of the following papers:

 

  • Evermann, J.: Adapting Workflow Management Systems to BFT Blockchains - The YAWL Example. Proceedings of the 1st International Frontiers of Process Aware Information Systems (FoPAS) workshop, October 5, 2020 (accepted September 8, 2020)
  • Preprint
  •  

The software and source code are available. See the demo paper and tutorial document on how to use it.

Workflow Management on BFT Blockchains

'Traditional' proof-of-work blockchains have downsides that negatively impact the usefulness and usability of workflow management applications that run on them. The shortcomings include latency for block creation and mining to 'safe' depth, inefficiency of computing power ussage, and no finality of consensus. BFT-based ordering is an alternative to proof-of-work mechanisms. This application explores construction of a BFT-based blockchain as the infrastructure for a workflow management system. The workflow layer is pretty much unchanged from the implementation below, but the blockchain is based on the BFT-SMART Java library. BFT-SMART is included in the zip file as I have made a few very minor changes to it. Not meant as a production-ready tool, it was developed to explore how blockchain technology may be used and what issues can arise in the context of process management.

 

This implementation forms the basis of the following papers:

 

The software and source code are available. See the demo paper and tutorial document on how to use it.

Blockchain Technology and Process Management

An application of distributed blockchain technology to workflow management. The blockchain provides the infrastructure to execute and coordinate distributed workflows. The application is built in Java and provides its own blockchain implementation. Not meant as a production-ready tool, it was developed to explore how blockchain technology may be used and what issues can arise in the context of process management.

 

This implementation forms the basis of the following paper:

 

  • Evermann, J. and Kim, H.: Workflow Management on the Blockchain - Implications and Recommendations CoRR, abs/1904.01004
  • BibTeX
  •  
  • Full Paper (external link)
  •  
  • Eclipse project exports
  •  

    The zip file includes two different approaches. The first approach stores workflow transactions on the blockchain, the second stores workflow state on the blockchain.  

Deep Learning in Business Process Management

An application of deep learning neural networks for predicting the next event in business processes. The idea is to use recurrent neural networks as they are used in NLP and simply treat a trace/event log as a "sentence". The implementation uses TensorFlow as deep learning framework and is developed using Python. The logs from the BPI Challenge 2012 and 2013 data sets are included.

 

This implementation forms the basis of the following paper:

 

A fancier version with a user interface and much more configurability, which also uses a slightly different encoding, is found here:

 

An earlier, much more limited implementation is described in the following published workshop paper:

 

  • Evermann, J., Rehse, J.-R., and Fettke, P.: A Deep Learning Approach for Predicting Process Behaviour at Runtime. PRAISE International Workshop on Runtime Analysis of Process-Aware Information Systems at the 14th International Conference on Business Process Management (BPM). (accepted July 4, 2016).
  • Preprint (PDF)
  •  
  • Sources and data sets for the Workshop File(Zip file)
  •  

 

Implementing the Flexible Heuristic Miner on AWS Kinesis

These are the Java sources for an implementation of the Flexible Heuristic process mining algorithm using the AWS Kinesis event stream infrastructure. I have simply exported the Eclipse sources into a zip file.

 

This implementation is described in more detailed in the following working paper:

 

  • Evermann, J., Rehse, J.-R., and Fettke, P.: Process Discovery from Event Stream Data in the Cloud - A Scalable, Distributed Implementation of the Flexible Heuristics Miner on the Amazon Kinesis Cloud Infrastructure. CloudBPM Workshop on Business Process Monitoring and Performance Analysis in the Cloud at the 8th IEEE International Conference on Cloud Computing Technologies and Science (CloudCom 2016) . (accepted September 21, 2016).
  • Preprint (PDF)
  •  

 

Prediction from Structural Equation Models

These are the R scripts and raw results files for a study on prediction from structural equation models.

Specifically, the study used R version 3.1.2 and the following packages/versions:

This implementation is described in more detailed in the following paper:

 

 

Clustering Traces using Sequence Alignment

These are the Java sources for a trace clustering method that is based on local sequence alignment. I have simply exported the Eclipse sources into a zip file. It requires an installation of ProM 6.4 and R as these are called from the program.

 

This implementation is described in more detailed in the following paper:

 

 

Map-Reduce implementation of the Alpha and the FHM workflow discovery algorithm

This is a Java implementation of the alpha workflow discovery algorithm for the Map-Reduce framework. I have simply exported my Eclipse project into a zip file, so this should be easy to use. I have developed this for Hadoop 1.2, but it is a fairly basic Hadoop job, so should be able to run on pretty much any version.

 

This implementation is described in more detailed in the following papers:

 

  • Evermann, J.: Scalable Process Discovery using Map-Reduce IEEE Transactions on Services Computing, Accepted November 1st, 2014.
  • BibTeX
  •  
  • Preprint (PDF)
  •  
  • Full Paper (External Link)
  •  
  • Evermann, J. and Assadipour, G.: Big Data meets Process Mining: Implementing the Alpha Algorithm with Map-Reduce. ACM Symposium on Applied Computing, March 24-28, Gyeongju, Korea.
  • BibTeX
  •  
  • Full Paper (External Link)
  •  

 

Bayesian SEM

These models and analysis scripts were developed for a tutorial on Baysian Structural Equation Modeling. The scripts and models were developed for OpenBUGS, but should also be usable with WinBUGS and JAGS.

 

The tutorial is published in the following paper.

 

  • Evermann, J. and Tate, M. (2014) Bayesian Structural Equation Models for Cumulative Theory Building in Information Systems - A Brief Tutorial using BUGS and R. Communications of the Association for Information Systems, accepted January 13th, 2014.
  • BibTeX
  •  
  • Preprint (PDF)
  •  

I have also developed a tutorial for in-class presentation. The tutorial slides, materials and links to other resources for Bayesian SEM can be found here.

 

OpenERP integration for the YAWL workflow management system

As part of a teaching development project, I developed a codelet that allows using the OpenERP system from the YAWL workflow management system. The codelet was developed for OpenERP Version 6.1 and YAWL Version 2.3.5. It is not a mature implementation, but should be seen as a proof-of-concept. The codelet is a single Java class that should be compiled and installed in the appropriate place in the YAWL engine.

 

This implementation is officially described in the following published paper.

 

  • Evermann, J. (2013) Developing a Realistic Workflow Management Environment for Teaching: An Interface from YAWL to OpenERP. Proceedings of the YAWL User Group Symposium, St. Augustin, Germany, June 7th.
  • BibTeX
  •  
  • Full Paper (PDF)
  •  
  • Full Paper (External Link)
  •  

 

Schema Matching with SIAM

This is a Java implementation of the SIAM cognitive model of similarity. I have used this for demonstration of schema matching in relational databases. The zip file is an Eclipse export, and requires additionally log4j, postgresql JDBC library, and the simpack library.

 

This implementation is officially described in the following published paper:

 

  • Evermann, J. (2012) Applying Cognitive Principles of Similarity to Data Integration - The Case of SIAM. Proceedings of the 18th Americas Conference on Information Systems (AMCIS), Seattle, WA, August 2012.
  • BibTeX
  •  
  • Full Paper (PDF)
  •  
  • Full Paper (External Link)
  •  

 

Tutorial on covariance SEM

This is a tutorial on covariance-based SEM that I developed in 2007 and have presented at various conferences and universities around the world. It uses the lavaan package for R. The tutorial was last presented at the AMCIS conference in 2011 and last updated in 2012. I am no longer maintaining this tutorial, but feel free to use it for yourself or in your courses.

 

 

UML Profile for AspectJ

I have developed a UML profile for AspectJ. This allows the modelling of aspect-oriented Java software in UML and can be used for code generation. The profile was developed using the MagicDraw UML tool. Code generation is done using XSL Transforms (I have used the saxon processor for that, although others should work as well). The project was completed in 2007 and is no longer maintained. Thus, I have not idea whether this still works with a modern version of the UML tool set.

 

This implementation is officially described in the following published papers.

 

  • Evermann, J. (2007) A Meta-Level Specification and Profile for AspectJ in UML. Journal of Object Technology. Vol 6, No 7, Aug 2007.
  • BibTeX
  •  
  • Full Paper (External Link)
  •  
  • Evermann, J. (2007) A Meta-Level Specification and Profile for AspectJ in UML. Proceedings of the Workshop on Aspect Oriented Modeling (AOM) at AOSD 2007.
  • BibTeX
  •  
  • Full Paper (External Link)
  •  

 

Information Display Board for Process Tracing Studies

For some processing tracing studies a while back, I developed a simple tool to display images, and record answers to questions for experimental subjects. The tool also records audio, so that verbal protocol analyses can be done. The tool is configured using an XML file that specifies the images, questions, answer options, etc. The provided zip file is an Eclipse export. This is not maintained any longer, as the project for which it was developed has been completed.

 

This tool was used in research that has been published in these papers:

 

  • Evermann, J. (2008) An Exploratory Study of Database Integration Processes. IEEE Transactions on Knowledge and Data Engineering. Vol 20, No 1, Jan 2008, 99-115.
  • BibTeX
  •  
  • Full Paper (External Link)
  •  
  • Evermann, J. (2007) Sequence Analysis in Process Tracing. Proceedings of the Americas Conference on Information Systems (AMCIS), Keystone, CO, Aug 2007.
  • BibTeX
  •  
  • Full Paper (PDF)
  •  
  • Full Paper (External Link)
  •  

 

Property Binding with AspectJ

This was a little toy system I developed as a proof of concept implementation for a paper that argued that associations are not real and merely reflect past events that happened. Hence, in this system, events (interactions between objects) are collected, and can then be queried to see whether an association between the objects holds. The zip file is an Eclipse export that requires AspectJ. This is not maintained any longer, as the project for which it was developed has been completed.

 

More background on this implementation is provided in the following published paper:

 

  • Evermann, J. (2005) The Association Construct in Conceptual Modeling - An Analysis using the Bunge Ontological Model. In: Proceedings of the 17th International Conference on Advanced Information Systems Engineering, CAiSE 2005, Porto, Portugal, June 2005, 33-47.
  • BibTeX
  •  
  • Full Paper (External Link)
  •  

 

A UML and OWL Model of the BWW Ontology

This is a representation of the Bunge / BWW ontology in UML. It uses the MagicDraw toolkit (Version 15.0). I developed an XSL transformation to transform the XMI representation to OWL. This is not maintained any longer, as the project for which it was developed has been completed.

 

More background on this implementation is provided in the following published paper:

 

  • Evermann, J. A UML and OWL Description of Bunge's Upper-Level Ontology Model. Software and Systems Modeling. Vol 8, No 2, 235-249, February 2009.
  • BibTeX
  •  
  • Full Paper (External Link)
  •