<!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>Reference Conditions: Relating Mapping Rules Without Joining</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Els de Vleeschauwer</string-name>
          <email>els.devleeschauwer@ugent.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sitt Min Oo</string-name>
          <email>x.sittminoo@ugent.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ben De Meester</string-name>
          <email>ben.demeester@ugent.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pieter Colpaert</string-name>
          <email>pieter.colpaert@ugent.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IDLab, Dept. Electronics &amp; Information Systems, Ghent University - imec</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>KGCW'23: 4th International Workshop on Knowledge Graph Construction</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Existing knowledge graph construction mapping languages have a legacy of mapping over relational databases. A such, current mapping language join constructs conflate securing referential integrity with relating concepts across data sources. This leads to a significant amount of operations (resulting in performance bottlenecks), and loss of additional context of potential linking triples that are not generated due to a lack of referential integrity. We propose a reference condition next to the traditional join condition, allowing to express a relation between sources without imposing any referential integrity. In this short research paper, we describe the concept, its applicability, how it could be integrated in existing and future mapping languages, and a proof-of-concept implementation. Our evaluation based on GTFS-Madrid-Bench confirms the assumption that removing these integrity checks leads to much faster generation times, but we also find that using reference conditions results in exactly the same graph output, i.e. these alternative semantics do not influence generation results for cases where referential integrity is assumed within the source system. Adding the reference conditions keeps the best of all worlds: generation time is shortened where possible, you have more context in the resulting RDF graph, and the mapping file still supplies relevant metadata about relations between triples maps. For future work, we will further research relations between triples maps, and expand our implementation to more complex reference conditions. This will allow us to investigate similar performance gains with other benchmarks and other mapping engines.</p>
      </abstract>
      <kwd-group>
        <kwd>R2RML</kwd>
        <kwd>RML</kwd>
        <kwd>relation</kwd>
        <kwd>join</kwd>
        <kwd>optimization</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Knowledge graph construction has been largely simplified by using established mapping
languages and well-maintained mapping engines. The increasing maturity of this field is
exempliifed by the activities of W3C’s Knowledge Graph Construction Community Group, and recent
research detailing optimization strategies implemented in mapping engines.</p>
      <p>
        Existing mapping languages historically extended W3C’s recommended Relational to RDF
