SlideShare a Scribd company logo
1 of 41
Download to read offline
Mapping Hierarchical Sources into
RDF using the RML Mapping Language
Anastasia Dimou1, Miel Vander Sande1,
Jason Slepicka2, Pedro Szekely2,
Erik Mannens1, Craig Knoblock2, Rik Van de Walle1
1Ghent University – iMinds – Multimedia Lab
2University of Southern California – Information Science Institute –
Department of Computer Science
http://rml.io
IEEE-ICSC14
Newport beach, California, 18th June 2014
Most of the data that we would like to
be able to query as Linked Open Data
exists in formats other than RDF
There are…
over 11,000 APIs according to
ProgrammableWeb.org
only 74 of which return results in RDF
But more than 5000
return results in JSON or XML
Many
languages, tools and approaches
were proposed
to convert data
from relational databases to RDF
Relational Database to RDF (R2RML W3C)
R2RML mappings R2RML processor
Data OWNER / PUBLISHER
defines
RDF
DB
R2RML mappings R2RML processor
Data OWNER / PUBLISHER
defines
RDF
DB CSV JSONXML
RDF RDF RDF
lack of uniform definitions
to describe mapping rules for heterogeneous sources
lack of interoperable definitions
that would allow the re-use of mapping rules
across different implementations
lack of reusable definitions
that would allow the re-use of mapping rules
for representing data in the same or different formats
mapping data
on a per-source and per-format basis
or on case-specific basis
Uniform way of defining mappings
for heterogeneous sources
that can be re-used across data
in the same or different formats
and be interoperable
across different implementations
R2RML mappings R2RML processor
Data OWNER / PUBLISHER
defines
RDF
DB CSV JSONXML
RDF RDF RDF
Mappings definitions processor
Data OWNER / PUBLISHER
defines
RDF
DB CSV JSONXML
any format to RDF
RDF Mapping Language (RML)
generic scalable mapping language
for mapping heterogeneous resources into RDF
in an integrable and interoperable fashion
superset of the W3C standardized
R2RML mapping language
http://semweb.mmlab.be/ns/rml
Relational Database to RDF
Mapping Language
(R2RML)
R2RML mapping document
NAME BIRTH_DATE DEATH_DATE
Robert Theodore McCall 1919-12-23 2010-02-26
Ronald Anderson 1929-12-06
Triples Map
Logical Table
Table Name
<#ArtistMapping>
rr:logicalTable
[
rr:tableName “ARTISTS”
].
R2RML mapping definition
Table Name
Triples
Map
Logical Table
Subject Map
Predicate-Object Map
Predicate-Object Map
Predicate-Object Map
Predicate Map
Object Map
R2RML mapping document
Triples Map
Subject Map
NAME BIRTH_DATE DEATH_DATE
Robert Theodore McCall 1919-12-23 2010-02-26
Ronald Anderson 1929-12-06
<#ArtistMapping>
rr:subjectMap [
rr:template “http://ex.com/{NAME}” ;
rr:class ex:Person ];
<http://ex.com/Robert+Theodore+McCall> a ex:Person
R2RML mapping document
Predicate Map
NAME BIRTH_DATE DEATH_DATE
Robert Theodore McCall 1919-12-23 2010-02-26
Ronald Anderson 1929-12-06
<#ArtistMapping>
rr:predicateObjectMap [
rr:predicate ex:birth_date;
rr:objectMap [
rr:column "BIRTH_DATE" ] ];
<http://ex.com/Robert+Theodore+McCall> ex:birth_date “1919-12-23”
Predicate Object Map
Objectt Map
RDF Mapping Language
(RML)
RDF Mapping Language (RML)
mapping hierarchical sources to RDF
deal with hierarchy and heterogeneity
R2RML: each row is a self-contained
that can be processed independently
R2RML: the columns in each row
can be referred to unambiguously
R2RML: for each reference to a column in a single row
a unique value is returned
explicit reference to the iteration pattern
R2RML: each row is a self-contained
that can be processed independently
abstract reference to the input data
R2RML: the columns in each row
can be referred to unambiguously
more than one triples per Predicate-Object Map
R2RML: for each reference to a column in a single row
a unique value is returned
RDF Mapping Language
(RML)
For hierarchical sources
[ ... …
{ "Title": "Apollo 11 Crew",
"Artist": "Ronald Anderson",
"Ref": "NPG_70_36",
"Sitter": [
{ "Name": "Neil Armstrong",
"Birth Date": "1930-08-05" },
{ "Name": "Buzz Aldrin",
"Birth Date": "1930-01-20" },
{ "Name": "Michael Collins" } ],
"DateOfWork": "1969" },
{ "Title": "Neil Armstrong",
"Artist": "Robert Theodore McCall",
"Ref": "S_NPG_2010_51",
"Sitter": [
{ "Name": "Neil Armstrong" } ],
"DateOfWork": "2009" },
... … ]
<Artists> ... ...
<Artist>
<Name>Robert Theodore McCall</Name>
<Birth_Date>1919-12-23</Birth_Date>
<Death_Date>2010-02-26</Death_Date>
</Artist>
<Artist>
<Name>Ronald Anderson</Name>
<Birth_Date>1929-12-06</Birth_Date>
<Death_Date/>
</Artist> ... ...
</Artists>
artworks.JSON artists.XML
Specifying the input data
R2RML: database
RML: file, API, …
R2RML: Logical Table (rr:logicalTable)
RML: Logical Source (rml:logicalSource)
R2RML: logical Name (rr:logicalName)
RML: source (rml:source)
Triples Map
Logical Source
source
<#ArtworkMapping>
rml:logicalSource
[rml:source “http://ex.com/artworks.json”].
Triples Map
Logical Source
source
<#ArtistMapping>
rml:logicalSource
[ rml:source “artists.xml” ].
Referring to the input data
R2RML: databases
RML: XML or JSON or CSV or ….
R2RML: (SQL)
RML: Xpath/Xquery or JSONPath or RFC 4180 or …
R2RML: (rr:sqlQuery)
RML: rml:referenceFormulation
<#ArtworkMapping>
rml:logicalSource
[ rml:source “http://ex.com/artworks.json” ;
rml:rererenceFormulation ql:JSONPath ].
Triples Map
Logical Source
source
<#ArtistMapping>
rml:logicalSource
[ rml:source “artists.xml”;
rml:referenceFormulation ql:XPath ].Reference Formulation
Triples Map
Logical Source
source
Reference Formulation
Iterating over the input data
R2RML: per row
RML: ?
R2RML:
RML: rml:iterator
<#ArtistMapping>
rml:logicalSource
[ rml:source “artists.xml”;
rml:referenceFormulation ql:Xpath ;
rml:iterator “/Artists/Artist” ].
<Artists> ... ...
<Artist>
<Name>Robert Theodore McCall</Name>
<Birth_Date>1919-12-23</Birth_Date>
<Death_Date>2010-02-26</Death_Date>
</Artist>
<Artist>
<Name>Ronald Anderson</Name>
<Birth_Date>1929-12-06</Birth_Date>
<Death_Date/>
</Artist> ... ...
</Artists>
[ ... …
{ "Title": "Apollo 11 Crew",
"Artist": "Ronald Anderson",
"Ref": "NPG_70_36",
"Sitter": [
{ "Name": "Neil Armstrong",
"Birth Date": "1930-08-05" },
{ "Name": "Buzz Aldrin",
"Birth Date": "1930-01-20" },
{ "Name": "Michael Collins" } ],
"DateOfWork": "1969" },
{ "Title": "Neil Armstrong",
"Artist": "Robert Theodore McCall",
"Ref": "S_NPG_2010_51",
"Sitter": [
{ "Name": "Neil Armstrong" } ],
"DateOfWork": "2009" },
... … ]
<#ArtworkMapping>
rml:logicalSource
[ rml:source “http://ex.com/artworks.json” ;
rml:rererenceFormulation ql:JSONPath ;
rml:iterator “$.[*]” ].
<#SitterMapping>
rml:logicalSource
[ rml:source “http://ex.com/artworks.json”;
rml:rererenceFormulation ql:JSONPath ;
rml:iterator “$.[*].Sitter” ].
Referring to the extracts of the input data
explicitly and implicitly
R2RML: column name
RML: XML element or JSON object or …
R2RML: rr:column
RML: rml:reference
<#ArtistMapping>
rml:logicalSource
[ rml:source “http://ex.com/artists.xml”;
rml:rererenceFormulation ql:XPath ;
rml:iterator “/Artists/Artist” ] ;
rr:subjectMap [
rr:template
“http://ex.com/{Name}”
];
rr:predicateObjectMap [
rr:predicate ex:death_date ;
rr:objectMap [
rml:reference
“/Artists/Artist/Death_Date”] ].
<Artists> ... ...
<Artist>
<Name>Robert Theodore McCall</Name>
<Birth_Date>1919-12-23</Birth_Date>
<Death_Date>2010-02-26</Death_Date>
</Artist>
<Artist>
<Name>Ronald Anderson</Name>
<Birth_Date>1929-12-06</Birth_Date>
<Death_Date/>
</Artist> ... ...
</Artists>
<http://ex.com/Robert+Theodore+McCall>
ex:death_date “1929-12-06”.
[ ... …
{ "Title": "Apollo 11 Crew",
"Artist": "Ronald Anderson",
"Ref": "NPG_70_36",
"Sitter": [
{ "Name": "Neil Armstrong",
"Birth Date": "1930-08-05" },
{ "Name": "Buzz Aldrin",
"Birth Date": "1930-01-20" },
{ "Name": "Michael Collins" } ],
"DateOfWork": "1969" },
{ "Title": "Neil Armstrong",
"Artist": "Robert Theodore McCall",
"Ref": "S_NPG_2010_51",
"Sitter": [
{ "Name": "Neil Armstrong" } ],
"DateOfWork": "2009" },
... … ]
<#ArtworkMapping>
rml:logicalSource
[ rml:source “http://ex.com/artworks.json”;
rml:rererenceFormulation ql:JSONPath ;
rml:iterator “$.[*]” ] ;
rr:subjectMap [
rr:template
“http://ex.com/{Ref}”];
rr:predicateObjectMap [
rr:predicate rdfs:label ;
rr:objectMap [
rml:reference “$.[*].Title” ]
].
<http://ex.com/NPG_70_36>
rdfs:label “Apollo 11 Crew”.
[ ... …
{ "Title": "Apollo 11 Crew",
"Artist": "Ronald Anderson",
"Ref": "NPG_70_36",
"Sitter": [
{ "Name": "Neil Armstrong",
"Birth Date": "1930-08-05" },
{ "Name": "Buzz Aldrin",
"Birth Date": "1930-01-20" },
{ "Name": "Michael Collins" } ],
"DateOfWork": "1969" },
{ "Title": "Neil Armstrong",
"Artist": "Robert Theodore McCall",
"Ref": "S_NPG_2010_51",
"Sitter": [
{ "Name": "Neil Armstrong" } ],
"DateOfWork": "2009" },
... … ]
<#SitterMapping>
rml:logicalSource
[ rml:source “http://ex.com/artworks.json”;
rml:rererenceFormulation ql:JSONPath ;
rml:iterator “$.[*].Sitter” ] ;
rr:subjectMap [
rr:template
“http://ex.com/{Name}”];
rr:predicateObjectMap [
rr:predicate ex:birth_date ;
rr:objectMap [
rml:reference “$.[*].Sitter.Birth Date” ]].
<http://ex.com/Neil+Armstrong>
ex:birth_date “1930-08-05”.
RDF Mapping Language (RML)
Source
Triples Map
Logical Source
Subject Map
Predicate-Object
Map
Predicate
Map
Object Map
Term
Map
template
constant
reference
Iterator
Reference
Formulation
Referencing
Object Map
Triples
Map
Join
Condition
Parent
column
Child
column
RDF Mapping Language
(RML)
Editing mappings with Karma
http://www.isi.edu/integration/karma/
RDF Mapping Language
(RML)
Processing
mapping-driven processing:
processing driven by the mapping module
data-driven processing:
processing driven by the extraction module
Extraction Module Mapping Module
RML Processor
Mapping Hierarchical Sources into RDF
using the RML mapping language
RML: http://rml.io
RML Namespace: http://semweb.mmlab.be/ns/rml
RML Processor: https://github.com/mmlab/RMLProcessor
Contact us
Anastasia Dimou anastasia.dimou@ugent.be @natadimou
Miel Vander Sande miel.vandersande@ugent.be @Miel_vds

More Related Content

What's hot

RDF 개념 및 구문 소개
RDF 개념 및 구문 소개RDF 개념 및 구문 소개
RDF 개념 및 구문 소개Dongbum Kim
 
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
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQLOlaf Hartig
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDFNarni Rajesh
 
온톨로지 개념 및 표현언어
온톨로지 개념 및 표현언어온톨로지 개념 및 표현언어
온톨로지 개념 및 표현언어Dongbum Kim
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesJose Emilio Labra Gayo
 
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL databaseAn Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL databaseAli MasudianPour
 
Jwt == insecurity?
Jwt == insecurity?Jwt == insecurity?
Jwt == insecurity?snyff
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitJukka Zitting
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySparkRussell Jurney
 
Querying Linked Data with SPARQL
Querying Linked Data with SPARQLQuerying Linked Data with SPARQL
Querying Linked Data with SPARQLOlaf Hartig
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheUnleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheAmazon Web Services
 
Monitoring Oracle Database Instances with Zabbix
Monitoring Oracle Database Instances with ZabbixMonitoring Oracle Database Instances with Zabbix
Monitoring Oracle Database Instances with ZabbixGerger
 

What's hot (20)

SHACL by example
SHACL by exampleSHACL by example
SHACL by example
 
RDF 해설서
RDF 해설서RDF 해설서
RDF 해설서
 
RDF 개념 및 구문 소개
RDF 개념 및 구문 소개RDF 개념 및 구문 소개
RDF 개념 및 구문 소개
 
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)
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQL
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
 
온톨로지 개념 및 표현언어
온톨로지 개념 및 표현언어온톨로지 개념 및 표현언어
온톨로지 개념 및 표현언어
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectives
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL databaseAn Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
 
Jwt == insecurity?
Jwt == insecurity?Jwt == insecurity?
Jwt == insecurity?
 
RDF data validation 2017 SHACL
RDF data validation 2017 SHACLRDF data validation 2017 SHACL
RDF data validation 2017 SHACL
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySpark
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Querying Linked Data with SPARQL
Querying Linked Data with SPARQLQuerying Linked Data with SPARQL
Querying Linked Data with SPARQL
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheUnleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache
 
RDF data model
RDF data modelRDF data model
RDF data model
 
Monitoring Oracle Database Instances with Zabbix
Monitoring Oracle Database Instances with ZabbixMonitoring Oracle Database Instances with Zabbix
Monitoring Oracle Database Instances with Zabbix
 
Redis introduction
Redis introductionRedis introduction
Redis introduction
 

Similar to Mapping Hierarchical Sources into RDF using the RML Mapping Language

Mapping, Interlinking and Exposing MusicBrainz as Linked Data
Mapping, Interlinking and Exposing MusicBrainz as Linked DataMapping, Interlinking and Exposing MusicBrainz as Linked Data
Mapping, Interlinking and Exposing MusicBrainz as Linked DataPeter Haase
 
Consuming linked data by machines
Consuming linked data by machinesConsuming linked data by machines
Consuming linked data by machinesPatrick Sinclair
 
Mapping Relational Databases to Linked Data
Mapping Relational Databases to Linked DataMapping Relational Databases to Linked Data
Mapping Relational Databases to Linked DataEUCLID project
 
Linked data: Four rules and five stars for the Amsterdam Museum
Linked data: Four rules and five stars for the Amsterdam MuseumLinked data: Four rules and five stars for the Amsterdam Museum
Linked data: Four rules and five stars for the Amsterdam MuseumVictor de Boer
 
Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]Otávio Santana
 
Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)EUCLID project
 
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
 
SWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mappingSWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mappingMariano Rodriguez-Muro
 
Amsterdam museum as five star linked data
Amsterdam museum as five star linked dataAmsterdam museum as five star linked data
Amsterdam museum as five star linked dataVictor de Boer
 
Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2Dimitris Kontokostas
 
A Generic Language for Integrated RDF Mappings of Heterogeneous Data
A Generic Language for Integrated RDF Mappings of Heterogeneous DataA Generic Language for Integrated RDF Mappings of Heterogeneous Data
A Generic Language for Integrated RDF Mappings of Heterogeneous Dataandimou
 
Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...
Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...
Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...Victor de Boer
 
Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson Victor de Boer
 
Two graph data models : RDF and Property Graphs
Two graph data models : RDF and Property GraphsTwo graph data models : RDF and Property Graphs
Two graph data models : RDF and Property Graphsandyseaborne
 
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 DataFranck Michel
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked DataAn introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked DataGabriela Agustini
 
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013Fabien Gandon
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic  Web and Linked DataAn introduction to Semantic  Web and Linked Data
An introduction to Semantic Web and Linked DataGabriela Agustini
 
Rdf In A Nutshell V1
Rdf In A Nutshell V1Rdf In A Nutshell V1
Rdf In A Nutshell V1Fabien Gandon
 

