=Paper=
{{Paper
|id=Vol-1593/article-13
|storemode=property
|title=None
|pdfUrl=https://ceur-ws.org/Vol-1593/article-13.pdf
|volume=Vol-1593
|dblpUrl=https://dblp.org/rec/conf/www/DebruyneO16
}}
==None==
R2RML-F: Towards Sharing and Executing Domain Logic
in R2RML Mappings
Christophe Debruyne Declan O’Sullivan
Trinity College Dublin Trinity College Dublin
Dublin 2, Ireland Dublin 2, Ireland
debruync@scss.tcd.ie declan.osullivan@scss.tcd.ie
ABSTRACT could include construct to support the declaration of user-defined
Many initiatives have emerged to aid one in publishing structured functions (amongst others).
resources as Linked Data on the Web with one of the major There are cases where the underlying database does not support
achievements being the R2RML W3C Recommendation. R2RML certain data manipulations because they are not expressive enough
and its dialects assume a certain underlying technology (e.g., Core or because procedural domain knowledge is part of the application
SQL 2008). This means that domain-specific data transformations layer rather than the database layer. Converting units might be a
– such as transforming geospatial coordinates – rely either on that straightforward conversion that one can formulate in a SQL query,
underlying technology or data-preprocessing steps. We argue that but others are more complex and people have to resort to more
one can incorporate and subsequently share that procedural do- complex data processing “pipelines”; preprocessing the data and
main knowledge in such mappings. Such an extension would transforming the result into RDF or transform the data into an
make certain pre-processing steps redundant. One can furthermore RDF graph and manipulate the RDF graph to create a new RDF
attach metadata to these functions, which can be published as graph. Kovalenko et al. investigated the latter in [10] and they
well. In this paper, we present R2RML-F, an extension to observed that some techniques (e.g., SPIN [11]) support user-
R2RML, that adopts ECMAScript for capturing domain defined functions. Both approaches are, however, still conducted
knowledge and for which we have developed a prototype. We in two steps and that renders the whole process more complex
demonstrate the viability of the approach with a demonstration then it should be.
and compare its performance with different mappings in some
We, however, feel that such procedural knowledge can and should
initial experiments. Our preliminary results suggest that there is
be included in the mapping. Moreover, by incorporating that
little or no overhead with respect to relying on underlying tech-
knowledge in the mapping, one can also share the procedural
nology.
knowledge and events described, as well as annotate with metada-
CCS Concepts ta (e.g., with predicates from PROV-O [12]). The requirements
we state for our approach are:
H.4 [Information Systems Applications]: Miscellaneous; H.5 1. Ensure a minimal extension of R2RML that reuses as
[World Wide Web]: Web data description languages. much as possible existing predicates;
2. Adopt a standardized programming language to repre-
Keywords sent procedural domain knowledge for which multiple
R2RML; Linked Data; Mapping. implementations exist.
1. INTRODUCTION The result of taking this approach is R2RML-F, where the ‘F’
Fifteen years ago, Tim Berners-Lee wrote a Design Issue [2] sug- stands for “function”. R2RML-F adopts ECMAScript1 as the pro-
gesting how to publish the information contained in relational gramming language and we have extended the R2RML vocabu-
databases on the Semantic Web. Many tools have emerged (see lary to include notions for function calls and parameter bindings.
[15] for a survey) to generate RDF from these databases either via Next to these contributions, this paper presents details of the pro-
direct mappings – based on the ideas outlined in [2] with the RDF totype and examples demonstrating the viability of the approach.
reflecting the database’s structure and labels – or via annotations The remainder of this paper is organized as follows: Section 2
where tables, views and queries are related to concepts and rela- presents R2RML-F; Section 3 provides some details on the im-
tions in ontologies to create a knowledge base. Both approaches plementation of the prototype; Section 4 is used to demonstrate
ultimately led to two W3C Recommendations; a direct mapping the ideas as well as to present experiments to evaluate the perfor-
of relational data to RDF [1] and R2RML [6]. The R2RML speci- mance of R2RML-F; Section 5 presents related work; and Section
fication assumes that the relational database is annotated to con- 6 concludes the paper.
form to the Core SQL 2008 specification.
According to [3], a model management system is “a component
2. EXTENDING R2RML
that supports the creation, compilation, reuse, evolution, and exe- In this section we describe the predicates introduced and our ex-
cution of mappings between schemas represented in a wide range tension of R2RML. We do assume the reader is familiar with
of metamodels.” They also argued that mapping languages should R2RML and will introduce the notions of the approach through a
be more expressive if one wants to support various use case sce- simple example. In Listing 1 we declare a function that multiplies
narios and that – provided that tractability is not a problem – one
1
JavaScript is a popular implementation of ECMAScript. Imple-
mentations of ECMAScript often extend the language or pro-
Copyright is held by the author/owner(s). vide APIs. One example is JavaScript providing APIs to interact
WWW2016 Workshop: Linked Data on the Web (LDOW2016) with a Web browser.
two arguments2: Any problems with the function results in an error that will be sent
<#Multiply> back to the user.
rrf:functionName "multiply" ;
rrf:functionBody """ Function calls are implemented as term maps and each function
function multiply(var1, var2) { call has a list of term-maps that constitute its arguments. Each
return var1 * var2 ; argument is evaluated before the results are passed on to the func-
}
""" ;
tion being called. This can be compared to the greedy evaluation
. strategy found in some programming languages. Any runtime
Listing 1: Declaring a function in R2RML-F errors halt the process and the user is made aware of where the
problem resides.
Each function is a resource that must have two relationships: a
function name (a literal) and a function body (also a literal); the We currently support no monitoring of the functions and rely on
function name and name of the function in the function body must Nashorn and the Java Runtime Environment to handle issues con-
be identical. Each R2RML-F mapping cannot have two functions cerning memory management and the correctness of code (e.g.,
with the same name and each function must have exactly one infinite loops).
function name and exactly one function body. Any errors will be 4. DEMONSTRATION AND EXPERIMENT
reported to the user.
We demonstrate and evaluate our approach with a use case pro-
Listing 2 demonstrates how functions are called from within a vided by the Ordnance Survey Ireland (OSi)5. The OSi is Ireland’s
Predicate Object Map. We have introduced the new term map national mapping agency and the geometries in their system are
function call. A term map must now be exactly one of the follow- represented using the Irish Transverse Mercator (ITM)6 coordi-
ing: a constant-valued term map, a column-valued term map, a nate system. At an international level, however, World Geodetic
template-valued term map or a function-call-valued term map. A System 84 (or WSG 84)7 is the standard used in cartography and
function call: navigation (amongst others). Transforming coordinates from one
• must refer to exactly one function; and coordinate system to another is a common task for which (inte-
• must have at most one list of parameter bindings. grated) tools exist, but not all relational databases support those.
When no list of parameter bindings or an empty list is provided, For the demonstration and experiment, we created a table repre-
they are considered to be function calls where no parameters are senting the 26 counties of The Republic of Ireland (see Table 1),
being passed. The order of the parameters that are passed is im- with the following fields: “id” – an identifier stored as an integer;
portant. Adopting the RDF Sequence container was not an option, “name” – the name of the county as a varchar; “geom” – a point
as RDF does not provide a mechanism to state a container has no of that county as a geometry object (internal representation omit-
more members [5]. The RDF Collection vocabulary of classes and ted for this paper); and “geoms” – capturing that same point as a
properties can describe a closed collection as a list [5]. RDF Col- varchar in WKT format.8 The table is stored in a PostgreSQL
lections are therefore suitable for passing arguments. The ele- database supporting geometries with PostGIS. The purpose of this
ments in this list – if any – must be term maps. Functions calls can table is to demonstrate the transformation of the textual represen-
thus be passed the results of columns, constants, templates or tation of points with our approach and compare it with a mapping
another function call. using PostGIS’ functionality.
<#TriplesMap1> Table 1: The table “county” in the “boundaries” database
rr:logicalTable [ rr:tableName "Employee"; ];
rr:subjectMap [
id name geom geoms
rr:template "http://org.com/employee/{ID}"; 10000 CARLOW POINT(671989.126 676051.233)
] ; 20000 CAVAN POINT(649270.487 796627.36)
rr:predicateObjectMap [ 30000 CLARE POINT(532617.573 676288.529)
rr:predicate ex:salary ; 40000 CORK POINT(159956.935 79499.879)
rr:objectMap [
rr:datatype xsd:double ; 50000 DONEGAL POINT(599999.588 907696.186)
rrf:functionCall [ 60000 GALWAY POINT(533393.941 731920.418)
rrf:function <#Multiply> ; 70000 KERRY POINT(480286.589 603093.557)
rrf:parameterBindings ( 80000 KILDARE POINT(683580.721 713638.655)
[ rr:constant "12"^^xsd:integer ]
90000 KILKENNY POINT(650826.971 648269.702)
[ rr:column "monthly_salary" ]
) ; 100000 LAOIS POINT(640275.125 640275.125)
] ; 110000 LEITRIM POINT(600000.431 818660.17)
] ; 120000 LIMERICK POINT(549077.109 638997.81)
] ; 130000 LONGFORD POINT(616521.486 768575.569)
.
140000 LOUTH POINT(698735.035 788136.627)
Listing 2: Using function in a Predicate Object Map 150000 MAYO POINT(517850.357 795236.186)
3. IMPLEMENTATION 160000 MEATH POINT(688113.609 769372.026)
170000 MONAGHAN POINT(662572.109 833219.834)
An existing R2RML processor, called db2triples, was extended.
180000 OFFALY POINT(633368.373 722298.005)
The extension is available as a branch on GitHub.3 Prior to pro- 190000 ROSCOMMON POINT(183556.633 277830.739)
cessing the mappings, the R2RML-F processor first looks for and 200000 SLIGO POINT(556553.63 833667.473)
evaluates the functions using Java’s Nashorn4 JavaScript engine. 210000 TIPPERARY POINT(611273.837 657290.162)
2 5
http://kdeg.scss.tcd.ie/ns/rrf# is the namespace URI for the http://www.osi.ie/
6
R2RML-F predicates and is prefixed with “rrf” in this paper. https://en.wikipedia.org/wiki/Irish_Transverse_Mercator
3 7
Available at https://github.com/CNGL-repo/db2triples https://en.wikipedia.org/wiki/World_Geodetic_System
4 8
https://blogs.oracle.com/nashorn/ https://en.wikipedia.org/wiki/Well-known_text
220000 WATERFORD POINT(634140.854 611037.497) was run on a MacBook Pro 12.1 with an Intel Core i5 processor
230000 WESTMEATH POINT(633172.984 750116.57) (2.7 GHz) and a memory of 8 GB (1867 MHz DDR3). The IDE
240000 WEXFORD POINT(684871.008 639468.666) used is the Eclipse IDE Mars Release (4.5.0) and the Java version
250000 WICKLOW POINT(706277.46 695537.898) 1.8.0_45.
260000 DUBLIN POINT(716330.154 742154.083)
To compare the performance of our approach, we have created
two additional mappings. The mappings we will compare are:
Simulating a relational database that does not support geometries,
we have created a mapping M1 that maps “id”, “name” and “ge- • M1 (Listing 3) mapping a text field containing points
oms” to triples. This mapping is shown in Listing 3, but the func- which are transformed via a function;
tion – which takes a fair amount of space and therefore omitted – • M2 (Listing 4) casting the geometry into a string and
is based on a PHP script9 that has been ported to ECMAScript. providing that field as input to the function; and
One can see that the mapping should result in two RDF triples for • M3 (Listing 5) transforming the geometry into WGS84
each record. in the SQL query, therefore not relying on the function
<#TriplesMap1>
provided in the mapping.
rr:logicalTable [ M2 was created to analyze the impact of casting geometries to
rr:sqlQuery "SELECT id, name, geoms FROM county" ;
] ; strings.
rr:subjectMap [
rr:template "http://data.example.com/county/{id}" ;
For each mapping we have run a script that executes a mapping
] ; 110 times in the same virtual machine and measures the execution
rr:predicateObjectMap [ times. The script was thus run three times, once for each mapping.
rr:predicate ex:name ; For each mapping, we ignore the first ten measurements to avoid a
rr:termType rr:Literal;
rr:objectMap [ rr:column "name" ]; bias created by cold starting the Java Virtual Machine. Even
] ; though M3 does not use a function, we have not removed the
rr:predicateObjectMap [ function from the mapping. As functions are loaded only once
rr:predicate ex:point ;
rr:objectMap [ (prior to executing the mappings), this creates a constant across
rr:termType rr:Literal; the three mappings allowing us to more reliably compare the exe-
rrf:functionCall [ cution times measured. The results are shown in Table 2.
rrf:function <#Transform> ;
rrf:parameterBindings ( Table 2: Average, maximum and minimum execution time in
[ rr:column "geoms" ] milliseconds for 100 runs with each mapping.
) ;
] ; M1 M2 M3
] ;
] ; Average 77.66 78.62 87.86
. Standard Deviation 37.69 34.80 40.19
<#Transform> Min out of 100 runs 16.00 20.00 15.00
rrf:functionName "transform" ;
rrf:functionBody """ Max out of 100 runs 205.00 214.00 205.00
// Omitted
""" ;
. Looking at the average runtime, it is surprising to see that our
Listing 3: An R2RML-F mapping transforming points in a approach in M1 seemingly performs better than a mapping with
text field with a function in the mapping (mapping M1). no function calls. In order to investigate whether the differences
are significant, we performed a Welch Two Sample T-Test for
The execution of our processor generated 52 triples of which
each pair of mappings M1-M2, M1-M3 and M1-M2. The signifi-
some are shown in Figure 1. We will now proceed with evaluating cance level we adopt is 0.05. The p-values for each test are:
our approach with other mappings in order to analyze the impact
of incorporating domain knowledge in the mapping. 1. M1-M2: 0.8518 > 0.05
2. M1-M3: 0.06564 > 0.05
3. M2-M3: 0.0838 > 0.05
All p-values are above 0.05, which suggests that the differences
are not significant. This also suggests – at the moment – that our
approach, viable from a technical point of view, seems not to
cause any serious overhead for this particular use case. We notice
that the last two p-values – comparing a mapping applying the
function with a mapping that does not – are closer to the confi-
dence level than the first. M1 and M2 rely on calling the function
and their difference seems not significant.
4.1 Additional Experiments
We recognize the size of the dataset is limited and the function
Figure 1: Partial result of the transformation. very complex, so we have ran additional experiments with a larger
dataset and a simple function that are similar in setup. We created
Before describing the experiment, we note that our experiment a table with two columns (“id”, “x” and “y” – all integers) and
generated 1,000 records with random values between 0 and 100
9
for x and y. The first experiment mapped the multiplication of x
The function to transform ITM into WGS84 is based on with x, the second the multiplication of x and y. The main differ-
http://www.nearby.org.uk/blog/2009/05/13/itm-wgs84-and- ence is the number of parameters (one vs. two), with the first be-
irish-grid-and-british-national-grid-php-code/
ing more similar to the conversion of coordinates (i.e., only one create richer mappings, but limited to XML documents. The same
argument is passed). holds for RML [8] when mapping XML documents to RDF.
Two mappings were created for the first experiment: one applying On representing functions. SPIN [11] provides concepts and
a function that multiplies x with x, and one where that multiplica- predicates for describing functions that we have decided not to
tion is part of the SQL query.10 Again executing each mapping reuse. One of the important differences is that SPIN proposes the
110 times in the same process and only taking the last 100 times use of predicates sp:arg1, …, sp:argn for binding the pa-
into account, we now notice that the p-value is 0.00541 indicating rameters. We consider the use RDF Collections more elegant. As
that there is strong evidence against the two mappings being [10] noted, Apache Jena11 allows one to integrate functions by
equal, with M1 performing better. Similarly, two mappings were extending special abstract Java classes which are then available
created for the second experiment: one passing x and y to a func- via a special namespace. This, however, creates a dependency on
tion and one doing the multiplication in the query. Again, there is both Java and Apache Jena. All of this also holds for SPIN as it is
strong evidence that both mappings are different (p-value = built on top of Jena.
0.0000000204), and this time in favor of M2. From these addi-
On R2RML extensions. RML [8] and xR2RML [13] extended
tional experiments, we conclude that further experiments – both in
R2RML to provide support for generating RDF from different
terms of dataset size and varying complexity of functions – are
types of structured resources such as XML and CSV. One can see
necessary to evaluate performance
how the ideas presented in this paper can easily be merged with
Table 3: Average, maximum and minimum execution time in those initiatives. At this stage, however, we choose to extend
milliseconds for 100 runs with each mapping for the two addi- R2RML validate our ideas and will consider RML at a later stage.
tional experiments.
6. CONCLUSIONS AND FUTURE WORK
1 variable 2 variables Capturing procedural knowledge in R2RML either relies on the
M1 M2 M1 M2 underlying relational database technology or on data pre-
Average 1,646.10 1,716.76 1,980.22 1,729.95 processing. If one is willing to trade tractability in for richer map-
Standard Deviation 154.53 197.88 318.57 285.58 pings, sharing and declaring richer mappings is possible.
Min out of 100 runs 1,305.00 1,290.00 1,321.00 1,058.00
We presented R2RML-F, which extends R2RML with treating
Max out of 100 runs 2,115.00 2,102.00 2,622.00 2,304.00
function calls as a term map. Using a use case from the geospatial
domain, we demonstrated our approach and conducting an exper-
5. RELATED WORK iment to evaluate its performance with a mapping relying on func-
We have to note that functions in transformations have been stud- tions provided by the underlying database technology. Our initial
ied in different domains, such as model-to-model transformations, results show that our approach is viable and that there seems to be
for which specifications have been developed. One noteworthy little impact on the performance.
example of such a specification in that domain is Que- Future work includes additional experiments to validate our find-
ry/View/Transformation (QVT) defined by the Object Manage- ings and developing additional scenarios and use cases to moti-
ment Group allowing one access to operators, constructs and func- vate the need for incorporating functions in a mapping, e.g., those
tions to transform UML into, for instance, ER [14]. QVT and calling web services.
similar approaches have been adopted in the Semantic Web com-
munity to transform meta-models in e.g., UML into OWL ontolo- 7. ACKNOWLEDGMENTS
gies [16], but this is a different problem than the one we address. This study is supported by the Science Foundation Ireland (Grant
In this study, we incorporated the notion in a W3C Recommenda- 13/RC/2106) as part of the ADAPT Centre for Digital Content
tion for publishing data as RDF. The adoption of RDF allows one Platform Research (http://www.adaptcentre.ie/) at Trinity College
to furthermore publish the functions that were developed. Dublin. We thank the Ordnance Survey Ireland (OSi) for permit-
ting us to use their boundaries dataset for the purposes of this
On capturing functions in mappings. Hert et al. presented a
research project. Within OSi, we are especially grateful for the
survey in which they investigated the capabilities of RDB-2-RDF
input and domain expertise provided by Lorraine McNerney and
tools, both direct and annotated [9]. One of the aspects they inves-
Éamonn Clinton.
tigated was “Transformation Functions”, which are user-defined
functions to transform the (syntactic) representation in RDF. In 8. REFERENCES
their survey, they consider this aspect covered when the underly- [1] M. Arenas, A. Bertails, E. Prud’hommeaux, J. Sequeda. A
ing database technology supports these conversions. Our approach Direct Mapping of Relational Data to RDF. W3C Recom-
is different as we capture those functions in the mapping. mendation, W3C, Sep. 2012. https://www.w3.org/TR/rdb-
ECMAScript provides the ability to load (external) scripts, and direct-mapping/
hence functionality not necessarily available by the underlying
technology. [2] T. Berners-Lee. Relational Databases on the Semantic Web,
1998. Via https://www.w3.org/DesignIssues/RDB-
XSPARQL [4] – initially developed to mediate between XML and RDF.html, last accessed January 2015.
RDF via SPARQL and XQuery – has recently been used as an
R2RML processor [7]. Since the XQuery specification prescribes [3] P. A. Bernstein and S. Melnik. Model management 2.0: ma-
support for defining user-defined functions, one should be able to nipulating richer mappings. In C. Y. Chan, B. C. Ooi, and A.
Zhou, editors, Proceedings of the ACM SIGMOD Interna-
tional Conference on Management of Data, Beijing, China,
10 June 12-14, 2007, pages 1–12. ACM, 2007.
Unlike the previous experiment, the outcome of the function
using the underlying technology does not need to be cast to a
different data type and therefore no third mapping to analyze
11
that overhead is needed. https://jena.apache.org/
[4] S. Bischof, S. Decker, T. Krennwallner, N. Lopes, and A. Search, volume 7538 of LNCS, pages 34–52. Springer, 2012.
Polleres. Mapping between RDF and XML with XSPARQL. [16] J. Zedlitz, J. Jörke, and N. Luttenberger. Knowledge Tech-
J. Data Semantics, 1(3):147–185, 2012. nology: Third Knowledge Technology Week, KTW 2011, Ka-
[5] D. Brickley and R. V. Guha. RDF Schema 1.1. W3C Rec- jang, Malaysia, July 18-22, 2011. Revised Selected Papers,
ommendation, W3C, Feb. 2014. https://www.w3.org/TR/rdf- chapter From UML to OWL 2, pages 154–163. Springer Ber-
schema/ lin Heidelberg, Berlin, Heidelberg, 2012.
[6] S. Das, S. Sundara, and R. Cyganiak. R2RML: RDB to RDF APPENDIX
Mapping Language. W3C Recommendation, W3C, Sep. Here we provide listings referred to in the text.
2012. https://www.w3.org/TR/r2rml/
<#TriplesMap1>
[7] D. Dell’Aglio, A. Polleres, N. Lopes, and S. Bischof. Query- rr:logicalTable [
ing the web of data with XSPARQL 1.1. In R. Verborgh and rr:sqlQuery """SELECT id, name, ST_AsText(geom)
AS geom FROM boundaries.county""" ;
E. Mannens, editors, Proceedings of the ISWC Developers ] ;
Workshop 2014, co-located with the 13th International Se- rr:subjectMap [
mantic Web Conference (ISWC 2014), Riva del Garda, Italy, rr:template "http://data.example.com/county/{id}" ;
] ;
October 19, 2014, volume 1268 of CEUR Workshop Pro- rr:predicateObjectMap [
ceedings, pages 113–118. CEUR-WS.org, 2014. rr:predicate ex:name ;
rr:termType rr:Literal;
[8] A. Dimou, M. Vander Sande, P. Colpaert, R. Verborgh, E. rr:objectMap [ rr:column "name" ];
Mannens, and R. Van de Walle. RML: A generic language ] ;
for integrated RDF mappings of heterogeneous data. In C. rr:predicateObjectMap [
rr:predicate ex:point ;
Bizer, T. Heath, S. Auer, and T. Berners-Lee, editors, Pro- rr:objectMap [
ceedings of the Workshop on Linked Data on the Web co- rr:termType rr:Literal;
located with the 23rd International World Wide Web Confer- rrf:functionCall [
rrf:function <#Transform> ;
ence (WWW 2014), Seoul, Korea, April 8, 2014, volume rrf:parameterBindings (
1184 of CEUR Workshop Proceedings. CEUR-WS.org, [ rr:column "geom" ]
2014. ) ;
] ;
[9] M. Hert, G. Reif, and H. C. Gall. A comparison of RDF-to- ] ;
RDF mapping languages. In C. Ghidini, A. N. Ngomo, S. N. ] ;
.
Lindstaedt, and T. Pellegrini, editors, Proceedings the 7th In- <#Transform>
ternational Conference on Semantic Systems, I-SEMANTICS rrf:functionName "transform" ;
2011, Graz, Austria, September 7-9, 2011, ACM Internation- rrf:functionBody """
// Omitted
al Conference Proceeding Series, pages 25–32. ACM, 2011. """ ;
[10] O. Kovalenko, C. Debruyne, E. Serral, and S. Biffl. Evalua- .
tion of technologies for mapping representation in ontolo- Listing 4: An R2RML-F mapping transforming points from a
gies. In R. Meersman, H. Panetto, T. S. Dillon, J. Eder, Z. geometry cast to a string with a function captured in the map-
Bellahsene, N. Ritter, P. D. Leenheer, and D. Dou, editors, ping (mapping M2). Differences wrt Listing 3 are highlighted.
On the Move to Meaningful Internet Systems: OTM 2013 <#TriplesMap1>
Conferences - Confederated International Conferences: rr:logicalTable [
rr:sqlQuery """SELECT id, name,
CoopIS, DOA-Trusted Cloud, and ODBASE 2013, Graz, ST_AsText(ST_Transform(geom,4326))
Austria, September 9-13, 2013. Proceedings, volume 8185 of AS geom FROM boundaries.county""" ;
LNCS, pages 564–571. Springer, 2013. ] ;
rr:subjectMap [
[11] H. Knublauch, J. A. Hendler, K. Idehen. SPIN – Overview rr:template "http://data.example.com/county/{id}" ;
and Motivation. W3C Member Submission, W3C, Feb. 2011. ] ;
rr:predicateObjectMap [
https://www.w3.org/Submission/spin-overview/ rr:predicate ex:name ;
rr:termType rr:Literal;
[12] D. McGuinness, T. Lebo, and S. Sahoo. PROV-O: The rr:objectMap [ rr:column "name" ];
PROV ontology. W3C Recommendation, W3C, Apr. 2013. ] ;
http://www.w3.org/TR/2013/REC-prov-o-20130430/. rr:predicateObjectMap [
rr:predicate ex:point ;
[13] F. Michel, L. Djimenou, C. Faron-Zucker, and J. Montagnat. rr:objectMap [
Translation of relational and non-relational databases into rr:objectMap [ rr:column "geom" ];
] ;
RDF with xR2RML. In V. Monfort, K. Krempels, T. A. ] ;
Majchrzak, and Z. Turk, editors, WEBIST 2015 - Proceed- .
ings of the 11th International Conference on Web Infor- <#Transform>
mation Systems and Technologies, Lisbon, Portugal, 20-22 rrf:functionName "transform" ;
rrf:functionBody """
May, 2015, pages 443–454. SciTePress, 2015. // Omitted
""" ;
[14] The Object Management Group. Meta Object Facility (MOF) .
2.0 Query/View/-Transformation Specification, 2007.
Listing 5: An R2RML-F mapping transforming points from a
[15] J. Unbehauen, S. Hellmann, S. Auer, and C. Stadler. geometry using a database’s built-in function, which is then
Knowledge extraction from structured sources. In S. Ceri and cast to a string (mapping M3). Differences wrt Listing 3 are
M. Brambilla, editors, Search Computing - Broadening Web highlighted.