Giter VIP home page Giter VIP logo

plg's Introduction

Processes and Logs Generator

Process Log Generator is a application capable to generate random business processes, starting from some general "complexity paramenters". PLG is also able to "execute" a given process model in order to generate a process log.

This software is designed to help researchers in the construction of a large set of processes and corresponding execution logs. This software is released with a small library which could help in the programmatical creation of processes.

More information at the project home page http://plg.processmining.it/.

Attention: this repository is a complete rewriting of the project already available at: https://github.com/delas/plg-old.

Untitled

Main features

  • Random process generation, with different complexity parameters
  • Random process evolution (to generate slight variations of existing processes)
  • Configuration of time for activities duration and time between activities (via Python scripts)
  • Generation of static/dynamic data objects for multi-perspective event log generation (via Python scripts)
  • Import of process from
    • PLG file format
    • BPMN files (generated from SAP Signavio)
  • Export of generated processes as
    • PLG file format
    • BPMN 2.0 XML file
    • BPMN as Graphviz Dot file
    • Petri net as Graphviz Dot file
    • Petri net as LoLA file
    • Petri net as PNML file
    • Petri net as TPN file
  • Generation of an event log with any number of traces
  • Fine-tuned configuration of noise parameters for event log generation
  • Export of the generated event log as
    • XES file (both compressed as .xes.gz and not compressed as .xes)
    • MXML file (both compressed as .mxml.gz and not compressed as .mxml)
  • Generation of an infinite stream of events
  • Event streams generated as MQTT-XES format (cf. https://www.beamline.cloud/mqtt-xes/)
  • Ability to dynamically switch the process generting the events (to simulate concept drift in streams)
  • Generation of noise into the stream

Help

  • Visit the Wiki for all information. Useful quick documentation:
  • How to specify Data Objects to generate multiperspectives logs
  • How to work with times in PLG

Libraries

PLG makes use of the following libraries:

Citation

Please, cite this work as:

Other relevant publications:

plg's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plg's Issues

Investigate possible issue with process generation

Received this possible bug via email:

when using the API I encountered a rare exception that sometimes triggers when generating large amounts of models. It's a NullPointerException in file ProcessGenerator.java (line 229). By the looks of the file it had to do with Data Object generation, I disabled it and the exception went away. I don't know if it has to do with what you just told us (the BPMN exporter not handling data objects very well) or it's something else. I thought you might be interested in knowing.

Right-click button doesn't work

I downloaded the v2.0.6 .jar file from the link https://plg.processmining.it/. And I'm able to generate a new process. However, when I press the right-click button, for some reason I don't see the menu displayed as in the demo video available in the web site. Does anyone know what can be happening?

image

exported log file is empty

Hi, I'm trying to generate a log from a process. I can see that the generation starts and a file is created but is empty (even though the progress bar has completed). Am I missing something or is this a bug?

image

Generating log with non-local dependencies

Hi I have been using the PLG2 tool to generate event logs and it has been great to use, so THANKS!

Currently I am trying to incorporate non-local dependencies into the event log by writing attributes to an external file and then reading them later on in the process. The files are getting written but towards the middle of the log generation errors are getting thrown on the StringScriptExecutor. I suspect it has something to do with my writing to an external file but I am not sure.

Are there any ways to incorporate non-local dependencies into the log generation? I would appreciate any help or pointers.

plg.generator.scriptexecuter.StringScriptExecutor.getValue(StringScriptExecutor.java:26)
plg.generator.scriptexecuter.StringScriptExecutor.getValue(StringScriptExecutor.java:1)
plg.model.data.GeneratedDataObject.generateInstance(GeneratedDataObject.java:55)
plg.generator.log.TraceGenerator.recordEventAttributes(TraceGenerator.java:296)
plg.generator.log.TraceGenerator.recordEventExecution(TraceGenerator.java:271)
plg.generator.log.TraceGenerator.processFlowObject(TraceGenerator.java:137)
plg.generator.log.TraceGenerator.processFlowObject(TraceGenerator.java:187)
plg.generator.log.TraceGenerator.processFlowObject(TraceGenerator.java:187)
plg.generator.log.TraceGenerator.processFlowObject(TraceGenerator.java:187)
plg.generator.log.TraceGenerator.runWithException(TraceGenerator.java:96)
plg.generator.log.TraceGenerator.runWithException(TraceGenerator.java:1)
plg.generator.engine.ThreadWithException.run(ThreadWithException.java:56)

String data object to record cases that have been executed "online".

from __future__ import with_statement
from random import randrange

# This Python script is called for the generation of the string data
# object. Note that the parameter of this function is the actual case
# id of the ongoing simulation (you can use this value to customize
# your data object). The function name has to be "generate".

def generate(caseId):
    with open("app_method_online.txt", 'a') as f:
        print >> f, caseId
    return "online"

Images causing IllegalArgumentException

I recently downloaded PLG as it would be very helpful for a project but couldn't run it. At first, I tried the .exe version, which prompted me to download java (already installed). I then, tried the JAR, which crashed before opening, accusing IllegalArgumentException: input == null in MainToolbar.java line 24.

After building the JAR from the source code myself, I noticed that all lines of code that load/set icons/images are causing this error.

Can it maybe be an issue of the JRE version I am running? (most recent)

Thanks!

Right Click on Activity causes exception.

I wanted to add an activity time using the python script. As soon as I press right click on the activity an exception is thrown and thus does not open the context menu. This bug occurs for me both in java 8 and java 11 (the current versions can be seen in the screenshots below).

grafik

grafik

I was able to fix this bug locally for me by changing the load image behavior in the ImageUtils class of the libPlgVisualizer project.

Therefore I changed the line:

return new ImageIcon(ImageIO.read(ClassLoader.getSystemResource(imageFile)));

to:

return new ImageIcon(ImageIO.read(ImageUtils.class.getResource(imageFile)));

Save all models

When several models are on the workspace, it would be nice to have a "save all" function, instead of repeating the operation for each of them.

Add probability as branches conditions

For simulation purposes, add probabilities to conditions exiting XOR gateways. By using conditions, it should be easy to model them via BPMN as well as in PLG.

Configuration sliders

Show the configuration value next to each slider.
Also, apparently, for "data attributes" the configuration is not saved.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.