<!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>AMALGAM: making tabular dataset explicit with knowledge graph</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>BPH Center - INSERM U1219, Team ERIAS</institution>
          ,
          <addr-line>Univ. Bordeaux, F-33000, Bordeaux</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <abstract>
        <p>In this paper we present AMALGAM, a matching approach to annotate tabular dataset with the use of a knowledge graph, developed in the context of the Semantic Web Challenge on Tabular Data to Knowledge Graph Matching (SemTab 2020). The ultimate goal is to provide fast and e cient approach to annotate tabular data with entities from a background knowledge. The approach combines lookup and ltering services combined with text pre-processing techniques. Experiments conducted in the context of SemTab 2020 with both Column Type Annotation and Cell Type Annotation tasks showed promising results.</p>
      </abstract>
      <kwd-group>
        <kwd>Tabular Data</kwd>
        <kwd>Knowledge Graph</kwd>
        <kwd>AMALGAM</kwd>
        <kwd>Entity Linking</kwd>
        <kwd>FAIR principles</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Making web data complying with the FAIR principles [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] has become a necessity
in order to facilitate their discovery and reuse. This could be achieved by
annotating these data by entities coming from ontologies and structured vocabularies,
semantic repositories [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Knowledge Graphs (KG). Tabular Data to KG [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
Matching challenge (SemTab 20201) aims at benchmarking systems which deals
with the task of annotating tabular data with entities from a KG, referred as
table annotation [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Over the last years, a set of systems for matching web
tables to knowledge bases have been developed [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ].
      </p>
      <p>
        In order to perform a more ne-grained analysis of the SemTab challenge
tasks, we categorize them as two main tasks e.g., structure, and semantic
annotation. Structure annotation, deals with various tasks including data type
prediction and table header annotation [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Semantic annotation involves matching
table elements into KG, e.g., columns to class and cells to entities [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ].
      </p>
      <p>
        Three tasks that are organised into several evaluation rounds are de ned in
SemTab 2020: (i) assigning a semantic type (e.g., a KG class) to a column (CTA);
(ii) matching a cell to a KG entity (CEA); (iii) assigning a KG property to the
relationship between two columns (CPA). The most popular approaches to deal
with these three tasks are a supervised learning setting, where entities candidate
are selected by a classi cation model [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. However, for the real-time application,
obtaining the result as fast as possible is a requirement. As a basis for the current
work, the ultimate goal is to provide a fast and e cient approach for a tabular
dataset to KG matching task. We have designed and implemented AMALGAM, our
proposed approach to realizing CTA and CEA tasks.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>The AMALGAM approach</title>
      <p>To address the above mentioned tasks of the SemTab challenge, AMALGAM is
designed according to the work ow depicted in Fig. 1. There are three major
phases which consist in, respectively, Pre-Processing, Annotation context and
Tabular data to KG matching. The rst two steps of the Work ow are identical
for the two tasks.</p>
      <p>To describe each phase of the AMALGAM approach we consider Table 1, which
lists Alberta region towns with additional information, country, elevation above
sea level, etc.
Tables Pre-Processing. As the Table 1 shows, the content of each table
can have di erent types (string, date, oat, etc.). The aim of this pre-processing
step is to ensure that the process of loading each table happens without any
error. For example, a problem of textual encoding where some characters are
loaded as noisy sequences, text eld with an unescaped delimiter, will cause the
record being processed to have an extra column, etc. Loading incorrect encoding
might strongly a ect the lookup performance. Therefore, we used the Pandas2
library to x all noisy textual data in the tables.</p>
      <p>Annotation context. We consider a table as a two-dimensional tabular
structure (see Fig. 2) that is composed of an ordered set of x rows and y columns.
Each intersection between a row and a column determines a cell cij with the value
vij where 1 i x; 1 j y. To identify the attribute label of column also
called header detection (CTA task), the approach consists in annotating all the
items of the column using entity linking. Then, the attribute label row detection
is estimated using the random entity linking. In this use case, the annotation
context is represented by the list of items in the column. For example, the context
of the rst row in the Fig. 2 is: [Grande Prairie, Sundre, Peace River, Vegreville,
Sexsmith]. According to the same logic, we consider that all cells in the same
row describe the same context. More precisely, the rst cell of the row describes
the entity and the following cells the associated properties. For example, the
context of the rst row in the Fig. 2 is: [Grande Prairie, city in Alberta, Canada,
Sexsmith, 650, Alberta].</p>
      <p>Assigning a semantic type to a column (CTA). The CTA task can be
performed by exploiting the process described in Fig. 2. The Wikidata API allows
to look up a Wikidata item3 according to the title of its corresponding page on
a given Wikipedia page, or other Wikimedia family site. In our case, the main
information needed from the entity is a list of the instances of (P31), subclass of
(P279) and part of (P361) statements. To do so, a parser is developed to retrieve
this information from the Wikidata built request. For example, "Grande Prairie"
provides the following results: [list of towns in Alberta:Q15219391, village in
Alberta:Q6644696, city in Alberta:Q55440238]. To achieve this, our methodology
combines wbsearchentities and parse actions provided by the API. It could be
observed that in this task, there were many items that have not been
annotated. This is because tables contain incorrectly spelled terms. Therefore, before
implementing the other tasks, a spell check component is required.</p>
      <p>
        As per the literature [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], spell-checker is a crucial language tool of natural
language processing (NLP) which is used in applications like information
extraction, proofreading, information retrieval, social media and search engines. In our
case, we compared several approaches and libraries: Textblob4, Spark NLP5,
      </p>
      <sec id="sec-2-1">
        <title>2 https://pandas.pydata.org/</title>
        <p>3 https://www.wikidata.org/w/api.php
4 https://textblob.readthedocs.io/en/dev/
5 https://nlp.johnsnowlabs.com/</p>
        <p>Gurunudi6, Wikipedia api7, Pyspellchecker8, Serpapi9. A comparison of these
approaches could be found in Table 2.</p>
        <p>Our choice is oriented towards Gurunudi and the Wikidata API with a
postprocessing step consisting in validating the output using fuzzywuzzy10 to keep
only the results whose ratio is greater than the threshold of 90%. For example,
let's take the expression \St Peter's Seminarz" after using the Wikidata API
we get \St Peter's seminary" and the ratio of fuzzy string matching is 95%.</p>
        <p>We are now able to perform the CTA task. In the trivial case, the result of
an item lookup is equal a single record. The best matching entity is chosen as
a result. In the other cases, where the result is more than one, no annotation is
produced for the CTA task. Finally, if there is no result after the lookup, another
one is performed using the output of the spell check produced by the item. At
the end of these lookups, the matched couple results are then stored in a nested
dictionary [item:claims]. The most relevant candidate, counting the number of
occurrences, is selected.</p>
        <p>Matching a cell to a KG entity (CEA). The CEA task can be performed
by exploiting the process described in Fig. 3. Our approach reuse the process
of the CTA task and made necessary adaptations. The rst step is to get all the
statements for the rst item of the list context. The process is the same as CTA,
the only di erence is where the result provides more than one record. In this
case, we create nested dictionary with all candidates. Then, to disambiguate the
candidates entities, we use the concept of the column generated with the CTA
task. Next, a lookup is performed by using the other items of the list context
in the claims of the rst item. If the item is found, it is selected as the target
entity; if not, the lookup is performed with the item using the Wikidata API (if
the result is empty, no annotation is produced).</p>
      </sec>
      <sec id="sec-2-2">
        <title>6 https://github.com/guruyuga/gurunudi</title>
        <p>7 https://wikipedia.readthedocs.io/en/latest/code.html
8 https://github.com/barrust/pyspellchecker
9 https://serpapi.com/spell-check
10 https://github.com/seatgeek/fuzzywuzzy</p>
        <p>
          With this process, it is possible to reduce errors associated with the lookup.
Let's take the value \650\ in row 0 of the table Fig. 3 for instance. If we lookup
directly in Wikidata, we can get many results. However, if we check rst in the
statements of the rst item of the list, \Grande Prairie\, it is more likely to
successfully identify the item.
This section reports the overall results (The Primary Score) of AMALGAM for the
two matching tasks in the four rounds of SemTab 2020 [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Overall, these results
show that AMALGAM achieves promising performances for CTA and CEA.
        </p>
        <p>The primary results (F1 score and Precision) of AMALGAM for CTA and CEA
in the four rounds are presented in Tables 3, 4, 5 and 6. In the rst round,
AMALGAM achieved the results in Table 3. It could be observed that AMALGAM
handles properly the two tasks, in particular in the CEA task. Regarding the CTA
task, these results can be explained according to a new revision created in the
item revision history and there are probably spelling errors in the contents of
the tables. For example, "rural district of Lower Saxony" after 16 April 2020
became "district of Lower Saxony". A possible solution is to retrieve the history
of revisions (parsing Wikidata data history dumps) to use them. This could be
a perspective to this work.</p>
        <p>In Round 2 we particularly focused on the spell check of items to improve the
results of the CEA and CTA tasks. Clearly, our choice tends to use two API services,
Wikipedia and Gurunudi, for spelling correction. It could be observed that the
achieved results are better than the previous round both in terms of precision and
F1-Score. However, these results may be improved too. From previous rounds,
we noted that one single term is ambiguous as it refers to more than one entity.
In Wikipedia, there is only one article for each concept. However, there can be
many equivalent titles for a concept due to the existence of synonyms, etc. For
example, the term \Paris" may refer to many concepts such as \the capital and
largest city of France\, \son of Priam, king of Troy\, \county seat of Lamar
County, Texas, United States\, etc. For the next rounds, disambiguation item is
required.</p>
        <p>In Round 3 and 4, to overcome the issue related to disambiguation, we have
updated our approach by integrating the concept of the column obtained in CTA
in the linking phase. We showed that the two tasks can be performed relatively
successfully with AMALGAM, achieving higher than 0.86 in precision and recall
values. However, the automatic disambiguation of items proved to be a more
challenging task.</p>
        <p>
          A second evaluation is performed with the Tough Tables (2T) dataset which
is designed to evaluate table annotation approaches in solving the CEA and CTA
tasks [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. The results of this second evaluation are given in Table 7. It shows
that compared to the four rounds of the traditional challenge, the performance of
AMALGAM declined for F1 Score respectively to 0.32 and 0.60 for CEA and CTA
tasks. The same behaviour is observed for all the other participating systems to
the SemTab 2020 challenge. That suggests a more challenging issue to annotate
2T11.
11 https://www.cs.ox.ac.uk/isg/challenges/sem-tab/2020/results.html
In this paper, we presented AMALGAM, a matching approach to making tabular
dataset explicit with entities annotation from a knowledge graph model (in the
context of the SemTab 2020 Challenge.
        </p>
        <p>Its advantage is that it allows to perform CTA and CEA tasks in a timely
manner. This may be accomplished through the combination of a lookup services
and a spell check techniques. It is the rst participation of the AMALGAM system
which is still in the early stages, so there are still rooms from some improvements.
However, the experimental results show that our approach achieved promising
results.</p>
        <p>Our ndings during this rst participation suggest that the matching process
is very sensitive to errors in spelling. Thus, as of future work, an improved spell
checking techniques will be investigated. To process such errors the contextual
based spell-checkers are needed. Often the string is very close in spelling, but
context could help reveal which word makes the most sense. Further more, we will
improve the approach by nding a trade-o between e ectiveness and e ciency.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Wilkinson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumontier</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aalbersberg</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          et al.
          <article-title>The FAIR Guiding Principles for scienti c data management and stewardship</article-title>
          .
          <source>Sci Data</source>
          <volume>3</volume>
          ,
          <issue>160018</issue>
          (
          <year>2016</year>
          ). https://doi.org/10.1038/sdata.
          <year>2016</year>
          .18
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Diallo</surname>
          </string-name>
          , G.:
          <article-title>E cient Building of Local Repository of Distributed Ontologies</article-title>
          .
          <source>Proceedings of the 7th International Conference on Signal Image Technology Internet-Based Systems (SITIS'2011)</source>
          ,
          <year>2011</year>
          . pages
          <fpage>159</fpage>
          -
          <lpage>166</lpage>
          . doi:
          <volume>10</volume>
          .1109/SITIS.
          <year>2011</year>
          .45
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Ji</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cambria</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marttinen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>P.S.:</given-names>
          </string-name>
          <article-title>A survey on knowledge graphs:Representation, acquisition and applications</article-title>
          . CoRRabs/
          <year>2002</year>
          .00388(
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Subramanian</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srinivasa</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Semantic Interpretation and Integration of Open Data Tables</article-title>
          . In: Geospatial Infrastructure,
          <source>Applications and Technologies: India Case Studies</source>
          , pp.
          <volume>217</volume>
          {
          <fpage>233</fpage>
          . Springer Singapore (
          <year>2018</year>
          ). https://doi.org/10.1007/
          <fpage>978</fpage>
          - 981-13-2330-0 17
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Taheriyan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knoblock</surname>
            ,
            <given-names>C.-A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szekely</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ambite</surname>
          </string-name>
          , J.-L.:
          <article-title>Learning the semantics of structured data sources</article-title>
          .
          <source>Web Semantics: Science, Services and Agents on the World Wide Web</source>
          <volume>37</volume>
          (
          <issue>38</issue>
          ),
          <volume>152</volume>
          {
          <fpage>169</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duan</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          :
          <article-title>A semi-structured information semantic annotation method for Web pages</article-title>
          .
          <source>Neural Computing and Applications</source>
          <volume>32</volume>
          (
          <issue>11</issue>
          ),
          <volume>6491</volume>
          {
          <fpage>6501</fpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Efthymiou</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hassanzadeh</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez-Muro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Christophides</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Matching Web Tables with Knowledge Base Entities: From Entity Lookups to Entity Embeddings</article-title>
          .
          <source>In: Lecture Notes in Computer Science</source>
          , pp.
          <volume>260</volume>
          {
          <fpage>277</fpage>
          . Springer International Publishing (
          <year>2017</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -68288-4 16
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Eslahi</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhardwaj</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stockinger</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cudre-Mauroux</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Annotating Web Tables through Knowledge Bases: A Context-Based Approach</article-title>
          .
          <source>In: 2020 7th Swiss Conference on Data Science (SDS)</source>
          , pp.
          <volume>29</volume>
          {
          <fpage>34</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2020</year>
          ). https://doi.org/10.1109/sds49233.
          <year>2020</year>
          .00013
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hassanzadeh</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Efthymiou</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jimenez-Ruiz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srinivas</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>SemTab2019: Semantic Web Challenge on Tabular Data to Knowledge Graph Matching -</article-title>
          2019
          <source>Data Sets (Version</source>
          <year>2019</year>
          )
          <article-title>[Data set]</article-title>
          .
          <source>Zenodo</source>
          . https://doi.org/10.5281/zenodo.3518539
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hassanzadeh</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Efthymiou</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jimenez-Ruiz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srinivas</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>SemTab2020: Semantic Web Challenge on Tabular Data to Knowledge Graph Matching - 2020 Data Sets</article-title>
          ,
          <year>October 2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Shashank</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shailendra</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Systematic review of spell-checkers for highly in ectional languages</article-title>
          .
          <source>Arti cial Intelligence Review</source>
          <volume>53</volume>
          (
          <issue>6</issue>
          ),
          <volume>4051</volume>
          {
          <fpage>4092</fpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Cutrona</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bianchi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jimenez-Ruiz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palmonari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Tough Tables: Carefully Evaluating Entity Linking for Tabular Data</article-title>
          . Zenodo, (
          <year>2020</year>
          ). https://doi.org/10.5281/ZENODO.4246370
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>