www.insight)centre.org.
XML Data Mediation using
XSPARQL
Nuno Lopes, Laleh Kazemzadeh
October, 2013
www.insight)centre.org.
Why use RDF for data integration (I)
1 / 21
www.insight)centre.org.
Why use RDF for data integration (I)
Flexibility
1 / 21
www.insight)centre.org.
Why use RDF for data integration (I)
Flexibility
1 Representation
Reuse any vocabularies
No schema required
1 / 21
www.insight)centre.org.
Why use RDF for data integration (I)
Flexibility
1 Representation
Reuse any vocabularies
No schema required
2 Combining
Easily combine different datasets
RDF merge is simple
1 / 21
www.insight)centre.org.
Why use RDF for data integration (I)
Flexibility
1 Representation
Reuse any vocabularies
No schema required
2 Combining
Easily combine different datasets
RDF merge is simple
3 Sharing
Linked Data
Built on web technologies (HTTP, URIs)
1 / 21
www.insight)centre.org.
Why use RDF for data integration (II)
Global Identifiers
Schema-less
Self-Describing
Graph-Based
2 / 21
www.insight)centre.org.
Why use RDF for data integration (II)
Global Identifiers ×
Schema-less ×
Self-Describing ×
Graph-Based ×
2 / 21
www.insight)centre.org.
Why use RDF for data integration (II)
Global Identifiers × ×
Schema-less ×
√
Self-Describing × × /
√
Graph-Based × × /
√
2 / 21
www.insight)centre.org.
Why use RDF for data integration (II)
Global Identifiers × ×
√
Schema-less ×
√ √
Self-Describing × × /
√ √
Graph-Based × × /
√ √
2 / 21
www.insight)centre.org.
RDF-based Data Integration
3 / 21
www.insight)centre.org.
RDF-based Data Integration
3 / 21
www.insight)centre.org.
RDF-based Data Integration
Data
Transformation
3 / 21
www.insight)centre.org.
RDF-based Data Integration
Data
Transformation
Data
Representation
3 / 21
www.insight)centre.org.
RDF-based Data Integration
Data
Transformation
Data
Representation
3 / 21
www.insight)centre.org.
Data Transformation: Query Languages
SQL
select address from person
where name = "Nuno"
XQuery
for $person in doc("people.xml")
return $person//address
SPARQL
select $address
from <nunolopes.org/..>
where { :nuno foaf:address
$address }
relation
solution sequence
sequence of items
Mediator/DataWarehouse
SPA QL
M
L
X
D
F
R
4 / 21
www.insight)centre.org.
Data Transformation: Query Languages
SQL
select address from person
where name = "Nuno"
XQuery
for $person in doc("people.xml")
return $person//address
SPARQL
select $address
from <nunolopes.org/..>
where { :nuno foaf:address
$address }
relation
solution sequence
sequence of items
Mediator/DataWarehouse
SPA QL
M
L
X
D
F
R
4 / 21
www.insight)centre.org.
Data Transformation: Query Languages
SQL
select address from person
where name = "Nuno"
XQuery
for $person in doc("people.xml")
return $person//address
SPARQL
select $address
from <nunolopes.org/..>
where { :nuno foaf:address
$address }
relation
solution sequence
sequence of items
Mediator/DataWarehouse
SPA QL
M
L
X
D
F
R
4 / 21
www.insight)centre.org.
Data Transformation: Query Languages
SQL
select address from person
where name = "Nuno"
XQuery
for $person in doc("people.xml")
return $person//address
SPARQL
select $address
from <nunolopes.org/..>
where { :nuno foaf:address
$address }
relation
solution sequence
sequence of items
Mediator/DataWarehouse
SPA QL
M
L
X
D
F
R
4 / 21
www.insight)centre.org.
XSPARQL
SPA QL
M
L
X
D
F
R
Transformation language between RDB,
XML, and RDF
5 / 21
www.insight)centre.org.
XSPARQL
SPA QL
M
L
X
D
F
R
Transformation language between RDB,
XML, and RDF
Syntactic extension of XQuery
5 / 21
www.insight)centre.org.
XSPARQL
SPA QL
M
L
X
D
F
R
Transformation language between RDB,
XML, and RDF
Syntactic extension of XQuery
Semantics based on XQuery’s semantics
5 / 21
www.insight)centre.org.
XSPARQL
SPA QL
M
L
X
D
F
R
Transformation language between RDB,
XML, and RDF
Syntactic extension of XQuery
Semantics based on XQuery’s semantics
Why based on XQuery?
Expressive language
Use as scripting language
5 / 21
www.insight)centre.org.
XSPARQL
SPA QL
M
L
X
D
F
R
Transformation language between RDB,
XML, and RDF
Syntactic extension of XQuery
Semantics based on XQuery’s semantics
Why based on XQuery?
Expressive language
Use as scripting language
Arbitrary Nesting of expressions
5 / 21
www.insight)centre.org.
Same Language for each Format
XSPARQL
for address as $address from people
where name = "Nuno"
return $address
for $person in doc("people.xml")
return $person//address
XSPARQL
for $address from <nunolopes.org/..>
where { :nuno foaf:address $address }
return $address
for var in Expr
let var := Expr
where Expr
order by Expr
return Expr
for SelectSpec
from RelationList
where WhereSpecList
return Expr
for varlist
from DatasetClause
where { pattern }
return Expr
6 / 21
www.insight)centre.org.
Same Language for each Format
XSPARQL
for address as $address from people
where name = "Nuno"
return $address
XQuery
for $person in doc("people.xml")
return $person//address
XSPARQL
for $address from <nunolopes.org/..>
where { :nuno foaf:address $address }
return $address
for var in Expr
let var := Expr
where Expr
order by Expr
return Expr
for SelectSpec
from RelationList
where WhereSpecList
return Expr
for varlist
from DatasetClause
where { pattern }
return Expr
6 / 21
www.insight)centre.org.
Same Language for each Format
XSPARQL
for address as $address from people
where name = "Nuno"
return $address
XSPARQL
for $person in doc("people.xml")
return $person//address
XSPARQL
for $address from <nunolopes.org/..>
where { :nuno foaf:address $address }
return $address
for var in Expr
let var := Expr
where Expr
order by Expr
return Expr
for SelectSpec
from RelationList
where WhereSpecList
return Expr
for varlist
from DatasetClause
where { pattern }
return Expr
6 / 21
www.insight)centre.org.
Same Language for each Format
XSPARQL
for address as $address from people
where name = "Nuno"
return $address
for $person in doc("people.xml")
return $person//address
XSPARQL
for $address from <nunolopes.org/..>
where { :nuno foaf:address $address }
return $address
for var in Expr
let var := Expr
where Expr
order by Expr
return Expr
for SelectSpec
from RelationList
where WhereSpecList
return Expr
for varlist
from DatasetClause
where { pattern }
return Expr
6 / 21
www.insight)centre.org.
Same Language for each Format
XSPARQL
for address as $address from people
where name = "Nuno"
return $address
for $person in doc("people.xml")
return $person//address
XSPARQL
for $address from <nunolopes.org/..>
where { :nuno foaf:address $address }
return $address
for var in Expr
let var := Expr
where Expr
order by Expr
return Expr
for SelectSpec
from RelationList
where WhereSpecList
return Expr
for varlist
from DatasetClause
where { pattern }
return Expr
6 / 21
www.insight)centre.org.
Usecase: Inparanoid
7 / 21
www.insight)centre.org.
Usecase: Inparanoid
7 / 21
www.insight)centre.org.
Usecase: Inparanoid
7 / 21
www.insight)centre.org.
Usecase: Predicting Protein-Protein Interactions
8 / 21
www.insight)centre.org.
Creating RDF with XSPARQL
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId} . }
construct
clause generates
RDF
Arbitrary XSPARQL
expressions in subject,
predicate, and object
9 / 21
www.insight)centre.org.
Creating RDF with XSPARQL
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId} . }
construct
clause generates
RDF
Arbitrary XSPARQL
expressions in subject,
predicate, and object
9 / 21
www.insight)centre.org.
Creating RDF with XSPARQL
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId} . }
construct
clause generates
RDF
Arbitrary XSPARQL
expressions in subject,
predicate, and object
9 / 21
www.insight)centre.org.
Creating RDF with XSPARQL
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId} . }
construct
clause generates
RDF
Arbitrary XSPARQL
expressions in subject,
predicate, and object
Query Result
:1 dct:identifier "1" .
:1 bioinfo:geneID "ENSG00000155657" .
gene:ENSG00000155657 rdf:type bioinfo:Gene .
:1 bioinfo:protID "ENSP00000364178" .
protein:ENSP00000364178 rdf:type bioinfo:protein .
gene:ENSG00000155657 bioinfo:source_database "Ensembl" .
protein:ENSG00000155657 bioinfo:organism <http://purl.uniprot.org/taxonomy/9606>
9 / 21
www.insight)centre.org.
Usecase: Combining Inparanoid with BridgeDB
10 / 21
www.insight)centre.org.
Usecase: Combining Inparanoid with BridgeDB
10 / 21
www.insight)centre.org.
Usecase: Combining Inparanoid with BridgeDB
10 / 21
www.insight)centre.org.
Integration Query Example
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
for $link $idRight from link
where idRight = $geneId
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId};
:link {$idRight} . }
11 / 21
www.insight)centre.org.
Integration Query Example
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
for $link $idRight from link
where idRight = $geneId
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId};
:link {$idRight} . }
11 / 21
www.insight)centre.org.
Integration Query Example
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
for $link $idRight from link
where idRight = $geneId
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId};
:link {$idRight} . }
11 / 21
www.insight)centre.org.
Integration Query Example
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
for $link $idRight from link
where idRight = $geneId
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId};
:link {$idRight} . }
11 / 21
www.insight)centre.org.
Integration Query Example
for $gene in doc("H.sapiens -M.musculus.xml")//gene
let $id := fn:data($gene/@id)
let $geneId :=fn:data($gene/@geneId)
let $protId :=fn:data($gene/@protId)
let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id)
for $link $idRight from link
where idRight = $geneId
construct { <{$uri}> purl:identifier {$id};
:geneID {$geneId};
:protID {$protId};
:link {$idRight} . }
More involved XSPARQL queries: RDB2RDF
Direct Mapping: ∼130 LoC
R2RML: ∼290 LoC
11 / 21
www.insight)centre.org.
Cloudspaces
CloudSpace Platform offers
Infrastructure for the intersection of:
Linked Data
Big Data
Cloud Computing
12 / 21
www.insight)centre.org.
Cloudspaces & Sindice
Cloudspaces
A collection of tool to help users Extract, Transform & Load big
data sets.
Cloudspaces is based on Sindice, allowing user-defined Linked Data
pipelines to be used in the Cloud
13 / 21
www.insight)centre.org.
Cloudspaces & Sindice
Cloudspaces
A collection of tool to help users Extract, Transform & Load big
data sets.
Cloudspaces is based on Sindice, allowing user-defined Linked Data
pipelines to be used in the Cloud
Sindice
Linked Data "Search Engine"
High availability Sparql Endpoint:
12 Billion Triples
Can load 100 million triples a day (updated daily)
13 / 21
www.insight)centre.org.
Overview
XSPARQL
Usecases & Other features
Beyond XSPARQL
Conclusions
14 / 21
www.insight)centre.org.
SPARQL 1.1
Data integration features in SPARQL 1.1
Aggregates
Subqueries
Federation Extensions
Negation
Expressions in the SELECT clause
Property Paths
Assignment
14 / 21
www.insight)centre.org.
SPARQL 1.1
Data integration features in SPARQL 1.1
Aggregates
Subqueries
Federation Extensions
Negation
Expressions in the SELECT clause
Property Paths
Assignment
14 / 21
www.insight)centre.org.
SPARQL 1.1: Federation extensions
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?N ?MyB
FROM <http://polleres.net/foaf.rdf>
WHERE { [ foaf:birthday ?MyB ].
SERVICE <http://dbpedia.org/sparql> {
SELECT ?N WHERE { [ dbpedia2:born ?B; foaf:name ?N ]. }
}
FILTER ( Regex(Str(?B),str(?MyB)) )
}
15 / 21
www.insight)centre.org.
SPARQL 1.1: Federation extensions
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?N ?MyB
FROM <http://polleres.net/foaf.rdf>
WHERE { [ foaf:birthday ?MyB ].
SERVICE <http://dbpedia.org/sparql> {
SELECT ?N WHERE { [ dbpedia2:born ?B; foaf:name ?N ]. }
}
FILTER ( Regex(Str(?B),str(?MyB)) )
}
15 / 21
www.insight)centre.org.
SPARQL 1.1: Federation extensions
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?N ?MyB
FROM <http://polleres.net/foaf.rdf>
WHERE { [ foaf:birthday ?MyB ].
SERVICE <http://dbpedia.org/sparql> {
SELECT ?N WHERE { [ dbpedia2:born ?B; foaf:name ?N ]. }
}
FILTER ( Regex(Str(?B),str(?MyB)) )
}
Problem
limits from SPARQL endpoints prevent this query from working!
15 / 21
www.insight)centre.org.
XSPARQL: endpoint/service queries
XSPARQL endpoint
prefix dbprop: <http://dbpedia.org/property/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix : <http://xsparql.deri.org/bday#>
let $MyB := for * from <http://polleres.net/foaf.rdf>
where { [ foaf:birthday $B ]. }
return $B
for * from <http://dbpedia.org/>
endpoint <http://dbpedia.org/sparql>
where { [ dbprop:born $B; foaf:name $N ].
filter ( regex(str($B),str($MyB)) ) }
construct { :axel :sameBirthDayAs $N }
16 / 21
www.insight)centre.org.
XSPARQL: endpoint/service queries
XSPARQL endpoint
prefix dbprop: <http://dbpedia.org/property/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix : <http://xsparql.deri.org/bday#>
let $MyB := for * from <http://polleres.net/foaf.rdf>
where { [ foaf:birthday $B ]. }
return $B
for * from <http://dbpedia.org/>
endpoint <http://dbpedia.org/sparql>
where { [ dbprop:born $B; foaf:name $N ].
filter ( regex(str($B),str($MyB)) ) }
construct { :axel :sameBirthDayAs $N }
16 / 21
www.insight)centre.org.
Converting Logainm dump to RDF
SPA QL
M
L
X
D
F
R
∼ 1.3M triples
Data provided in XML
17 / 21
www.insight)centre.org.
Converting Logainm dump to RDF
SPA QL
M
L
X
D
F
R
∼ 1.3M triples
Data provided in XML
Translated to RDF using XSPARQL
17 / 21
www.insight)centre.org.
Converting Logainm dump to RDF
SPA QL
M
L
X
D
F
R
∼ 1.3M triples
Data provided in XML
Translated to RDF using XSPARQL
Exposed using Openlink Virtuoso
17 / 21
www.insight)centre.org.
Overview
XSPARQL
Usecases & Other features
Beyond XSPARQL
Conclusions
18 / 21
www.insight)centre.org.
XSPARQLViz
http://deri-srvgal33.nuig.ie:8080/XsparqlViz/
18 / 21
www.insight)centre.org.
Annotated RDF(S) Domains
Annotations refer to a specific domain
Temporal
:nuno :address :Galway . [2008,2012]
19 / 21
www.insight)centre.org.
Annotated RDF(S) Domains
Annotations refer to a specific domain
Temporal
:nuno :address :Galway . [2008,2012]
Fuzzy
:nuno :address :Dublin . 0.9
19 / 21
www.insight)centre.org.
Annotated RDF(S) Domains
Annotations refer to a specific domain
Temporal
:nuno :address :Galway . [2008,2012]
Fuzzy
:nuno :address :Dublin . 0.9
Access Control
:nuno :address :Galway . [nl]
19 / 21
www.insight)centre.org.
Annotated RDF(S) AC Query
ap address Galway.
ap birthday ”24/03”].
nl address Galway.
nl birthday ”23/12”].
AnQL AC Query
SELECT * WHERE { $person :birthday $birthday .q] }
$person $birthday
ap “24/03”
nl “23/12”
20 / 21
www.insight)centre.org.
Annotated RDF(S) AC Query
ap address Galway.
ap birthday ”24/03” : [[ap]].
nl address Galway.
nl birthday ”23/12” : [[nl]].
AnQL AC Query
SELECT * WHERE { $person :birthday $birthday :[[nl]] . }
$person $birthday
ap “24/03”
nl “23/12”
20 / 21
www.insight)centre.org.
Annotated RDF(S) AC Query
ap address Galway.
ap birthday ”24/03” : [[ap]].
nl address Galway.
nl birthday ”23/12” : [[nl]].
AnQL AC Query
SELECT * WHERE { $person :birthday $birthday :[[nl]] . }
$person $birthday
ap “24/03”
nl “23/12”
20 / 21
www.insight)centre.org.
Conclusions
You can use XSPARQL to easily merge data from different
sources in a common language
21 / 21
www.insight)centre.org.
Conclusions
You can use XSPARQL to easily merge data from different
sources in a common language
Annotated RDF can provide Access Control over RDF data
21 / 21
www.insight)centre.org.
Conclusions
You can use XSPARQL to easily merge data from different
sources in a common language
Annotated RDF can provide Access Control over RDF data
Useful links
XSPARQL http://xsparql.deri.org/
XSPARQLViz http://deri-srvgal33.nuig.ie:
8080/XsparqlViz/
logainm http://data.logainm.ie/
21 / 21
www.insight)centre.org.
Conclusions
You can use XSPARQL to easily merge data from different
sources in a common language
Annotated RDF can provide Access Control over RDF data
Useful links
XSPARQL http://xsparql.deri.org/
XSPARQLViz http://deri-srvgal33.nuig.ie:
8080/XsparqlViz/
logainm http://data.logainm.ie/
Thank you! Questions?
21 / 21

