Object-centric Process Mining Model

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search

This page describes functionality that hasn't fully been released.

QPR ProcessAnalyzer supports object-centric process mining models (OCPM) based on the OCEL 2.0 standard (https://www.ocel-standard.org).

Create OCPM model

New OCPM model is created as follows:

  1. In the Workspace, open the project where to created the model.
  2. Select "NEW" in top right menu and select "OCPM model"
  3. Define a name for the new model and click Create.

Configure OCPM model datatables

Datatables for the OCPM model can be configured as follows:

  1. In the Workspace, select the OCPM model and click Properties.
  2. In the dialog, open the Datasource tab.
  3. Add following kind of configuration to the textbox:
{
  "Objects": "ocpm_model - objects",
  "Events": "ocpm_model - events",
  "ObjectToObject": "ocpm_model - object-object",
  "EventToObject": "ocpm_model - event-object",
  "ObjectTypes": { 
    "Invoice": "ocpm_model - objecttype-Invoice", 
    "Payment": "ocpm_model - objecttype-Payment", 
    "Purchase Order": "ocpm_model - objecttype-Purchase Order", 
    "Purchase Requisition": "ocpm_model - objecttype-Purchase Requisition" 
  },
  "EventTypes": { 
    "Approve Purchase Requisition": "ocpm_model - eventtype-Approve Purchase Requisition", 
    "Change PO Quantity": "ocpm_model - eventtype-Change PO Quantity", 
    "Create Purchase Order": "ocpm_model - eventtype-Create Purchase Order", 
    "Create Purchase Requisition": "ocpm_model - eventtype-Create Purchase Requisition", 
    "Insert Invoice": "ocpm_model - eventtype-Insert Invoice", 
    "Insert Payment": "ocpm_model - eventtype-Insert Payment", 
    "Remove Payment Block": "ocpm_model - eventtype-Remove Payment Block", 
    "Set Payment Block": "ocpm_model - eventtype-Set Payment Block" 
  }
}

Import from OCEL file

OCPM model structure

OCPM model has the following tables:

Datatable Content Columns
Objects Objects in the model (one row per object).
  • OcelObjectId
  • OcelObjectType
Events Events in the model (one row per event).
  • OcelEventId
  • OcelEventType
  • OcelEventTime
Object-object relations Describes relations between objects and objects (one row per relation).
  • OcelObjectObjectSourceId
  • OcelObjectObjectTargetId
  • OcelObjectObjectQualifier
Event-object relations Describes relations between events and objects (one row per relation).
  • OcelEventObjectSourceId
  • OcelEventObjectTargetId
  • OcelEventObjectQualifier
Object attributes Object attribute values, each object type in a separate table (one row per object).
  • OcelObjectTypeObjectId
  • OcelObjectTypeTime
  • OcelObjectTypeChangedField
  • Other object type related fields
Event attributes Event attribute values, each event type in a separate table (one row per event).
  • OcelEventTypeEventId
  • Other event type related fields

Datatables can be named freely, but the column names are predefined.

OCPM Perspectives

Perspectives convert an OCPM model into the traditional case-centric model, allowing to analyze OCPM models in charts in dashboards. A single perspective is not able describe the OCPM model entirely, but just from a certain limited "perspective". By using several perspectives, it's possible to get a more complete picture of the OCPM model. The perspective starts from a certain object type and traverses the object-object relations as many steps as desired.

To define a perspective, the following settings are defined:

  • Object type: The object type that all events should be projected to.
  • Event types: An array of event type names whose attributes are to be included into the perspective. If not defined, all the event types will be included, but their type specific attributes are not included.
  • Number of relation steps: Specifies how many object-object relations will betraversed in order to find events connected to the specified object type. Default value is 0, which means that only those events are returned that are directly connected to objects of the specified object type.

Generates a projection where resulting rows, each representing one event, are mapped to objects of type "Payment". If an event in OCEL model is not connected to Payment-object, even after performing two iterations of searches via ObjectToObject-table rows), that event will not show up in the result.

The result will have the following columns: OcelEventId (primary key) OcelObjectId (primary key) OcelEventTime <all the object type specific columns found in Payment object type table> <all the event type specific columns found in all the 8 event types listed in EventTypes-property>

Differences to OCEL 2.0 standard

The OCPM models in QPR ProcessAnalyzer are mainly following the OCEL 2.0 standard, but there are the following exceptions:

  • Changing of object attributes values over time is not supported.
  • ocel_time field of each event type table is moved to events table as every event anyways has a timestemp.
  • *_map_type are not needed as the model settings are used for the same purpose.
  • Object type tables: If OcelObjectTypeChangedField is not null, all the other field values are copied from the previous entry having the same OcelObjectTypeObjectId, except:
    • OcelObjectTypeChangedField, which has the name(s) of the changed field(s) as comma separated string.
    • The actual changed field, which has the new value.
    • OcelObjectTypeTime, which has the timestamp when the value changed.