<!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>Self-Adaptive Data Quality Web Services</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Universität Potsdam</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Data Quality Web Services are services that enhance the quality of data in the sense of making it t for use. This paper concentrates on duplicate detection, which identi es multiple representations of real-world objects within large datasets where these representations are similar to a certain degree. Measures to estimate this similarity are one of the major research e orts in the community since many years. However for Web Services, these heuristics di er in the amount of underlaying meta information, which is usually much poorer. The type of missing meta data is analyzed and classi ed in this paper. It also examines on di erent ways of making the duplicate-containing data available to the Data Quality Web Service.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Due to the aforementioned di culties and costs, measures
ensuring data quality are often omitted. This can also be
formulated as a need for ad-hoc, fair-priced, simple,
lowcon guration data cleansing. The Software as a Service
paradigm promises to be a valid solution for this need since
it employs services (most frequently in the shape of Web
Services) as basic building blocks.</p>
    </sec>
    <sec id="sec-2">
      <title>2. DUPLICATE DETECTION</title>
      <p>
        Detection of duplicates is the process of identifying
multiple representations of same real world objects. Traditional
duplicate detection (also called deduplication or record
linkage) employs well-established algorithms and heuristics, see
Elmagarmid [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Winkler [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] for surveys.
      </p>
      <p>Typically, those algorithms concentrate on (a) the selection
of duplication candidates and/or on (b) a measure to
estimate the similarity between two items. For (a) the goal
is to nd an elaborate selection of candidate pairs to avoid
comparison of all (O(n2)) pairs of elements, where the
overwhelming number of comparisons will not be promising. For
(b) the goal is to compare elements e ciently, i.e., with a
good estimation of the actual similarity or in short time.
2.1 Web Services for Duplicate Detection
The comparison of two elements bases on data type and
value of their attributes and additional information to
identify these pairs as possible duplicates. However, sometimes
the amount of available information is restricted or { as in
Web Services { just not available: the schema might not
be up-to-date, the eld-mapping is unclear, privacy issues
prevent full access to all the data, etc.</p>
      <p>Thus, the question is how a good similarity measure can
be created under the described conditions while still
achieving appropriate results and while remaining as general as
possible. Therefore, it has to be examined which
information is essential for a duplicate detection process and which
information therefore has to be inferred from the data or
retrieved from other sources.</p>
      <p>Web Service implementations of data cleansing { resp.
duplication detection { methods (Data Quality Web Services)
are invoked on-demand with exactly the information that is
to be decided about, e.g., in case of only a small number of
items that shall be tested for similarity in an ad-hoc manner.
Further, they provide a clearly speci ed functionality while
remaining as general as possible to ensure a broad number
of possible service requesters. These properties turn Web
Services into the ideal foundation for evaluating duplicate
detection algorithms with the limitations described above.</p>
    </sec>
    <sec id="sec-3">
      <title>2.2 Large Scale Duplicate Detection</title>
      <p>
        Without the assumption of a Web Service to deduplicate
only a small number of elements, further problems arise.
The issue of how the data have to be made accessible to
the services is covered by Faruquie et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Furthermore,
without this restriction, goal (a) becomes relevant in a Web
Service scenario, too.
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. SIMILARITY MEASURES</title>
      <p>Successful duplicate detection within unforeseeable data and
structure requires some e orts before the actual detection
of duplicates can take place. Di erent pieces of information
may be missing, i.e., \semantics" of data, attribute names
of data, mapping between elds, and attribute separators.
All those terms are explained in the following. The lack of
information can be seen as di erent levels of challenges for
a good similarity measure. These levels are presented in the
following.
3.1 Challenges for Similarity Measure
Selection
Level 0 This represents the \traditional" scenario for
similarity measures as depicted in Table 1. The record's
attributes have proper names, the mapping is reliable
(the last name of the rst record has to be compared
to the last name of the second record), and, of course,
separators are available (represented by the table grid).
Finally, the \semantics" are also clear due to the fact
that the database managers are at hand and can
provide this kind of information.</p>
      <p>Therefore, speci c measures such as a ne-grained
heuristic for birthdates would detect that 1955|10|05 and
10.05.1955 mean the same date. Furthermore, it might
be clear that the person's title is often guessed or
omitted and thus, Mr. and an empty entry would match.
The only requirement here is that these specialized
similarity measures are available.</p>
      <p>Level 1 If the data are provided without expert knowledge,
e.g. in the XML-like shape illustrated in Figure 2,
specialized similarity measures cannot be applied directly.
First, attributes have to be classi ed. The result of this
classi cation is some degree of certainty that a
similarity measure is appropriate. To achieve this knowledge,
the occurring values as well as the attribute names can
&lt;address record="1"&gt;
&lt;title&gt;Mr.&lt;/title&gt;
&lt;firstname&gt;Homer Jay&lt;/firstname&gt;
&lt;lastname&gt;Simpson&lt;/lastname&gt;
&lt;birthday&gt;1955|10|05&lt;/birthday&gt;
&lt;/address&gt;
&lt;address record="2"&gt;
&lt;title/&gt;
&lt;firstname&gt;H. J.&lt;/firstname&gt;
&lt;lastname&gt;Simpspn&lt;/lastname&gt;
&lt;birthday&gt;10.05.1955&lt;/birthday&gt;
&lt;/address&gt;
be used. A particular challenge is to nd out
languagespeci c features, e.g., the order of month and day in
a date eld. Therefore, correlating data such as the
domain of names or location information, should be
considered, too. Note that the kind of representations
is independent from the lack of expert knowledge.
Level 2 Di erent records might have a di erent schema or
no schema at all, e.g., because they come from di erent
data sources or di erent owners. Figure 3 illustrates
two records, where the rst one is in XML format,
the second one is in CSV format. It is obvious, that
the schema is not clear. Not only are the entries in
di erent order, also the occurrence of some attributes
is di erent (e.g., the telephone number). Moreover,
the granularity di ers. The rst record has separated
title and name, the second one has separated family
name from the rest.</p>
      <p>It is commonly not clear, which attributes have to be
compared with each other. The names of attributes
might support the creation of a corresponding
mapping, however those are not always available.
Moreover, the telephone number of the second record might
match the birthday of the rst entry better than both
birthdays match one another. Using meta information,
such as thesauri or ontologies, help resolve synonym
relations between terms, e.g., \surname" and \family
name".</p>
      <p>Level 3 The elds of a record might not be clearly
distinguishable (c.f. Figure 4). E.g., the separator is not
known or the record is represented as un- or
semistructured text. Therefore, the separator has to be
found and entities have to be recognized, respectively.
While the rst separator (;) is rather common, the
second one (|) is less frequent and might normally not
be automatically recognized as an attribute separator.
4. DEALING WITH LARGE AMOUNT OF</p>
      <p>DATA
As described as goal (a) earlier, checking for duplicates in
a large set of data poses additional challenges, which are
discussed here.</p>
    </sec>
    <sec id="sec-5">
      <title>4.1 Data Transfer</title>
      <p>There are three principles of how data transfer between the
customer's database and the processing unit (the Web
Service) can be done. All have di erent requirements on
network bandwidth, ease of use and requirements towards the
customer's infrastructure.</p>
      <p>Homer Jay;Simpson;742 Evergreen Terrace;Springfield
Mr.|Homer Jay|Simpson|742 Evergreen Terrace|Springfield Bulk File Transfer The relevant records can be exported
from the customer's database into a at le and then
\charrsid87854 \par Homer Simpson}{\rtlch\fcs1 be transfered as-is to the Web Service. Technical
re\af31507 \ltrch\fcs0 \lang1033\langfe1033 strictions such as the le being too large can be
tack\langnp1033\insrsid6695672\charrsid87854 led by compressing the le or by splitting the le into
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 smaller parts. The overall network usage is minimized
\lang1033\langfe1033\langnp1033\insrsid87854 here, rst if compression is used and second, because
\charrsid87854 \par 742 Evergreen-Terrace \par } each record is only transferred once. Moreover, the
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid87854 transfer is rather atomic from the point of view of the
Springfield \par USA \par \par }{\*\themedata 504b03 customer. There is no need to continuously being in
charge of providing data.
The third example in this gure shows an RTF snippet
kwhere these terms occur, too.</p>
    </sec>
    <sec id="sec-6">
      <title>3.2 Similarity Challenges Tree</title>
      <p>The challenges presented in Section 3.1 can be arranged in a
tree as pictured in Figure 5. Each black node represents the
decision for the existence of a speci c piece of information,
starting from the top (whether or not attribute separators
are available) and reaching to the bottom (whether or not
insights in the \semantics" of the attributes are present). If
the corresponding information is available, the left subtree is
investigated further, else the right one. Each pass leads to a
leaf node that holds one of seven scenarios which have been
elaborated on in the previous section. The best results for a
similarity measure can be achieved if the left-most scenario
is selected.</p>
      <p>Read the tree in the following way: For example to infer a
mapping between the attributes, the separators (resp. the
entities and their attributes) have to be identi ed before.
This is also the reason for the tree being very unbalanced.
For example, it makes no sense to try to detect the data
type if it is unclear, where one attribute ends and another
one starts. However, there might be an overlap for this
detection process. To nd a valid mapping it can be necessary
to check the similarity of di erent candidate pairs on an
attribute value level. Recall the example in Figure 4. When
creating a mapping between the two record's attributes,
different matching candidate pairs have to be examined, here
&lt;birthday&gt;1955|10|05&lt;/birthday&gt; with both, 10.05.1955
and (019) 55 10 05.</p>
      <p>ODBC Access The Web Service could be provided with a
possibility to directly access the customer's database.
In this case, Web Service (SOAP) requests are only
needed for the control connection, the actual data is
transferred directly. However, this is only possible, if
the customer is able and willing to provide a way to
access the database. Most probably, the network
topology ( rewalls, NAT) and security policies will
complicate this access. The overhead is also higher in this
approach, because the Web Service will either send many
independent queries to the database or (most
probably) will just issue a SELECT * FROM relevant_records
query to retrieve the needed data. Then, the data
transfer is not as condensed as the approach above.
Web Service The third possibility for the customer is to
provide a (Web Service) API to his database. This will
on the one hand reduce network topology problems,
but on the other hand drastically increase bandwidth
usage and CPU load, since much SOAP en- and
decoding is to be under way. Furthermore, the customer
has to provide an environment where this API is
embedded. However, if the total amount of data is fairly
small, the API already exists and the duplicate
detection shall be very autonomous, this might also render
an appropriate approach.</p>
    </sec>
    <sec id="sec-7">
      <title>4.2 Candidate Selection</title>
      <p>
        If the data is on the Web Service's side once, processing can
begin. Assuming that the challenges described in Section 3
are successfully managed, duplicate detection can take place
as usual. However in this scenario, many customers are to be
served at the same time (with potentially also large amounts
of data). Therefore, parallelized algorithms for searching
for duplicates in relatively promising subsets of the whole
dataset are needed.
In principle, two basic algorithms are widely used, Sorted
Neighborhood and Blocking. In the Sorted Neighborhood
approach [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the whole dataset is sorted after speci c
sorting keys and then iterated over with a sliding window
comparing all adjacent elements within this window. The other
approach, Blocking, splits up the dataset into several smaller
sets within all contained elements are compared pairwise.
Blocking is seen as the algorithm of choice [
        <xref ref-type="bibr" rid="ref3 ref8">3, 8</xref>
        ] when
parallelizing algorithms. With this, di erent processing units can
work independently from each other on di erent subsets of
data, thus enabling a near-linear scale. However, selecting
proper subsets is crucial since no inter-subset-duplicates can
be found.
      </p>
    </sec>
    <sec id="sec-8">
      <title>5. RELATED WORK</title>
      <p>
        The di erent classes are already in focus of ongoing research,
separately. For example, duplicate detection in XML
structures [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is examined by Weis et al.
      </p>
      <p>
        Research in duplicate detection for unstructured or
semistructured texts is often applied in plagiarism detection
systems as MOSS (Schleimer et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]) or YAP3 (Wise [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]).
Navarro [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Winkler [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and Elmagarmid et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] give
surveys on existing string comparison algorithms, based on
edit distances as for example the Levenshtein Distance [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
and outline the speci c usefulness for the corresponding
values.
      </p>
      <p>
        Faruquie et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] examines challenges and bene ts of
bringing data cleansing (including duplicate detection) into the
cloud. However, he does not provide any details on the
proposed similarity measure or recommendations on the large
scale data discussion points covered in Section 4.
There are a couple of approaches for parallelizing data
cleansing, for example Anthill (Santos et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]), Febrl (Christen
et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]), and P-Swoosh (Kawai et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]).
      </p>
      <p>There are a number of providers and registries for Data
Quality Web Services. They provide services for data
alignment (e.g., format telephone numbers properly), data
completion (e.g., add postcodes to cities), or data veri cation
(e.g., check ISBNs against book titles). However, there are
no Web Services for duplicate detection.</p>
    </sec>
    <sec id="sec-9">
      <title>6. SUMMARY</title>
      <p>The process of Data Cleansing commonly comprises the
normalization of data, the identi cation of duplicates within
these data and the elimination of these duplicates by fusing
or discarding duplicate elements. Employing services for this
task is bene cial, because set-up and maintenance costs are
low and they are only paid for on a by-use scheme.
Duplicate detection commonly faces two challenges: having
a good, e cient similarity measure and selecting the \right"
records to compare. In a Web Service application, the
similarity measure is especially hard, since one or more of
different (meta) data can be missing: \semantics", datatypes,
mappings, and eld separators. These information have to
be inferred from the available data to decide for appropriate
comparison operators.</p>
      <p>Another challenge is the selection of promising duplicate
candidates which becomes even more tricky when it comes
to parallelization e orts. Depending on this is also the
decision on the way of how to bring the customer's data to
the service. Currently, there is no best practice commonly
agreed upon.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Christen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Churches</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hegland</surname>
          </string-name>
          .
          <article-title>A parallel open source data linkage system</article-title>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Elmagarmid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. G.</given-names>
            <surname>Ipeirotis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Verykios. Duplicate Record</surname>
          </string-name>
          <article-title>Detection: A Survey</article-title>
          .
          <source>IEEE Transactions on Knowledge &amp; Data Engineering</source>
          ,
          <volume>19</volume>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Faruquie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Prasad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Subramaniam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mohania</surname>
          </string-name>
          , G. Venkatachaliah,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kulkarni</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Basu</surname>
          </string-name>
          .
          <article-title>Data Cleansing as a Transient Service</article-title>
          .
          <source>In Proceedings of the ICDE</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Hernandez</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Stolfo</surname>
          </string-name>
          .
          <article-title>The merge/purge problem for large databases</article-title>
          .
          <source>SIGMOD Rec</source>
          .,
          <volume>24</volume>
          (
          <issue>2</issue>
          ):
          <volume>127</volume>
          {
          <fpage>138</fpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Kawai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Benjelloun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Menestrina</surname>
          </string-name>
          , E. Whang, and
          <string-name>
            <given-names>H.</given-names>
            <surname>Gong</surname>
          </string-name>
          .
          <article-title>P-swoosh: Parallel algorithm for generic entity resolution</article-title>
          .
          <source>Technical Report 2006-19</source>
          ,
          <string-name>
            <surname>Stanford</surname>
            <given-names>InfoLab</given-names>
          </string-name>
          ,
          <year>September 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>V. I.</given-names>
            <surname>Levenshtein</surname>
          </string-name>
          .
          <article-title>Binary Codes Capable of Correcting Deletions, Insertions and Reversals</article-title>
          .
          <source>Technical report</source>
          ,
          <year>1966</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>Navarro. A Guided</surname>
          </string-name>
          <article-title>Tour to Approximate String Matching</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>W.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Teixeira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Machado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. M.</given-names>
            <surname>Jr.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ferreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Guedes</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. S. D.</given-names>
            <surname>Silva</surname>
          </string-name>
          .
          <article-title>A Scalable Parallel Deduplication Algorithm</article-title>
          .
          <source>Symposium on Computer Architecture and High Performance Computing</source>
          ,
          <volume>0</volume>
          :
          <fpage>79</fpage>
          {
          <fpage>86</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Schleimer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Wilkerson</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Aiken</surname>
          </string-name>
          . Winnowing:
          <article-title>Local Algorithms for Document Fingerprinting</article-title>
          . In Special Interest group on
          <source>Management of Data Conference</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Weis</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann. DogmatiX - Track Down</surname>
          </string-name>
          Duplicates in XML. In Special Interest group on
          <source>Management of Data Conference</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>W. E.</given-names>
            <surname>Winkler</surname>
          </string-name>
          .
          <source>Overview of Record Linkage and Current Research Directions. Technical report, Bureau of the Census</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Wise</surname>
          </string-name>
          . YAP3:
          <article-title>Improved Detection of Similarities in Computer Program</article-title>
          and Other Texts. In Twenty-Seventh Special Interest Group on Computer
          <source>Science Education Technical Symposium</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>