<!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>jKarma: a Highly-Modular Framework for Pattern-Based Change Detection on Evolving Data (Discussion Paper)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Angelo Impedovo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Corrado Loglisci</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michelangelo Ceci</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Donato Malerba</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. of Computer Science, University of Bari "Aldo Moro"</institution>
          ,
          <addr-line>Bari</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Pattern-based change detection (PBCD) describes a class of change detection algorithms for evolving data. Contrary to conventional solutions, PBCD seeks changes exhibited by the patterns over time and therefore works on an abstract form of the data, which prevents the search for changes on the raw data. Moreover, PBCD provides arguments on the validity of the results because patterns mirror changes occurred with any form of evidence. However, the existing solutions differ on data representation, mining algorithm and change identification strategy, which we can deem as main modules of a general architecture, so that any PBCD task could be designed by accommodating custom implementations for those modules. This is what we propose in this paper through jKarma, a highly-modular framework for designing and performing PBCD.</p>
      </abstract>
      <kwd-group>
        <kwd>Change Detection</kwd>
        <kwd>Evolving Data</kwd>
        <kwd>Software Framework</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Pattern-based change detection (PBCD) refers to the class of change detection
solutions able to find out data-points in which the data distribution changes by
acting on the patterns rather than on raw data. Despite the attention it could
raise, we ascertain lacking in comprehensive environments able to investigate
the problem with alternative solutions or even with integrable implementations.
Its main peculiarity is working in an unsupervised fashion, without relying on
labeling, which often makes it preferable to the supervised approaches.</p>
      <p>
        The blueprint relies on three main methodological decisions, that is, data
description, pattern mining algorithm, and change identification strategy.
Pattern mining algorithms are in charge of building an abstract representation of
the evolving data (patterns). The change identification strategy is in charge of
Copyright © 2020 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0). This volume is published
and copyrighted by its editors. SEBD 2020, June 21-24, 2020, Villasimius, Italy.
searching for changes expressed by the patterns by the effect of possible
distribution drifts in the underlying data. In PBCDs, the changes correspond to
variations that occurred on the patterns discovered over time. While the
decision on which technique to use for the pattern mining and change identification
components determines the algorithmic aspects of a PBCD solution, the data
representation strictly concerns the formalism of the evolving data,
characteristics of the original data to consider and pattern language. For instance, the
PBCDs implemented in [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ] identify the changes through a generic notion of
Jaccard dissimilarity defined for three different types of patterns, that is, frequent
subnetworks, and -closed itemsets.
      </p>
      <p>
        Our purpose is to provide the users with a software framework that supports
the study of a predictive problem (change detection) through an unsupervised
data mining task (pattern mining) while disseminating existing PBCDs and
promoting the development of new ones. As our best knowledge, this is the first
solution that combines change detection and pattern mining, while they have
been explored as separate tasks in existing frameworks. For instance, MOA [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
has been designed to work on evolving data and offers algorithms that deal
with concept drift in predictive tasks. SPMF [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] presents several classes of
patterns (such as, sequential patterns and periodic patterns), but no one defined
for change detection. In this discussion paper, we accomplish this with jKarma,
a framework written in Java and proposed in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] which offers loosely coupled
modules, does not require programming efforts and enables the use of reusable,
off-the-shelf and ad-hoc implementations for algorithmic components.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Background and PBCD architecture</title>
      <p>In this section we provide preliminary notions and explain the conceptual
architecture under which PBCD solutions can be collocated. Given the set of items
I, a transactional database is the time-ordered sequence D = hT1; T2; : : : ; Tni.
Each Ti I is a transaction observed in ti and uniquely identified by id i. Thus,
a pattern P I is a set of jP j items, and, for PBCD purposes, they are
discovered from transactions in time windows. A window W = [ti; tj ], with ti &lt; tj , is
the sequence of jW j = j i + 1 transactions fTi; : : : ; Tj g D. PW denotes the
set of patterns discovered on the window W .</p>
      <p>In the blueprint of PBCD, the Mining step and the Identification step search
for change-points on evolving data by using Time-windows models. In particular,
two time-windows W and W 0, W = [tb; te] and W 0 = [t0b; t0e] (tb t0b te+1,
te &lt; t0e) are built (Figure 1, Step 2) and input to a pattern mining algorithm,
which discovers two pattern sets PW and PW 0 (Figure 1, Step 3). In these terms,
the changes are attributed to the patterns which make PW different from PW 0 . In
particular, we can determine the i) amount of the change through a
quantification of the difference between the two pattern sets, ii) temporal collocation of the
changes (change-points) as the time in which the difference-patterns occur
(Figure 1, Step 4). For this core procedure, jKarma offers a general architecture that
supports software modularity (Figure 1). It makes the decisions on the specific
start
1
new block
of data
2
7
6</p>
      <p>keep
