<!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>Knowledge Graph Construction with R2RML and RML: An ETL System-based Overview</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Julian Arenas-Guerrero</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mario Scrocca</string-name>
          <email>mario.scrocca@cefriel.com</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ana Iglesias-Molina</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jhon Toledo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luis Pozo-Gilo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Don~a</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oscar Corcho</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Chaves-Fraga</string-name>
          <email>david.chavesg@upm.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ontology Engineering Group, Universidad Politecnica de Madrid</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Politecnico di Milano</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Knowledge graphs have proven to be a powerful technology to integrate and structure the myriad of data available nowadays. The semantic web community has actively worked on data integration systems, providing an important set of engines and mapping languages to facilitate the construction of knowledge graphs. Despite these important e orts, there is a lack of objective evaluations of the capabilities of these engines in terms of performance, scalability, and conformance with mapping speci cations. In this work, we conduct such evaluation considering several R2RML and RML processors to identify their strengths and weaknesses. We (i) perform a qualitative analysis of the distinctive features of each engine, (ii) examine their conformance with the mapping language speci cation they support, and (iii) assess their performance and scalability using the GTFS-Madrid-Bench benchmark.</p>
      </abstract>
      <kwd-group>
        <kwd>Knowledge Graphs</kwd>
        <kwd>RML</kwd>
        <kwd>R2RML</kwd>
        <kwd>GTFS-Madrid-Bench</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        In recent years, knowledge graphs (KGs) have become one of the most widely