More Related Content

PPTX
SWT Lecture Session 2 - RDF
PPTX
SWT Lecture Session 3 - SPARQL
PPTX
SWT Lecture Session 9 - RDB2RDF direct mapping
PDF
ICIC 2017: Dealing with Patent Families in FTO Searches, Portfolio Analysis a...
PDF
Uplift – Generating RDF datasets from non-RDF data with R2RML
PPTX
SWT Lecture Session 10 R2RML Part 1
PPTX
SWT Lecture Session 8 - Rules
SWT Lecture Session 2 - RDF
SWT Lecture Session 3 - SPARQL
SWT Lecture Session 9 - RDB2RDF direct mapping
ICIC 2017: Dealing with Patent Families in FTO Searches, Portfolio Analysis a...
Uplift – Generating RDF datasets from non-RDF data with R2RML
SWT Lecture Session 10 R2RML Part 1
SWT Lecture Session 8 - Rules

What's hot (20)

PPTX
Integrating Heterogeneous Data Sources in the Web of Data
PDF
RDF, SPARQL and Semantic Repositories
PPTX
SWT Lecture Session 11 - R2RML part 2
PPTX
The Semantic Web #10 - SPARQL
PPTX
RDF data model
PPT
From SQL to SPARQL
PDF
JSON and MongoDB in R
PPT
Rdf In A Nutshell V1
PDF
An Introduction to RDF and the Web of Data
PPTX
Introduction to RDF Data Model
PPTX
RDF Data Model
PDF
Two graph data models : RDF and Property Graphs
PDF
Semantic Web Technologies in Health Care Analytics
PPTX
SPARQL
PDF
Translation of Relational and Non-Relational Databases into RDF with xR2RML
PDF
Dbms fundamentals
PPTX
Validating RDF data: Challenges and perspectives
DOCX
Database adapter
PPT
Phylo finder: an intelligent search engine for phylogenetic tree databases
Integrating Heterogeneous Data Sources in the Web of Data
RDF, SPARQL and Semantic Repositories
SWT Lecture Session 11 - R2RML part 2
The Semantic Web #10 - SPARQL
RDF data model
From SQL to SPARQL
JSON and MongoDB in R
Rdf In A Nutshell V1
An Introduction to RDF and the Web of Data
Introduction to RDF Data Model
RDF Data Model
Two graph data models : RDF and Property Graphs
Semantic Web Technologies in Health Care Analytics
SPARQL
Translation of Relational and Non-Relational Databases into RDF with xR2RML
Dbms fundamentals
Validating RDF data: Challenges and perspectives
Database adapter
Phylo finder: an intelligent search engine for phylogenetic tree databases
Ad