old data
accumulate
new data</p>
      <p>drop
old data
3
5</p>
      <p>pattern
mining step</p>
      <p>change
explanation
step
change not
detected
4</p>
      <p>change
identification</p>
      <p>step
change
detected
implementation for Time-windows models, Mining step and Identification step
independent from each other. Indeed, the time-window models allow us to build
sub-sequences of data regardless of their original structure (such as, itemsets,
subgraphs, subtrees) and the choice of the specific model to use (such as,
sliding, landmark, tilted) is not constrained neither by pattern mining nor change
identification, since the time-windows are only in charge of to scan evolving data
and account for new (recent) transactions and old (past) transactions (Figure
1, Steps 2, 6 and 7). The sole assumption of jKarma is the the availability of
evolving data in the form of transactional databases.</p>
      <p>The Identification step (Figure 1, Step 4) is in charge of spotting variations
which the new pattern set PW 0 presents in comparison with the old pattern set
PW . To do that, jKarma makes available different implementations of
dissimilarity measures (such as Jaccard dissimilarity, etc.) defined on several notions of
evidence of the patterns (such as relative frequency, frequency ratio, periodicity,
etc.). Not all the dissimilarity values are worthwhile of interest, but only those
that exceed a desired degree of change, as well as, not all the patterns exhibit
a variation in the evidence, but only that exceed a desired degree of evidence.
This enables jKarma to provide "explanations" of the changes in the form of
patterns that better express the underlying changes (Figure 1, Step 5).
3</p>
    </sec>
    <sec id="sec-3">
      <title>Software Framework &amp; Functionalities</title>
      <p>jKarma is an open-source highly-modular framework written in Java 8 for
defining and executing custom PBCDs. The framework, publicly available under the
Apache License 2.0, exposes an API easing the rapid prototyping of custom
PBCD strategies, tailored for data coming from transactional data sources, by
implementing the general architecture seen in Section 2. Custom PBCDs are
inhttps://jkarma.bitbucket.io/
stantiated by composition, meaning that existing modules for the pattern
mining, change identification and change explanation steps can be combined to
design PBCDs ready to be used. Every PBCD defined with jKarma is completely
independent from other data mining and machine learning libraries, and
thirdparties data sources, thus offering two advantages, i) integrability with existing
projects using their data sources (such as, relational databases, graph databases,
xml documents), and ii) interoperability with existing analytics frameworks.</p>
      <p>The framework has been developed as a multi-module Maven project in which
two modules expose the APIs for defining custom pattern mining strategies
(jkarma-mining) and custom PBCDs pipelines on top of previously defined
pattern mining strategies (jkarma-pbcd). In particular, the main functionalities are
served by two main factory classes: i) org.jkarma.mining.structures.Strategies
constructs MiningStrategy objects implementing the pattern mining algorithm
to be used in the Mining step of the PBCD architecture,
ii) org.jkarma.pbcd.detectors.Detectors constructs PBCD objects
implementing the details of every step involved in the PBCD architecture.</p>
      <p>The expressiveness of the programming interface enables the modular design
of custom PBCD strategies. This is done by reusing existing software for the
(mining step and identification step) in the PBCD architecture. In the current
version, it is possible to devise PBCDs based on 5 pattern mining algorithms
(Eclat, diffEclat, LCM and LCM-Max, and PFPM), 3 pattern languages
(itemsets, subgraphs, subtrees), 4 time-window models (blockwise sliding/landmark,
cumulative sliding/landmark) and 2 search algorithms (depth-first search and
beam search). Furthermore, the API allows the user to implement his modules
when necessary.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Illustrative Examples</title>
      <p>In this section, we report some illustrative examples of how jKarma can be
used for building different PBCDs by following a component-based architectural
model. Specifically, in the following we will show how the user can specify the
details about the Mining step, the Detection step, and the Explanation step
in a two-step approach: the first step uses the Strategies class to define a
MiningStrategy object, while the second step injects it into a PBCD object via
the Detectors class. It is evident that the choices are domain-specific and affect
the behavior of the PBCDs, thus resulting in different change detection results.
4.1</p>
      <sec id="sec-4-1">
        <title>Definition of mining strategies</title>
        <p>The mining strategy is defined by instantiating a generic MiningStrategy&lt;A,B&gt;
