<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A ShExML Perspective on Mapping Challenges: Already Solved Ones, Language Modifications and Future Required Actions</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Herminio</forename><surname>García-González</surname></persName>
							<email>garciaherminio@uniovi.es</email>
							<affiliation key="aff0">
								<orgName type="department">IT and Communications Service</orgName>
								<orgName type="institution">University of Oviedo</orgName>
								<address>
									<settlement>Asturias</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A ShExML Perspective on Mapping Challenges: Already Solved Ones, Language Modifications and Future Required Actions</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">D5173D60CBBD80C2A84445A0BE5D49E6</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T02:39+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>mapping challenges</term>
					<term>ShExML</term>
					<term>data mapping languages</term>
					<term>knowledge graph construction</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Data mapping languages allow users to create knowledge graphs with lower cost and time. Some challenges cannot be solved with state-of-the-art languages and tools, though. Thus, in this paper we use and modify ShExML to deal with some of them. We see how some challenges were already solved, which modifications we had to perform to cover others, and how the rest of them could be covered in future versions. Then, we establish a demonstration on language integrity after changes and a discussion on performed and upcoming changes. These solutions, alongside the discussion and joint analysis of other languages and tools solutions, will drive us to effective techniques to solve all proposed challenges.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Mapping heterogeneous datasources using a single representation is an active field which has been getting traction in the past years. For this purpose a set of languages and tools has been proposed <ref type="bibr" target="#b7">[8]</ref> which lower the cost and time employed in these tasks. This trajectory ended up in the celebration of the 1st International Workshop on Knowledge Graph Building <ref type="bibr" target="#b0">[1]</ref> and, one year after, the beginning of the Knowledge Graph Construction W3C Community Group 1 where academia, industry and practitioners are gathered to envision new steps, find unsolved problems, and face new challenges in this field 2 . One of the community outputs was a set of mapping challenges 3 which are nowadays complicated to solve with the current state-of-the-art languages, tools and techniques. Therefore, in this paper we tackle some of these mapping challenges with ShExML <ref type="bibr" target="#b4">[5]</ref> and try to solve the following questions:</p><p>-Q1: How can mapping challenges be solved with ShExML? -Q2: How can unaddressed challenges be solved and implemented in ShExML? -Q3: Have modifications in ShExML affected the functioning of already present features?</p><p>The rest of the paper is structured as follows: In Section 2 we summarise the mapping challenges proposed by the community; additionally, we offer a set of suplementary material to support following explanations. In Section 3 we see how the current language specification and engine can solve some of the challenges. Then, we explain how the solutions for other challenges have been implemented and included in ShExML in Section 4. In Section 5 we propose some further language modifications and a discussion on how the rest of the challenges could be addressed. We demonstrate the old features integrity after including the new ones and we establish a discussion on mapping challenges results in Section 6. And, finally, in Section 7 we draw some conclusions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Mapping challenges summary</head><p>During consecutive meetings in the Knowledge Graph Construction W3C Community Group, several mapping challenges and problems were arisen which are collected in the workshop website <ref type="foot" target="#foot_0">4</ref> . Thus, in this paper we deal with this selection of mapping challenges, we examine them and propose solutions within the ShExML language and our engine<ref type="foot" target="#foot_1">5</ref> . To categorise these solutions we link them to ShExML versions so we can trace when these solutions were achieved, i.e., if they were possible to solve before the mapping challenges were defined (ShExML v0.2.3), if they were solved after the mapping challenges were defined (ShExML v0.2.4 &amp; v0.2.5) or if they are not yet solved (future versions).</p><p>Thus, in Table <ref type="table" target="#tab_0">1</ref> a summary table is offered with the addressed challenges and with which version of ShExML engine the expected output is achieved. Besides, we offer a webpage<ref type="foot" target="#foot_2">6</ref> with links to the working solutions as supplementary material for the sake of demonstration and reproducibility. The inputs are taken from the Knowledge Graph Construction W3C Community Group mapping challenges repository <ref type="foot" target="#foot_3">7</ref> which contains a set of inputs and expected outputs that are agreed to represent the community mapping problems.</p><p>In the following sections we explain how solutions are achieved, which ShExML constructions and techniques were used, we establish a discussion on reached solutions and how unsolved challenges could be addressed in ShExML. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Already solved mapping challenges</head><p>In this section, we deal with the mapping challenges that can be solved without any modification in the ShExML language and engine. Therefore, these solutions are those that are reachable with ShExML v0.2.3 (released on 29th October 2020) <ref type="foot" target="#foot_4">8</ref> , that is, before the mapping challenges were defined.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Datatype map (input 5)</head><p>Datatype map refers to the possibility to generate datatype tags from the input content. Therefore, instead of defining them statically in the mapping rules, this challenge aims to support the dynamic generation of datatype tags from input content. In the case of input 5, it is intended that mapping languages would be able to generate datatype tags according to the most probable value according to values formats. For example, in input 5 it is expected that the number 3 would have an xsd:integer datatype and 3.14 would have an xsd:decimal one. This inference mechanism was already implemented in ShExML engine which in case that the user does not specifically define a datatype for an object value it will infer the most probable one (see Listing 1.1). Although the current implementation solves this specific mapping challenge, it is a naïve implementation.</p><p>However, it can lead to a more complex inference system, for example, aligning existing input data sources datatypes with RDF ones. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Join on literal</head><p>This challenge refers to the possibility to generate literals from a join condition (i.e., from another source) where R2RML <ref type="foot" target="#foot_5">9</ref> and RML <ref type="bibr" target="#b2">[3]</ref> output a resource by default.</p><p>In ShExML, join conditions<ref type="foot" target="#foot_6">10</ref> generate values without any specific form, so it is not determined in this step if it is a literal or a resource. It is, then, defined by the user in the shapes part, where the user decides the form of the output. This is a design decision on ShExML that was driven by the separation of concerns main principle. In Listing 1.2 we can see how the join condition is defined in familyName expression, and how then this expression is used in :Author shape without any prefix, indicating that a literal must be generated. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Multivalue references</head><p>This challenge deals with the expected output of a hierarchical document (e.g., XML or JSON files) where multiple iterators are used. The discussion in this challenge is whether we produce the cartesian product and provide a join condition to correlate values or if we just translate the hierarchical information as it is, without the need to provide any join condition <ref type="foot" target="#foot_7">11</ref> . This case becomes more complicated if a join condition needs to be provided over a JSON file because of the impossibility to access parent nodes (see Section 4.1 for the specific challenge on this topic). Therefore, it seems that in hierarchical data the expected output should be a verbatim translation (so to say, not creating the cartesian product as it is not how it is originally represented in the input file).</p><p>In ShExML, this was the default behaviour from its inception as in ShExML first versions it only supported XML and JSON files. Besides, we saw it as a more usable manner to define these mappings as usability is the main goal of the language <ref type="bibr" target="#b3">[4]</ref>. Therefore, in Listing 1.3 we can see how using iterators and nested iterators we can cover these hierarchical data models. In Table <ref type="table" target="#tab_0">1</ref> this challenge is marked as not solved in ShExML v0.2.3 due to a bug when using only the root node ($) in the top iterator query. However, we include it here as the coverage of this challenge did not require syntax modifications nor new features in ShExML engine, only a bug fix. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Language modifications</head><p>In this section, we deal with the mapping challenges that needed some modifications in the ShExML language and engine. Therefore, these solutions are those which are reachable with ShExML v0.2.4 (released on 18th January 2021) <ref type="foot" target="#foot_8">12</ref>or with ShExML v0.2.5 (released on 27th January 2021) <ref type="foot" target="#foot_9">13</ref> , that is, after the mapping challenges were defined.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Access fields outside iterators</head><p>Sometimes, in hierarchical data models, there is the need to access values outside the iteration pattern. For example, we may need to obtain the values that are parents of the current iterated node. When dealing with XML files it does not involve any modification in ShExML, as using XPath queries we are able to access upper nodes with the double dot and slash notation (i.e., ../). However, when dealing with JSON files, this is not possible because of JSONPath not supporting the parent access notation 14 . This is a well-known problem in data mapping languages as they use Json-Path to define values accesses. Indeed, in xR2RML <ref type="bibr" target="#b11">[11]</ref>, the authors defined a property called xrr:pushDown that takes a value in the hierarchy and pushes it down into their offsprings iterators so it can be available further <ref type="bibr" target="#b12">[12]</ref>.</p><p>Following this experience with xR2RML, we implemented a similar solution in ShExML using the PUSHED_FIELD and POPPED_FIELD keywords. When using the PUSHED_FIELD keyword the ShExML engine saves the value using the name as the identifier for further uses. Then, when the POPPED_FIELD is used the ShExML engine searches for the saved value with an identifier which is equal to that given in the query part (i.e., inside &lt; and &gt;). Therefore, in Listing 1.4, the id field is saved and then used in the cars iterator, so we can establish a relation from the car to the owner.</p><p>An interesting discussion here is if it is better to make these accesses implicit or explicit. A recent RML syntax modification proposal <ref type="bibr" target="#b1">[2]</ref> presented an algorithm that could implicitly access values from upper hierarchical levels by saving iteration information, indexes and values. Users can directly access upper elements from its current hierarchical level. Indeed, the solution is clean and avoids the user's explicit declaration of values to be saved. However, it has two possible main drawbacks. Firstly, the use of a bigger amount of memory and time by saving a lot information that could be used (or not) in further mapping rules. This technique, could be, in the end, a bottleneck in performance if it is not carefully implemented. Second one, it could complicate the engine implementation as it allows to go up and down in the hierarchy, while actual behaviour only expects to go down. This could also lead to a performance issue. Either way, this dichotomy should be quantified in further experiments to establish the best solution in terms of usability and performance. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Datatype map</head><p>As we mentioned in Section 3.1, this challenge aims to generate datatype tags dynamically from data content. Therefore, the datatype inputs can appear in multiple ways: full URI, prefix plus datatype, or simply datatype name without prefix.</p><p>ShExML v0.2.3 supports the creation of static datatype tags with prefix plus datatype syntax (see Listing 1.5). Therefore, we should derive this syntax and maintain its proven usability <ref type="bibr" target="#b3">[4]</ref> but giving dynamic datatype generation possibilities. The natural expansion of this syntax is to include the same object generation expression but also for datatypes and language tags (see Section 4.3). So, the final syntax is prefix plus generation expression (inside square brackets) as we can see in Listing 1.6. The prefix can be optional if the data value already contains it (e.g., input 1 and 2) and values can be transformed using Matcher feature<ref type="foot" target="#foot_10">15</ref> to expected XML Schema valid datatypes (e.g., input 4). </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Language map</head><p>As with datatype maps in Section 4.2, the language map challenge want to address the problem of generating language tags dynamically from input data. In ShExML v0.2.3 language tags were supported statically, that is, it was possible to tag an object expression with a specific language but it would be applied to all values (see Listing 1.7).</p><p>We performed a syntax and engine modification, like in datatype maps, to be able to generate language tags with expressions. The final syntax is @ plus the generation expression (between square brackets) as it can be seen in Listing 1.8. Here, again, the idea was to preserve the usability as the main goal and to make it as simple as possible. Input 1 tests the generation with a valid tag following BCP47<ref type="foot" target="#foot_11">16</ref> , input 2 tests the transformation of a language value to a valid tag (in ShExML this is done using Matchers functionality<ref type="foot" target="#foot_12">17</ref> ), and in input 3 it is shown how two different sources can be joined to provide language information.</p><p>As a side note, it is not possible to specify a language map and a datatype map in the same triple, as it is forbidden by the ShExML grammar. This was made intentional to follow the RDF specification rules as it can be seen in its grammar 18 . Therefore, whenever a langtag generation expression (either static or dynamic) is provided the implicit datatype is rdf:langString. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Generate multiple values</head><p>This challenge wants to address the problem of generating various datatypes or language tags for the same subject (e.g., a multi-language value). Once datatype maps (see Section 4.2) and language maps (see Section 4.3) are supported in ShExML, it is straightforward as ShExML will generate a triple per value returned from the object expression. Therefore, to generate multi-language values the syntax is like in Listing 1.9 and to generate multi-language values with a default language the syntax is like in Listing 1.10. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.5">RDF Collections</head><p>This challenge puts on the table the necessity for a mechanism to create RDF Collections from some values. Normally, in ShExML, and in other data mapping languages, when an object generation expression returns multiple values, multiple triples are generated (see Section 3.3). However, in certain cases it is necessary to encapsulate these values inside a collection (e.g., to preserve order).</p><p>This was already explored by some languages (e.g., SPARQL-Generate <ref type="bibr" target="#b6">[7]</ref> and xR2RML <ref type="bibr" target="#b11">[11]</ref>) which provide some directives to create collections. Therefore, we applied this experience in ShExML to cover RDF Collections and Containers (i.e., Lists, Seqs, Bags and Alts.). Now, it is possible to indicate to the engine that a collection or container should be generated using the keyword AS plus the desired collection or container (i.e., RDFList, RDFBag, RDFSeq or RDFAlt). The proposed syntax follows the same design principles from already existing features syntax (e.g., Matchers<ref type="foot" target="#foot_13">19</ref> ). See Listing 1.11 for an example. In this section we discuss further challenges that are not solved with the previously mentioned modifications. These are the challenges that would require to rethink some functionality, or to include new ones, but that would need from a well planned inclusion, due to their possible interference with other features.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Access fields outside iterators (input 2)</head><p>Although this challenge was already addressed in Section 4.1, only input 1 was completely solved. In the case of input 2, where data is in the same hierarchical level (like it would come from two different files), using join conditions in ShExML, only one car is linked to each owner when the expected result was two cars per person. To solve this problem we think of two possible solutions.</p><p>First one is to review the join condition functionality to check whether something is failing (a bug) or if the join condition need to be rethought and reimplemented to cover further challenges.</p><p>Another possibility, which is already present in other languages like YARRRML <ref type="bibr" target="#b5">[6]</ref>, is to provide conditional generation. With conditional content generation we are able to test a condition (e.g., in input 2 for value equality) and generate or not the resulting triple depending on its result.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Excel style</head><p>A classic solution when dealing with Excel sheets was to convert them to CSV, and then treat them as tables to be processed by data mapping languages. However, this challenge found this solution not appropriate when the style of the Excel sheet is wanted to be preserved. Two solutions could cover this challenge.</p><p>First one is to preprocess the Excel sheet and convert it to CSV but adding columns with style information so it can be processed by state-of-the-art tools. However, it would require some preprocessing work which would weaken the goal of low cost and time invested when using data mapping tools.</p><p>Second one is to include a specific Excel processor, with its own query language, which can express not only access to cells, but also to the cell and text style. Thus, in Java based implementations it can be considered to use Apache POI to process sheets, and include some simple query support to retrieve styles. Therefore, in ShExML this would require to support the mentioned query language for Excel, and then, integrate it into the ShExML engine to retrieve Excel sheets values.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.3">Process multivalue references</head><p>This challenge is very close to multivalue references (see Section 3.3), but in this case multivalues are included all within a string value and separated by commas.</p><p>Therefore, here the challenge is not about how to output multivalues, or create RDF collections, but how to effectively handle these multivalues which need some processing. Therefore, this would require some sort of data transformations functions that can be applied to the extracted values. Therefore, the most effective way to extend ShExML and enable users to transform data is to provide the possibility to execute transformation functions which can be defined by users.</p><p>Data transformation functions have been already explored in RML through the FnO library <ref type="bibr" target="#b8">[9]</ref> which provides a set of implementation independent reusable functions <ref type="bibr" target="#b10">[10]</ref>. So, one possibility is to support FnO functions inside ShExML. The advantage of this proposal is that it moves all function infrastructure outside the ShExML language and engine. Conversely, we add more dependencies to users (which can find it hard to learn), we force them to use a third party environment and we lose control of this part.</p><p>Another possibility is to provide an environment to define inline functions like the semantic actions in Shape Expressions (ShEx) <ref type="bibr" target="#b13">[13]</ref>. Therefore, we can provide a restricted environment where higher order functions could be executed (see Listing 1.12 for an example). The advantages are that there is no need for third party dependencies, it provides a higher flexibility and users do not need to learn another tool. However, it can increase complexity due to the necessity to know about functional programming. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.4">RDF Collections (input 2 &amp; 3)</head><p>Although RDF collections and containers were included in ShExML (see Section 4.5), input 2 and 3 present some particularities. In the case of input 2 the use of different keys would require a more complex query or some sort of parametrisation in executed queries. In input 3 the per row iteration model for CSV files implemented in ShExML does not create collections effectively. Therefore, it would imply a reimplementation of per row iteration model for these cases. However, it could affect the overall functionality for CSV files.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Evaluation and Discussion</head><p>In Q3 we have posed a question about the possible effects that the modifications in ShExML could have in already working features. The idea of this question is to demonstrate the validity of Q1 solutions alongside old features that should still work as expected. This type of testing, known as regression testing, have been included in ShExML from the very beginning<ref type="foot" target="#foot_14">20</ref> so we are able to add new features in ShExML knowing that old features are still working as expected. Thus, every time a new version is released these tests must be executed to validate the language and engine integrity. Continuous integration is the perfect tool for this task, as every time that a change is submitted to ShExML repository all tests are executed to verify the integrity. In the ShExML repository we have configured Travis CI<ref type="foot" target="#foot_15">21</ref> for this task. Therefore, these regression tests in v0.2.4<ref type="foot" target="#foot_16">22</ref> and v0.2.5<ref type="foot" target="#foot_17">23</ref> are telling us that all features are still working as expected, and equally, giving a negative answer to Q3. So, we can conclude that integrity is held.</p><p>In Sections 3 and 4 we have seen how some mapping challenges were already solved in ShExML and how we have made some modifications in ShExML language and engine to deal with the others. These two sections give an answer for Q1. These solutions were designed to maintain ShExML usability <ref type="bibr" target="#b3">[4]</ref> using a similar syntax, so that users can use these new features with the minimum learning curve possible; in other words, making the smallest modifications in the ShExML syntax. In addition, in Section 3 we have highlighted how the ShExML design have already given an answer to some challenges, emphasising how the ShExML separation of concerns principle can give answers to some of them (e.g., Join on literal).</p><p>In Section 5 we have given some intuition on how remaining challenges could be solved, answering to Q2. They would require harder and more complex modifications; in some cases the modification of an already working mechanism (e.g., inputs 2 and 3 in RDF Collections), the inclusion of a new iteration model and the design of a new query language (e.g., Excel style) or the choice between two different systems (e.g., data transformation functions in process multivalue references). All these inclusions will require a careful study and implementation in the language so they do not affect other features and, also, to select the better option from a usability perspective.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusions</head><p>In this paper we have explored how ShExML can deal with some of the challenges defined in the Knowledge Graph Construction W3C Community Group. We have divided them into challenges already solved by ShExML before their definition, challenges solved by latest versions of ShExML, and challenges that are not yet solved, for which we have given some notions and intuitions on how ShExML can be modified to cover them. Furthermore, we have demonstrated that the modification of ShExML to cover new challenges has not affected other language and engine features. Therefore, we see this work as a first step on demonstrating how the challenges can be solved and, together with solutions from other languages and the joint discussion, we will be able to offer unified solutions to the posed mapping challenges.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Listing 1 . 2 .</head><label>12</label><figDesc>ShExML solution for join on literals. PREFIX : &lt; http: // example . com / &gt; PREFIX experson: &lt; http: // example . com / person / &gt; PREFIX dbr: &lt; http: // dbpedia . org / resource / &gt; PREFIX schema: &lt; http: // schema . org / &gt; SOURCE jsonfile &lt; https: // raw . githubusercontent . com / kg -construct / mapping -challenges / 2 a a c 9 6 8 0 c d 7 3 1 f d 6 4 7 a b d 3 3 d 4 4 a 7 f 4 0 0 e 4 2 7 8 c f 3 / challenges / join -on -literal / input -1/ input . json &gt; ITERATOR author &lt; jsonpath: $ . author [*] &gt; { FIELD id &lt;id &gt; FIELD firstname &lt; firstname &gt; FIELD affiliation &lt; affiliation &gt; } ITERATOR people &lt; jsonpath: $ . people [*] &gt; { FIELD firstname &lt; firstname &gt; FIELD familyname &lt; familyName &gt; } EXPRESSION authors &lt; jsonfile . author UNION jsonfile . people &gt; EXPRESSION familyName &lt; jsonfile . people . familyname UNION jsonfile . author . firstname JOIN jsonfile . people . firstname &gt; :Author experson: [ authors . id ] { :affiliation [ authors . affiliation ] ; :lastName [ familyName ] ; }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Listing 1 . 4 .</head><label>14</label><figDesc>ShExML solution for accessing fields outside iterations. ITERATOR records &lt; jsonpath: $ . records [*] &gt; { PUSHED_FIELD id &lt;id &gt; FIELD enteredBy &lt; enteredBy &gt; ITERATOR cars &lt; cars [*] &gt; { FIELD make &lt; make &gt; POPPED_FIELD carOwner &lt;id &gt; } }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Listing 1 . 7 .Listing 1 . 8 .</head><label>1718</label><figDesc>ShExML static generation of language tags. ex:Person exPerson: [ person . firstname ] { ex:lastName [ person . lastname ] @ en ; } ShExML dynamic generation of language tags ex:Person exPerson: [ person . firstname ] { ex:lastName [ person . lastname ] @ [ person . lang ] ; }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Listing 1 . 9 .</head><label>19</label><figDesc>ShExML multiple values with language tags. ex:Person exPerson: [ person . lastname ] { ex:name [ person . firstname . label ] @ [ person . firstname . lang ] ; } Listing 1.10. ShExML multiple values with language tags and with a default language. ex:Person exPerson: [ person . firstname ] { ex:name [ person . firstname ] @ en ; ex:name [ person . firstname ] @ [ person . lang ] ; }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Listing 1 . 11 .</head><label>111</label><figDesc>ShExML support for RDF collections and containers. ex:Article exArticle: [ labValues . articles . title ] { a ex:Article ; ex:hasAuthors exAuthor: [ labValues . articles . authors . name AS RDFList ] ; } 5 Future required actions</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Coverage</figDesc><table><row><cell></cell><cell></cell><cell>Already solved</cell><cell>With language modifications</cell></row><row><cell></cell><cell></cell><cell>(v0.2.3)</cell><cell>(v0.2.4 &amp; v0.2.5)</cell></row><row><cell>Access fields</cell><cell>input 1</cell><cell>x</cell><cell></cell></row><row><cell>outside iterators</cell><cell>input 2</cell><cell>x</cell><cell>x</cell></row><row><cell></cell><cell>input 1</cell><cell>x</cell><cell></cell></row><row><cell></cell><cell>input 2</cell><cell>x</cell><cell></cell></row><row><cell>Datatype map</cell><cell>input 3</cell><cell>x</cell><cell></cell></row><row><cell></cell><cell>input 4</cell><cell>x</cell><cell></cell></row><row><cell></cell><cell>input 5</cell><cell></cell><cell></cell></row><row><cell>Excel style</cell><cell>input 1 (unaddressed)</cell><cell>x</cell><cell>x</cell></row><row><cell>Generate multiple</cell><cell>input 1</cell><cell>x</cell><cell></cell></row><row><cell>values</cell><cell>input 2</cell><cell>x</cell><cell></cell></row><row><cell>Join on literal</cell><cell>input 1</cell><cell></cell><cell></cell></row><row><cell></cell><cell>input 1</cell><cell>x</cell><cell></cell></row><row><cell>Language map</cell><cell>input 2</cell><cell>x</cell><cell></cell></row><row><cell></cell><cell>input 3</cell><cell>x</cell><cell></cell></row><row><cell cols="2">Multivalue references input 1</cell><cell>x (bug)</cell><cell></cell></row><row><cell>Process multivalue references</cell><cell>input 1 (unaddressed)</cell><cell>x</cell><cell>x</cell></row><row><cell></cell><cell>input 1</cell><cell>x</cell><cell></cell></row><row><cell>RDF Collections</cell><cell>input 2</cell><cell>x</cell><cell>x</cell></row><row><cell></cell><cell>input 3</cell><cell>x</cell><cell>x</cell></row></table><note>table of mapping challenges in ShExML language and engine by input files. means covered and x means not covered. Unaddressed means that this challenge was not tried to solve in this work.</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head></head><label></label><figDesc>Listing 1.3. ShExML solution multivalue references.</figDesc><table><row><cell>ITERATOR lab &lt; jsonpath: $ &gt; {</cell></row><row><cell>FIELD labName &lt; labName &gt;</cell></row><row><cell>ITERATOR articles &lt; articles [*] &gt; {</cell></row><row><cell>FIELD title &lt; title &gt;</cell></row><row><cell>ITERATOR authors &lt; authors [*] &gt; {</cell></row><row><cell>FIELD name &lt; name &gt;</cell></row><row><cell>ITERATOR affiliation &lt; affiliation [*] &gt; {</cell></row><row><cell>FIELD label &lt; label &gt;</cell></row><row><cell>}</cell></row><row><cell>}</cell></row><row><cell>}</cell></row><row><cell>}</cell></row><row><cell>EXPRESSION labValues &lt; lab_file . lab &gt;</cell></row><row><cell>ex:Lab exLab: [ labValues . labName ] {</cell></row><row><cell>a ex:Lab ;</cell></row><row><cell>ex:hasArticles @ ex:Article ;</cell></row><row><cell>ex:hasMembers @ ex:Author ;</cell></row><row><cell>}</cell></row><row><cell>PREFIX ex: &lt; http: // example . com / &gt;</cell></row><row><cell>PREFIX exLab: &lt; http: // example . com / lab / &gt;</cell></row><row><cell>PREFIX exArticle: &lt; http: // example . com / article / &gt;</cell></row><row><cell>PREFIX exAuthor: &lt; http: // example . com / author / &gt;</cell></row><row><cell>PREFIX exAff: &lt; http: // example . com / aff / &gt;</cell></row><row><cell>SOURCE lab_file &lt; https: // raw . githubusercontent . com /</cell></row><row><cell>kg -construct / mapping -challenges / main</cell></row><row><cell>/ challenges / multivalue -references</cell></row><row><cell>/ input -1/ input . json &gt;</cell></row></table><note>ex:Article exArticle: [ labValues . articles . title ] { ex:hasAuthor @ ex:Author ; } ex:Author exAuthor: [ labValues . articles . authors . name ] { ex:hasAffiliation exAff: [ labValues . articles . authors . affiliation . label ] ; }</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head></head><label></label><figDesc>Listing 1.5. ShExML static datatypes syntax.</figDesc><table><row><cell>ex:Person exPerson: [ person . firstname ] {</cell></row><row><cell>ex:num [ person . num ] xsd:integer ;</cell></row><row><cell>}</cell></row><row><cell>Listing 1.6. ShExML dynamic datatypes syntax.</cell></row></table><note>ex:Person exPerson: [ person . firstname ] { ex:num [ person . num ] xsd: [ person . dt ] ; }</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head></head><label></label><figDesc>Listing 1.12. ShExML support for RDF collections and containers.</figDesc><table><row><cell>FIELD title &lt; title &gt;</cell></row><row><cell>FIELD tags &lt; tags &gt;</cell></row><row><cell>}</cell></row><row><cell>}</cell></row><row><cell>EXPRESSION labValues &lt; lab_file . lab &gt;</cell></row><row><cell>ex:Tag ex: [ lab . articles . tag WITH splitFunction ] {</cell></row><row><cell>ex:label [ lab . articles . tag WITH splitFunction ] ;</cell></row><row><cell>}</cell></row><row><cell>PREFIX ex: &lt; http: // example . com / &gt;</cell></row><row><cell>SOURCE lab_file &lt; https: // raw . githubusercontent . com /</cell></row><row><cell>kg -construct / mapping -challenges / main / challenges /</cell></row><row><cell>process -multivalue -references / input -1/ input . json &gt;</cell></row><row><cell>FUNCTION splitFunction &lt;n = &gt; n . split ( ' , ') &gt;</cell></row><row><cell>ITERATOR lab &lt; jsonpath: $ &gt; {</cell></row><row><cell>FIELD labName &lt; labName &gt;</cell></row><row><cell>ITERATOR articles &lt; article &gt; {</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_0">https://w3id.org/kg-construct/workshop/challenges.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_1">https://github.com/herminiogg/ShExML</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_2">http://herminiogg.github.io/mapping-challenges/challenges/solutions.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_3">https://github.com/kg-construct/mapping-challenges</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_4">https://github.com/herminiogg/ShExML/releases/tag/v0.2.3</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_5">https://www.w3.org/TR/r2rml/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="10" xml:id="foot_6">See ShExML specification for a full explanation on how join construction works: http://shexml.herminiogarcia.com/spec/#join</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="11" xml:id="foot_7">See discussion about this topic in RMLMapper reference implementation: https: //github.com/RMLio/rmlmapper-java/issues/28</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="12" xml:id="foot_8">https://github.com/herminiogg/ShExML/releases/tag/v0.2.4</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="13" xml:id="foot_9">https://github.com/herminiogg/ShExML/releases/tag/v0.2.5</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="15" xml:id="foot_10">http://shexml.herminiogarcia.com/spec/#matcher</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="16" xml:id="foot_11">https://tools.ietf.org/html/bcp47</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="17" xml:id="foot_12">http://shexml.herminiogarcia.com/spec/#matcher</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="19" xml:id="foot_13">http://shexml.herminiogarcia.com/spec/#matcher-0</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="20" xml:id="foot_14">To see all tests that are executed over ShExML engine https://github.com/herminiogg/ShExML/tree/master/src/test/scala-2.12/es/ weso/shexml</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="21" xml:id="foot_15">https://travis-ci.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="22" xml:id="foot_16">https://travis-ci.org/github/herminiogg/ShExML/builds/755033209</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="23" xml:id="foot_17">https://travis-ci.org/github/herminiogg/ShExML/builds/756419674</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<author>
			<persName><forename type="first">D</forename><surname>Chaves-Fraga</surname></persName>
		</author>
		<author>
			<persName><surname>Heyvaert</surname></persName>
		</author>
		<ptr target="CEUR-WS.org" />
	</analytic>
	<monogr>
		<title level="m">Joint Proceedings of the 1st International Workshop on Knowledge Graph Building and 1st International Workshop on Large Scale RDF Analytics co-located with 16th Extended Semantic Web Conference (ESWC 2019)</title>
		<title level="s">CEUR Workshop Proceedings</title>
		<editor>
			<persName><forename type="first">P</forename><surname>Priyatna</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Sequeda</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><forename type="middle">F</forename><surname>Dimou</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Jabeen</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Graux</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Sejdiu</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Saleem</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Lehmann</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename></persName>
		</editor>
		<meeting><address><addrLine>Portorož, Slovenia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2019-06-03">June 3, 2019. 2019</date>
			<biblScope unit="volume">2489</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Integrating nested data into knowledge graphs with RML fields</title>
		<author>
			<persName><forename type="first">T</forename><surname>Delva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Van Assche</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Heyvaert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>De Meester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2nd International Workshop on Knowledge Graph Building co-located with 18th Extended Semantic Web Conference (ESWC 2021)</title>
		<title level="s">CEUR Workshop Proceedings</title>
		<meeting>the 2nd International Workshop on Knowledge Graph Building co-located with 18th Extended Semantic Web Conference (ESWC 2021)<address><addrLine>Hersonissos, Greece</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2021-06-06">June 6, 2021. 2021</date>
		</imprint>
	</monogr>
	<note>To appear on</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">RML: A Generic Language for Integrated RDF Mappings of Heterogeneous Data</title>
		<author>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">V</forename><surname>Sande</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Colpaert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Verborgh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Mannens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">V</forename><surname>De Walle</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Workshop on Linked Data on the Web co-located with the 23rd International World Wide Web Conference (WWW 2014)</title>
				<meeting>the Workshop on Linked Data on the Web co-located with the 23rd International World Wide Web Conference (WWW 2014)<address><addrLine>Seoul, Korea</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2014-04-08">April 8, 2014. 2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">ShExML: improving the usability of heterogeneous data mapping languages for first-time users</title>
		<author>
			<persName><forename type="first">H</forename><surname>García-González</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Boneva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Staworko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Labra-Gayo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M C</forename><surname>Lovelle</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">PeerJ Computer Science</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="page">e318</biblScope>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">ShExML: An Heterogeneous Data Mapping Language based on ShEx</title>
		<author>
			<persName><forename type="first">H</forename><surname>García-González</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Fernández-Álvarez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E L</forename><surname>Gayo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the EKAW 2018 Posters and Demonstrations Session co-located with 21st International Conference on Knowledge Engineering and Knowledge Management (EKAW 2018)</title>
				<meeting>the EKAW 2018 Posters and Demonstrations Session co-located with 21st International Conference on Knowledge Engineering and Knowledge Management (EKAW 2018)<address><addrLine>Nancy, France</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2018">November 12-16, 2018. 2018</date>
			<biblScope unit="page" from="9" to="12" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Declarative Rules for Linked Data Generation at Your Fingertips!</title>
		<author>
			<persName><forename type="first">P</forename><surname>Heyvaert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">D</forename><surname>Meester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Verborgh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web: ESWC 2018 Satellite Events -ESWC 2018 Satellite Events</title>
				<meeting><address><addrLine>Heraklion, Crete, Greece</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2018">June 3-7, 2018. 2018</date>
			<biblScope unit="page" from="213" to="217" />
		</imprint>
	</monogr>
	<note>Revised Selected Papers</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A SPARQL Extension for Generating RDF from Heterogeneous Formats</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lefrançois</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Zimmermann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Bakerally</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -14th International Conference, ESWC 2017</title>
		<title level="s">Proceedings, Part I. Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">E</forename><surname>Blomqvist</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Maynard</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Gangemi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Hoekstra</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">O</forename><surname>Hartig</surname></persName>
		</editor>
		<meeting><address><addrLine>Portorož, Slovenia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2017-06-01">May 28 -June 1, 2017. 2017</date>
			<biblScope unit="volume">10249</biblScope>
			<biblScope unit="page" from="35" to="50" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Mapping Languages: Analysis of Comparative Characteristics</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">D</forename><surname>Meester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Heyvaert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Verborgh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</author>
		<ptr target="CEUR-WS.org" />
	</analytic>
	<monogr>
		<title level="m">Joint Proceedings of the 1st International Workshop on Knowledge Graph Building and 1st International Workshop on Large Scale RDF Analytics co-located with 16th Extended Semantic Web Conference (ESWC 2019)</title>
		<title level="s">CEUR Workshop Proceedings</title>
		<editor>
			<persName><forename type="first">D</forename><surname>Chaves-Fraga</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Heyvaert</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Priyatna</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><forename type="middle">F</forename><surname>Sequeda</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Jabeen</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Graux</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Sejdiu</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Saleem</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Lehmann</surname></persName>
		</editor>
		<meeting><address><addrLine>Portorož, Slovenia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2019-06-03">June 3, 2019. 2019</date>
			<biblScope unit="volume">2489</biblScope>
			<biblScope unit="page" from="37" to="45" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">RML and FnO: Shaping DBpedia Declaratively</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">D</forename><surname>Meester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Maroy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Verborgh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Mannens</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web: ESWC 2017</title>
				<editor>
			<persName><forename type="first">E</forename><surname>Blomqvist</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">K</forename><surname>Hose</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Paulheim</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Lawrynowicz</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Ciravegna</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">O</forename><surname>Hartig</surname></persName>
		</editor>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
	</analytic>
	<monogr>
		<title level="m">Satellite Events -ESWC 2017 Satellite Events</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Portorož, Slovenia</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2017-06-01">May 28 -June 1, 2017. 2017</date>
			<biblScope unit="volume">10577</biblScope>
			<biblScope unit="page" from="172" to="177" />
		</imprint>
	</monogr>
	<note>Revised Selected Papers</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Implementationindependent function reuse</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">D</forename><surname>Meester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Seymoens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dimou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Verborgh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Future Gener. Comput. Syst</title>
		<imprint>
			<biblScope unit="volume">110</biblScope>
			<biblScope unit="page" from="946" to="959" />
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Translation of Relational and Non-relational Databases into RDF with xR2RML</title>
		<author>
			<persName><forename type="first">F</forename><surname>Michel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Djimenou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Faron-Zucker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Montagnat</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">WEBIST 2015 -Proceedings of the 11th International Conference on Web Information Systems and Technologies</title>
				<editor>
			<persName><forename type="first">V</forename><surname>Monfort</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">K</forename><surname>Krempels</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">T</forename><forename type="middle">A</forename><surname>Majchrzak</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Z</forename><surname>Turk</surname></persName>
		</editor>
		<meeting><address><addrLine>Lisbon, Portugal</addrLine></address></meeting>
		<imprint>
			<publisher>SciTePress</publisher>
			<date type="published" when="2015-05-22">20-22 May, 2015. 2015</date>
			<biblScope unit="page" from="443" to="454" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">xR2RML: Relational and non-relational databases to RDF mapping language</title>
		<author>
			<persName><forename type="first">F</forename><surname>Michel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Djimenou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">F</forename><surname>Zucker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Montagnat</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
	<note type="report_type">Tech. rep</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Shape expressions: an RDF validation and transformation language</title>
		<author>
			<persName><forename type="first">E</forename><surname>Prud'hommeaux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E L</forename><surname>Gayo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">R</forename><surname>Solbrig</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 10th International Conference on Semantic Systems, SEMANTICS 2014</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Sack</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Filipowska</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Lehmann</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Hellmann</surname></persName>
		</editor>
		<meeting>the 10th International Conference on Semantic Systems, SEMANTICS 2014<address><addrLine>Leipzig, Germany</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2014">September 4-5, 2014. 2014</date>
			<biblScope unit="page" from="32" to="40" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