Mapping Language (R2RML) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]: the RDF Mapping Language (RML) being the most direct
example [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], but we can safely assume that other languages such as SPARQL-Generate [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
nEvelop-O
LGOBE
https://ben.de-meester.org/#me (B. De Meester); https://pietercolpaert.be/#me (P. Colpaert)
CEUR
and ShExML [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] have taken inspiration from (R2)RML given the timeline and references in the
respective papers.
      </p>
      <p>As R2RML aimed at mapping data from relational databases, the expression of a relation
between mapping rules in (R2)RML (by a referencing object map) is represented as an operation
that secures referential integrity in the resulting knowledge graph (by imposing join conditions).
Hence, the concept of securing referential integrity (which is the responsibility of data sources)
and linking concepts (which is the responsibility of mapping languages) got conflated.</p>
      <p>
        This conflation has a limiting efect on the usability of relations in mapping files. Join
conditions typically result in performance bottlenecks which in turn require joining optimization
strategies such as: use predicate-join index tables [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], partition triples maps with joins into
disjoint sets to parallelize execution [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ], and eliminate self-joins [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Moreover, join conditions
can lead to loss of additional context: potential triples that are not generated due to a lack of
referential integrity across data sources.
      </p>
      <p>In this short research paper we argue that the default link between join conditions and the
expression of relations between data sources is too restrictive for the task at hand, namely, the
generation of RDF graphs.</p>
      <p>
        We propose a reference condition next to the traditional join condition, allowing to express
a relation between sources without imposing any referential integrity. We provide a
proofof-concept implementation that replaces the join conditions which do not rely on external
information by reference conditions, and can be used as a first step of the knowledge graph
generation process by any (R2)RML engine. We evaluate this proof-of-concept implementation
and show the positive efects on the generation time when replacing join conditions by reference
conditions when this is possible. This change in semantics resulted in exactly the same output
when executing GTFS-Madrid-Bench [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], showing the potential impact of this solution in
real-world use cases.
      </p>
      <p>After presenting the efects of conflating referential integrity checks with linking concepts
during mapping (section 2), we describe the reference condition semantics and implementation
(section 3), evaluate (section 4), and conclude (section 5).</p>
    </sec>
    <sec id="sec-2">
      <title>2. Motivation</title>
      <p>After describing the benefits of being able to specify relations between triples maps (section 2.1),
we explain the consequences of their conflation with referential integrity (section 2.2) and the
efects of using an alternative mapping construction without explicit relations (section 2.3).</p>
      <sec id="sec-2-1">
        <title>2.1. Benefits of relations</title>
        <p>
          The referencing object map is the only construction in (R2)RML that explicitly expresses the
relation between triples maps. It allows using the subjects of another triples map (the parent
map) as the objects generated by a predicate-object map (the child map)1. As a running example
we use a part of the widely used GTFS-Madrid-Bench [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] (fig. 1)2.
1https://rml.io/specs/rml/#logical-join and https://www.w3.org/2001/sw/rdb2rdf/r2rml/#foreign-key
2Prefixes are omitted but can be found on https://prefix.cc
        </p>
        <p>
          Expressing such relations between triples maps (i) provides relevant metadata and (ii) increases
the consistency and maintainability of the mapping file. (i) The relation between triples maps
is relevant metadata for the generation of documentation about the related knowledge graph,
e.g. deducting a richer SHACL shape from an (R2)RML mapping file [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]). A (visualization of a)
SHACL file can help to spot errors in the mapping file or to understand the content of the related
knowledge graph. To showcase the importance of this additional metadata (especially for large
mappings files), we published diagrams automatically derived from the GTFS-Madrid-Bench
mapping file at https://github.com/RMLio/rml-loose-generator/tree/main/diagrams. (ii) Using a
referencing object map also ensures that the URI of the parent triples map is only specified in
one place: when the developer makes a change to the URI template in the parent triples map,
this change applies also to the child map.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Conflation with referential integrity</title>
        <p>
          According to the (R2)RML specification at least one join condition must be added to the
referencing object map if the logical sources of the parent map and the child map are not identical3.
Due to this join condition the expression of relating triples maps in (R2)RML conflates with
securing referential integrity in the knowledge graph. This conflation comes with following
disadvantages: (i) a potential loss of knowledge and (ii) a large performance hit. (i) The output
of the running example (fig. 2) is limited to seven triples. Although the id of agency 3 is available
in the R O U T E S . c s v , the triple expressing the agency of route 15 (fig. 3) will not be generated.
However, the missing triple can contain valuable information and can be used to solve queries
which do not require additional agency information: generating links between resources, even
if you do not have any additional information about them, aligns with the original vision of
3https://www.w3.org/TR/r2rml/#dfn-joint-sql-query
1 @ p r e f i x e x : &lt; h t t p : / / t r a n s p o r t . l d . e s / m a d r i d / &gt; .
2 e x : m e t r o / r o u t e s / 1 d a g t f s : R o u t e ; g t f s : a g e n c y e x : a g e n c y / 4 .
3 e x : m e t r o / r o u t e s / 1 4 a g t f s : R o u t e ; g t f s : a g e n c y e x : a g e n c y / 5 .
4 e x : m e t r o / r o u t e s / 1 5 a g t f s : R o u t e .
5 e x : a g e n c y / 4 a g t f s : A g e n c y .
6 e x : a g e n c y / 5 a g t f s : A g e n c y .
1 &lt; # r o u t e s &gt; a r r : T r i p l e s M a p ;
2 r m l : l o g i c a l S o u r c e [ r m l : s o u r c e " R O U T E S . c s v " ; r m l : r e f e r e n c e F o r m u l a t i o n q l : C S V ] ;
3 r r : s u b j e c t M a p [ r r : t e m p l a t e " h t t p : / / t r a n s p o r t . l d . e s / m a d r i d / m e t r o / r o u t e s / { i d } " ; r r : c l a s s g t f s : R o u t e ] ;
4 r r : p r e d i c a t e O b j e c t M a p [
5 r r : p r e d i c a t e g t f s : a g e n c y ;
6 r r : o b j e c t M a p [ r r : t e m p l a t e " h t t p : / / t r a n s p o r t . l d . e s / m a d r i d / a g e n c y / { a g e n c y _ i d } ] ] .
7 &lt; # a g e n c y &gt; a r r : T r i p l e s M a p ;
8 r m l : l o g i c a l S o u r c e [ r m l : s o u r c e " A G E N C Y . j s o n " ; r m l : r e f e r e n c e F o r m u l a t i o n q l : J S O N P a t h ; r m l : i t e r a t o r " $ . [ * ] " ] ;
9 r r : s u b j e c t M a p [ r r : t e m p l a t e " h t t p : / / t r a n s p o r t . l d . e s / m a d r i d / a g e n c y / { i d } " ; r r : c l a s s g t f s : A g e n c y ] .
10 &lt; # a g e n c y 2 &gt; a r r : T r i p l e s M a p ;
11 r m l : l o g i c a l S o u r c e [ r m l : s o u r c e " R O U T E S . c s v " ; r m l : r e f e r e n c e F o r m u l a t i o n q l : C S V ] ;
12 r r : s u b j e c t M a p [ r r : t e m p l a t e " h t t p : / / t r a n s p o r t . l d . e s / m a d r i d / a g e n c y / { a g e n c y _ i d } " ; r r : c l a s s g t f s : A g e n c y ] .
designing RDF (”Anyone Can Make Statements About Any Resource”4). Use cases illustrating
the value of those missing triples are: mapping sample data, at the beginning of a project or for
testing a mapping file during the development process, and mapping data streams, where not all
data is simultaneously available. (ii) The performance hit when joining and checking referential
integrity is substantial, and is one of the reasons why the referential integrity constraint is
typically dropped in data warehouses [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Alternative without relations</title>
        <p>Another way to relate triples is via carefully crafted URI templates (fig. 4): as long as the URI
templates are consistent between an object map of a first triples map and a subject map of a
second triples map, the nodes will match and triples will be related. This way of mapping related
triples does not involve any referential integrity checking and avoids performance bottlenecks.
Additionally, the notation is less verbose. However, the synchronization of the mapping rules
becomes a manual process, and to get similar relevant metadata from the mapping file as with
a referencing object map, an additional triples map specifying the class of the object of the
4https://www.w3.org/TR/rdf-concepts/#section-anyone
ifrst triples map is needed (triples map &lt; # a g e n c y 2 &gt; ). Consequently, the manual synchronization
eforts increase and the notation is again more verbose.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Reference conditions</title>
      <p>We introduce a reference condition for a referencing object map as alternative to the traditional
join condition. A reference condition allows the use of a subject map of another logical source
without imposing any referential integrity: the object of the child map is generated following
the structure of the subject of the parent map without verifying or using data from the parent
source. After describing its scope (section 3.1), we propose a language construct (section 3.2)
and a proof-of-concept implementation (section 3.3).
3.1. Scope
Not every join condition can be re-interpreted as a reference condition. We identify two
cases for which join conditions remain needed: (i) data from the parent source is needed to
build the child object URI, or (ii) the parent source is a selective dataset. Referring back to
our running example, case (i) applies if the template of an agency uses the agency name:
“ h t t p : / / t r a n s p o r t . l d . e s / m a d r i d / a g e n c y / { a g e n c y _ n a m e } ” . Case (ii) applies when the parent
source A G E N C Y . j s o n is a selective dataset, e.g. there are two kinds of agencies, listed in two
logical sources with each their own triples map and URI template. In that case the triple of fig. 3
would be wrong if agency 3 does not appear in AGENCY.json (fig. 1c).</p>
      <sec id="sec-3-1">
        <title>3.2. Language Construct</title>
        <p>The introduction of a reference condition (fig. 5) would require following adaptations to the
(R2)RML specifications (emphasizing our proposed changes in bold) 5. (i) A referencing object
map allows using the subject maps of another triples map for generating the objects of a
predicate-object map. (ii) If the logical source of the child triples map and the logical source
of the parent triples map of a referencing object map are not identical, then the referencing
object map must have at least one condition, where all conditions are either reference
conditions or join conditions. (iii) The joint SQL query of a referencing object map is: [...] If
the referencing object map has at least one reference condition: S E L E C T c h i l d - c o l u m n 1
A S p a r e n t - c o l u m n 1 , c h i l d - c o l u m n 2 A S p a r e n t - c o l u m n 2 , . . . F R O M ( { c h i l d - q u e r y } ) A S t m p .</p>
        <p>If a reference condition is used and the URI template requires data from the parent source
(section 3.1 case (i)), the mapping engine should throw an error, similar to errors thrown when
an unknown reference is used in the mapping file (e.g. test case R2RMLTC0002c 6).</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.3. Proof-of-concept Implementation</title>
        <p>Reference conditions enable the deduction of crafted URI templates, which can be handled by
default by any (R2)RML mapping engine. This allows introducing reference conditions without
5https://rml.io/specs/rml/#logical-join and https://www.w3.org/2001/sw/rdb2rdf/r2rml/#foreign-key
6https://www.w3.org/2001/sw/rdb2rdf/test-cases/#R2RMLTC0002c
1 &lt;#routes&gt; a rr:TriplesMap ;
2 rml:logicalSource [rml:source "ROUTES.csv";rml:referenceFormulation ql:CSV];
3 rr:subjectMap [rr:template "http://transport.ld.es/madrid/metro/routes/{id}";rr:class gtfs:Route];
4 rr:predicateObjectMap [
5 rr:predicate gtfs:agency;
6 rr:objectMap [rr:parentTriplesMap &lt;#agency&gt;;rr:refCondition [rr:child "agency_id";rr:parent "id"]]
7 ].
8 &lt;#agency&gt; a rr:TriplesMap;
9 rml:logicalSource [rml:source "AGENCY.json";rml:referenceFormulation ql:JSONPath;rml:iterator "$.[*]"];
10 rr:subjectMap [rr:template "http://transport.ld.es/madrid/agency/{id}";rr:class gtfs:Agency].
adding any overhead to the existing (R2)RML mapping engines. We published a proof-of-concept
implementation converting referencing object maps with reference conditions to crafted URIs
at https://github.com/RMLio/rml-loose-generator.</p>
        <p>At this moment our implementation interprets every referencing object map that does not
need data from the parent source with reference conditions instead of join conditions (i.e. it
does not take case (ii) as described in section 3.1 into account) and is limited to referencing
object maps with only one join condition, without use of functions, and where the subject of
the parent is built with a template. Outside of these restrictions, the original semantics of join
conditions are preserved.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Evaluation</title>
      <p>
        We tested the efect of using reference conditions versus join conditions on
GTFS-MadridBench [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We used our proof-of-concept implementation to re-interpret all relevant join
conditions from the GTFS-Madrid-Bench mappings as reference conditions, before sending the
adapted mapping file to RMLMapper, RMLStreamer and Morph-KGC 7. Although unanticipated,
our implementation correctly detected every join condition as reference condition. We conclude
that none of the joins in the GTFS-Madrid-Bench mappings require the use of data from the
parent source (section 3.1 case (i)).
      </p>
      <p>We tested these mapping engines for scales 1, 5, 50, and 100 (table 1), using a device with
following specifications: 2 x Hexacore Intel E5645 (2.4GHz) CPU, 24GB RAM, 1x 250GB harddisk.
RMLMapper and RMLStreamer cannot generate any output for the GTFS-Madrid-Bench within
one hour when using join conditions. Using reference conditions, however, these mapping
engines were able to generate correct output, with timings similar to using a state-of-the-art
mapping engine like Morph-KGC. We note that RMLMapper cannot handle GTFS scales 50 and
100: the RMLMapper loads all data in memory during mapping, and the testing device ran out
of memory during GTFS scales 50 and 100.</p>
      <p>When comparing the resulting knowledge graphs from GTFS-Madrid-Bench we found no
diference between the version generated with join conditions and the one generated with
7https://github.com/RMLio/rmlmapper-java, https://doi.org/10.5281/zenodo.3887065, and https://doi.org/10.5281/
zenodo.5543552, respectively.
reference conditions. In hindsight, this makes sense: GTFS-Madrid-Bench’s testing data is also
used to fill a relational database, where referential integrity is needed. We conclude that data
joined in the GTFS-Madrid-Bench has perfect referential integrity and that none of the join
conditions in the GTFS-Madrid-Bench mapping file impose any limitation to replacing it by a
reference condition.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>The referencing object map construct from (R2)RML implies that the resulting RDF graph must
be referential integer, limiting the usability of relations in mapping files. Meanwhile, in use
cases where referential integrity is needed, the data sources typically already validate this
integrity by design (e.g. in the case of relational databases). As such, referential integrity checks
during the mapping process can become redundant. For other use cases, e.g., mapping data
sources that are not under the same governance, or mapping incomplete data (e.g., sample data
or streaming data), dropping the notion of referential integrity can improve the completeness
of the resulting knowledge graph.</p>
      <p>With this paper we introduce reference conditions, an additional condition type that enables
the expression of relations between mapping rules without joining the related data sources and
imposing referential integrity on the resulting triples. With a very limited overhead, the use of
reference conditions can accomplish an instant improvement for any RML or R2RML mapping
engine on knowledge graph generation time, while the mapping file still remains consistent and
well maintainable, and supplies the valuable metadata which can be deducted from expressed
relations. We argue that, unless data from the parent source is needed to build the child object
URI, or the parent source is a selective dataset, a reference condition should be preferred over a
join condition because this construction fits the Open World Assumption supported by RDF.</p>
      <p>Due to the completely correct generation within the GTFS-Madrid-Bench, we believe that
many use cases can benefit from this additional condition type, embracing the Open World
Assumption followed by performance gain without any significant side-efects.</p>
      <p>For future work, we will research how to further optimize reference conditions. First, our
current implementation only takes equality operators into account, however, we can expand
this to other types of reference conditions (e.g. comparing the lowercased values between
sources) by transforming the child reference. Second, we will verify if we can achieve similar
performance gains with other benchmarks and other mapping engines.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>The described research activities were supported by SolidLab Vlaanderen (Flemish Government,
EWI and RRF project VV023/10) and the imec ICON project AI4Foodlogistics (Agentschap
Innoveren en Ondernemen project nr. HBC.2020.3097). The authors want to thank the KGCW
reviewers for their constructive feedback that helped improve the paper.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Das</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sundara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Cyganiak</surname>
          </string-name>
          ,
          <article-title>R2RML: RDB to RDF Mapping Language</article-title>
          , Working Group Recommendation,
          <source>World Wide Web Consortium (W3C)</source>
          ,
          <year>2012</year>
          . URL: http://www.w3.org/ TR/r2rml/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <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, 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>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Lefrançois</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bakerally</surname>
          </string-name>
          ,
          <article-title>A SPARQL extension for generating RDF from heterogeneous formats</article-title>
          ,
          <source>in: The Semantic Web 14th International Conference, ESWC</source>
          <year>2017</year>
          , Portorož, Slovenia, May 28 - June 1,
          <year>2017</year>
          , Proceedings, Portoroz, Slovenia,
          <year>2017</year>
          , pp.
          <fpage>35</fpage>
          -
          <lpage>50</lpage>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>0 7 / 9 7 8 - 3 - 3 1 9 - 5 8 0 6 8 - 5</volume>
          _
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>H.</given-names>
            <surname>García-González</surname>
          </string-name>
          ,
          <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>
          ,
          <string-name>
            <given-names>J. M. C.</given-names>
            <surname>Lovelle</surname>
          </string-name>
          ,
          <article-title>ShExML: improving the usability of heterogeneous data mapping languages for first-time users</article-title>
          ,
          <source>PeerJ Computer Science</source>
          <volume>6</volume>
          (
          <year>2020</year>
          )
          <article-title>e318</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E.</given-names>
            <surname>Iglesias</surname>
          </string-name>
          ,
          <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>
          , M.-E. Vidal,
          <article-title>SDM-RDFizer: An RML Interpreter for the Eficient Creation of RDF Knowledge Graphs</article-title>
          ,
          <source>in: Proceedings of the 29th ACM International Conference on Information &amp; Knowledge Management</source>
          ,
          <year>2020</year>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>4 5 / 3 3 4 0 5 3 1 . 3 4 1 2 8 8 1 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Iglesias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jozashoori</surname>
          </string-name>
          , M.-E. Vidal,
          <article-title>Scaling Up Knowledge Graph Creation to Large and Heterogeneous Data Sources</article-title>
          , arXiv:
          <fpage>2201</fpage>
          .09694 [cs] (
          <year>2022</year>
          ). ArXiv:
          <volume>2201</volume>
          .
          <fpage>09694</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Arenas-Guerrero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chaves-Fraga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Toledo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. S.</given-names>
            <surname>Pérez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          , Morph-KGC:
          <article-title>Scalable knowledge graph materialization with mapping partitions, Semantic Web (</article-title>
          <year>2022</year>
          )
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
          <source>doi:1 0 . 3 2 3 3 / s w - 2</source>
          <volume>2 3 1 3 5 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <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>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Ruckhaus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          ,
          <article-title>Gtfs-madridbench: A benchmark for virtual knowledge graph access in the transport domain</article-title>
          ,
          <source>Journal of Web Semantics</source>
          <volume>65</volume>
          (
          <year>2020</year>
          )
          <article-title>100596</article-title>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>1 6</volume>
          / j . w e b s e
          <source>m . 2 0</source>
          <volume>2 0 . 1 0 0 5 9 6 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Delva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. D.</given-names>
            <surname>Smedt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Oo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. V.</given-names>
            <surname>Assche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lieber</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. Dimou,</surname>
          </string-name>
          <article-title>RML2shacl: RDF generation taking shape</article-title>
          ,
          <source>in: Proceedings of the 11th on Knowledge Capture Conference</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>153</fpage>
          -
          <lpage>160</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>4 5 / 3 4 6 0 2 1 0 . 3 4 9 3 5 6 2 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>W.</given-names>
            <surname>McKnight</surname>
          </string-name>
          ,
          <article-title>Data quality</article-title>
          , in: Information Management, Elsevier,
          <year>2014</year>
          , pp.
          <fpage>32</fpage>
          -
          <lpage>43</lpage>
          .
          <source>doi:1 0 . 1 0 1 6 / B 9 7</source>
          <volume>8 - 0 - 1 2 - 4 0 8 0 5 6 - 0 . 0 0 0 0 4 - 7</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>