object, hence by specifying the set of items (of type A), the pattern language,
the pattern evidence criterion (implemented in a class of type B), the mining
algorithm and the search strategy of patterns. Listing 1.1 shows the definition of a
mining strategy, based on the Eclat algorithm, which searches for connected
subgraphs. The pattern evidence criterion filters out frequent connected subgraphs
(FCSs) whose frequency is lower than the minimum threshold (minSupp). Eclat
computes the frequency of a pattern by inspecting its tidset, a data structure
collecting the identifiers of the transactions in which the pattern occurs.
public MiningStrategy &lt;LabeledEdge , TidSet &gt;
defineStrategy (double minSupp) {</p>
        <p>TidsetProvider &lt;LabeledEdge &gt; accessor = new TidsetProvider &lt;&gt;( Windows. blockwiseSliding ());
return Strategies. uponSubgraphs ().eclat(minSupp)</p>
        <p>.limitDepth (3).dfs(accessor);
}</p>
        <p>Listing 1.1: FCS mining strategy based on Eclat.</p>
        <p>The strategy, which is an object of type MiningStrategy &lt;LabeledEdge, TidSet&gt;,
is instantiated by the uponSubgraphs method that specifies the FCSs pattern
language. The eclat method injects the mining algorithm into the mining strategy,
while the limitDepth method limits the maximum number of edges in every FCS.
Then, an instance of type TidsetProvider &lt;LabeledEdge&gt; (accessor) scans the
transactions and build the tidsets. Finally, the dfs method finalizes the strategy
and forces the Eclat algorithm to run in a DFS fashion.</p>
        <p>
          An interesting aspect is that Eclat is used to mine FCSs, while natively
it is a frequent itemset mining algorithm. In fact, in jKarma the pattern
language is decoupled from the mining algorithm, so that equivalent strategies on
different languages (e.g.: itemsets and subtrees) can be defined. For instance,
the Eclat algorithm can be forced to discover frequent subtrees by replacing
the uponSubgraphs method with the uponSubtrees one. However, since both
the strategies are based on the Eclat algorithm, they will compute the
frequencies of patterns by intersecting TidSet objects. Although this is a good
choice on sparse datasets, it could be time-consuming for dense datasets [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ],
for which the diffEclat algorithm is more appropriate, since the frequency is
computed using DiffSet data structures. In jKarma, mining strategies based on
diffEclat are easily instantiated by i) invoking the diffEclat method instead of
the eclat method, and ii) replacing the TidsetProvider data accessor with a
DiffsetProvider. However, the main pitfall of the mining strategies discussed
so far is their exhaustiveness, which leads to the discovery of complete sets of
patterns. The exhaustive search is caused by the dfs method, which forces the
mining algorithm to work in exhaustive mode. jKarma can be used to define
non-exhaustive strategies based on beam-search and heuristics as done in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
4.2
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>Definition of PBCDs</title>
        <p>As introduced in Section 2, PBCD relies on the sets of patterns PW and PW 0 to
i) compute the dissimilarity score d(PW ; PW 0 ) and quantify the degree of change
and ii) arrange a change explanation. The dissimilarity score is computed on
two equally-sized vector encodings FW and FW 0 , in which the i-th element
corresponds to the weight associated with the i-th pattern in the enumeration of
PW [ PW 0 . This way, the change is quantified through vector measures, instead
of set-based ones. Different weighting schemes and vector encodings could
determine different change detection results.</p>
        <p>In jKarma, a PBCD pipeline is defined by injecting a MiningStrategy&lt;A,B&gt;
instance into a PBCD&lt;C,A,B,D&gt; object via the Detectors class. This ensures the
type-checking consistency between the patterns discovered in the mining step
and those used in the identification step. The generic type C specifies the type
of transactions that will be consumed by the PBCD, while the generic type D
denotes the pattern weighting scheme adopted. Finally, a PBCD is finalized by
providing details on the identification step and explanation step.</p>
        <p>In the following example, a PBCD is built by passing a MiningStrategy to
the upon method. Then, a binary weighting scheme and the Jaccard
dissimilarity measure are specified via the unweighted method. The PBCD will use
the isFrequent predicate when constructing the binary vector encodings, while
the UnweightedJaccard computes the dissimilarity score. This PBCD explains
changes by discovering emerging patterns via the Descriptors.eps method.
Finally, the PBCD is finalized with the build method which i) sets the minimum
change threshold to 0.5, and ii) arranges data in blocks of 15 transactions.
public PBCD &lt;LabeledGraph , LabeledEdge , TidSet , Boolean &gt;
buildPBCD(MiningStrategy &lt;LabeledEdge ,TidSet &gt; strategy) {</p>
        <p>UnweightedJaccard m = new UnweightedJaccard ();
return Detectors.upon(strategy)
.unweighted ((p,t)-&gt;Patterns.isFrequent(p, minFreq , t), m)
.describe(Descriptors.eps(minGr)).build (0.5, 15);
}
Listing 1.2: PBCD based on the unweighted jaccard dissimilarity between
binaryvalued vector encodings of patterns.
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>A complete example: the KARMA algorithm</title>
        <p>
          Detecting changes is particularly relevant for dynamic networked data, that is,