Viewers also liked (20)

PPTX
Parallel XSLT Processing of Large XML Documents - XML Prague 2015
PPT
XML Amsterdam - Creating structure in unstructured data
PPT
XML processing with perl
PPTX
Final ppt
PDF
Linked Logainm: Enhancing Library Metadata using Linked Data of Irish Place N...
PDF
Pig - Processing XML data
PPTX
PDF
HadoopXML: A Suite for Parallel Processing of Massive XML Data with Multiple ...
PDF
A poster version of HadoopXML
PPTX
Extracting data from xml
PPTX
Xml data transformation
PPTX
Strata NY 2016: The future of column-oriented data processing with Arrow and ...
PDF
Big xml
PDF
If you have your own Columnar format, stop now and use Parquet 😛
PPTX
Black Hat: XML Out-Of-Band Data Retrieval
PPTX
The Columnar Era: Leveraging Parquet, Arrow and Kudu for High-Performance Ana...
PPTX
Apache Accumulo 1.8.0 Overview
PPTX
File Format Benchmarks - Avro, JSON, ORC, & Parquet
PDF
Parquet Strata/Hadoop World, New York 2013
PDF
Parquet performance tuning: the missing guide
Parallel XSLT Processing of Large XML Documents - XML Prague 2015
XML Amsterdam - Creating structure in unstructured data
XML processing with perl
Final ppt
Linked Logainm: Enhancing Library Metadata using Linked Data of Irish Place N...
Pig - Processing XML data
HadoopXML: A Suite for Parallel Processing of Massive XML Data with Multiple ...
A poster version of HadoopXML
Extracting data from xml
Xml data transformation
Strata NY 2016: The future of column-oriented data processing with Arrow and ...
Big xml
If you have your own Columnar format, stop now and use Parquet 😛
Black Hat: XML Out-Of-Band Data Retrieval
The Columnar Era: Leveraging Parquet, Arrow and Kudu for High-Performance Ana...
Apache Accumulo 1.8.0 Overview
File Format Benchmarks - Avro, JSON, ORC, & Parquet
Parquet Strata/Hadoop World, New York 2013
Parquet performance tuning: the missing guide
Ad