Similar to Mapping Hierarchical Sources into RDF using the RML Mapping Language (20)

Mapping, Interlinking and Exposing MusicBrainz as Linked Data
Mapping, Interlinking and Exposing MusicBrainz as Linked DataMapping, Interlinking and Exposing MusicBrainz as Linked Data
Mapping, Interlinking and Exposing MusicBrainz as Linked Data
 
Consuming linked data by machines
Consuming linked data by machinesConsuming linked data by machines
Consuming linked data by machines
 
Mapping Relational Databases to Linked Data
Mapping Relational Databases to Linked DataMapping Relational Databases to Linked Data
Mapping Relational Databases to Linked Data
 
Linked data: Four rules and five stars for the Amsterdam Museum
Linked data: Four rules and five stars for the Amsterdam MuseumLinked data: Four rules and five stars for the Amsterdam Museum
Linked data: Four rules and five stars for the Amsterdam Museum
 
Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]
 
Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)
 
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...
 
SWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mappingSWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mapping
 
Amsterdam museum as five star linked data
Amsterdam museum as five star linked dataAmsterdam museum as five star linked data
Amsterdam museum as five star linked data
 
Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2
 
A Generic Language for Integrated RDF Mappings of Heterogeneous Data
A Generic Language for Integrated RDF Mappings of Heterogeneous DataA Generic Language for Integrated RDF Mappings of Heterogeneous Data
A Generic Language for Integrated RDF Mappings of Heterogeneous Data
 