networks which evolve over time, for which no common notion of change exists.
In fact, different methods ascribe changes to variations in the observed nodes,
while others focus on edges or subgraphs observed over time, which leads to
clearly different results. Moreover, many proposed methods are not part of
existing software frameworks, which limits their versatility. Listing 1.3 reports a
complete example in which jKarma is used so as implementing the KARMA
PBCD algorithm presented in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], which detects changes in dynamic networks
by observing variations in the FCSs discovered over time. The example also
shows how users can react to changes, by following the event-listener paradigm:
the changeDetected method will be be executed in case of detected changes,
otherwise, the changeNotDetected method will be executed.
public PBCD &lt;LabeledGraph , LabeledEdge , TidSet , Boolean &gt;
getKARMA(double minSupp , double minChange , double minGr) {
// auxiliary components
TidSetProvider &lt;LabeledEdge &gt; dataAccessor = new
        </p>
        <p>TidSetProvider &lt;&gt;( Windows. cumulativeLandmark ());
UnweightedJaccard m = new UnweightedJaccard ();
Descriptor descriptor = Descriptors.partialEps(minSupp , minGr);
// mining strategy definition
MiningStrategy &lt;LabeledEdge , TidSet &gt; strategy = Strategies.uponSubgraphs ().eclat(minSupp)
https://bitbucket.org/jkarma/demo-karma-pbcd/
. limitDepth (3) . dfs ( dataAccessor );
// PBCD definition
return Detectors . upon ( strategy )
. unweighted ((p,t) -&gt; Patterns . isFrequent (p, minSupp , t), m)
. describe ( descriptor ). build ( minChange , 15) ;
}
}
public void runKARMA ( Stream &lt; LabeledGraph &gt; dataSource ) {</p>
        <p>PBCD &lt; LabeledGraph , LabeledEdge , TidSet , Boolean &gt; detector = this . getKarma (0.15 , 0.2 , 1.2) ;
// change detection event listening
detector . registerListener ( new PBCDEventListener &lt; LabeledEdge , TidSet &gt;() {
public void changeDetected (
ChangeDetectedEvent &lt; LabeledEdge , TidSet &gt; e){</p>
        <p>// reaction to change detected
}
public void changeNotDetected (
ChangeNotDetectedEvent &lt; LabeledEdge , TidSet &gt; e){</p>
        <p>// reaction to change not detected
}
});
// consume the data source
dataSource . forEach ( detector );</p>
        <p>
          Listing 1.3: Example of jKarma implementing the KARMA PBCD [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
Indeed, jKarma enables the users to detect changes in dynamic networks with
alternative approaches. The example shows how to instantiate the KARMA
algorithm, which is a good choice when the change has to be detected on subgraphs.
However, the solution could not be the best one when changes affects only some
attributes of nodes. To this end, jKarma can be used to rapid prototyping of
new algorithms in Java.
4.4
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>Comparative evaluation</title>
        <p>
          To show the effectiveness of jKarma in deploying actionable PBCDs, we compare
the detection accuracy and running times of four PBCD algorithms (KARMA,
PBCD-1, PBCD-2, and StreamKrimp) on three synthetic datasets with same
minimum frequency and change thresholds (equal to 0.5). Specifically, KARMA,
PBCD-1, and PBCD-2 have been implemented in jKarma. PBCD-1 and
PBCD2 are non-exhaustive variants of the exhaustive KARMA algorithm that make
use of the landmark window model and sliding window model, respectively.
While StreamKrimp [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is a non-exhaustive PBCD based on frequent itemsets
discovered according to the MDL principle. The results (Table 1) show that
non-exhaustive PBCDs (PBCD-1, PBCD-2, and StreamKrimp) are more
accurate than those exhaustive (KARMA). Although exhaustive, KARMA is more
efficient than StreamKrimp, which is not implemented with jKarma. Finally,
PBCD-1 offers the higher accuracy, while PBCD-2 has the lower running times.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>We have introduced jKarma, an highly-modular framework for defining and
executing customized pattern-based change detection approaches for evolving data,
https://bitbucket.org/jkarma/datasets</p>
      <p>
        dataset
in Java. jKarma enables the modular definition of custom PBCDs, with reduced
or none implementation efforts, by following a component-based architectural
model. The framework comes as a Java software library which is completely
independent of other data mining frameworks and existing data sources. As future
work, we plan to investigate the periodicity of the changes [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>We acknowledge the support of the MIUR - Ministero dell’Istruzione dell’Università e della Ricerca
through the project "TALIsMan - Tecnologie di Assistenza personALizzata per il Miglioramento
della quAlità della vitA" (Grant ID: ARS01_01116), funding scheme PON RI 2014-2020</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>C.</given-names>
            <surname>Loglisci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ceci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Impedovo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Malerba</surname>
          </string-name>
          ,
          <article-title>Mining microscopic and macroscopic changes in network data streams</article-title>
          ,
          <source>Knowl. Based Syst</source>
          .
          <volume>161</volume>
          (
          <year>2018</year>
          )
          <fpage>294</fpage>
          -
          <lpage>312</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.knosys.
          <year>2018</year>
          .
          <volume>07</volume>
          .011.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Trabold</surname>
          </string-name>
          , T. Horváth,
          <article-title>Mining strongly closed itemsets from data streams</article-title>
          ,
          <source>in: 20th International Conference, DS</source>
          <year>2017</year>
          , Kyoto,
          <year>2017</year>
          , pp.
          <fpage>251</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Bifet</surname>
          </string-name>
          , G. Holmes,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kirkby</surname>
          </string-name>
          ,
          <string-name>
            <surname>B. Pfahringer,</surname>
          </string-name>
          <article-title>MOA: massive online analysis</article-title>
          ,
          <source>J. Mach. Learn. Res</source>
          .
          <volume>11</volume>
          (
          <year>2010</year>
          )
          <fpage>1601</fpage>
          -
          <lpage>1604</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>P.</given-names>
            <surname>Fournier-Viger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gomariz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Gueniche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Soltani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Tseng</surname>
          </string-name>
          ,
          <article-title>SPMF: a java open-source pattern mining library</article-title>
          ,
          <source>J. Mach. Learn. Res</source>
          .
          <volume>15</volume>
          (
          <issue>1</issue>
          ) (
          <year>2014</year>
          )
          <fpage>3389</fpage>
          -
          <lpage>3393</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Impedovo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Loglisci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ceci</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Malerba, jkarma: A highly-modular framework for pattern-based change detection on evolving data</article-title>
          ,
          <source>Knowl. Based Syst</source>
          .
          <volume>192</volume>
          (
          <year>2020</year>
          )
          <article-title>105303</article-title>
          . doi:
          <volume>10</volume>
          .1016/j.knosys.
          <year>2019</year>
          .
          <volume>105303</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>M. J. Zaki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Gouda</surname>
          </string-name>
          ,
          <article-title>Fast vertical mining using diffsets</article-title>
          ,
          <source>in: Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining</source>
          , Washington, USA,
          <year>2003</year>
          , pp.
          <fpage>326</fpage>
          -
          <lpage>335</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Impedovo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ceci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Calders</surname>
          </string-name>
          ,
          <article-title>Efficient and accurate non-exhaustive patternbased change detection in dynamic networks</article-title>
          ,
          <source>in: Discovery Science - 22nd International Conference, DS</source>
          <year>2019</year>
          , Split, Croatia, October
          <volume>28</volume>
          -30, Proceedings,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>M. van Leeuwen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Siebes</surname>
          </string-name>
          , Streamkrimp:
          <article-title>Detecting change in data streams</article-title>
          , in: ECML/PKDD 2008,
          <article-title>Belgium 2008</article-title>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , pp.
          <fpage>672</fpage>
          -
          <lpage>687</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>C.</given-names>
            <surname>Loglisci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ceci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Impedovo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Malerba</surname>
          </string-name>
          ,
          <article-title>Mining spatio-temporal patterns of periodic changes in climate data</article-title>
          ,
          <source>in: 5th International Workshop</source>
          , NFMCP 2016,
          <article-title>Held in Conjunction with ECML-PKDD 2016</article-title>
          , Italy,
          <year>2016</year>
          , Revised Selected Papers, pp.
          <fpage>198</fpage>
          -
          <lpage>212</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -61461-8_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>