Similar to XSPARQL CrEDIBLE workshop (20)

PDF
A Hands On Overview Of The Semantic Web
PPTX
Infromation Reprentation, Structured Data and Semantics
PDF
Overview of the SPARQL-Generate language and latest developments
PPT
A hands on overview of the semantic web
PPTX
20100614 ISWSA Keynote
PPT
SPARQL in the Semantic Web
PPTX
Sparql
PPTX
Introduction to SPARQL
PPTX
Introduction to SPARQL
PPTX
Semantic Web use cases in outcomes research
PPT
SPARQL Query Forms
PPT
ZIP
XSLT+SPARQL: Scripting the Semantic Web with SPARQL embedded into XSLT styles...
PPTX
A Little SPARQL in your Analytics
PDF
Data integration with a façade. The case of knowledge graph construction.
PDF
Drupal as a Semantic Web platform - ISWC 2012
PPTX
Technologies, methods and challenges to data sharing and aggrigation
PDF
RDF: what and why plus a SPARQL tutorial
PDF
Implementation and Optimisation of Queries in XSPARQL
DOCX
Extracting Authoring Information Based on Keywords andSemant.docx
A Hands On Overview Of The Semantic Web
Infromation Reprentation, Structured Data and Semantics
Overview of the SPARQL-Generate language and latest developments
A hands on overview of the semantic web
20100614 ISWSA Keynote
SPARQL in the Semantic Web
Sparql
Introduction to SPARQL
Introduction to SPARQL
Semantic Web use cases in outcomes research
SPARQL Query Forms
XSLT+SPARQL: Scripting the Semantic Web with SPARQL embedded into XSLT styles...
A Little SPARQL in your Analytics
Data integration with a façade. The case of knowledge graph construction.
Drupal as a Semantic Web platform - ISWC 2012
Technologies, methods and challenges to data sharing and aggrigation
RDF: what and why plus a SPARQL tutorial
Implementation and Optimisation of Queries in XSPARQL
Extracting Authoring Information Based on Keywords andSemant.docx

