<!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>An Innovative Framework for Combining Set Similarity Join Algorithms and Clustering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Leonardo Andrade Ribeiro</string-name>
          <email>laribeiro@inf.ufg.br</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alfredo Cuzzocrea</string-name>
          <email>alfredo.cuzzocrea@dia.units.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Karen Aline Alves Bezerra</string-name>
          <email>karen.bezerra@posgrad.ufla.br</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ben Hur Bahia do Nascimento</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Massimiliano Nolich</string-name>
          <email>mnolich@units.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DIA Department, University of Trieste and ICAR-CNR</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Departmento de Cieˆncia da Computac ̧a ̃o, Universidade Federal de Lavras</institution>
          ,
          <addr-line>Lavras</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Instituto de Informa ́tica, Universidade Federal de Goia ́s</institution>
          ,
          <addr-line>Goiaˆnia, Goia ́s</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>24</fpage>
      <lpage>27</lpage>
      <abstract>
        <p>Centered around the data cleaning and integration research area, in this paper we propose SjClust, a framework to integrate similarity join and clustering into a single operation. The basic idea of our proposal consists in introducing a variety of cluster representations that are smoothly merged during the set similarity task, carried out by the join algorithm. An optimization task is further applied on top of such framework. The framework exposes a wide number of application scenarios where it can be used effectively and efficiently.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Data cleaning and integration (e.g., [
        <xref ref-type="bibr" rid="ref11 ref5">11, 5</xref>
        ]) found on duplicate record identification (e.g.,
[
        <xref ref-type="bibr" rid="ref20 ref6">6, 20</xref>
        ]), which aims at detecting duplicate records that represent the same real-world entity.
This is becoming more and more relevant in emerging big data research (e.g., [
        <xref ref-type="bibr" rid="ref10 ref18 ref21">21, 10, 18</xref>
        ]),
as a plethora of real-life applications are characterized by the presence of multiple records
representing the same real-world entity, which practically plagues every large database. Such
records are often referred to as fuzzy duplicates (duplicates, for short), because they might
not be exact copies of one another. Duplicates arise due to a variety of reasons, such as
typographical errors and misspellings, different naming conventions, and as a result of the
integration of data sources storing overlapping information.
      </p>
      <p>Duplicates degrade the quality of the data delivered to application programs, thereby
leading to a myriad of problems. Some examples are misleading data mining models owing to
erroneously inflated statistics, inability of correlating information related to a same entity, and
unnecessarily repeated operations, e.g., mailing, billing, and leasing of equipment. Duplicate
identification is thus of crucial importance in data cleaning and integration.</p>
      <p>
        Duplicate identification is computationally very expensive and, therefore, typically done