SWT Lecture Session 10 R2RML Part 1
SWT Lecture Session 10 R2RML Part 1SWT Lecture Session 10 R2RML Part 1
SWT Lecture Session 10 R2RML Part 1
 
Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...
Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...
Eswc2012 presentation: Supporting Linked Data Production for Cultural Heritag...
 
Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson
 
Two graph data models : RDF and Property Graphs
Two graph data models : RDF and Property GraphsTwo graph data models : RDF and Property Graphs
Two graph data models : RDF and Property Graphs
 
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
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked DataAn introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked Data
 
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic  Web and Linked DataAn introduction to Semantic  Web and Linked Data
An introduction to Semantic Web and Linked Data
 
Rdf In A Nutshell V1
Rdf In A Nutshell V1Rdf In A Nutshell V1
Rdf In A Nutshell V1
 

More from andimou

What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?andimou
 
High quality Linked Data generation for librarians
High quality Linked Data generation for librariansHigh quality Linked Data generation for librarians
High quality Linked Data generation for librariansandimou
 
iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...
iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...
iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...andimou
 
DBpedia Mappings Quality Assessment
DBpedia Mappings Quality AssessmentDBpedia Mappings Quality Assessment
DBpedia Mappings Quality Assessmentandimou
 
Towards an Interface for User-Friendly Linked Data Generation Administration
Towards an Interface for User-Friendly Linked Data Generation AdministrationTowards an Interface for User-Friendly Linked Data Generation Administration
Towards an Interface for User-Friendly Linked Data Generation Administrationandimou
 