Recently uploaded (20)

PDF
advance database management system book.pdf
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PDF
Complications of Minimal Access-Surgery.pdf
PDF
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PDF
HVAC Specification 2024 according to central public works department
PPTX
A powerpoint presentation on the Revised K-10 Science Shaping Paper
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PDF
semiconductor packaging in vlsi design fab
PDF
International_Financial_Reporting_Standa.pdf
PPTX
What’s under the hood: Parsing standardized learning content for AI
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
PPTX
Module on health assessment of CHN. pptx
PDF
Hazard Identification & Risk Assessment .pdf
PDF
Empowerment Technology for Senior High School Guide
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
PDF
LEARNERS WITH ADDITIONAL NEEDS ProfEd Topic
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
advance database management system book.pdf
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
Complications of Minimal Access-Surgery.pdf
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
Cambridge-Practice-Tests-for-IELTS-12.docx
HVAC Specification 2024 according to central public works department
A powerpoint presentation on the Revised K-10 Science Shaping Paper
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
semiconductor packaging in vlsi design fab
International_Financial_Reporting_Standa.pdf
What’s under the hood: Parsing standardized learning content for AI
Paper A Mock Exam 9_ Attempt review.pdf.
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
Module on health assessment of CHN. pptx
Hazard Identification & Risk Assessment .pdf
Empowerment Technology for Senior High School Guide
AI-driven educational solutions for real-life interventions in the Philippine...
LEARNERS WITH ADDITIONAL NEEDS ProfEd Topic
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)