offline. However, there exist important application scenarios that demand (near) real-time
identification of duplicates. Prominent examples are data exploration [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], where new
knowledge has to be efficiently extracted from databases without a clear definition of the
information need, and virtual data integration [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], where the integrated data is not materialized
and duplicates in the query result assembled from multiple data sources have to be
identified — and eliminated — on-the-fly. Such scenarios have fueled the desire to integrate
duplicate identification with processing of complex queries [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] or even as a general-purpose
physical operator within a DBMS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        An approach to realize the above endeavor is to employ similarity join in concert with
a clustering algorithm [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Specifically, similarity join is used to find all pairs of records
whose similarity is not less than a specified threshold; the similarity between two records is
determined by a similarity function. In a post-processing step, the clustering algorithm groups
together records using the similarity join results as input. For data of string type, set similarity
join is an appealing choice for composing a duplicate identification operator. Set similarity
join views its operands as sets — strings can be easily mapped to sets. The corresponding
similarity function assesses the similarity between two sets in terms of their overlap and a
rich variety of similarity notions can be expressed in this way [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Furthermore, a number
of optimization techniques have been proposed over the years [
        <xref ref-type="bibr" rid="ref14 ref15 ref19 ref2 ref20 ref4">15, 4, 2, 20, 14, 19</xref>
        ] yielding
highly efficient and scalable algorithms.
      </p>
      <p>
        The strategy of using a clustering algorithm strictly for post-processing the results of set
similarity join has two serious drawbacks, however. First, given a group of n, sufficiently
similar, duplicates, the set similarity join performs 2n similarity calculations to return the
same number of set pairs. While this is the expected behavior considering a similarity join
in isolation, it also means that repeated computations are being performed over identical
subsets. Even worse, we may have to perform much more additional similarity calculations
between non-duplicates: low threshold values are typically required for clustering algorithms
to produce accurate results [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Existing filtering techniques are not effective at low threshold
values and, thus, there is an explosion of the number of the comparisons at such values.
Second, the clustering is a blocking operator in our context, i.e., it has to consume all the
similarity join output before producing any cluster of duplicates as result element. This fact is
particularly undesirable when duplicate identification is part of more complex data processing
logic, possibly even with human interaction, because it prevents pipelined execution.
      </p>
      <p>
        In this paper, we propose SjClust, a framework to integrate set similarity join and
clustering into a single operation, which addresses the above issues. The main idea behind our
framework is to represent groups of similar sets by a cluster representative, which is
incrementally updated during the set similarity join processing. Besides effectively reducing the
number similarity calculations needed to produce a cluster of n sets to O (n), we are able
to fully leverage state-of-the-art optimization techniques at high threshold values, while still
performing well at low threshold values where such techniques are much less effective.
Indeed, the resulting composed algorithm is even up to an order of magnitude faster than the
original set similarity join algorithm for low threshold values. Moreover, we exploit set size
information to identify when no new set can be added to a cluster; therefore, we can then
immediately output this cluster and, thus, avoid the blocking behavior. Furthermore, there
exists a plethora of clustering algorithms suitable for duplicate identification and no single
algorithm is overall the best across all scenarios [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Thus, versatility in supporting a variety
of clustering methods is essential. Our framework smoothly accommodates various cluster
representation and merging strategies, thereby yielding different clustering methods for each
combination thereof.
      </p>
      <p>
        This paper is the short version of the papers [
        <xref ref-type="bibr" rid="ref12 ref13">13, 12</xref>
        ], where we present the main results
of our research.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Fundamental Concepts and Background Knowledge</title>
      <p>ncepts and definitions related to set similarity joins before present important optmization
techniques. Then, we describe a general set similarity join algorithm, which provides the
basis for our framework.
2.1</p>
      <sec id="sec-2-1">
        <title>Basic Concepts and Definitions</title>
        <p>We map strings to sets of tokens using the popular concept of q-grams, i.e., sub-strings of
length q obtained by “sliding” a window over the characters of an input string v. We
(conceptually) extend v by prefixing and suffixing it with q 1 occurrences of a special character
“$” not appearing in any string. Thus, all characters of v participate in exact q q-grams. For
example, the string “token” can be mapped to the set of 2-gram tokens f$t, to, ok, ke, en,
n$ g. As the result can be a multi-set, we simply append the symbol of a sequential ordinal
number to each occurrence of a token to convert multi-sets into sets, e.g, the multi-set fa,b,bg
is converted to fa 1, b 1, b 2g. In the following, we assume that all strings in the database
have already been mapped to sets.</p>
        <p>We associate a weight with each token to obtain weighted sets. A widely adopted
weighting scheme is the Inverse Document Frequency (IDF), which associates a weight idf (tk) to
a token tk as follows: idf (tk)=ln (1 + N=df (tk)), where df (tk) is the document frequency,
i.e., the number of strings a token tk appears in a database of N strings. The intuition behind
using IDF is that rare tokens are more discriminative and thus more important for similarity
assessment. The weight of a set r, denoted by w (r), is given by the weight summation of its
tokens, i.e., w (r) = åtk2r w (tk).</p>
        <p>We consider the general class of set similarity functions. Given two sets r and s, a set
similarity function sim (r; s) returns a value in [0; 1] to represent their similarity; larger value
indicates that r and s have higher similarity. Popular set similarity functions are defined as
follows.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 1 (Set Similarity Functions). Let r and s be two sets. We have:</title>
        <p>– Jaccard similarity: J (r; s) = ww((rr\[ss)) .
– Dice similarity: D (r; s) = w2(rw)(+r\ws(s)) .
w(r\s)
– Cosine similarity: C (r; s) = pw(r) w(s)</p>
        <sec id="sec-2-2-1">
          <title>We now formally define the set similarity join operation.</title>
          <p>Definition 2 (Set Similarity Join). Given two set collections R and S , a set similarity
function sim, and a threshold t, the set similarity join between R and S returns all scored set
pairs h(r; s); t0i s.t. (r; s) 2 R S and sim (r; s) = t0 t.</p>
          <p>In this paper, we focus on self-join, i.e., R = S ; we discuss the extension for binary inputs
in Section 2.3. For brevity, we use henceforth the term similarity function (join) to mean set
similarity function (join). Further, we focus on the Jaccard similarity and the IDF weighting
scheme, i.e., unless stated otherwise, sim (r; s) and w (tk) denotes J (r; s) and idf (tk),
respectively.</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>Example 1. Consider the sets r and s below</title>
          <p>r = fA; B;C; D; Eg
s = fA; B; D; E; F g
and the following token-IDF association table:</p>
          <p>tk
idf (tk)</p>
          <p>A
1.5</p>
          <p>B
2.5</p>
          <p>C
2</p>
          <p>D
3.5</p>
          <p>E
0.5</p>
          <p>F
2
8
Thus, we have w (r) = w (s) = 10 and w (r \ s) = 8; thus sim (r; s) = 10+10 8
0:66.
2.2</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Optimization Techniques</title>
        <p>
          Similarity functions can be equivalently represented in terms of an overlap bound [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
Formally, the overlap bound between two sets r and s, denoted by O (r; s), is a function that maps
a threshold t and the set weights to a real value, s.t. sim (r; s) t iff w (r \ s) O (r; s). The
similarity join can then be reduced to the problem of identifying all pairs r and s whose
overt
lap is not less than O (r; s). For the Jaccard similarity, we have O (r; s) = 1+t (w (r) + w (s)).
        </p>
        <p>
          Further, similar sets have, in general, roughly similar weights. We can derive bounds for
immediate pruning of candidate pairs whose weights differ enough. Formally, the weight
bounds of r, denoted by min (r) and max (r), are functions that map t and w (r) to a real value
s.t. 8s, if sim (r; s) t, then min (r) w (s) max (r) [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Thus, given a set r, we can safely
ignore all other sets whose weights do not fall within the interval [min (r) ; max (r)]. For the
Jaccard similarity, we have [min (r) ; max (r)] = ht w (r) ; w(tr) i. We refer the reader to [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]
for definitions of overlap and weight bounds of several other similarity functions, including
Dice and Cosine.
        </p>
        <p>
          We can prune a large share of the comparison space by exploiting the prefix filtering
principle [
          <xref ref-type="bibr" rid="ref15 ref4">15, 4</xref>
          ], which allows discarding candidate pairs by examining only a fraction of the
input sets. We first fix a global order O on the universe U from which all tokens are drawn. A
set r0 r is a prefix of r if r0 contains the first jr0j tokens of r. Further, prefb (r) is the shortest
prefix of r, the weights of whose tokens add up to more than b. The prefix filtering principle
is defined as follows.
        </p>
        <p>
          Definition 3 (Prefix Filtering Principle [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]). Let r and s be two sets. If w (r \ s)
prefbr (r) \ prefbs (r) 6= ?, where br = w (r) a and bs = w (s) a, respectively.
a, then
        </p>
        <p>
          We can identify all candidate matches of a given set r using the prefix prefb (r), where
b = w (r) min (r). We denote this prefix simply by pref (r). It is possible to derive smaller
prefixes for r, and thus obtain more pruning power, when we have information about the set
weight of the candidate sets, i.e., if w (s) w (r) [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] or w (s) &gt; w (r) [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Note that prefix
overlap is a condition necessary, but not sufficient to satisfy the original overlap constraint:
an additional verification must be performed on the candidate pairs. Finally, the number of
candidates can be significantly reduced by using the inverse document frequency ordering,
Oid f , as global token order to obtain sets ordered by decreasing IDF weight . The idea is
to minimize the number of sets agreeing on prefix elements and, in turn, candidate pairs by
        </p>
        <sec id="sec-2-3-1">
          <title>For ease of notation, the parameter t is omitted.</title>
          <p>A secondary ordering is used to break ties consistently (e.g., the lexicographic ordering).
shifting lower frequency tokens to the prefix positions — recall that higher IDF weights are
associated to low-frequency tokens.</p>
          <p>Example 2. Consider the sets r and s in Example 1 and t = 0:6. We have O (r; s) = 7:5;
[min (r) ; max (r)] and [min (s) ; max (s)] are both [6; 16:7]. By ordering r and s according to
Oid f and the IDF weights in Example 1, we obtain:
r = [D; B;C; A; E]
s = [D; B; F; A; E]:</p>
          <p>We have pref (r) = pref (s) = [D].
2.3</p>
        </sec>
      </sec>
      <sec id="sec-2-4">
        <title>Similarity Join Algorithms: Definitions and Usage</title>
        <p>
          Similarity join algorithms based on inverted lists are effective in exploiting the previous
optimizations [
          <xref ref-type="bibr" rid="ref14 ref15 ref2 ref20">15, 2, 20, 14</xref>
          ]. Most of such algorithms have a common high-level structure
following a filter-and-refine approach.
        </p>
        <p>
          Algorithm 1 formalizes the steps of a similarity join algorithm. The algorithm receives
as input a set collection sorted in increasing order of set weights, where each set is sorted
according to Oid f . An inverted list It stores all sets containing a token t in their prefix. The
input collection R is scanned and, for each probe set r, its prefix tokens are used to find
candidate sets in the corresponding inverted lists (lines 4–10); this is the candidate generation
phase, where the map M is used to associate candidates to its accumulated overlap score os
(line 3). Each candidate s is dynamically removed from the inverted list if its weight is less
than min (r) (lines 6–7). Further filters, e.g., filter based on overlap bound, are used to check
whether s can be a true match for r, and then the overlap score is accumulated, or not, and
s can be safely ignored in the following processing (lines 8–10). In the verification phase,
r and its matching candidates, which are stored in M, are checked against the similarity
predicate and those pairs satisfying the predicate are added to the result set. To this end, the
Verify procedure (not shown) employs a merge-join-based algorithm exploiting token order
and the overlap bound to define break conditions (line 11)[
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Finally, in the indexing phase,
a pointer to set r is appended to each inverted list It associated with its prefix tokens (lines 12
and 13).
        </p>
        <p>
          Algorithm 1 is actually a self-join. Its extension to binary joins is trivial: we first index
the smaller collection and then go through the larger collection to identify matching pairs.
For simplicity, several filtering strategies such positional filtering [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] and min-prefixes [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ],
as well as inverted list reduction techniques [
          <xref ref-type="bibr" rid="ref14 ref2">2, 14</xref>
          ] were omitted. Nevertheless, these
optimizations are based on bounds and prefixes and, therefore, our discussion in the following
remains valid.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Our Proposal: The Innovative SjClust Framework</title>
      <p>We now present SjClust, a general framework to integrate clustering methods into similarity
joins algorithms. The goals of our framework are threefold: 1) flexibility and extensibility by
accommodating different clustering methods; 2) efficiency by fully leveraging existing
optimization techniques and by reducing the number of similarity computations to form clusters;
3) non-blocking behavior by producing results before having consumed all the input,
preferably much earlier.</p>
      <p>Algorithm 1: Similarity join algorithm</p>
      <p>The backbone of SjClust is the similarity join algorithm presented in Section 2. In
particular, SjClust operates over the same input of sorted sets, without requiring any pre-processing,
and has the three execution phases present in Algorithm 1, namely, candidate generation,
verification, and indexing phases. Nevertheless, there are, of course, major differences.</p>
      <p>First and foremost, the main objects are now cluster of sets, or simply clusters. Figure 1
illustrates strategy adopted for cluster representation. The internal representation contains a
list of its set element’s ids, an (optional) auxiliary structure, and the cluster’s complete
representation, a set containing all tokens from all set elements. A cluster exports its external
representation as the so-called cluster representative (or simply representative) (Figure 1(a)).
Representatives are fully comparable to input sets and similarity evaluations are always
performed on the representatives, either between a probe set and a cluster or between two clusters
(Figure 1(b)). In the following, we use the term cluster and representative interchangeably
whenever the distinction is unimportant for the discussion.</p>
      <p>Figure 2 depicts more details on the SjClust framework. In the candidate generation phase,
prefix tokens of the current probe set are used to find cluster candidates in the inverted lists
(Figure 2(a)). Also, there is a merging phase between verification and indexing phases (Figure
(a) Candidate generation.</p>
      <p>(b) SjClust course of evaluation.
2(b)). The verification phase reduces the number of candidates by removing false positives,
i.e., clusters whose similarity to the probe set is less than the specified threshold. In the
merging phase, a new cluster is generated from the probing set and the clusters that passed
through the verification are considered for merging with it according to a merging strategy.
In the indexing phase, references to the newly generated cluster are stored in the inverted
lists associated with its prefix tokens. Finally, there is the so-called Output Manager, which
is responsible for maintaining references to all clusters —a reference to a cluster is added to
the Output Manager right after its generation in the merging phase (Figure 2(b)). Further, the
Output Manager sends a cluster to the output as soon as it is identified that no new probing
set can be similar to this cluster. Clusters in such situation can be found in the inverted lists
during the candidate generation (Figure 2(a)) as well as identified using the weight of the
probe set (not shown in Figure 2).</p>
      <p>The aforementioned goals of SjClust are met as follows: flexibility and extensibility are
provided by different combinations of cluster representation and merging strategies, which
can be independently and transparently plugged into the main algorithm; efficiency is
obtained by the general strategy to cluster representation and indexing; and non-blocking
behavior is ensured by the Output Manager. Next, we provide details of each SjClust component.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions and Future Work</title>
      <p>
        In this paper, we presented SjClust, a framework to integrate clustering into set similarity
join algorithms. We demonstrated the flexibility of SjClust in incorporating different
clustering methods by proposing several cluster representation and merging strategies. SjClust is
an order of magnitude faster than the original set similarity join algorithm for lower
thresholds, which are often needed in practice to obtain accurate results in duplicate identification.
Furthermore, our proposal produces results earlier, thereby avoiding blocking behavior. We
described SjClust and its main components in detail. Future work is mainly oriented towards
enriching our framework with advanced features such as uncertain data management (e.g.,
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]), adaptiveness (e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]), and execution time prediction (e.g, [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]).
      </p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <p>This research was partially supported by the Brazilian agencies CNPq and CAPES.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Hotham</given-names>
            <surname>Altwaijry</surname>
          </string-name>
          , Sharad Mehrotra, and
          <string-name>
            <surname>Dmitri</surname>
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Kalashnikov</surname>
          </string-name>
          .
          <article-title>Query: A framework for integrating entity resolution with query processing</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):
          <fpage>120</fpage>
          -
          <lpage>131</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Roberto</surname>
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Bayardo</surname>
            , Yiming Ma, and
            <given-names>Ramakrishnan</given-names>
          </string-name>
          <string-name>
            <surname>Srikant</surname>
          </string-name>
          .
          <article-title>Scaling up all pairs similarity search</article-title>
          .
          <source>In Proc. of the WWW Conference</source>
          , pages
          <fpage>131</fpage>
          -
          <lpage>140</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Mario</given-names>
            <surname>Cannataro</surname>
          </string-name>
          , Alfredo Cuzzocrea, Carlo Mastroianni, Riccardo Ortale, and
          <string-name>
            <given-names>Andrea</given-names>
            <surname>Pugliese</surname>
          </string-name>
          .
          <article-title>Modeling adaptive hypermedia with an object-oriented approach and xml</article-title>
          .
          <source>WebDyn</source>
          <year>2002</year>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Surajit</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          , Venkatesh Ganti, and
          <string-name>
            <given-names>Raghav</given-names>
            <surname>Kaushik</surname>
          </string-name>
          .
          <article-title>A primitive operator for similarity joins in data cleaning</article-title>
          .
          <source>In Proc. of the 22nd Intl. Conf. on Data Engineering, page 5</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>AnHai</given-names>
            <surname>Doan</surname>
          </string-name>
          , Alon Y. Halevy, and Zachary G. Ives.
          <article-title>Principles of Data Integration</article-title>
          . Morgan Kaufmann,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ahmed</surname>
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Elmagarmid</surname>
          </string-name>
          , Panagiotis G. Ipeirotis, and
          <string-name>
            <surname>Vassilios</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Verykios</surname>
          </string-name>
          .
          <article-title>Duplicate record detection: A survey</article-title>
          .
          <source>TKDE</source>
          ,
          <volume>19</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Oktie</given-names>
            <surname>Hassanzadeh</surname>
          </string-name>
          , Fei Chiang, Rene´e
          <string-name>
            <given-names>J.</given-names>
            <surname>Miller</surname>
          </string-name>
          , and
          <article-title>Hyun Chul Lee. Framework for evaluating clustering algorithms in duplicate detection</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>2</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1282</fpage>
          -
          <lpage>1293</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Stratos</given-names>
            <surname>Idreos</surname>
          </string-name>
          , Olga Papaemmanouil, and
          <string-name>
            <given-names>Surajit</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          .
          <article-title>Overview of data exploration techniques</article-title>
          .
          <source>In Proc. of the SIGMOD Conference</source>
          , pages
          <fpage>277</fpage>
          -
          <lpage>281</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Carson</given-names>
            <surname>Kai-Sang</surname>
          </string-name>
          <string-name>
            <surname>Leung</surname>
          </string-name>
          , Alfredo Cuzzocrea, and
          <string-name>
            <given-names>Fan</given-names>
            <surname>Jiang</surname>
          </string-name>
          .
          <article-title>Discovering frequent patterns from uncertain data streams with time-fading and landmark models</article-title>
          .
          <source>T. Large-Scale Data- and KnowledgeCentered Systems</source>
          ,
          <volume>8</volume>
          :
          <fpage>174</fpage>
          -
          <lpage>196</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hong</surname>
            <given-names>Liu</given-names>
          </string-name>
          , Ashwin Kumar T. K, and Johnson P. Thomas.
          <article-title>Cleaning framework for big data - object identification and linkage</article-title>
          .
          <source>In Proc. of the Big Data Congress</source>
          , pages
          <fpage>215</fpage>
          -
          <lpage>221</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Arturas</given-names>
            <surname>Mazeika</surname>
          </string-name>
          and
          <string-name>
            <surname>Michael H. Bo</surname>
          </string-name>
          <article-title>¨hlen. Cleansing databases of misspelled proper nouns</article-title>
          .
          <source>In Proc. of the VLDB Workshop on Clean Databases</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Leonardo Andrade Ribeiro, Alfredo Cuzzocrea,
          <article-title>Karen Aline Alves Bezerra, and Ben Hur Bahia do Nascimento</article-title>
          .
          <article-title>Incorporating clustering into set similarity join algorithms: The sjclust framework</article-title>
          .
          <source>In Database and Expert Systems Applications - 27th International Conference, DEXA</source>
          <year>2016</year>
          , Porto, Portugal, September 5-
          <issue>8</issue>
          ,
          <year>2016</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , pages
          <fpage>185</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. Leonardo Andrade Ribeiro, Alfredo Cuzzocrea,
          <article-title>Karen Aline Alves Bezerra, and Ben Hur Bahia do Nascimento</article-title>
          . Sjclust:
          <article-title>Towards a framework for integrating similarity join algorithms and clustering</article-title>
          .
          <source>In ICEIS 2016 - Proceedings of the 18th International Conference on Enterprise Information Systems</source>
          , Volume
          <volume>1</volume>
          , Rome, Italy,
          <source>April 25-28</source>
          ,
          <year>2016</year>
          , pages
          <fpage>75</fpage>
          -
          <lpage>80</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Leonardo</surname>
          </string-name>
          <article-title>Andrade Ribeiro and Theo Ha¨rder. Generalizing prefix filtering to improve set similarity joins</article-title>
          .
          <source>Information Systems</source>
          ,
          <volume>36</volume>
          (
          <issue>1</issue>
          ):
          <fpage>62</fpage>
          -
          <lpage>78</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Sunita</given-names>
            <surname>Sarawagi</surname>
          </string-name>
          and
          <string-name>
            <given-names>Alok</given-names>
            <surname>Kirpal</surname>
          </string-name>
          .
          <article-title>Efficient set joins on similarity predicates</article-title>
          .
          <source>In Proc. of the SIGMOD Conference</source>
          , pages
          <fpage>743</fpage>
          -
          <lpage>754</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Nata</surname>
          </string-name>
          <article-title>´lia Cristina Schneider, Leonardo Andrade Ribeiro</article-title>
          , Andrei de Souza Ina´cio, Harley Michel Wagner, and
          <article-title>Aldo von Wangenheim</article-title>
          .
          <article-title>SimDataMapper: An architectural pattern to integrate declarative similarity matching into database applications</article-title>
          .
          <source>In Proc. of the SBBD Conference</source>
          , pages
          <fpage>967</fpage>
          -
          <lpage>972</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Christiane Faleiro</surname>
            <given-names>Sidney</given-names>
          </string-name>
          , Diego Sarmento Mendes,
          <article-title>Leonardo Andrade Ribeiro, and Theo Ha¨rder. Performance prediction for set similarity joins</article-title>
          .
          <source>In Proc. of the SAC Conference</source>
          , pages
          <fpage>967</fpage>
          -
          <lpage>972</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Nan</given-names>
            <surname>Tang</surname>
          </string-name>
          .
          <article-title>Big RDF data cleaning</article-title>
          .
          <source>In Proc. of the ICDE Conference Workshops</source>
          , pages
          <fpage>77</fpage>
          -
          <lpage>79</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Jiannan</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Guoliang</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and Jianhua</given-names>
            <surname>Feng</surname>
          </string-name>
          .
          <article-title>Can we beat the prefix filtering?: an adaptive framework for similarity join and search</article-title>
          .
          <source>In Proc. of the SIGMOD Conference</source>
          , pages
          <fpage>85</fpage>
          -
          <lpage>96</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Chuan</surname>
            <given-names>Xiao</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wei</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xuemin Lin</surname>
            , Jeffrey Xu Yu, and
            <given-names>Guoren</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>Efficient similarity joins for near-duplicate detection</article-title>
          .
          <source>TODS</source>
          ,
          <volume>36</volume>
          (
          <issue>3</issue>
          ):
          <fpage>15</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Feng</surname>
            <given-names>Zhang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hui-Feng</surname>
            <given-names>Xue</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dong-Sheng</surname>
            <given-names>Xu</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yong-Heng Zhang</surname>
            , and
            <given-names>Fei</given-names>
          </string-name>
          <string-name>
            <surname>You</surname>
          </string-name>
          .
          <article-title>Big data cleaning algorithms in cloud computing</article-title>
          .
          <source>iJOE</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):
          <fpage>77</fpage>
          -
          <lpage>81</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>