Mappings Validation
Mappings ValidationMappings Validation
Mappings Validationandimou
 
Assessing and Refining Mappings to RDF to Improve Dataset Quality
Assessing and Refining Mappings to RDF to Improve Dataset QualityAssessing and Refining Mappings to RDF to Improve Dataset Quality
Assessing and Refining Mappings to RDF to Improve Dataset Qualityandimou
 
Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality
Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality
Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality andimou
 
Extraction and Semantic Annotation of Workshop Proceedings in HTML using RML
Extraction and Semantic Annotation of Workshop Proceedings in HTML using RMLExtraction and Semantic Annotation of Workshop Proceedings in HTML using RML
Extraction and Semantic Annotation of Workshop Proceedings in HTML using RMLandimou
 
Visualizing the information of a Linked Open Data enabled Research Informatio...
Visualizing the information of a Linked Open Data enabled Research Informatio...Visualizing the information of a Linked Open Data enabled Research Informatio...
Visualizing the information of a Linked Open Data enabled Research Informatio...andimou
 

More from andimou (10)

What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?
 
High quality Linked Data generation for librarians
High quality Linked Data generation for librariansHigh quality Linked Data generation for librarians
High quality Linked Data generation for librarians
 
iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...
iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...
iLastic: Linked Data Generation Workflow and User Interface for iMinds Schola...
 
DBpedia Mappings Quality Assessment
DBpedia Mappings Quality AssessmentDBpedia Mappings Quality Assessment
DBpedia Mappings Quality Assessment
 
Towards an Interface for User-Friendly Linked Data Generation Administration
Towards an Interface for User-Friendly Linked Data Generation AdministrationTowards an Interface for User-Friendly Linked Data Generation Administration
Towards an Interface for User-Friendly Linked Data Generation Administration
 