XSPARQL CrEDIBLE workshop

  • 1. www.insight)centre.org. XML Data Mediation using XSPARQL Nuno Lopes, Laleh Kazemzadeh October, 2013
  • 2. www.insight)centre.org. Why use RDF for data integration (I) 1 / 21
  • 3. www.insight)centre.org. Why use RDF for data integration (I) Flexibility 1 / 21
  • 4. www.insight)centre.org. Why use RDF for data integration (I) Flexibility 1 Representation Reuse any vocabularies No schema required 1 / 21
  • 5. www.insight)centre.org. Why use RDF for data integration (I) Flexibility 1 Representation Reuse any vocabularies No schema required 2 Combining Easily combine different datasets RDF merge is simple 1 / 21
  • 6. www.insight)centre.org. Why use RDF for data integration (I) Flexibility 1 Representation Reuse any vocabularies No schema required 2 Combining Easily combine different datasets RDF merge is simple 3 Sharing Linked Data Built on web technologies (HTTP, URIs) 1 / 21
  • 7. www.insight)centre.org. Why use RDF for data integration (II) Global Identifiers Schema-less Self-Describing Graph-Based 2 / 21
  • 8. www.insight)centre.org. Why use RDF for data integration (II) Global Identifiers × Schema-less × Self-Describing × Graph-Based × 2 / 21
  • 9. www.insight)centre.org. Why use RDF for data integration (II) Global Identifiers × × Schema-less × √ Self-Describing × × / √ Graph-Based × × / √ 2 / 21
  • 10. www.insight)centre.org. Why use RDF for data integration (II) Global Identifiers × × √ Schema-less × √ √ Self-Describing × × / √ √ Graph-Based × × / √ √ 2 / 21
  • 16. www.insight)centre.org. Data Transformation: Query Languages SQL select address from person where name = "Nuno" XQuery for $person in doc("people.xml") return $person//address SPARQL select $address from <nunolopes.org/..> where { :nuno foaf:address $address } relation solution sequence sequence of items Mediator/DataWarehouse SPA QL M L X D F R 4 / 21
  • 17. www.insight)centre.org. Data Transformation: Query Languages SQL select address from person where name = "Nuno" XQuery for $person in doc("people.xml") return $person//address SPARQL select $address from <nunolopes.org/..> where { :nuno foaf:address $address } relation solution sequence sequence of items Mediator/DataWarehouse SPA QL M L X D F R 4 / 21
  • 18. www.insight)centre.org. Data Transformation: Query Languages SQL select address from person where name = "Nuno" XQuery for $person in doc("people.xml") return $person//address SPARQL select $address from <nunolopes.org/..> where { :nuno foaf:address $address } relation solution sequence sequence of items Mediator/DataWarehouse SPA QL M L X D F R 4 / 21
  • 19. www.insight)centre.org. Data Transformation: Query Languages SQL select address from person where name = "Nuno" XQuery for $person in doc("people.xml") return $person//address SPARQL select $address from <nunolopes.org/..> where { :nuno foaf:address $address } relation solution sequence sequence of items Mediator/DataWarehouse SPA QL M L X D F R 4 / 21
  • 21. www.insight)centre.org. XSPARQL SPA QL M L X D F R Transformation language between RDB, XML, and RDF Syntactic extension of XQuery 5 / 21
  • 22. www.insight)centre.org. XSPARQL SPA QL M L X D F R Transformation language between RDB, XML, and RDF Syntactic extension of XQuery Semantics based on XQuery’s semantics 5 / 21
  • 23. www.insight)centre.org. XSPARQL SPA QL M L X D F R Transformation language between RDB, XML, and RDF Syntactic extension of XQuery Semantics based on XQuery’s semantics Why based on XQuery? Expressive language Use as scripting language 5 / 21
  • 24. www.insight)centre.org. XSPARQL SPA QL M L X D F R Transformation language between RDB, XML, and RDF Syntactic extension of XQuery Semantics based on XQuery’s semantics Why based on XQuery? Expressive language Use as scripting language Arbitrary Nesting of expressions 5 / 21
  • 25. www.insight)centre.org. Same Language for each Format XSPARQL for address as $address from people where name = "Nuno" return $address for $person in doc("people.xml") return $person//address XSPARQL for $address from <nunolopes.org/..> where { :nuno foaf:address $address } return $address for var in Expr let var := Expr where Expr order by Expr return Expr for SelectSpec from RelationList where WhereSpecList return Expr for varlist from DatasetClause where { pattern } return Expr 6 / 21
  • 26. www.insight)centre.org. Same Language for each Format XSPARQL for address as $address from people where name = "Nuno" return $address XQuery for $person in doc("people.xml") return $person//address XSPARQL for $address from <nunolopes.org/..> where { :nuno foaf:address $address } return $address for var in Expr let var := Expr where Expr order by Expr return Expr for SelectSpec from RelationList where WhereSpecList return Expr for varlist from DatasetClause where { pattern } return Expr 6 / 21
  • 27. www.insight)centre.org. Same Language for each Format XSPARQL for address as $address from people where name = "Nuno" return $address XSPARQL for $person in doc("people.xml") return $person//address XSPARQL for $address from <nunolopes.org/..> where { :nuno foaf:address $address } return $address for var in Expr let var := Expr where Expr order by Expr return Expr for SelectSpec from RelationList where WhereSpecList return Expr for varlist from DatasetClause where { pattern } return Expr 6 / 21
  • 28. www.insight)centre.org. Same Language for each Format XSPARQL for address as $address from people where name = "Nuno" return $address for $person in doc("people.xml") return $person//address XSPARQL for $address from <nunolopes.org/..> where { :nuno foaf:address $address } return $address for var in Expr let var := Expr where Expr order by Expr return Expr for SelectSpec from RelationList where WhereSpecList return Expr for varlist from DatasetClause where { pattern } return Expr 6 / 21
  • 29. www.insight)centre.org. Same Language for each Format XSPARQL for address as $address from people where name = "Nuno" return $address for $person in doc("people.xml") return $person//address XSPARQL for $address from <nunolopes.org/..> where { :nuno foaf:address $address } return $address for var in Expr let var := Expr where Expr order by Expr return Expr for SelectSpec from RelationList where WhereSpecList return Expr for varlist from DatasetClause where { pattern } return Expr 6 / 21
  • 34. www.insight)centre.org. Creating RDF with XSPARQL for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId} . } construct clause generates RDF Arbitrary XSPARQL expressions in subject, predicate, and object 9 / 21
  • 35. www.insight)centre.org. Creating RDF with XSPARQL for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId} . } construct clause generates RDF Arbitrary XSPARQL expressions in subject, predicate, and object 9 / 21
  • 36. www.insight)centre.org. Creating RDF with XSPARQL for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId} . } construct clause generates RDF Arbitrary XSPARQL expressions in subject, predicate, and object 9 / 21
  • 37. www.insight)centre.org. Creating RDF with XSPARQL for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId} . } construct clause generates RDF Arbitrary XSPARQL expressions in subject, predicate, and object Query Result :1 dct:identifier "1" . :1 bioinfo:geneID "ENSG00000155657" . gene:ENSG00000155657 rdf:type bioinfo:Gene . :1 bioinfo:protID "ENSP00000364178" . protein:ENSP00000364178 rdf:type bioinfo:protein . gene:ENSG00000155657 bioinfo:source_database "Ensembl" . protein:ENSG00000155657 bioinfo:organism <http://purl.uniprot.org/taxonomy/9606> 9 / 21
  • 41. www.insight)centre.org. Integration Query Example for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) for $link $idRight from link where idRight = $geneId construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId}; :link {$idRight} . } 11 / 21
  • 42. www.insight)centre.org. Integration Query Example for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) for $link $idRight from link where idRight = $geneId construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId}; :link {$idRight} . } 11 / 21
  • 43. www.insight)centre.org. Integration Query Example for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) for $link $idRight from link where idRight = $geneId construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId}; :link {$idRight} . } 11 / 21
  • 44. www.insight)centre.org. Integration Query Example for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) for $link $idRight from link where idRight = $geneId construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId}; :link {$idRight} . } 11 / 21
  • 45. www.insight)centre.org. Integration Query Example for $gene in doc("H.sapiens -M.musculus.xml")//gene let $id := fn:data($gene/@id) let $geneId :=fn:data($gene/@geneId) let $protId :=fn:data($gene/@protId) let $uri := fn:concat("http://bioinfo.deri.ie/inparanoid/", $id) for $link $idRight from link where idRight = $geneId construct { <{$uri}> purl:identifier {$id}; :geneID {$geneId}; :protID {$protId}; :link {$idRight} . } More involved XSPARQL queries: RDB2RDF Direct Mapping: ∼130 LoC R2RML: ∼290 LoC 11 / 21
  • 46. www.insight)centre.org. Cloudspaces CloudSpace Platform offers Infrastructure for the intersection of: Linked Data Big Data Cloud Computing 12 / 21
  • 47. www.insight)centre.org. Cloudspaces & Sindice Cloudspaces A collection of tool to help users Extract, Transform & Load big data sets. Cloudspaces is based on Sindice, allowing user-defined Linked Data pipelines to be used in the Cloud 13 / 21
  • 48. www.insight)centre.org. Cloudspaces & Sindice Cloudspaces A collection of tool to help users Extract, Transform & Load big data sets. Cloudspaces is based on Sindice, allowing user-defined Linked Data pipelines to be used in the Cloud Sindice Linked Data "Search Engine" High availability Sparql Endpoint: 12 Billion Triples Can load 100 million triples a day (updated daily) 13 / 21
  • 49. www.insight)centre.org. Overview XSPARQL Usecases & Other features Beyond XSPARQL Conclusions 14 / 21
  • 50. www.insight)centre.org. SPARQL 1.1 Data integration features in SPARQL 1.1 Aggregates Subqueries Federation Extensions Negation Expressions in the SELECT clause Property Paths Assignment 14 / 21
  • 51. www.insight)centre.org. SPARQL 1.1 Data integration features in SPARQL 1.1 Aggregates Subqueries Federation Extensions Negation Expressions in the SELECT clause Property Paths Assignment 14 / 21
  • 52. www.insight)centre.org. SPARQL 1.1: Federation extensions PREFIX dbpedia2: <http://dbpedia.org/property/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?N ?MyB FROM <http://polleres.net/foaf.rdf> WHERE { [ foaf:birthday ?MyB ]. SERVICE <http://dbpedia.org/sparql> { SELECT ?N WHERE { [ dbpedia2:born ?B; foaf:name ?N ]. } } FILTER ( Regex(Str(?B),str(?MyB)) ) } 15 / 21
  • 53. www.insight)centre.org. SPARQL 1.1: Federation extensions PREFIX dbpedia2: <http://dbpedia.org/property/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?N ?MyB FROM <http://polleres.net/foaf.rdf> WHERE { [ foaf:birthday ?MyB ]. SERVICE <http://dbpedia.org/sparql> { SELECT ?N WHERE { [ dbpedia2:born ?B; foaf:name ?N ]. } } FILTER ( Regex(Str(?B),str(?MyB)) ) } 15 / 21
  • 54. www.insight)centre.org. SPARQL 1.1: Federation extensions PREFIX dbpedia2: <http://dbpedia.org/property/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?N ?MyB FROM <http://polleres.net/foaf.rdf> WHERE { [ foaf:birthday ?MyB ]. SERVICE <http://dbpedia.org/sparql> { SELECT ?N WHERE { [ dbpedia2:born ?B; foaf:name ?N ]. } } FILTER ( Regex(Str(?B),str(?MyB)) ) } Problem limits from SPARQL endpoints prevent this query from working! 15 / 21
  • 55. www.insight)centre.org. XSPARQL: endpoint/service queries XSPARQL endpoint prefix dbprop: <http://dbpedia.org/property/> prefix foaf: <http://xmlns.com/foaf/0.1/> prefix : <http://xsparql.deri.org/bday#> let $MyB := for * from <http://polleres.net/foaf.rdf> where { [ foaf:birthday $B ]. } return $B for * from <http://dbpedia.org/> endpoint <http://dbpedia.org/sparql> where { [ dbprop:born $B; foaf:name $N ]. filter ( regex(str($B),str($MyB)) ) } construct { :axel :sameBirthDayAs $N } 16 / 21
  • 56. www.insight)centre.org. XSPARQL: endpoint/service queries XSPARQL endpoint prefix dbprop: <http://dbpedia.org/property/> prefix foaf: <http://xmlns.com/foaf/0.1/> prefix : <http://xsparql.deri.org/bday#> let $MyB := for * from <http://polleres.net/foaf.rdf> where { [ foaf:birthday $B ]. } return $B for * from <http://dbpedia.org/> endpoint <http://dbpedia.org/sparql> where { [ dbprop:born $B; foaf:name $N ]. filter ( regex(str($B),str($MyB)) ) } construct { :axel :sameBirthDayAs $N } 16 / 21
  • 57. www.insight)centre.org. Converting Logainm dump to RDF SPA QL M L X D F R ∼ 1.3M triples Data provided in XML 17 / 21
  • 58. www.insight)centre.org. Converting Logainm dump to RDF SPA QL M L X D F R ∼ 1.3M triples Data provided in XML Translated to RDF using XSPARQL 17 / 21
  • 59. www.insight)centre.org. Converting Logainm dump to RDF SPA QL M L X D F R ∼ 1.3M triples Data provided in XML Translated to RDF using XSPARQL Exposed using Openlink Virtuoso 17 / 21
  • 60. www.insight)centre.org. Overview XSPARQL Usecases & Other features Beyond XSPARQL Conclusions 18 / 21
  • 62. www.insight)centre.org. Annotated RDF(S) Domains Annotations refer to a specific domain Temporal :nuno :address :Galway . [2008,2012] 19 / 21
  • 63. www.insight)centre.org. Annotated RDF(S) Domains Annotations refer to a specific domain Temporal :nuno :address :Galway . [2008,2012] Fuzzy :nuno :address :Dublin . 0.9 19 / 21
  • 64. www.insight)centre.org. Annotated RDF(S) Domains Annotations refer to a specific domain Temporal :nuno :address :Galway . [2008,2012] Fuzzy :nuno :address :Dublin . 0.9 Access Control :nuno :address :Galway . [nl] 19 / 21
  • 65. www.insight)centre.org. Annotated RDF(S) AC Query ap address Galway. ap birthday ”24/03”]. nl address Galway. nl birthday ”23/12”]. AnQL AC Query SELECT * WHERE { $person :birthday $birthday .q] } $person $birthday ap “24/03” nl “23/12” 20 / 21
  • 66. www.insight)centre.org. Annotated RDF(S) AC Query ap address Galway. ap birthday ”24/03” : [[ap]]. nl address Galway. nl birthday ”23/12” : [[nl]]. AnQL AC Query SELECT * WHERE { $person :birthday $birthday :[[nl]] . } $person $birthday ap “24/03” nl “23/12” 20 / 21
  • 67. www.insight)centre.org. Annotated RDF(S) AC Query ap address Galway. ap birthday ”24/03” : [[ap]]. nl address Galway. nl birthday ”23/12” : [[nl]]. AnQL AC Query SELECT * WHERE { $person :birthday $birthday :[[nl]] . } $person $birthday ap “24/03” nl “23/12” 20 / 21
  • 68. www.insight)centre.org. Conclusions You can use XSPARQL to easily merge data from different sources in a common language 21 / 21
  • 69. www.insight)centre.org. Conclusions You can use XSPARQL to easily merge data from different sources in a common language Annotated RDF can provide Access Control over RDF data 21 / 21
  • 70. www.insight)centre.org. Conclusions You can use XSPARQL to easily merge data from different sources in a common language Annotated RDF can provide Access Control over RDF data Useful links XSPARQL http://xsparql.deri.org/ XSPARQLViz http://deri-srvgal33.nuig.ie: 8080/XsparqlViz/ logainm http://data.logainm.ie/ 21 / 21
  • 71. www.insight)centre.org. Conclusions You can use XSPARQL to easily merge data from different sources in a common language Annotated RDF can provide Access Control over RDF data Useful links XSPARQL http://xsparql.deri.org/ XSPARQLViz http://deri-srvgal33.nuig.ie: 8080/XsparqlViz/ logainm http://data.logainm.ie/ Thank you! Questions? 21 / 21