used technologies in data integration reaching the top positions of the Gartner
Hype Cycle for Arti cial intelligence in 20203. This popularity has resulted in
open KGs like Wikidata [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] or YAGO [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and in the adoption of this
technology by major technology companies such as Facebook, Google, or eBay [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
To construct KGs from non-RDF data sources, mapping languages allow
practitioners to de ne the relationships between input data sources and ontologies in
a declarative and maintainable manner [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Although there are several mapping
languages in the state of the art (e.g., SPARQL-Generate [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] or ShExML [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]),
there are two of them that stand out: R2RML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], which is the W3C standard
language for RDB2RDF mapping, and RML [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which is a well-known extension
of R2RML for data formats beyond relational databases (RDBs).
      </p>
      <p>
        KGs can be constructed with [R2]RML-compliant engines that can
implement two strategies: materialization or virtualization [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The former is the
ETL approach that generates the entire KG (i.e., all the triples), while the
latter generates results for SPARQL queries by translating them to the native query
language of the input data source (e.g., SQL queries in the case of RDBs) [
        <xref ref-type="bibr" rid="ref21 ref3">3,21</xref>
        ].
Given the high number of engines available [
        <xref ref-type="bibr" rid="ref10 ref13 ref22 ref23 ref3 ref7">7,13,3,23,22,10</xref>
        ], it is easy for any
practitioner to get lost in deciding which one best ts their use case. While
there are comprehensive and structured evaluations for the virtualization
approach [
        <xref ref-type="bibr" rid="ref15 ref4">4,15</xref>
        ] that ease the user's choice, there is a lack of such an evaluation for
materialization engines.
      </p>
      <p>
        In this paper, we evaluate knowledge graph construction (KGC) engines that
implement the materialization approach and support the [R2]RML mapping
languages. First, we identify the most relevant engines available and provide a
qualitative analysis of their features. Next, we assess their conformance to the
language speci cation considering the test cases de ned by each language [
        <xref ref-type="bibr" rid="ref11 ref2">11,2</xref>
        ].
Finally, we test the engines using the GTFS-Madrid-Bench benchmark [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to
evaluate their performance in terms of execution time, memory used and the
number of triples generated using di erent data source formats and sizes.
      </p>
      <p>The remainder of the article is structured as follows. Section 2 describes the
related work on KGC systems and existing work evaluating them. Section 3
shows a qualitative analysis of several declarative KG engines where we
highlight their strengths and weaknesses. Section 4 presents the quantitative
experimental evaluation, using the test cases of each mapping language and the
GTFS-Madrid-Bench benchmark. Finally, Section 5 provides a set of relevant
conclusions extracted from the present work and the future lines of research.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        The emergence of di erent engines tackling KGC fosters the de nition of
benchmarks to evaluate their capabilities. The Berlin SPARQL Benchmark (BSBM) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
based on fabricated data considering the e-commerce domain, allows the
comparison of SPARQL queries performance posed against triplestores but also virtual
KGC engines. The Norwegian Petroleum Directorate Benchmark (NPDB) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
relying on real relational data from the oil industry, focuses on the requirements
for virtualization and de nes di erent test cases considering the parameters that
impact the performance of KGC engines (di erent sizes of the data sources, types
of queries, mappings, etc.). The GTFS-Madrid-Bench benchmark [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] considers
data from the Madrid subway network and, reusing ideas from NPDB, de nes
a comprehensive set of test cases analyzing multiple requirements and
considering data formats beyond relational DBMSs, namely CSV, JSON, and XML.
Despite the growing number of engines relying on the ETL approach, the e orts
available in the literature analyzing KGC engines are mainly con ned to the
virtualization approach over RDB [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>
        Materialization engines have been tested by their respective authors using
ad-hoc evaluations. In consequence, the extracted conclusions are often limited,
and cannot be generalized to all engines. SPARQL-Generate [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] relies on the
SPARQL syntax to de ne mappings from heterogeneous data sources to RDF
and it has been compared with RMLMapper4 considering CSV datasets of
different sizes. The authors of RMLStreamer [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] evaluated their tool against the
SPARQL-Generate engine using arti cial CSV, XML and JSON datasets and
di erent sizes for these sources. The evaluation of RocketRML [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] considered
a custom testbed using real touristic data on accommodations in JSON and
XML formats, and was compared to RMLMapper. SDM-RDFizer [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] has been
evaluated against RMLMapper and RocketRML using custom CSV datasets
and considering di erent parameters beyond the data size, such as the factor of
duplicates in the input data or di erent typologies of mappings. Finally,
FunMap [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] de ned a tabular-based testbed to assess the impact of transformation
functions [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] in RML mappings, and the capability of their proposal executing
functions in the initial phase of the KGC process. To the best of our knowledge,
no comprehensive and structured evaluation has been carried out to assess the
performance and scalability of materialization engines.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Knowledge Graph Construction Engines</title>
      <p>In this section, we introduce the description and qualitative analysis of knowledge
graph construction engines that implement the materialization approach. In the
analysis, we limit ourselves to open-source [R2]RML systems. We assume that
the reader is familiar with R2RML and RML. Table 1 shows a summary of the
most relevant features of the selected engines.
3.1</p>
      <sec id="sec-3-1">
        <title>R2RML Engines</title>
        <p>The selected R2RML engines that we take into account are Ontop, Morph-RDB,
db2triples, and R2RML-F. We excluded r2rml4net5 as it only supports SQL
Server (we use MySQL as the underlying DBMS for RDB in our evaluation). For
each tool, we describe its main features and the strategies that they implement
to improve the knowledge graph construction process.</p>
        <p>
          Ontop [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Ontop is a virtual knowledge graph system over relational databases
developed at the Free University of Bozen-Bolzano and also supported by
Ontopic s.r.l.6. Ontop focuses on translating SPARQL queries to SQL (i.e.
virtualization). Nevertheless, the engine also has a materialization mode, which allows
retrieving all the triples in a relational database. In order to achieve this, Ontop
        </p>
        <sec id="sec-3-1-1">
          <title>4 https://github.com/RMLio/rmlmapper-java 5 https://github.com/r2rml4net/r2rml4net 6 https://ontopic.biz/</title>
          <p>d
l
n
o
s
j
,
s
e
l
p
i
r
t
n
r L
e M sm l-d
m X a n
-tsrea ,SNO - li,eF treeSd LRM on ,jssod sey sey on on on on jaav sey on</p>
          <p>J a
L , m u
M V a -q</p>
          <p>S N n
R C</p>
          <p>L
L M</p>
          <p>,</p>
          <p>X s
M , d
tcekR JSNO - ileF LRM sey -aqun sey sey on on on on eodn on sey
o ,</p>
          <p>V
R S</p>
          <p>C</p>
          <p>L
. s l
s L ,XM eam eod</p>
          <p>r
m M N ,e t L s M s s
e R O - li S M ey J ey ey on on on on jaav on sey
t A JS F ed R 4F
s C , m D
y SV aN R
s</p>
          <p>C</p>
          <p>, , a
itcoun ireahm ,JSLNXOM - ,lieF trseeaSdm LRM sey l,,j-s3ondn il,-trssenpd l,,lfttrreud sey sey sey sey if)rceeennS on on jaav sey sey
r C , m ry a m F
t V a a u x D
s S N in -q f/ R
b n d (</p>
          <p>r</p>
          <p>C
n
o , re t
rcaph reappM ,,SCV ,LXNM trseogSLPQ revSdSLQ ,li,tsceeanF itseondpnL ,SLCRVMW sey ,l,ttrsedu ,l,j-sondhd sey sey on on on on jaav on sey
g LM BRD JSO ,L ,an In RQ ,L aqu itrx
eg R ySQM lrcea BRD SPA 2RM -n ,itrg
d O R
e L
l M L e</p>
          <p>r X Q il s
oknw izeFRD ,,JSNO trsegoSP ,tsceanF LM sey ,-saqudn sey sey on on on on toynh sey sey
f -M SV ,L In R liep p
so SD ,BC ySQ BRD -trn
e D M
r R
,</p>
          <p>,
fftteeahu -2LFRRM ,SBCRVD ,trsegoySSLLQQM lrceaadnO ,ilItsceeannFBRD 2LRRM sey l,il,f-trrse/xpdnm l,f-rre/axvdbbm ,,ljfj-rss/o3odnnnd ,i-trsagqudn sey iItttrrseeeeagndn l.seSCV on on on on jaav on sey
o P
,</p>
          <p>L ,e rs
rayumm litsre2pbd BRD ,trsegySSLQQM ,lrrrceeavSLOQ itreoaaadhnBD ItsceannBRD 2LRRM on ,,3/nLFRXDM ll,i-tttrrseeupn on on on on on on jaav on sey
S oP S M
fttsraaaoDm illteaaonR SBDM Ittaadupn ssrceou iagnppM lseaaggun itsconnuF ftttsraoupuOm sreaagdphNm Ittsreeagn liltepum tssrceaaoud litsrreeopT ttoupu littogoynnpuO tsrrreaaoD kunhC issrceognp liItteeaonpnmm leaaggun lItrceeannm iilttssrregnuw iltceapuD lreaovm
creates a set of SPARQL queries that together generate all the triples of the
knowledge graph. These SPARQL queries are then translated to SQL using the
query translation capabilities of the system and are later executed against the
underlying DBMS. The main advantage of this strategy is that Ontop generates
e cient SQL queries thanks to the implementation of several optimizations. The
engine is Java-based and supports the main DBMSs and RDF serializations. In
addition, it allows processing SQL queries by chunks, avoiding the retrieval of
large result sets at once.</p>
          <p>
            Morph-RDB [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ]. Written in Scala, it is a virtual knowledge graph engine over
relational databases developed at Universidad Politecnica de Madrid. Similarly
to Ontop, it implements several query optimizations and provides a
materialization mode. However, Morph-RDB does not generate SPARQL queries like Ontop,
but it directly builds the necessary SQL queries for materialization. Namely, the
engine generates one SQL query per triples map. If a triples map is composed
of multiple referencing object maps, a join condition will be added to the SQL
query per each of them. Hence, complex SQL queries with many join conditions
may be generated. During materialization, Morph-RDB does not apply any of
the optimization implemented for the virtualization mode. This results in queries
that cannot be e ciently processed by DBMSs in some cases. Triples are
written to a le using N-Triples format. Other serialization formats are supported
by delegating to Apache Jena. Materialization of relational sources performed
by the Morph-xR2RML [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ] engine works similarly to Morph-RDB, but
MorphxR2RML additionally supports the materialization of NoSQL databases and
processes the xR2RML mapping language [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ], an R2RML extension.
db2triples7. db2triples is a Java materialization engine developed by Antidot8.
The materialization is done using the algorithm proposed in the R2RML speci
cation9. This algorithm independently executes each referencing predicate object
map in a triples map, reducing the number of join conditions in the generated
SQL queries w.r.t. Morph-RDB. As far as we know, the engine does not
implement materialization optimizations.
          </p>
          <p>
            R2RML-F [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]. R2RML-F is an extension of db2triples developed at Trinity
College Dublin. It allows executing additional data transformations encoded in
the mappings via functions. Additionally, R2RML-F further extends db2triples
to support named graphs and CSV data sources. In order to process CSV sources,
these are previously loaded into an in-memory RDBMS, creating a native RDB
schema using the column names of the CSV les.
3.2
          </p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>RML Engines</title>
        <p>The selected RML engines that we take into account for this analysis are
RMLMapper, CARML, RMLStreamer, SDM-RDFizer, RocketRML, and Chimera. The
selection criteria is the RML implementation report10, which is up-to-date, in</p>
        <sec id="sec-3-2-1">
          <title>7 https://github.com/antidot/db2triples 8 https://www.antidot.net/ 9 https://www.w3.org/2001/sw/rdb2rdf/r2rml/#generated-triples 10 https://rml.io/implementation-report/</title>
          <p>contrast to the R2RML one. Similarly to R2RML engines, for each tool we
provide a description of its main characteristics together with the approaches
implemented to make the materialization process more e cient.
RMLMapper11. RMLMapper is the reference implementation for an RML
processor. It aims at being a feature-complete engine and ensuring compliance with
the RML speci cation. The system, developed at Ghent University, is an
inmemory Java-based processor that also supports R2RML mappings and can
process di erent local and remote data sources (CSV/JSON/XML les, RDBs,
SPARQL endpoints). RMLMapper supports the integration of RML and
transformation functions, de ning mechanisms to preload or dynamically load at
runtime the functions referenced in the RML mappings. A set of in-memory caches
are implemented to avoid multiple parsing procedures on the same input data
source and multiple executions of the same triples map.</p>
          <p>
            SDM-RDFizer [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ]. Written in Python and developed by TIB Leibniz
Information Center for Science and Technology, SDM-RDFizer provides a set of
physical data structures for the e cient construction of the knowledge graph.
More in detail, SDM-RDFizer provides two di erent structures: i) the Predicate
Tuple Table that stores the triples associated with each predicate and, ii) the
Predicate Join Tuple Table that stores the values of the subjects generated by
a triples map that are involved in simple and complex referencing predicate
object maps. Associated with these two structures, SDM-RDFizer also implements
e cient physical operators to manage those tables. These structures and
operators are focused on e ciently removing duplicated triples and contributing to
improve the performance of join conditions.
          </p>
          <p>
            RocketRML [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ]. RocketRML is a Node-based RML parser developed by STI
Innsbruck that supports CSV, JSON, and XML data sources. The engine
introduces optimizations over join conditions for improving their execution
performance. Before starting the mapping process for a triples map, the
implementation checks whether it is in the join condition of another triples map. If it
is, the parent triples map of the join condition is evaluated and the obtained
values are cached. Then, all triples maps are parsed iteratively and at the end
of the execution, the cached hash table is used to generate the triples associated
with rules with join conditions. RocketRML constructs an in-memory knowledge
graph and its principal output format is JSON-LD. When N-Triples is required,
it delegates the removal of duplicates to an external library.
          </p>
          <p>CARML12. CARML, currently developed by Skemu13, is an engine supporting
CSV, JSON, and XML data sources. The system is available as a Java library,
and it relies on the RDF4J library generating an RDF4J Model as a result of the
mapping processing. CARML introduces two extensions (pre x carml:) to the
RML speci cation in order to support: (i) named streams as input data sources
for the transformation (carml:Stream), (ii) speci cation of XML namespaces
used in XPath expression for XML data sources (carml:declaresNamespace).
11 https://github.com/RMLio/rmlmapper-java
12 https://github.com/carml/carml
13 https://skemu.com
Moreover, the engine de nes a simpli ed mechanism based on Java annotations
to bind the implementation of transformation functions. CARML de nes an
extensible mechanism to easily change the implementation of the logical source
resolvers to access the input data sources. In contrast to other engines, such
as RMLMapper, it optimizes the parsing procedure by adopting di erent Java
libraries to access CSV, JSON and XML data sources.</p>
          <p>
            RMLStreamer [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]. RMLStreamer is a system developed at Ghent University
that incorporates parallelization in the RDF generation process. Implemented in
Scala, it is built on top of the distributed processing framework Apache Flink.
RMLStreamer considers three main tasks: i) ingestion: implemented as an input
operator on a Flink channel that depending on the data source can use a parallel
or sequential input operator, ii) mapping processor: implemented as a
transformation operator that reads data records from the ingestion task bu ers, and
generates RDF in its own bu er, iii) combination: it implements an output
operator where it merges all the intermediate results in all the mapping processor
bu ers.
          </p>
          <p>
            Chimera [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ]. Chimera is a framework developed by Cefriel14. It is
implemented on top of Apache Camel and provides a set of building blocks to
compose conversion pipelines based on Semantic Web solutions. A basic conversion
pipeline is based on a lifting block to convert heterogeneous data sources into an
RDF representation, and a lowering block to convert the obtained triples to the
target data format. The default implementation of the lifting block is based on
RMLMapper. To better support the Apache Camel framework, Chimera adds
support for named streams as input data sources. Di erently from CARML, it
does not extend the RML speci cation, but it introduces an alternative and
congurable access mechanism for the input data sources speci ed in the RML
mappings. To improve the execution time, Chimera extends RMLMapper to de ne a
multi-thread safe materialization procedure and introduces di erent options for
concurrently processing the mappings. Moreover, it optimizes the parsing
procedure for JSON and XML data sources. In order to improve memory
consumption, the engine implements output writing to an external triplestore/SPARQL
endpoint, and a mechanism for incremental/concurrent writes to optimize the
processing of large datasets. Furthermore, it implements options to avoid the
usage of caches when not needed.
4
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Comparison Framework</title>
      <p>In this section, we address the capabilities of the engines previously presented.
First, we address the conformance of the engines w.r.t. the mapping languages
speci cations, and then we empirically analyze their performance. The versions
of the engines used in this comparison are the following: Ontop v4.1.0,
MorphRDB v3.12.5, db2triples v2.2, R2RML-F v1.2.3, RMLMapper v4.9.1, CARML
v0.3.1, RocketRML v1.8.2, SDM-RDFizer v3.5, RMLStreamer v2.0 and Chimera
14 https://www.cefriel.com/
v2.1. The resources used for the comparison of the engines are available in a
public repository15.
4.1</p>
      <sec id="sec-4-1">
        <title>Speci cation Conformance</title>
        <p>
          To assess the conformance of the engines with their corresponding mapping
language speci cations, we rely on the test cases de ned for R2RML [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] and
RML [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. These consist of a collection of tests that are used to check whether
the engines support the requirements de ned in the speci cations. The results
of these test cases also provide useful information for practitioners to select the
engine that best ts their use cases. Additionally, they help developers to identify
possible issues when parsing mapping rules.
        </p>
        <p>R2RML test cases. Table 2 shows the number of R2RML tests passed and
failed by the engines. Since R2RML-F is based on the code from db2triples,
their results are similar. These two systems fail in most of the test cases because
they do not support delimited identi ers in SQL. Although Morph-RDB usually
15 https://github.com/oeg-upm/kgc-eval
outputs an error when it is expected by the test case, the engine also generates
an empty graph which causes many of them to fail. Ontop performs well over
PostgreSQL but it presents problems when the RDBMS is MySQL.
Particularly, it fails when using rr:graphMap, and also in those test cases assessing the
correctness of subject URIs.</p>
        <p>
          RML test cases. Table 3 presents the results obtained by RML engines.
RMLMapper, RMLStreamer, and Chimera cover most of the mapping language
speci cation. The failed tests for RMLMapper are related to the automatic
datatyping of literals in RDB [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. Although RocketRML supports rr:graphMap,
most of the reported failures occur when this property is included in the mapping
rules. SDM-RDFizer does not pass some test cases because it does not support
the generation of blank nodes. Additionally, in the same manner as Morph-RDB,
SDM-RDFizer generates an empty graph when an error occurs. Finally, CARML
failures are related to the possibility to de ne multiple subject maps, multiple
predicate maps, and named graphs in the mapping rules.
4.2
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>Performance and Scalability with GTFS-Madrid-Bench</title>
        <p>
          To test the performance and scalability of KGC engines, we rely on the
GTFSMadrid-Bench benchmark [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. This benchmark provides a generator to create
several distributions in di erent formats and sizes of the data.
        </p>
        <p>Datasets and Mappings. Using the generator provided by the benchmark, we
generate 5 di erent distributions based on the data format: GTFScsv, GTFSrdb,
GTFSxml, GTFSjson and GTFScustom. We also generate di erent data sizes of
these distributions considering the scaling factors: GTFS1, GTFS10, GTFS100,
and GTFS1000. We have used MySQL 8.0 as DBMS for GTFSrdb. The benchmark
already provides the mappings in [R2]RML languages. They are composed of 73
predicate object maps, of which, 12 are referencing predicate object maps. Most
engines were not being able to process the referencing object map that joins the
triples maps shapes and shapePoints. For this reason, we have transformed it
into an equivalent predicate object map that does not a ect the results.
Engines. The engines have been con gured so that they do not generate
duplicated triples and write the output RDF in N-Triples format. For Java engines,
the heap size used for the di erent benchmark sizes has been con gured
accordingly to avoid heap errors. We have excluded RMLStreamer, which does
not support removing duplicated triples, and we have opened an issue with this
problematic in its public repository16.</p>
        <p>Metrics. We consider three metrics for the evaluation: execution time,
maximum memory used and the number of triples generated. This last metric assesses
the correctness of the generated RDF. However, it is limited, since it does not
take into account aspects such as the generation of datatypes or whether data is
extracted properly from the sources. A timeout of 24 hours is used. The
experiments are executed in a CPU Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz,
20 cores, 128 Gb RAM and a SSD SAS Read-Intensive 12 Gb/s.
16 https://github.com/RMLio/RMLStreamer/issues/26</p>
        <p>TMO
)
()s01 3
g
o
l(
iem 2
T
4
1
0</p>
        <p>TMO
)
()s01 3
g
o
l(
iem 2
T
4
1
0
rdb</p>
        <p>csv
DB2Triples
Ontop
Morph-RDB</p>
        <p>xml
GTFS-Format</p>
        <p>R2RML-F
RMLMapper
SDM-RDFizer
json</p>
        <p>custom
Chimera
CARML</p>
        <p>RocketRML
rdb</p>
        <p>csv
DB2Triples
Ontop
Morph-RDB</p>
        <p>xml
GTFS-Format</p>
        <p>R2RML-F
RMLMapper
SDM-RDFizer
json
)
()s01 3
g
o
l(
iem 2
T
4
1
0
rdb</p>
        <p>csv
DB2Triples
Ontop
Morph-RDB</p>
        <p>xml
GTFS-Format</p>
        <p>R2RML-F
RMLMapper
SDM-RDFizer
json</p>
        <p>custom
Chimera
CARML</p>
        <p>RocketRML
(c) Execution time for GTFS100
Results. Because of the fact that all engines resulted in timeout or
out-ofmemory for GTFS1000 in all data formats, we have omitted this data scaling
factor for the benchmark in the results. Figure 1 depicts the execution times
obtained. For the case of GTFSrdb, the execution times for db2triples, Ontop,
R2RML-F, and SDM-RDFizer are in the same order of magnitude. Nonetheless,
SDM-RDFizer needs more than twice as long as Ontop to generate all the results
for GTFSr1d00b, possibly due to SDM-RDFizer not pushing down the joins to the
DBMS. The high number of joins in the SQL queries used by Morph-RDB results
in high query execution times, and the ine cient duplicates elimination strategy
of RMLMapper causes the engine to reach timeout for data sizes greater than</p>
        <p>OOM</p>
        <p>7
rdb</p>
        <p>csv
DB2Triples
Ontop
Morph-RDB</p>
        <p>xml
GTFS-Format</p>
        <p>R2RML-F
RocketRML
SDM-RDFizer
json</p>
        <p>custom
Chimera
RMLMapper
CARML
rdb</p>
        <p>csv
DB2Triples
Ontop
Morph-RDB</p>
        <p>xml
GTFS-Format</p>
        <p>R2RML-F
RocketRML
SDM-RDFizer
json
rdb</p>
        <p>csv
DB2Triples
Ontop
Morph-RDB</p>
        <p>xml
GTFS-Format</p>
        <p>R2RML-F
RocketRML
SDM-RDFizer
json</p>
        <p>custom
Chimera
RMLMapper</p>
        <p>CARML
(c) Maximum memory for GTFS100
Fig. 2: Memory consumption peak of GTFS-Madrid-Bench. KGC
maximum memory consumption in kB (logarithmic scale) for nine engines runned
over GTFScsv, GTFSrdb, GTFSxml, GTFSjson and GTFScustom for three data
size scaling factors: (a) GTFS1, (b) GTFS10 and (c) GTFS100. The absence of
the bar indicates a timeout issue. The bars reaching the top means an
out-ofmemory issue.</p>
        <p>GTFSr1db. For GTFScsv, Chimera manages to be the fastest tool for GTFSc1s0v
thanks to parallelization, but it runs out of memory for GTFSc1s0v0. R2RML-F
and SDM-RDFizer are the only engines capable of generating all the results for
GTFSc1s0v0, but the later is more than seven times faster than the former. For
the rest of the data formats, SDM-RDFizer stands out, being the only engine
capable of materializing GTFS1x0m0l, GTFSj1s0o0n, and GTFSc1u00stom.</p>
        <p>Maximum memory used by engines is presented in Figure 2. Since most
engines keep the entire KG in memory to eliminate duplicated triples, the memory
consumption is high. The exception is Morph-RDB that uses a di erent
strategy for duplicate elimination. R2RML-F and db2triples are the ones with the
highest memory use for GTFSrdb, while Ontop and SDM-RDFizer require less
than half of the memory. For the rest of data formats, SDM-RDFizer is the most
memory-e cient engine as observed in the graphic of GTFS10.</p>
        <p>Table 4 shows the number of triples generated by the engines. For GTFS1
it can be observed that the engines that do not generate the expected
number of results are Morph-RDB, RMLMapper, and RocketRML and CARML
for GTFSjson. Morph-RDB attempts to remove duplicates by using the
DISTINCT clause in the SQL queries, which is not enough to remove all of them.
RMLMapper, and RocketRML and CARML for GTFSjson generate a higher
number of triples because they generate triples for empty data values. In
addition, RMLMapper generates triples in GTFSrdb when columns contain NULLs,
which does not conform with R2RML speci cation.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Future Work</title>
      <p>In this work, we address the problem of executing a comprehensive and
structured evaluation over declarative knowledge graph construction engines that
implement the materialization approach. We present a qualitative analysis of
the engines including their main features, optimizations, and limitations. We
also carry out a quantitative evaluation of the engines by rst assessing their
conformance with the mapping language speci cation using their test cases, and
then testing their performance using the GTFS-Madrid-Bench benchmark. The
results obtained suggest that: i) there are few systems with high coverage of
the features considered in our qualitative analysis; ii) several engines have a
medium-low conformance w.r.t. the mapping languages speci cations; and iii)
most of the engines report performance and scalability problems for large input
data sources.</p>
      <p>After our experience in testing the capabilities of KGC engines, we devise
a set of future working lines that can conduct the research and development of
a new generation of systems. First, new generalized optimizations for the ETL
approach are desirable to scale current systems to big data integration scenarios.
Second, work on the conformance of the systems with the speci cations and
increase the e orts to have feature-rich systems. Finally, new versions of the
current mapping language speci cations will be required for more complex data
integration problems (e.g., transformation functions) together with the extension
of benchmarks to assess them.</p>
      <sec id="sec-5-1">
        <title>Acknowledgments</title>
        <p>The work presented in this article is supported by the project Semantics for
PerfoRmant and scalable INteroperability of multimodal Transport (SPRINT
H2020-826172), by the Spanish Ministerio de Econom a, Industria y
Competitividad and EU FEDER funds under the DATOS 4.0: RETOS Y SOLUCIONES
- UPM Spanish national project (TIN2016-78011-C4-4-R), and by an FPI grant
(BES-2017-082511).</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>C.</given-names>
            <surname>Bizer</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Schultz</surname>
          </string-name>
          . The Berlin SPARQL Benchmark.
          <source>International Journal on Semantic Web and Information Systems</source>
          , IJSWIS,
          <volume>5</volume>
          (
          <issue>2</issue>
          ):1{
          <fpage>24</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. V.-T. Boris and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hausenblas</surname>
          </string-name>
          .
          <article-title>R2RML and Direct Mapping Test Cases</article-title>
          .
          <source>Technical report</source>
          , RDB2RDF Working Group,
          <year>W3C</year>
          ,
          <year>2012</year>
          . https://www.w3.org/2001/sw/rdb2rdf /test-cases/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Cogrel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Komla-Ebri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kontchakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lanti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rezk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rodriguez-Muro</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Xiao.</surname>
          </string-name>
          <article-title>Ontop: Answering SPARQL queries over relational databases</article-title>
          .
          <source>Semantic Web</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <volume>471</volume>
          {
          <fpage>487</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Chaves-Fraga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Priyatna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimmino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Toledo</surname>
          </string-name>
          , E. Ruckhaus, and
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho.</surname>
          </string-name>
          GTFS-Madrid-Bench:
          <article-title>A Benchmark for Virtual Knowledge Graph Access in the Transport Domain</article-title>
          .
          <source>Journal of Web Semantics</source>
          ,
          <volume>65</volume>
          :
          <fpage>100596</fpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>S.</given-names>
            <surname>Das</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sundara</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Cyganiak</surname>
          </string-name>
          .
          <article-title>R2RML: RDB to RDF Mapping Language</article-title>
          .
          <source>W3C Recommendation, W3C</source>
          ,
          <year>2012</year>
          . http://www.w3.org/TR/r2rml/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>6. B. De Meester</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Maroy</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Dimou</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Verborgh</surname>
            , and
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Mannens</surname>
          </string-name>
          .
          <article-title>Declarative Data Transformations for Linked Data Generation: The Case of DBpedia</article-title>
          .
          <source>In Proceedings of the 14th European Semantic Web Conference, ESWC</source>
          , pages
          <volume>33</volume>
          {
          <fpage>48</fpage>
          . Springer International Publishing,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Debruyne</surname>
          </string-name>
          and
          <string-name>
            <surname>D. O'Sullivan. R2RML-F</surname>
          </string-name>
          :
          <article-title>Towards Sharing and Executing Domain Logic in R2RML Mappings</article-title>
          .
          <source>In Proceedings of the 9th Workshop on Linked Data on the Web</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Dimou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Vander</given-names>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Colpaert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          , E. Mannens, and R. Van de Walle.
          <article-title>RML: A Generic Language for Integrated RDF Mappings of Heterogeneous Data</article-title>
          .
          <source>In Proceedings of the 7th Workshop on Linked Data on the Web</source>
          , volume
          <volume>1184</volume>
          <source>of CEUR Workshop Proceedings</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>H.</given-names>
            <surname>Garc</surname>
          </string-name>
          a-Gonzalez,
          <string-name>
            <given-names>I.</given-names>
            <surname>Boneva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Staworko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Labra-Gayo</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. M. C.</surname>
          </string-name>
          <article-title>Lovelle</article-title>
          .
          <article-title>ShExML: improving the usability of heterogeneous data mapping languages for rst-time users</article-title>
          .
          <source>PeerJ Computer Science</source>
          ,
          <volume>6</volume>
          :
          <fpage>e318</fpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. G. Haesendonck,
          <string-name>
            <given-names>W.</given-names>
            <surname>Maroy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Heyvaert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Dimou</surname>
          </string-name>
          .
          <article-title>Parallel RDF Generation from Heterogeneous Dig Data</article-title>
          .
          <source>In Proceedings of the International Workshop on Semantic Big Data</source>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          6. Association for Computing Machinery,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>P.</given-names>
            <surname>Heyvaert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chaves-Fraga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Priyatna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          , E. Mannens,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Dimou</surname>
          </string-name>
          .
          <article-title>Conformance Test Cases for the RDF Mapping Language (RML)</article-title>
          .
          <source>In Proceedings of the 1st Iberoamerican Knowledge Graphs and Semantic Web Conference</source>
          , pages
          <volume>162</volume>
          {
          <fpage>173</fpage>
          . Springer International Publishing,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. J. Ho art,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Suchanek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Berberich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Lewis-Kelham</surname>
          </string-name>
          , G. de Melo, and
          <string-name>
            <surname>G. Weikum.</surname>
          </string-name>
          <article-title>YAGO2: Exploring and Querying World Knowledge in Time, Space, Context, and Many Languages</article-title>
          .
          <source>In Proceedings of the 20th International Conference Companion on World Wide Web</source>
          , pages
          <volume>229</volume>
          {
          <fpage>232</fpage>
          .
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. E. Iglesias,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jozashoori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chaves-Fraga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Collarana</surname>
          </string-name>
          , and
          <string-name>
            <surname>M.-E. Vidal.</surname>
          </string-name>
          <article-title>SDMRDFizer: An RML Interpreter for the E cient Creation of RDF Knowledge Graphs</article-title>
          .
          <source>In Proceedings of the 29th ACM International Conference on Information and Knowledge Management, CIKM</source>
          , pages
          <volume>3039</volume>
          {
          <fpage>3046</fpage>
          .
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>S.</given-names>
            <surname>Jozashoori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chaves-Fraga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Iglesias</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.-E. Vidal</surname>
            , and
            <given-names>O. Corcho.</given-names>
          </string-name>
          <article-title>FunMap: E cient Execution of Functional Mappings for Knowledge Graph Creation</article-title>
          .
          <source>In Proceeding of the 19th International Semantic Web Conference, ISWC</source>
          , pages
          <volume>276</volume>
          {
          <fpage>293</fpage>
          . Springer International Publishing,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>D.</given-names>
            <surname>Lanti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rezk</surname>
          </string-name>
          , G. Xiao, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          .
          <article-title>The NPD Benchmark: Reality Check for OBDA Systems</article-title>
          .
          <source>In Proceedings of the 18th International Conference on Extending Database Technology, EDBT</source>
          , pages
          <volume>617</volume>
          {
          <fpage>628</fpage>
          . OpenProceedings.org,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>M. Lefrancois</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Zimmermann</surname>
            , and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Bakerally</surname>
          </string-name>
          .
          <article-title>A SPARQL Extension for Generating RDF from Heterogeneous Formats</article-title>
          .
          <source>In Proceedings of the 14th European Semantic Web Conference, ESWC</source>
          , pages
          <volume>35</volume>
          {
          <fpage>50</fpage>
          . Springer International Publishing,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          .
          <article-title>Data Integration: A Theoretical Perspective</article-title>
          .
          <source>In Proceedings of the 21st ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems</source>
          , PODS, page
          <volume>233</volume>
          {
          <fpage>246</fpage>
          .
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>F.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Djimenou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. F.</given-names>
            <surname>Zucker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Montagnat</surname>
          </string-name>
          .
          <article-title>Translation of Relational and Non-Relational Databases into RDF with xR2RML</article-title>
          .
          <source>In Proceedings of the 11th International Conference on Web Information Systems and Technologies</source>
          , volume
          <volume>1</volume>
          , pages
          <fpage>443</fpage>
          {
          <fpage>454</fpage>
          .
          <string-name>
            <surname>SciTePress</surname>
          </string-name>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>N.</given-names>
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Narayanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Patterson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Taylor</surname>
          </string-name>
          .
          <article-title>Industryscale Knowledge Graphs: Lessons and Challenges</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>62</volume>
          (
          <issue>8</issue>
          ):
          <volume>36</volume>
          {
          <fpage>43</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lembo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          , G. De Giacomo,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Rosati</surname>
          </string-name>
          .
          <article-title>Linking Data to Ontologies</article-title>
          .
          <source>Journal on Data Semantics X</source>
          , pages
          <volume>133</volume>
          {
          <fpage>173</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>F.</given-names>
            <surname>Priyatna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sequeda</surname>
          </string-name>
          .
          <article-title>Formalisation and experiences of R2RMLbased SPARQL to SQL query translation using morph</article-title>
          .
          <source>In Proceedings of the 23rd International Conference on World Wide Web, WWW</source>
          , page
          <volume>479</volume>
          {
          <fpage>490</fpage>
          .
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>M. Scrocca</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Comerio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Carenini</surname>
            ,
            <given-names>and I.</given-names>
          </string-name>
          <string-name>
            <surname>Celino</surname>
          </string-name>
          .
          <article-title>Turning Transport Data to Comply with EU Standards While Enabling a Multimodal Transport Knowledge Graph</article-title>
          .
          <source>In Proceeding of the 19th International Semantic Web Conference, ISWC</source>
          , pages
          <volume>411</volume>
          {
          <fpage>429</fpage>
          . Springer International Publishing,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>U.</given-names>
            <surname>Simsek</surname>
          </string-name>
          , E. Karle, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Fensel</surname>
          </string-name>
          .
          <article-title>RocketRML - A NodeJS implementation of a use-case speci c RML mapper</article-title>
          .
          <source>In Proceeding of the 1st International Workshop on Knowledge Graph Building</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. B.
          <string-name>
            <surname>Villazon-Terrazas</surname>
            and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Hausenblas</surname>
          </string-name>
          .
          <article-title>R2RML and Direct Mapping Test Cases</article-title>
          . W3C Note, W3C,
          <year>2012</year>
          . http://www.w3.org/TR/rdb2rdf-test-cases/.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>D.</given-names>
            <surname>Vrandecic</surname>
          </string-name>
          and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Krotzsch. Wikidata: A Free Collaborative Knowledgebase</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>57</volume>
          (
          <issue>10</issue>
          ):
          <volume>78</volume>
          {
          <fpage>85</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. G. Xiao,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ding</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Cogrel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          .
          <article-title>Virtual Knowledge Graphs: An Overview of Systems and Use Cases</article-title>
          .
          <source>Data Intelligence</source>
          ,
          <volume>1</volume>
          (
          <issue>3</issue>
          ):
          <volume>201</volume>
          {
          <fpage>223</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>