Mappings Validation
Mappings ValidationMappings Validation
Mappings Validation
 
Assessing and Refining Mappings to RDF to Improve Dataset Quality
Assessing and Refining Mappings to RDF to Improve Dataset QualityAssessing and Refining Mappings to RDF to Improve Dataset Quality
Assessing and Refining Mappings to RDF to Improve Dataset Quality
 
Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality
Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality
Test-driven Assessment of [R2]RML Mappings to Improve Dataset Quality
 
Extraction and Semantic Annotation of Workshop Proceedings in HTML using RML
Extraction and Semantic Annotation of Workshop Proceedings in HTML using RMLExtraction and Semantic Annotation of Workshop Proceedings in HTML using RML
Extraction and Semantic Annotation of Workshop Proceedings in HTML using RML
 
Visualizing the information of a Linked Open Data enabled Research Informatio...
Visualizing the information of a Linked Open Data enabled Research Informatio...Visualizing the information of a Linked Open Data enabled Research Informatio...
Visualizing the information of a Linked Open Data enabled Research Informatio...
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 

Mapping Hierarchical Sources into RDF using the RML Mapping Language

  • 1. Mapping Hierarchical Sources into RDF using the RML Mapping Language Anastasia Dimou1, Miel Vander Sande1, Jason Slepicka2, Pedro Szekely2, Erik Mannens1, Craig Knoblock2, Rik Van de Walle1 1Ghent University – iMinds – Multimedia Lab 2University of Southern California – Information Science Institute – Department of Computer Science http://rml.io IEEE-ICSC14 Newport beach, California, 18th June 2014
  • 2. Most of the data that we would like to be able to query as Linked Open Data exists in formats other than RDF
  • 3. There are… over 11,000 APIs according to ProgrammableWeb.org only 74 of which return results in RDF But more than 5000 return results in JSON or XML
  • 4. Many languages, tools and approaches were proposed to convert data from relational databases to RDF
  • 5. Relational Database to RDF (R2RML W3C) R2RML mappings R2RML processor Data OWNER / PUBLISHER defines RDF DB
  • 6.
  • 7. R2RML mappings R2RML processor Data OWNER / PUBLISHER defines RDF DB CSV JSONXML RDF RDF RDF
  • 8. lack of uniform definitions to describe mapping rules for heterogeneous sources lack of interoperable definitions that would allow the re-use of mapping rules across different implementations lack of reusable definitions that would allow the re-use of mapping rules for representing data in the same or different formats
  • 9. mapping data on a per-source and per-format basis or on case-specific basis Uniform way of defining mappings for heterogeneous sources that can be re-used across data in the same or different formats and be interoperable across different implementations
  • 10. R2RML mappings R2RML processor Data OWNER / PUBLISHER defines RDF DB CSV JSONXML RDF RDF RDF
  • 11. Mappings definitions processor Data OWNER / PUBLISHER defines RDF DB CSV JSONXML any format to RDF
  • 12. RDF Mapping Language (RML) generic scalable mapping language for mapping heterogeneous resources into RDF in an integrable and interoperable fashion superset of the W3C standardized R2RML mapping language http://semweb.mmlab.be/ns/rml
  • 13. Relational Database to RDF Mapping Language (R2RML)
  • 14. R2RML mapping document NAME BIRTH_DATE DEATH_DATE Robert Theodore McCall 1919-12-23 2010-02-26 Ronald Anderson 1929-12-06 Triples Map Logical Table Table Name <#ArtistMapping> rr:logicalTable [ rr:tableName “ARTISTS” ].
  • 15. R2RML mapping definition Table Name Triples Map Logical Table Subject Map Predicate-Object Map Predicate-Object Map Predicate-Object Map Predicate Map Object Map
  • 16. R2RML mapping document Triples Map Subject Map NAME BIRTH_DATE DEATH_DATE Robert Theodore McCall 1919-12-23 2010-02-26 Ronald Anderson 1929-12-06 <#ArtistMapping> rr:subjectMap [ rr:template “http://ex.com/{NAME}” ; rr:class ex:Person ]; <http://ex.com/Robert+Theodore+McCall> a ex:Person
  • 17. R2RML mapping document Predicate Map NAME BIRTH_DATE DEATH_DATE Robert Theodore McCall 1919-12-23 2010-02-26 Ronald Anderson 1929-12-06 <#ArtistMapping> rr:predicateObjectMap [ rr:predicate ex:birth_date; rr:objectMap [ rr:column "BIRTH_DATE" ] ]; <http://ex.com/Robert+Theodore+McCall> ex:birth_date “1919-12-23” Predicate Object Map Objectt Map
  • 19. RDF Mapping Language (RML) mapping hierarchical sources to RDF deal with hierarchy and heterogeneity
  • 20. R2RML: each row is a self-contained that can be processed independently R2RML: the columns in each row can be referred to unambiguously R2RML: for each reference to a column in a single row a unique value is returned
  • 21. explicit reference to the iteration pattern R2RML: each row is a self-contained that can be processed independently abstract reference to the input data R2RML: the columns in each row can be referred to unambiguously more than one triples per Predicate-Object Map R2RML: for each reference to a column in a single row a unique value is returned
  • 22. RDF Mapping Language (RML) For hierarchical sources
  • 23. [ ... … { "Title": "Apollo 11 Crew", "Artist": "Ronald Anderson", "Ref": "NPG_70_36", "Sitter": [ { "Name": "Neil Armstrong", "Birth Date": "1930-08-05" }, { "Name": "Buzz Aldrin", "Birth Date": "1930-01-20" }, { "Name": "Michael Collins" } ], "DateOfWork": "1969" }, { "Title": "Neil Armstrong", "Artist": "Robert Theodore McCall", "Ref": "S_NPG_2010_51", "Sitter": [ { "Name": "Neil Armstrong" } ], "DateOfWork": "2009" }, ... … ] <Artists> ... ... <Artist> <Name>Robert Theodore McCall</Name> <Birth_Date>1919-12-23</Birth_Date> <Death_Date>2010-02-26</Death_Date> </Artist> <Artist> <Name>Ronald Anderson</Name> <Birth_Date>1929-12-06</Birth_Date> <Death_Date/> </Artist> ... ... </Artists> artworks.JSON artists.XML
  • 24. Specifying the input data R2RML: database RML: file, API, … R2RML: Logical Table (rr:logicalTable) RML: Logical Source (rml:logicalSource) R2RML: logical Name (rr:logicalName) RML: source (rml:source)
  • 25. Triples Map Logical Source source <#ArtworkMapping> rml:logicalSource [rml:source “http://ex.com/artworks.json”]. Triples Map Logical Source source <#ArtistMapping> rml:logicalSource [ rml:source “artists.xml” ].
  • 26. Referring to the input data R2RML: databases RML: XML or JSON or CSV or …. R2RML: (SQL) RML: Xpath/Xquery or JSONPath or RFC 4180 or … R2RML: (rr:sqlQuery) RML: rml:referenceFormulation
  • 27. <#ArtworkMapping> rml:logicalSource [ rml:source “http://ex.com/artworks.json” ; rml:rererenceFormulation ql:JSONPath ]. Triples Map Logical Source source <#ArtistMapping> rml:logicalSource [ rml:source “artists.xml”; rml:referenceFormulation ql:XPath ].Reference Formulation Triples Map Logical Source source Reference Formulation
  • 28. Iterating over the input data R2RML: per row RML: ? R2RML: RML: rml:iterator
  • 29. <#ArtistMapping> rml:logicalSource [ rml:source “artists.xml”; rml:referenceFormulation ql:Xpath ; rml:iterator “/Artists/Artist” ]. <Artists> ... ... <Artist> <Name>Robert Theodore McCall</Name> <Birth_Date>1919-12-23</Birth_Date> <Death_Date>2010-02-26</Death_Date> </Artist> <Artist> <Name>Ronald Anderson</Name> <Birth_Date>1929-12-06</Birth_Date> <Death_Date/> </Artist> ... ... </Artists>
  • 30. [ ... … { "Title": "Apollo 11 Crew", "Artist": "Ronald Anderson", "Ref": "NPG_70_36", "Sitter": [ { "Name": "Neil Armstrong", "Birth Date": "1930-08-05" }, { "Name": "Buzz Aldrin", "Birth Date": "1930-01-20" }, { "Name": "Michael Collins" } ], "DateOfWork": "1969" }, { "Title": "Neil Armstrong", "Artist": "Robert Theodore McCall", "Ref": "S_NPG_2010_51", "Sitter": [ { "Name": "Neil Armstrong" } ], "DateOfWork": "2009" }, ... … ] <#ArtworkMapping> rml:logicalSource [ rml:source “http://ex.com/artworks.json” ; rml:rererenceFormulation ql:JSONPath ; rml:iterator “$.[*]” ]. <#SitterMapping> rml:logicalSource [ rml:source “http://ex.com/artworks.json”; rml:rererenceFormulation ql:JSONPath ; rml:iterator “$.[*].Sitter” ].
  • 31. Referring to the extracts of the input data explicitly and implicitly R2RML: column name RML: XML element or JSON object or … R2RML: rr:column RML: rml:reference
  • 32. <#ArtistMapping> rml:logicalSource [ rml:source “http://ex.com/artists.xml”; rml:rererenceFormulation ql:XPath ; rml:iterator “/Artists/Artist” ] ; rr:subjectMap [ rr:template “http://ex.com/{Name}” ]; rr:predicateObjectMap [ rr:predicate ex:death_date ; rr:objectMap [ rml:reference “/Artists/Artist/Death_Date”] ]. <Artists> ... ... <Artist> <Name>Robert Theodore McCall</Name> <Birth_Date>1919-12-23</Birth_Date> <Death_Date>2010-02-26</Death_Date> </Artist> <Artist> <Name>Ronald Anderson</Name> <Birth_Date>1929-12-06</Birth_Date> <Death_Date/> </Artist> ... ... </Artists> <http://ex.com/Robert+Theodore+McCall> ex:death_date “1929-12-06”.
  • 33. [ ... … { "Title": "Apollo 11 Crew", "Artist": "Ronald Anderson", "Ref": "NPG_70_36", "Sitter": [ { "Name": "Neil Armstrong", "Birth Date": "1930-08-05" }, { "Name": "Buzz Aldrin", "Birth Date": "1930-01-20" }, { "Name": "Michael Collins" } ], "DateOfWork": "1969" }, { "Title": "Neil Armstrong", "Artist": "Robert Theodore McCall", "Ref": "S_NPG_2010_51", "Sitter": [ { "Name": "Neil Armstrong" } ], "DateOfWork": "2009" }, ... … ] <#ArtworkMapping> rml:logicalSource [ rml:source “http://ex.com/artworks.json”; rml:rererenceFormulation ql:JSONPath ; rml:iterator “$.[*]” ] ; rr:subjectMap [ rr:template “http://ex.com/{Ref}”]; rr:predicateObjectMap [ rr:predicate rdfs:label ; rr:objectMap [ rml:reference “$.[*].Title” ] ]. <http://ex.com/NPG_70_36> rdfs:label “Apollo 11 Crew”.
  • 34. [ ... … { "Title": "Apollo 11 Crew", "Artist": "Ronald Anderson", "Ref": "NPG_70_36", "Sitter": [ { "Name": "Neil Armstrong", "Birth Date": "1930-08-05" }, { "Name": "Buzz Aldrin", "Birth Date": "1930-01-20" }, { "Name": "Michael Collins" } ], "DateOfWork": "1969" }, { "Title": "Neil Armstrong", "Artist": "Robert Theodore McCall", "Ref": "S_NPG_2010_51", "Sitter": [ { "Name": "Neil Armstrong" } ], "DateOfWork": "2009" }, ... … ] <#SitterMapping> rml:logicalSource [ rml:source “http://ex.com/artworks.json”; rml:rererenceFormulation ql:JSONPath ; rml:iterator “$.[*].Sitter” ] ; rr:subjectMap [ rr:template “http://ex.com/{Name}”]; rr:predicateObjectMap [ rr:predicate ex:birth_date ; rr:objectMap [ rml:reference “$.[*].Sitter.Birth Date” ]]. <http://ex.com/Neil+Armstrong> ex:birth_date “1930-08-05”.
  • 35. RDF Mapping Language (RML) Source Triples Map Logical Source Subject Map Predicate-Object Map Predicate Map Object Map Term Map template constant reference Iterator Reference Formulation Referencing Object Map Triples Map Join Condition Parent column Child column
  • 36. RDF Mapping Language (RML) Editing mappings with Karma http://www.isi.edu/integration/karma/
  • 37.
  • 39. mapping-driven processing: processing driven by the mapping module data-driven processing: processing driven by the extraction module
  • 40. Extraction Module Mapping Module RML Processor
  • 41. Mapping Hierarchical Sources into RDF using the RML mapping language RML: http://rml.io RML Namespace: http://semweb.mmlab.be/ns/rml RML Processor: https://github.com/mmlab/RMLProcessor Contact us Anastasia Dimou anastasia.dimou@ugent.be @natadimou Miel Vander Sande miel.vandersande@ugent.be @Miel_vds