<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>PPINOT Computer and ppinot4py: Two Libraries to Compute Process Performance Indicators (Extended Abstract)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manuel Resinas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adela del-R´ıo-Ortega</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Ruiz-Corte´s</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>SCORE Lab, I3US Institute, Universidad de Sevilla</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <abstract>
        <p>-The ability to compute PPIs is of utmost importance for analyzing the performance of business processes. Most process mining tools support the computation of some types of PPI. However, in most cases they either just support a predefined set of metrics, which limits their usefulness in many scenarios, or the computation results are not designed to be used outside the tool platform and integrated with other tools or workflows. PPINOT Computer and ppinot4py are two libraries that were developed to overcome these limitations. Both libraries share the same approach to compute PPIs but serve two different purposes: one library has been designed to be integrated into custom solutions for process monitoring whereas the other has been designed to be part of data analysis and exploration workflows. The libraries have been successfully deployed in two different organizations and are used in several process management courses.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Process performance indicators (PPIs) are widely used as
a mechanism to manage the performance of processes and
provide essential information for decision making. PPIs are
quantifiable metrics that allow the evaluation of the efficiency
and effectiveness of business processes. They can be measured
using data generated within the process and are aimed at
process control and continuous optimisation [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Many process mining tools compute PPIs, especially those
related to time. However, they present two limitations. First,
in many cases, the PPIs are limited to a predefined set of
metrics like the cycle time of the process and the cycle time of
each activity. However, PPIs are domain specific and, in many
occasions, they do not focus on processes or activities alone,
but on process fragments [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. For instance, in an incident
management process, two typical PPIs are time-to-respond and
time-to-fix, which include activities from the moment when the
incident is registered to the moment when the user receives
the first response and the moment when the incident is fixed,
respectively. Second, commercial tools like Celonis do allow
the definition of custom PPIs, but they are difficult to use
outside their platform and to integrate them with other tools.
      </p>
      <sec id="sec-1-1">
        <title>In this demo1, we present two libraries that can be used</title>
        <p>to compute a wide variety of custom PPIs defined using
the PPINOT metamodel and can be easily integrated with</p>
        <p>This work has been partially supported by projects RTI2018-101204-B-C22
(MCI/AEI/FEDER, UE) and P18-FR-2895 (Junta de Andaluc´ıa/FEDER, UE).
1Video available at: https://www.youtube.com/watch?v=CK3KoKoeLHc
other tools and workflows. Next, we detail these features in</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Section II. Then, we detail their maturity in Section III. II. FEATURES</title>
      <sec id="sec-2-1">
        <title>PPINOT Computer2 and ppinot4py3 are two alternative</title>
        <p>implementations to compute PPIs that follow a similar
approach. First, the custom PPIs are specified following the</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>PPINOT Metamodel (cf. Fig. 1) and then, the libraries use</title>
      <p>this definition to compute them for an event log that can be
provided in different formats. Thus, the user can focus on what</p>
    </sec>
    <sec id="sec-4">
      <title>PPI she wants to define instead of how to compute it.</title>
    </sec>
    <sec id="sec-5">
      <title>The PPINOT Metamodel allows the definition of PPIs</title>
      <p>with an emphasis on how the PPI is computed. It supports
three types of measures. Base Measures are computed
for each case and can be divided into time, count or data
measures. Time Measures measure the time between two
TimeInstantConditions. It supports work schedules
and holidays, and mechanisms to handle situations where the
from and to conditions occur several times in the same
case by means of Cyclic time measures, which consider
pairs of occurrences and use an aggregationFunction
to combine them. Count Measures measure the number of
times a TimeInstantCondition occurs in a case. Data</p>
    </sec>
    <sec id="sec-6">
      <title>Measures are used to obtain the value of a case or event</title>
      <p>attribute. If the value changes throughout the case, one can
specify if we want the first value, last value or the value when
a precondition is met. Aggregated Measures are
used to aggregate the values of a MeasureDefinition
using an aggregationFunction like sum, or average.</p>
    </sec>
    <sec id="sec-7">
      <title>One can also apply a filter, and the result can be</title>
      <p>groupedBy one or more values. Filters and groups are
measures themselves. Finally, Derived Measures are used to
compute a new measure by combining several measures using
a function.</p>
      <p>
        The metamodel depicted in Fig. 1 is not exactly the one
described in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], but some adaptations were made based on the
experience of applying PPINOT Computer in several
organizations. Furthermore, the metamodel was originally designed to
model PPIs together with a process model. However, PPIs can
be defined without any process model by directly referencing
the elements of the event log from the Conditions.
      </p>
    </sec>
    <sec id="sec-8">
      <title>2https://github.com/isa-group/ppinot</title>
    </sec>
    <sec id="sec-9">
      <title>3https://github.com/isa-group/ppinot4py</title>
      <p>PPI
identifier : String
Process 1 relatedTo * ngoaamlse :: SSttrriinngg[0..*]
responsible: HumanResource
accountable: HumanResource
informed: HumanResource [0..*]
comments: String [0..1]
1 1..*
target scope
1
Target
1
ProcessInstanceFilter</p>
      <p>LastInstancesFilter
numberOfInstances : integer</p>
      <p>TimeFilter
period: Period
frequency : integer
absoluteStart : integer;
relative : boolean;
includeUnfinished: boolean;
until: DateTime
from: DateTime
referencePoint : DataMeasure
timeZone: DateTimeZone</p>
      <p>MeasureDefinition
1..*definition 1 id : String</p>
      <p>name : String
[1..*] description : String
unitOfMeasure: String
1 *
variables
baseMeasure groupedBy filter
BaseMeasure
DerivedMeasure
function : String</p>
      <p>AggregatedMeasure
aggregationFunction : String
includeUnfinished : boolean
periodReferencePoint : DataMeasure [0..1]
DataMeasure
isFirst: boolean
dataContentSelection : string</p>
      <p>TimeMeasure
timeMeasureType : {Lineal, Cyclic}
singleInstanceAggFunction : String
considerOnly : Schedule
computeUnfinished : boolean
CountMeasure
precondition
precondition
State
state
0..1 0..1</p>
      <p>Condition
appliesTo : {Case, Activity, Data}
from
when</p>
      <p>ComplexState
first : TimeInstantCondition
last : TimeInstantCondition
type : {LeadsTo, Follows}
DataObjectState
condition: String
RuntimeState
state: String
DataCondition
1 1 1
TimeInstantCondition</p>
    </sec>
    <sec id="sec-10">
      <title>Although both libraries follow the same approach to com</title>
      <p>pute PPIs, there are significant differences between them. The
most obvious is that PPINOT Computer is developed in Java,
whereas the ppinot4py is developed in Python. However,
the difference goes beyond the programming language used.
The Java library has been designed to be integrated into custom
solutions for process analytics and dashboard design. To this
end, it includes features like the ability to read the log from
different data sources including databases like ElasticSearch,
to load and save a collection of PPI definitions using a JSON
format, and to wrap the library in a REST API that can be used
in a microservices architecture. Furthermore, it supports the
processing of large event logs that do not fit in memory, either
by caching them in disk or by relying on external databases
like ElasticSearch. Instead, ppinot4py has been designed
to be part of more interactive data analysis and exploration
workflows using tools like Jupyter notebooks, data analytics
libraries like pandas, or process mining libraries like pm4py.</p>
    </sec>
    <sec id="sec-11">
      <title>It can also play a role in computing PPIs that can be used</title>
      <p>in predictive monitoring solutions developed in Python. For
this reason, it leverages well-established Python libraries like
pm4py to read the event log, and pandas to perform the
computations. By doing so, it makes it possible to extend its
functionalities with the capabilities provided by these libraries.</p>
    </sec>
    <sec id="sec-12">
      <title>III. MATURITY</title>
    </sec>
    <sec id="sec-13">
      <title>PPINOT Computer is a mature tool that has been success</title>
      <p>fully deployed in two organizations. In both cases, its role
is to compute the PPIs used to monitor the Service Level</p>
    </sec>
    <sec id="sec-14">
      <title>Agreements (SLAs) of external IT providers. Typical examples</title>
      <p>
        are the percentage of incidents solved in time, or the
percentage of incidents solved without identifying the root cause.
This monitoring was used to find inefficiencies and differences
between IT providers, and to check the fulfillment of the SLAs
and compute the penalties, if applicable. Therefore, the quality
of the PPI measurement was critical to avoid conflicts between
organizations. From a technical perspective, both deployments
followed a microservices architecture. A REST API that wraps
the library was implemented so that it can interact with the rest
of the services. The event log was provided by a MongoDB
server and the PPIs were defined using a JSON file. Besides
these two projects, PPINOT Computer has been successfully
used by students to define and compute PPIs in a process
management course for more than six years. It has also been
used by other researchers to add privacy to PPI values [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        ppinot4py shares the same foundation as PPINOT
Computer and its implementation learns from the experience
acquired after developing PPINOT Computer during several
years. However, its development is more recent and it does not
support the same full set of features yet. Despite this, it has
been successfully used in a performance management course
and to compute PPIs for automatic dashboard generation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>del-R´</surname>
          </string-name>
          ıo-Ortega,
          <string-name>
            <given-names>M.</given-names>
            <surname>Resinas</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s, “Business process performance measurement,” in Encyclopedia of Big Data Technologies</article-title>
          . Springer,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B.</given-names>
            <surname>Estrada-Torres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            .
            <surname>del-R´</surname>
          </string-name>
          ıo-Ortega,
          <string-name>
            <given-names>M.</given-names>
            <surname>Resinas</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s, “Modeling variability in the performance perspective of business processes</article-title>
          ,
          <source>” IEEE Access</source>
          , vol.
          <volume>9</volume>
          , pp.
          <volume>111</volume>
          <fpage>683</fpage>
          -
          <lpage>111</lpage>
          703,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>del-R´</surname>
          </string-name>
          ıo-Ortega,
          <string-name>
            <given-names>M.</given-names>
            <surname>Resinas</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Dura´n, B. Berna´rdez, A. RuizCorte´s, and M. Toro, “
          <article-title>Visual ppinot: A graphical notation for process performance indicators,”</article-title>
          <string-name>
            <surname>Bus. Inf. Syst. Eng.</surname>
          </string-name>
          , vol.
          <volume>61</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>137</fpage>
          -
          <lpage>161</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kabierski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Fahrenkrog-Petersen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Weidlich</surname>
          </string-name>
          , “
          <article-title>Privacyaware process performance indicators: Framework and release mechanisms</article-title>
          ,” in CAiSE,
          <year>2021</year>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>U</given-names>
            <surname>¨. Aksu</surname>
          </string-name>
          , A.
          <string-name>
            <surname>del-R´</surname>
            ıo-Ortega,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Resinas</surname>
            , and
            <given-names>H. A.</given-names>
          </string-name>
          <string-name>
            <surname>Reijers</surname>
          </string-name>
          , “
          <article-title>An approach for the automated generation of engaging dashboards,”</article-title>
          <source>in OTM Conferences</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>363</fpage>
          -
          <lpage>384</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>