SlideShare a Scribd company logo
1
Franck Michel
A Generic Mapping-based Query Translation
from SPARQL to Various Target Database Query
Languages
A Generic Mapping-based Query Translation
from SPARQL to Various Target Database Query
Languages
F. Michel, C. Faron-Zucker, J. Montagnat
I3S laboratory, CNRS, Univ. Nice Sophia
2
Franck Michel
Publication/interlinking of open datasets
• In a common machine-readable format
• Using common vocabularies
Linking data increases its value
• Produce new knowledge
• Mash up with related data
• Opportunity for new (unexpected) usage
Citizenship demand for access to public data (scientific,
government…)
Towards a Web of Data
From a Web of Documents
...to a Web of (Linked) Data
3
Franck Michel
Driven/supported by various initiatives, e.g.:
• General-purpose: Linking Open Data, W3C Data Activity
• Domain-specific: Bio2RDF, BioPortal
• GAFAs: Facebook OG, Google KG, Yahoo!, Microsoft… consume
and produce RDF
Towards a Web of Data
Linked Open Data Cloud
Linked Datasets as of Aug. 30th 2014. (c) R. Cyganiak & and A. Jentzsch
4
Franck Michel
Web-scale data integration
Need to access data from the Deep Web
• Strd./unstrd. data
hardly indexed by search engines,
hardly linked with other data sources
Exponential data growth goes in
• Various types of DBs:
RDB, Native XML, LDAP directory,
OODB, NoSQL, NewSQL, ...
• Heterogeneous data models and
query capabilities
Whatever the type of DB… it can
be of interest for the Web of Data
… “Raw Data Now” (T. Berners Lee)
5
Franck Michel
Populate
the
Web of Data
with
Legacy Data
Populate
the
Web of Data
with
Legacy Data
6
Franck Michel
Focused on data formats
• HTML: RDFa, Microformats
• XML: Using XPath (RML), XQuery (XSPARQL, SPARQL2XQuery),
XSLT (Scissor-Lift, GRDDL), XSD-to-OWL (SPARQL2XQuery)
• CSV/TSV/Spreadsheets: CSV on the web (W3C WG)
• JSON: using JSONPath (RML), JSON-LD
Focused on types of database
• Extensive work on RDBs: D2RQ, Virtuoso, R2RML…
• XML native DBs: SPARQL2XQuery
• NoSQL stores: xR2RML
Integration frameworks: DataLift, RML, Asio Tool Suite…
Previous works
7
Franck Michel
Previous works
Query
rewriting
Legacy DB
Graph
Materialization
(ETL like)
Virtual Graph
Data freshness
Big datasets
DB-to-RDF
Mappings
8
Franck Michel
SPARQL rewriting in the general case
Previous works: SPARQL rewriting closely coupled with the target QL
expressiveness (SQL, XQuery):
support of joins, unions, nested queries, filtering, string manipulation etc.
Solution proposed: two-steps approach
1. Translate SPARQL into a pivot Abstract Query Language (AQL)
under “target DB-to-RDF” mappings: generic mapping language needed
2. Translate from the Abstract QL to the QL of the target database
Enable SPARQL access to a large
range of heterogeneous databasesGoal:
9
Franck Michel
SPARQL rewriting in the general case
Previous works: SPARQL rewriting closely coupled with the target QL
expressiveness (SQL, XQuery):
support of joins, unions, nested queries, filtering, string manipulation etc.
Solution proposed: two-steps approach
1. Translate SPARQL into a pivot Abstract Query Language (AQL)
under “target DB-to-RDF” mappings: generic mapping language needed
2. Translate from the Abstract QL to the QL of the target database
Enable SPARQL access to a large
range of heterogeneous databasesGoal:
10
Franck Michel
Agenda
The xR2RML mapping language
The SPARQL translation method
Application
Conclusions & perspectives
11
Franck Michel
Agenda
The xR2RML mapping language
The SPARQL translation method
Application
Conclusions & perspectives
12
Franck Michel
The xR2RML mapping language
Describe mappings from various types of DB to RDF
• Query the target database
• Pick data elements from query results
• Translate them to (subject, predicate, object) using arbitrary ontologies
Independent of any target database
• Allow any declarative query language
• Allow any syntax to reference data elements within query results (column name,
JSONPath, XPath, attribute name...)
Extends W3C R2RML (backward compatible) and RML
Turtle RDF Syntax
Mapping graph = set of “triples maps” ~ mappings
13
Franck Michel
The xR2RML mapping language: example
<http://example.org/member/106> foaf:mbox "john@foo.com".
<http://example.org/member/106> foaf:mbox "john@example.org".
<http://example.org/member/106> foaf:mbox "john@foo.com".
<http://example.org/member/106> foaf:mbox "john@example.org".
<#Mbox> a rr:TriplesMap;
xrr:logicalSource [ xrr:query "db.people.find({'emails':{$ne: null}})" ];
rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ];
rr:predicateObjectMap [
rr:predicate foaf:mbox;
rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ].
xR2RMLxR2RML
<#Mbox> a rr:TriplesMap;
xrr:logicalSource [ xrr:query "db.people.find({'emails':{$ne: null}})" ];
rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ];
rr:predicateObjectMap [
rr:predicate foaf:mbox;
rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ].
xR2RML
{ "id": 106, "firstname": "John",
"emails": ["john@foo.com", "john@example.org"],
"contacts": ["chris@example.org", "alice@foo.com"] }
14
Franck Michel
The xR2RML mapping language: example
<#Knows> a rr:TriplesMap;
xrr:logicalSource [ xrr:query "db.people.find({'contacts':{$size: {$gte:1}}})" ];
rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ];
rr:predicateObjectMap [
rr:predicate foaf:knows;
rr:objectMap [
rr:parentTriplesMap <#Mbox>;
rr:joinCondition [ rr:child "$.contacts.*"; rr:parent "$.emails.*" ] ] ].
{ "id": 106, "firstname": "John",
"emails": ["john@foo.com", "john@example.org"],
"contacts": ["chris@example.org", "alice@foo.com"] }
<http://example.org/member/106> foaf:knows <http://example.org/member/327>.
<http://example.org/member/327> foaf:knows <http://example.org/member/106>.
<http://example.org/member/106> foaf:knows <http://example.org/member/327>.
<http://example.org/member/327> foaf:knows <http://example.org/member/106>.
xR2RML
{ "id": 327, "firstname": "Alice",
"emails": ["alice@foo.com"],
"contacts": ["john@foo.com"] }
15
Franck Michel
Agenda
The xR2RML mapping language
The SPARQL translation method
Application
Conclusions & perspectives
16
Franck Michel
Graph Pattern
SPARQL-to-AQL rewriting steps
1. Triple Pattern Bindings: figure out minimal set candidate mappings
for each triple pattern
2. Rewrite the SPARQL Graph Pattern into the AQL, under triple
pattern bindings, entail conditions
3. Optimization the resulting Abstract Query
Basic Graph Pattern
SELECT ?y, ?mbox WHERE {
?x foaf:mbox "john@foo.com".
?y foaf:knows ?x.
OPTIONAL { ?y foaf:mbox ?mbox. }
FILTER { ?x != ?y}
}
Triple Pattern
17
Franck Michel
(1) Triples patterns bindings
SELECT ?y, ?mbox WHERE {
?x foaf:mbox "john@foo.com".
?y foaf:knows ?x.
OPTIONAL { ?y foaf:mbox ?mbox. }
FILTER { ?x != ?y}
}
<#Mapping>
<#Mapping>
<#Mapping>
<#Mapping>
<#Mapping>
xR2RML mapping graph
?x
foaf:mbox
"john@foo.com".
<#Mbox> …
rr:subjectMap [ rr:template "…" ]
rr:predicateObjectMap [
rr:predicate foaf:mbox;
rr:objectMap [
xrr:reference "$.emails.*";
rr:termType rr:Literal ] ].
18
Franck Michel
(1) Triples patterns bindings
1. Initial set of mappings for each triple pattern
• Check compatibility: term type, datatype, lang
• Check unsatisfiable SPARQL filter constraints about a terms type, data type,
language: isIRI, isLiteral, isBlank, lang(), datatype()…
e.g. “rr:termType rr:Literal” does not match "isIRI(?var)"
2. Reduce bindings
• Consider join constraints implied by shared variables
SELECT ?x WHERE {
?y foaf:mbox "john@foo.com".//tp2
?x foaf:knows ?y. //tp3
}
Bindings:
(tp2, <#Mbox>)
(tp3, <#Knows>)
Shared variable ?y compatibility between
<#Mbox>’s subject map
and
<#Knows>’s object map
M. Rodríguez-Muro, M. Rezk. Efficient SPARQL-to-SQL with R2RML mappings, Web Semant. Sci. Serv. Agents World Wide Web. 33 (2015) 141–169.
J. Unbehauen, C. Stadler, S. Auer. Accessing relational data on the web with SparqlMap, in: Semantic Technol., Springer, 2013: pp. 65–80.
19
Franck Michel
(2) Rewrite each Triple Pattern
(tp1, <#Mbox>)
(tp2, <#Mbox>)
(tp3, <#Knows>)
Bindings
tp2 <#Mbox>
match
Atomic Abstract Query
{ From, Project, Where }
20
Franck Michel
(2) Rewrite each Triple Pattern
<#Mbox> …
rr:subjectMap [
rr:template "http://example.org/member/{$.id}" ];
rr:predicateObjectMap [
rr:predicate foaf:mbox;
rr:objectMap [ xrr:reference "$.emails.*";
rr:termType rr:Literal ]
]. xR2RMLxR2RML
<#Mbox> …
rr:subjectMap [
rr:template "http://example.org/member/{$.id}" ];
rr:predicateObjectMap [
rr:predicate foaf:mbox;
rr:objectMap [ xrr:reference "$.emails.*";
rr:termType rr:Literal ]
]. xR2RML
?x
foaf:mbox
"john@foo.com".
Condition 1: $.id != null
Condition 2: $.emails.* produces "john@foo.com"
21
Franck Michel
Usual SPARQL-to-SQL example:
FILTER encapsulating SELECT WHERE clause
Relies on the DB engine to optimize the query
In the general case, no assumption on the target DB:
Need to optimize at the earliest stage:
push “down” filter conditions in the translation of triple patterns
(2) Rewrite from SPARQL to the AQL
SELECT ?x WHERE {
?x foaf:age ?age.
…
FILTER (?age > 30)
}
SELECT t2.X FROM
( SELECT t1.ID AS X, t1.AGE AS AGE
FROM PERSON t1
…
) AS t2
WHERE (t2.AGE > 30)
22
Franck Michel
(2) Rewrite from SPARQL to the AQL
transm (P1 AND P2, f) transm (P1, f) INNER JOIN transm (P2, f) ON var(P1) ⋂ var(P2)
transm (P1 OPTIONAL P2, f) transm (P1, f) LEFT JOIN transm (P2, f) ON var(P1) ⋂ var(P2)
transm (P1 UNION P2, f) transm (P1, f) LEFT JOIN transm (P2, f) ON var(P1) ⋂ var(P2)
UNION
transm (P2, f) LEFT JOIN transm (P1, f) ON var(P1) ⋂ var(P2)
transm (tp, f) transTPm (tp, sparqlCond(tp, f))
transm (P FILTER f’, f) transm (P, f && f’) FILTER sparqlCond(P, f && f’)
transm (P) transm (P, true)
Rewrites a well-designed SPARQL graph pattern
into the AQL, under a set of xR2RML mappings m
Function transm (graph pattern, filter)
sparqlCond: Push filter conditions in the translation of relevant triple patterns
23
Franck Michel
(2) Rewrite from SPARQL to the AQL
Function sparqlCond():
Push down filter conditions in the translation of triples patterns
Make inner-queries as selective as possible
Limit the size of intermediary results
SELECT ?x WHERE {
?x foaf:mbox ?mbox. // tp1
?y foaf:mbox "john@foo.com". // tp2
?x foaf:knows ?y. // tp3
FILTER {
contains(str(?mbox),"foo.com") // c1
&& ?x != ?y // c2
}}
transTPm(tp1, c1)
INNER JOIN transTPm(tp2, true) ON {}
INNER JOIN transTPm(tp3, c2) ON {?x,?y}
FILTER c2
24
Franck Michel
Example
SELECT ?x WHERE {
?x foaf:mbox ?mbox. // tp1
?x foaf:mbox "john@foo.com". // tp2
FILTER {
?mbox != "john@foo.com" } // c1
}
{ From: { "db.people.find({'emails':{$ne:null}})" },
Project: { $.id AS ?x, $.emails.* AS ?mbox },
Where: { isNotNull($.id), isNotNull($.emails.*), sparqlFilter(?mbox != "john@foo.com")}}
INNER JOIN
{ From: { "db.people.find({'emails':{$ne: null}})" },
Project: { $.id AS ?x },
Where: { isNotNull($.id), equals($.emails.*, "john@foo.com")} }
ON { ?x } Abstract Query
25
Franck Michel
(3) Optimization
Abstract Query effective but may be inefficient
• Unnecessary complexity: multiple joins, unions, redundancy
Study/reuse of common query optimization techniques
• Self-Join / Optional-Self-Join Elimination
• When the same mapping is bound to different triple patterns
• Self-Union Elimination
• When multiple mappings are bound to the same triple pattern
• Projection Pushing
SELECT DISTINCT ?p WHERE { ?s ?p ?o }
• Filter propagation in joined queries
B. Elliott, E. Cheng, C. Thomas-Ogbuji, Z.M. Ozsoyoglu, A complete translation from SPARQL into efficient SQL, in: Proc. Int. Database Eng. Appl. Symp. 2009, ACM, 2009: pp. 31–42.
M. Rodríguez-Muro, M. Rezk. Efficient SPARQL-to-SQL with R2RML mappings, Web Semant. Sci. Serv. Agents World Wide Web. 33 (2015) 141–169.
J. Unbehauen, C. Stadler, S. Auer. Accessing relational data on the web with SparqlMap, in: Semantic Technol., Springer, 2013: pp. 65–80.
26
Franck Michel
Agenda
The xR2RML mapping language
The SPARQL translation method
Application
Conclusions & perspectives
27
Franck Michel
Application: SPARQL-to-MongoDB
Prototype implementation for MongoDB
• SPARQL-to-AQL implemented as a DB-independent component
Extendable to other target DBs
• AQL-to-MongoDB QL
Not straightforward due to MongoDB limitations:
– No join, no nested query, union hardly supported
– Limited comparison filters, JavaScript filters discouraged
Much work falls back on the query processing engine
Two concrete use cases
• SKOS representation of a taxonomical reference
• Biological studies on rice phenotype data
28
Franck Michel
Agenda
The xR2RML mapping language
The SPARQL translation method
Application
Conclusions & perspectives
29
Franck Michel
Conclusions & perspectives
Goal: foster the development of SPARQL interfaces to
heterogeneous databases
Formalized approach:
• Generalize existing works on SQL and XQuery
• Rely on a DB-independent mapping language: xR2RML
• Encompass all DB-independent steps of the rewriting process
• Leave only DB-specific rewriting as a last step
Prototype implementation for MongoDB
• Used in two real world contexts
Perspectives
• Perform benchmarking
• Use it with distributed SPARQL query engine
30
Franck Michel
Conclusions & perspectives
SW vs. NoSQL: two un-reconciliable worlds?
Different paradigms:
• SW manages highly connected graphs,
• NoSQL’s manage isolated documents, joins hardly supported
NoSQL DBs
• pragmatically gave up on consistency and rich query features
• trade-off to high throughput/availability, horizontal elasticity
Filling the gap between the two worlds is not straightforward
The experience of MongoDB shows challenges.
Huge potential source of LOD, can’t be ignored anymore
31
Franck Michel
Contacts:
Franck Michel
Catherine Faron-Zucker
Johan Montagnat
[1] F. Michel, L. Djimenou, C. Faron-Zucker, and J. Montagnat. Translation of Relational and Non-Relational
Databases into RDF with xR2RML. In proc. of WebIST 2015.
[2] C. Callou, F. Michel, C. Faron-Zucker, C. Martin, J. Montagnat. Towards a Shared Reference Thesaurus for
Studies on History of Zoology, Archaeozoology and Conservation Biology. In SW4SH workshop, ESWC’15.
[3] F. Michel, C. Faron-Zucker, and J. Montagnat. Mapping-based SPARQL access to a MongoDB database.
Technical report, CNRS, 2015. https://hal.archives-ouvertes.fr/hal-01245883v4.
https://github.com/frmichel/morph-xr2rml/

More Related Content

Viewers also liked

Portraitsession Continental
Portraitsession ContinentalPortraitsession Continental
Portraitsession Continental
Markus Schneeberger Fotografie GmbH
 
Cuéllar
CuéllarCuéllar
Cuéllar
Inma Cuellar
 
Diego de santos
Diego de santosDiego de santos
Diego de santos
Inma Cuellar
 
Rome
RomeRome
Presentaion slovakia
Presentaion   slovakiaPresentaion   slovakia
Presentaion slovakiaAntti Luoma
 
Lodha codename finale
Lodha codename finaleLodha codename finale
Lodha codename finale
Raj Vishwakarma
 
Juku naljad
Juku naljadJuku naljad
Juku naljad
Sander Lepla
 
Tik. ratna kelompok 4
Tik. ratna kelompok 4Tik. ratna kelompok 4
Tik. ratna kelompok 4
Ratna PujiAstuti
 
Digital Media Trends 2014
Digital Media Trends 2014Digital Media Trends 2014
Digital Media Trends 2014
boostnet
 

Viewers also liked (14)

Canapes
CanapesCanapes
Canapes
 
Portraitsession Continental
Portraitsession ContinentalPortraitsession Continental
Portraitsession Continental
 
3
33
3
 
Question 6
Question 6 Question 6
Question 6
 
Cuéllar
CuéllarCuéllar
Cuéllar
 
Diego de santos
Diego de santosDiego de santos
Diego de santos
 
Wordpress and the JSON API
Wordpress and the JSON APIWordpress and the JSON API
Wordpress and the JSON API
 
Rome
RomeRome
Rome
 
Presentaion slovakia
Presentaion   slovakiaPresentaion   slovakia
Presentaion slovakia
 
Partea 4
Partea 4Partea 4
Partea 4
 
Lodha codename finale
Lodha codename finaleLodha codename finale
Lodha codename finale
 
Juku naljad
Juku naljadJuku naljad
Juku naljad
 
Tik. ratna kelompok 4
Tik. ratna kelompok 4Tik. ratna kelompok 4
Tik. ratna kelompok 4
 
Digital Media Trends 2014
Digital Media Trends 2014Digital Media Trends 2014
Digital Media Trends 2014
 

Similar to A Generic Mapping-based Query Translation from SPARQL to Various Target Database Query Languages

A Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQLA Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQL
Franck Michel
 
Integrating Heterogeneous Data Sources in the Web of Data
Integrating Heterogeneous Data Sources in the Web of DataIntegrating Heterogeneous Data Sources in the Web of Data
Integrating Heterogeneous Data Sources in the Web of Data
Franck Michel
 
Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.
Enrico Daga
 
The SPARQL Anything project
The SPARQL Anything projectThe SPARQL Anything project
The SPARQL Anything project
Enrico Daga
 
Democratizing Big Semantic Data management
Democratizing Big Semantic Data managementDemocratizing Big Semantic Data management
Democratizing Big Semantic Data management
WU (Vienna University of Economics and Business)
 
SPARQL introduction and training (130+ slides with exercices)
SPARQL introduction and training (130+ slides with exercices)SPARQL introduction and training (130+ slides with exercices)
SPARQL introduction and training (130+ slides with exercices)
Thomas Francart
 
Reference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsReference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based Datasets
Markus Scheidgen
 
Translation of Relational and Non-Relational Databases into RDF with xR2RML
Translation of Relational and Non-Relational Databases into RDF with xR2RMLTranslation of Relational and Non-Relational Databases into RDF with xR2RML
Translation of Relational and Non-Relational Databases into RDF with xR2RML
Franck Michel
 
Aidan's PhD Viva
Aidan's PhD VivaAidan's PhD Viva
Aidan's PhD Viva
Aidan Hogan
 
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Trends in Programming Technology you might want to keep an eye on af Bent Tho...Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
InfinIT - Innovationsnetværket for it
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
Ivan Ermilov
 
Triplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataTriplificating and linking XBRL financial data
Triplificating and linking XBRL financial data
Roberto García
 
Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...
Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...
Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...
andimou
 
DB-IR-ranking
DB-IR-rankingDB-IR-ranking
DB-IR-rankingFELIX75
 
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael HausenblasBerlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
MapR Technologies
 
Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...
jaxLondonConference
 
bridging formal semantics and social semantics on the web
bridging formal semantics and social semantics on the webbridging formal semantics and social semantics on the web
bridging formal semantics and social semantics on the web
Fabien Gandon
 
DB and IR Integration
DB and IR IntegrationDB and IR Integration
DB and IR Integration
Marco A Torres
 
Data translation with SPARQL 1.1
Data translation with SPARQL 1.1Data translation with SPARQL 1.1
Data translation with SPARQL 1.1andreas_schultz
 

Similar to A Generic Mapping-based Query Translation from SPARQL to Various Target Database Query Languages (20)

A Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQLA Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQL
 
Integrating Heterogeneous Data Sources in the Web of Data
Integrating Heterogeneous Data Sources in the Web of DataIntegrating Heterogeneous Data Sources in the Web of Data
Integrating Heterogeneous Data Sources in the Web of Data
 
Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.
 
The SPARQL Anything project
The SPARQL Anything projectThe SPARQL Anything project
The SPARQL Anything project
 
Democratizing Big Semantic Data management
Democratizing Big Semantic Data managementDemocratizing Big Semantic Data management
Democratizing Big Semantic Data management
 
SPARQL introduction and training (130+ slides with exercices)
SPARQL introduction and training (130+ slides with exercices)SPARQL introduction and training (130+ slides with exercices)
SPARQL introduction and training (130+ slides with exercices)
 
Linked Data Fragments
Linked Data FragmentsLinked Data Fragments
Linked Data Fragments
 
Reference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsReference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based Datasets
 
Translation of Relational and Non-Relational Databases into RDF with xR2RML
Translation of Relational and Non-Relational Databases into RDF with xR2RMLTranslation of Relational and Non-Relational Databases into RDF with xR2RML
Translation of Relational and Non-Relational Databases into RDF with xR2RML
 
Aidan's PhD Viva
Aidan's PhD VivaAidan's PhD Viva
Aidan's PhD Viva
 
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Trends in Programming Technology you might want to keep an eye on af Bent Tho...Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
 
Triplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataTriplificating and linking XBRL financial data
Triplificating and linking XBRL financial data
 
Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...
Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...
Machine-Interpretable Dataset and Service Descriptions for Heterogeneous Data...
 
DB-IR-ranking
DB-IR-rankingDB-IR-ranking
DB-IR-ranking
 
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael HausenblasBerlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
 
Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...
 
bridging formal semantics and social semantics on the web
bridging formal semantics and social semantics on the webbridging formal semantics and social semantics on the web
bridging formal semantics and social semantics on the web
 
DB and IR Integration
DB and IR IntegrationDB and IR Integration
DB and IR Integration
 
Data translation with SPARQL 1.1
Data translation with SPARQL 1.1Data translation with SPARQL 1.1
Data translation with SPARQL 1.1
 

More from Franck Michel

ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...
ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...
ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...
Franck Michel
 
Bioschemas: Marking up biodiversity websites to improve data discovery and we...
Bioschemas: Marking up biodiversity websites to improve data discovery and we...Bioschemas: Marking up biodiversity websites to improve data discovery and we...
Bioschemas: Marking up biodiversity websites to improve data discovery and we...
Franck Michel
 
Unleash the Potential of your Website! 180,000 webpages from the French NHM m...
Unleash the Potential of your Website! 180,000 webpages from the French NHM m...Unleash the Potential of your Website! 180,000 webpages from the French NHM m...
Unleash the Potential of your Website! 180,000 webpages from the French NHM m...
Franck Michel
 
Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...
Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...
Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...
Franck Michel
 
Describe and Publish data sets on the web: vocabularies, catalogues, data por...
Describe and Publish data sets on the web: vocabularies, catalogues, data por...Describe and Publish data sets on the web: vocabularies, catalogues, data por...
Describe and Publish data sets on the web: vocabularies, catalogues, data por...
Franck Michel
 
Knowledge Engineering: Semantic web, web of data, linked data
Knowledge Engineering: Semantic web, web of data, linked dataKnowledge Engineering: Semantic web, web of data, linked data
Knowledge Engineering: Semantic web, web of data, linked data
Franck Michel
 
Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...
Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...
Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...
Franck Michel
 
Modelling Biodiversity Linked Data: Pragmatism May Narrow Future Opportunities
Modelling Biodiversity Linked Data: Pragmatism May Narrow Future OpportunitiesModelling Biodiversity Linked Data: Pragmatism May Narrow Future Opportunities
Modelling Biodiversity Linked Data: Pragmatism May Narrow Future Opportunities
Franck Michel
 
A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...
A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...
A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...
Franck Michel
 
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked DataSPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
Franck Michel
 
Construction d’un référentiel taxonomique commun pour des études sur l’histoi...
Construction d’un référentiel taxonomique commun pour des études sur l’histoi...Construction d’un référentiel taxonomique commun pour des études sur l’histoi...
Construction d’un référentiel taxonomique commun pour des études sur l’histoi...
Franck Michel
 
Make our Scientific Datasets Accessible and Interoperable on the Web
Make our Scientific Datasets Accessible and Interoperable on the WebMake our Scientific Datasets Accessible and Interoperable on the Web
Make our Scientific Datasets Accessible and Interoperable on the Web
Franck Michel
 
Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...
Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...
Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...
Franck Michel
 

More from Franck Michel (13)

ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...
ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...
ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scien...
 
Bioschemas: Marking up biodiversity websites to improve data discovery and we...
Bioschemas: Marking up biodiversity websites to improve data discovery and we...Bioschemas: Marking up biodiversity websites to improve data discovery and we...
Bioschemas: Marking up biodiversity websites to improve data discovery and we...
 
Unleash the Potential of your Website! 180,000 webpages from the French NHM m...
Unleash the Potential of your Website! 180,000 webpages from the French NHM m...Unleash the Potential of your Website! 180,000 webpages from the French NHM m...
Unleash the Potential of your Website! 180,000 webpages from the French NHM m...
 
Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...
Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...
Heterogeneous Data Aggregation and Querying at Web Scale Using Semantic align...
 
Describe and Publish data sets on the web: vocabularies, catalogues, data por...
Describe and Publish data sets on the web: vocabularies, catalogues, data por...Describe and Publish data sets on the web: vocabularies, catalogues, data por...
Describe and Publish data sets on the web: vocabularies, catalogues, data por...
 
Knowledge Engineering: Semantic web, web of data, linked data
Knowledge Engineering: Semantic web, web of data, linked dataKnowledge Engineering: Semantic web, web of data, linked data
Knowledge Engineering: Semantic web, web of data, linked data
 
Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...
Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...
Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Link...
 
Modelling Biodiversity Linked Data: Pragmatism May Narrow Future Opportunities
Modelling Biodiversity Linked Data: Pragmatism May Narrow Future OpportunitiesModelling Biodiversity Linked Data: Pragmatism May Narrow Future Opportunities
Modelling Biodiversity Linked Data: Pragmatism May Narrow Future Opportunities
 
A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...
A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...
A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. ...
 
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked DataSPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
 
Construction d’un référentiel taxonomique commun pour des études sur l’histoi...
Construction d’un référentiel taxonomique commun pour des études sur l’histoi...Construction d’un référentiel taxonomique commun pour des études sur l’histoi...
Construction d’un référentiel taxonomique commun pour des études sur l’histoi...
 
Make our Scientific Datasets Accessible and Interoperable on the Web
Make our Scientific Datasets Accessible and Interoperable on the WebMake our Scientific Datasets Accessible and Interoperable on the Web
Make our Scientific Datasets Accessible and Interoperable on the Web
 
Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...
Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...
Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archa...
 

Recently uploaded

Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
IshaGoswami9
 
Oedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptxOedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptx
muralinath2
 
NuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyerNuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyer
pablovgd
 
platelets_clotting_biogenesis.clot retractionpptx
platelets_clotting_biogenesis.clot retractionpptxplatelets_clotting_biogenesis.clot retractionpptx
platelets_clotting_biogenesis.clot retractionpptx
muralinath2
 
ESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptxESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptx
PRIYANKA PATEL
 
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
University of Maribor
 
Toxic effects of heavy metals : Lead and Arsenic
Toxic effects of heavy metals : Lead and ArsenicToxic effects of heavy metals : Lead and Arsenic
Toxic effects of heavy metals : Lead and Arsenic
sanjana502982
 
DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...
DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...
DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...
Wasswaderrick3
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
kejapriya1
 
Anemia_ types_clinical significance.pptx
Anemia_ types_clinical significance.pptxAnemia_ types_clinical significance.pptx
Anemia_ types_clinical significance.pptx
muralinath2
 
Nucleophilic Addition of carbonyl compounds.pptx
Nucleophilic Addition of carbonyl  compounds.pptxNucleophilic Addition of carbonyl  compounds.pptx
Nucleophilic Addition of carbonyl compounds.pptx
SSR02
 
Richard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlandsRichard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlands
Richard Gill
 
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdfUnveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Erdal Coalmaker
 
Nutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technologyNutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technology
Lokesh Patil
 
BREEDING METHODS FOR DISEASE RESISTANCE.pptx
BREEDING METHODS FOR DISEASE RESISTANCE.pptxBREEDING METHODS FOR DISEASE RESISTANCE.pptx
BREEDING METHODS FOR DISEASE RESISTANCE.pptx
RASHMI M G
 
Chapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisisChapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisis
tonzsalvador2222
 
Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
frank0071
 
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptxANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
RASHMI M G
 
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốtmô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
HongcNguyn6
 
Lateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensiveLateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensive
silvermistyshot
 

Recently uploaded (20)

Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
 
Oedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptxOedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptx
 
NuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyerNuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyer
 
platelets_clotting_biogenesis.clot retractionpptx
platelets_clotting_biogenesis.clot retractionpptxplatelets_clotting_biogenesis.clot retractionpptx
platelets_clotting_biogenesis.clot retractionpptx
 
ESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptxESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptx
 
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
 
Toxic effects of heavy metals : Lead and Arsenic
Toxic effects of heavy metals : Lead and ArsenicToxic effects of heavy metals : Lead and Arsenic
Toxic effects of heavy metals : Lead and Arsenic
 
DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...
DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...
DERIVATION OF MODIFIED BERNOULLI EQUATION WITH VISCOUS EFFECTS AND TERMINAL V...
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
 
Anemia_ types_clinical significance.pptx
Anemia_ types_clinical significance.pptxAnemia_ types_clinical significance.pptx
Anemia_ types_clinical significance.pptx
 
Nucleophilic Addition of carbonyl compounds.pptx
Nucleophilic Addition of carbonyl  compounds.pptxNucleophilic Addition of carbonyl  compounds.pptx
Nucleophilic Addition of carbonyl compounds.pptx
 
Richard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlandsRichard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlands
 
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdfUnveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdf
 
Nutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technologyNutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technology
 
BREEDING METHODS FOR DISEASE RESISTANCE.pptx
BREEDING METHODS FOR DISEASE RESISTANCE.pptxBREEDING METHODS FOR DISEASE RESISTANCE.pptx
BREEDING METHODS FOR DISEASE RESISTANCE.pptx
 
Chapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisisChapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisis
 
Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
 
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptxANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
 
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốtmô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
 
Lateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensiveLateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensive
 

A Generic Mapping-based Query Translation from SPARQL to Various Target Database Query Languages

  • 1. 1 Franck Michel A Generic Mapping-based Query Translation from SPARQL to Various Target Database Query Languages A Generic Mapping-based Query Translation from SPARQL to Various Target Database Query Languages F. Michel, C. Faron-Zucker, J. Montagnat I3S laboratory, CNRS, Univ. Nice Sophia
  • 2. 2 Franck Michel Publication/interlinking of open datasets • In a common machine-readable format • Using common vocabularies Linking data increases its value • Produce new knowledge • Mash up with related data • Opportunity for new (unexpected) usage Citizenship demand for access to public data (scientific, government…) Towards a Web of Data From a Web of Documents ...to a Web of (Linked) Data
  • 3. 3 Franck Michel Driven/supported by various initiatives, e.g.: • General-purpose: Linking Open Data, W3C Data Activity • Domain-specific: Bio2RDF, BioPortal • GAFAs: Facebook OG, Google KG, Yahoo!, Microsoft… consume and produce RDF Towards a Web of Data Linked Open Data Cloud Linked Datasets as of Aug. 30th 2014. (c) R. Cyganiak & and A. Jentzsch
  • 4. 4 Franck Michel Web-scale data integration Need to access data from the Deep Web • Strd./unstrd. data hardly indexed by search engines, hardly linked with other data sources Exponential data growth goes in • Various types of DBs: RDB, Native XML, LDAP directory, OODB, NoSQL, NewSQL, ... • Heterogeneous data models and query capabilities Whatever the type of DB… it can be of interest for the Web of Data … “Raw Data Now” (T. Berners Lee)
  • 5. 5 Franck Michel Populate the Web of Data with Legacy Data Populate the Web of Data with Legacy Data
  • 6. 6 Franck Michel Focused on data formats • HTML: RDFa, Microformats • XML: Using XPath (RML), XQuery (XSPARQL, SPARQL2XQuery), XSLT (Scissor-Lift, GRDDL), XSD-to-OWL (SPARQL2XQuery) • CSV/TSV/Spreadsheets: CSV on the web (W3C WG) • JSON: using JSONPath (RML), JSON-LD Focused on types of database • Extensive work on RDBs: D2RQ, Virtuoso, R2RML… • XML native DBs: SPARQL2XQuery • NoSQL stores: xR2RML Integration frameworks: DataLift, RML, Asio Tool Suite… Previous works
  • 7. 7 Franck Michel Previous works Query rewriting Legacy DB Graph Materialization (ETL like) Virtual Graph Data freshness Big datasets DB-to-RDF Mappings
  • 8. 8 Franck Michel SPARQL rewriting in the general case Previous works: SPARQL rewriting closely coupled with the target QL expressiveness (SQL, XQuery): support of joins, unions, nested queries, filtering, string manipulation etc. Solution proposed: two-steps approach 1. Translate SPARQL into a pivot Abstract Query Language (AQL) under “target DB-to-RDF” mappings: generic mapping language needed 2. Translate from the Abstract QL to the QL of the target database Enable SPARQL access to a large range of heterogeneous databasesGoal:
  • 9. 9 Franck Michel SPARQL rewriting in the general case Previous works: SPARQL rewriting closely coupled with the target QL expressiveness (SQL, XQuery): support of joins, unions, nested queries, filtering, string manipulation etc. Solution proposed: two-steps approach 1. Translate SPARQL into a pivot Abstract Query Language (AQL) under “target DB-to-RDF” mappings: generic mapping language needed 2. Translate from the Abstract QL to the QL of the target database Enable SPARQL access to a large range of heterogeneous databasesGoal:
  • 10. 10 Franck Michel Agenda The xR2RML mapping language The SPARQL translation method Application Conclusions & perspectives
  • 11. 11 Franck Michel Agenda The xR2RML mapping language The SPARQL translation method Application Conclusions & perspectives
  • 12. 12 Franck Michel The xR2RML mapping language Describe mappings from various types of DB to RDF • Query the target database • Pick data elements from query results • Translate them to (subject, predicate, object) using arbitrary ontologies Independent of any target database • Allow any declarative query language • Allow any syntax to reference data elements within query results (column name, JSONPath, XPath, attribute name...) Extends W3C R2RML (backward compatible) and RML Turtle RDF Syntax Mapping graph = set of “triples maps” ~ mappings
  • 13. 13 Franck Michel The xR2RML mapping language: example <http://example.org/member/106> foaf:mbox "john@foo.com". <http://example.org/member/106> foaf:mbox "john@example.org". <http://example.org/member/106> foaf:mbox "john@foo.com". <http://example.org/member/106> foaf:mbox "john@example.org". <#Mbox> a rr:TriplesMap; xrr:logicalSource [ xrr:query "db.people.find({'emails':{$ne: null}})" ]; rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ]; rr:predicateObjectMap [ rr:predicate foaf:mbox; rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ]. xR2RMLxR2RML <#Mbox> a rr:TriplesMap; xrr:logicalSource [ xrr:query "db.people.find({'emails':{$ne: null}})" ]; rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ]; rr:predicateObjectMap [ rr:predicate foaf:mbox; rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ]. xR2RML { "id": 106, "firstname": "John", "emails": ["john@foo.com", "john@example.org"], "contacts": ["chris@example.org", "alice@foo.com"] }
  • 14. 14 Franck Michel The xR2RML mapping language: example <#Knows> a rr:TriplesMap; xrr:logicalSource [ xrr:query "db.people.find({'contacts':{$size: {$gte:1}}})" ]; rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ]; rr:predicateObjectMap [ rr:predicate foaf:knows; rr:objectMap [ rr:parentTriplesMap <#Mbox>; rr:joinCondition [ rr:child "$.contacts.*"; rr:parent "$.emails.*" ] ] ]. { "id": 106, "firstname": "John", "emails": ["john@foo.com", "john@example.org"], "contacts": ["chris@example.org", "alice@foo.com"] } <http://example.org/member/106> foaf:knows <http://example.org/member/327>. <http://example.org/member/327> foaf:knows <http://example.org/member/106>. <http://example.org/member/106> foaf:knows <http://example.org/member/327>. <http://example.org/member/327> foaf:knows <http://example.org/member/106>. xR2RML { "id": 327, "firstname": "Alice", "emails": ["alice@foo.com"], "contacts": ["john@foo.com"] }
  • 15. 15 Franck Michel Agenda The xR2RML mapping language The SPARQL translation method Application Conclusions & perspectives
  • 16. 16 Franck Michel Graph Pattern SPARQL-to-AQL rewriting steps 1. Triple Pattern Bindings: figure out minimal set candidate mappings for each triple pattern 2. Rewrite the SPARQL Graph Pattern into the AQL, under triple pattern bindings, entail conditions 3. Optimization the resulting Abstract Query Basic Graph Pattern SELECT ?y, ?mbox WHERE { ?x foaf:mbox "john@foo.com". ?y foaf:knows ?x. OPTIONAL { ?y foaf:mbox ?mbox. } FILTER { ?x != ?y} } Triple Pattern
  • 17. 17 Franck Michel (1) Triples patterns bindings SELECT ?y, ?mbox WHERE { ?x foaf:mbox "john@foo.com". ?y foaf:knows ?x. OPTIONAL { ?y foaf:mbox ?mbox. } FILTER { ?x != ?y} } <#Mapping> <#Mapping> <#Mapping> <#Mapping> <#Mapping> xR2RML mapping graph ?x foaf:mbox "john@foo.com". <#Mbox> … rr:subjectMap [ rr:template "…" ] rr:predicateObjectMap [ rr:predicate foaf:mbox; rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ].
  • 18. 18 Franck Michel (1) Triples patterns bindings 1. Initial set of mappings for each triple pattern • Check compatibility: term type, datatype, lang • Check unsatisfiable SPARQL filter constraints about a terms type, data type, language: isIRI, isLiteral, isBlank, lang(), datatype()… e.g. “rr:termType rr:Literal” does not match "isIRI(?var)" 2. Reduce bindings • Consider join constraints implied by shared variables SELECT ?x WHERE { ?y foaf:mbox "john@foo.com".//tp2 ?x foaf:knows ?y. //tp3 } Bindings: (tp2, <#Mbox>) (tp3, <#Knows>) Shared variable ?y compatibility between <#Mbox>’s subject map and <#Knows>’s object map M. Rodríguez-Muro, M. Rezk. Efficient SPARQL-to-SQL with R2RML mappings, Web Semant. Sci. Serv. Agents World Wide Web. 33 (2015) 141–169. J. Unbehauen, C. Stadler, S. Auer. Accessing relational data on the web with SparqlMap, in: Semantic Technol., Springer, 2013: pp. 65–80.
  • 19. 19 Franck Michel (2) Rewrite each Triple Pattern (tp1, <#Mbox>) (tp2, <#Mbox>) (tp3, <#Knows>) Bindings tp2 <#Mbox> match Atomic Abstract Query { From, Project, Where }
  • 20. 20 Franck Michel (2) Rewrite each Triple Pattern <#Mbox> … rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ]; rr:predicateObjectMap [ rr:predicate foaf:mbox; rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ]. xR2RMLxR2RML <#Mbox> … rr:subjectMap [ rr:template "http://example.org/member/{$.id}" ]; rr:predicateObjectMap [ rr:predicate foaf:mbox; rr:objectMap [ xrr:reference "$.emails.*"; rr:termType rr:Literal ] ]. xR2RML ?x foaf:mbox "john@foo.com". Condition 1: $.id != null Condition 2: $.emails.* produces "john@foo.com"
  • 21. 21 Franck Michel Usual SPARQL-to-SQL example: FILTER encapsulating SELECT WHERE clause Relies on the DB engine to optimize the query In the general case, no assumption on the target DB: Need to optimize at the earliest stage: push “down” filter conditions in the translation of triple patterns (2) Rewrite from SPARQL to the AQL SELECT ?x WHERE { ?x foaf:age ?age. … FILTER (?age > 30) } SELECT t2.X FROM ( SELECT t1.ID AS X, t1.AGE AS AGE FROM PERSON t1 … ) AS t2 WHERE (t2.AGE > 30)
  • 22. 22 Franck Michel (2) Rewrite from SPARQL to the AQL transm (P1 AND P2, f) transm (P1, f) INNER JOIN transm (P2, f) ON var(P1) ⋂ var(P2) transm (P1 OPTIONAL P2, f) transm (P1, f) LEFT JOIN transm (P2, f) ON var(P1) ⋂ var(P2) transm (P1 UNION P2, f) transm (P1, f) LEFT JOIN transm (P2, f) ON var(P1) ⋂ var(P2) UNION transm (P2, f) LEFT JOIN transm (P1, f) ON var(P1) ⋂ var(P2) transm (tp, f) transTPm (tp, sparqlCond(tp, f)) transm (P FILTER f’, f) transm (P, f && f’) FILTER sparqlCond(P, f && f’) transm (P) transm (P, true) Rewrites a well-designed SPARQL graph pattern into the AQL, under a set of xR2RML mappings m Function transm (graph pattern, filter) sparqlCond: Push filter conditions in the translation of relevant triple patterns
  • 23. 23 Franck Michel (2) Rewrite from SPARQL to the AQL Function sparqlCond(): Push down filter conditions in the translation of triples patterns Make inner-queries as selective as possible Limit the size of intermediary results SELECT ?x WHERE { ?x foaf:mbox ?mbox. // tp1 ?y foaf:mbox "john@foo.com". // tp2 ?x foaf:knows ?y. // tp3 FILTER { contains(str(?mbox),"foo.com") // c1 && ?x != ?y // c2 }} transTPm(tp1, c1) INNER JOIN transTPm(tp2, true) ON {} INNER JOIN transTPm(tp3, c2) ON {?x,?y} FILTER c2
  • 24. 24 Franck Michel Example SELECT ?x WHERE { ?x foaf:mbox ?mbox. // tp1 ?x foaf:mbox "john@foo.com". // tp2 FILTER { ?mbox != "john@foo.com" } // c1 } { From: { "db.people.find({'emails':{$ne:null}})" }, Project: { $.id AS ?x, $.emails.* AS ?mbox }, Where: { isNotNull($.id), isNotNull($.emails.*), sparqlFilter(?mbox != "john@foo.com")}} INNER JOIN { From: { "db.people.find({'emails':{$ne: null}})" }, Project: { $.id AS ?x }, Where: { isNotNull($.id), equals($.emails.*, "john@foo.com")} } ON { ?x } Abstract Query
  • 25. 25 Franck Michel (3) Optimization Abstract Query effective but may be inefficient • Unnecessary complexity: multiple joins, unions, redundancy Study/reuse of common query optimization techniques • Self-Join / Optional-Self-Join Elimination • When the same mapping is bound to different triple patterns • Self-Union Elimination • When multiple mappings are bound to the same triple pattern • Projection Pushing SELECT DISTINCT ?p WHERE { ?s ?p ?o } • Filter propagation in joined queries B. Elliott, E. Cheng, C. Thomas-Ogbuji, Z.M. Ozsoyoglu, A complete translation from SPARQL into efficient SQL, in: Proc. Int. Database Eng. Appl. Symp. 2009, ACM, 2009: pp. 31–42. M. Rodríguez-Muro, M. Rezk. Efficient SPARQL-to-SQL with R2RML mappings, Web Semant. Sci. Serv. Agents World Wide Web. 33 (2015) 141–169. J. Unbehauen, C. Stadler, S. Auer. Accessing relational data on the web with SparqlMap, in: Semantic Technol., Springer, 2013: pp. 65–80.
  • 26. 26 Franck Michel Agenda The xR2RML mapping language The SPARQL translation method Application Conclusions & perspectives
  • 27. 27 Franck Michel Application: SPARQL-to-MongoDB Prototype implementation for MongoDB • SPARQL-to-AQL implemented as a DB-independent component Extendable to other target DBs • AQL-to-MongoDB QL Not straightforward due to MongoDB limitations: – No join, no nested query, union hardly supported – Limited comparison filters, JavaScript filters discouraged Much work falls back on the query processing engine Two concrete use cases • SKOS representation of a taxonomical reference • Biological studies on rice phenotype data
  • 28. 28 Franck Michel Agenda The xR2RML mapping language The SPARQL translation method Application Conclusions & perspectives
  • 29. 29 Franck Michel Conclusions & perspectives Goal: foster the development of SPARQL interfaces to heterogeneous databases Formalized approach: • Generalize existing works on SQL and XQuery • Rely on a DB-independent mapping language: xR2RML • Encompass all DB-independent steps of the rewriting process • Leave only DB-specific rewriting as a last step Prototype implementation for MongoDB • Used in two real world contexts Perspectives • Perform benchmarking • Use it with distributed SPARQL query engine
  • 30. 30 Franck Michel Conclusions & perspectives SW vs. NoSQL: two un-reconciliable worlds? Different paradigms: • SW manages highly connected graphs, • NoSQL’s manage isolated documents, joins hardly supported NoSQL DBs • pragmatically gave up on consistency and rich query features • trade-off to high throughput/availability, horizontal elasticity Filling the gap between the two worlds is not straightforward The experience of MongoDB shows challenges. Huge potential source of LOD, can’t be ignored anymore
  • 31. 31 Franck Michel Contacts: Franck Michel Catherine Faron-Zucker Johan Montagnat [1] F. Michel, L. Djimenou, C. Faron-Zucker, and J. Montagnat. Translation of Relational and Non-Relational Databases into RDF with xR2RML. In proc. of WebIST 2015. [2] C. Callou, F. Michel, C. Faron-Zucker, C. Martin, J. Montagnat. Towards a Shared Reference Thesaurus for Studies on History of Zoology, Archaeozoology and Conservation Biology. In SW4SH workshop, ESWC’15. [3] F. Michel, C. Faron-Zucker, and J. Montagnat. Mapping-based SPARQL access to a MongoDB database. Technical report, CNRS, 2015. https://hal.archives-ouvertes.fr/hal-01245883v4. https://github.com/frmichel/morph-xr2rml/