Instructions

Log Generator - Instructions

 

 

The SCIFF Trace generator is an abductive logic program which takes as input a business process model (specified through procedural or declarative contraints) and generates as output synthetic logs containing positive and negative traces according to a set of specified generation options.

Quick start

Download and install SWI-Prolog from http://www.swi-prolog.org. Open the file AlpBPM.pl with SWI-Prolog.

You can execute a first generation example from a procedural business model by running:

?- procedural_example. 

The model used in this example is illustrated in Figure 1 of the paper "Generating synthetic positive and negative business process traces through abduction", sumbitted to Knowledge And Information Systems. Springer London. ISSN: 0219-1377 (Print) 0219-3116 (Online)

Alternatively, you can test the generation feature with the declarative business model in Figure 2:

?- declarative_example. 

The results of the generation can be found in the OUTPUT/ directory.

Run your own generation process

In order to run your generation process, you have to call the trace_generation_negatives/4 predicate, which takes the following parameters:

?- trace_generation_negatives( Model, ActivityList, FileNameForSavingTraces, Options ). 

The Options list allows to drive the execution process by specifying a list of desired constraints that the SCIFF proof procedure will fulfill while generating the traces. The accepted values in the list are:

  • procedural or declarative: to specify the nature of the business process. These options are alternative to each other, thus they cannot be both included in the list as the same time.
  • positives to generate positive traces only.
  • negatives to generate negative traces only. positives and negatives options can be specified at the same time in order to obtain a single output log with both positive and negative traces
  • output(xes) to obtain a XES formatted output log. If not specified, the output will be in the more concise but non-standard SCIFF format: t(TraceId,h(event(ActivityName),Timestamp)).
  • instances_for_each_path(X) when the model admits alternative paths (e.g., when a xor_split constraint is present), this option allows to specify the maximum number X of traces to be generated for each one of paths that are envisaged by the model.
  • trace_max_length(X) specifies the maximum number X of activities in each output trace.
  • time_limit(X) to limit the maximum timestamp of the generated traces and ultimately guarantee their termination. For example, time_limit(5) forces the SCIFF proof procedure to generate all the traces with activities occurred in the time interval [CurrentTime, CurrentTime + 5s]. If not specified, X is set to 100s by default.