xsparql credible workshop

71
www.insight)centre.org XML Data Mediation using XSPARQL Nuno Lopes, Laleh Kazemzadeh October, 2013

Upload: nunoalexandrelopes

Post on 11-May-2015

287 views

Category:

Education


1 download

TRANSCRIPT

Page 1: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XML Data Mediation usingXSPARQL

Nuno Lopes, Laleh Kazemzadeh

October, 2013

Page 2: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (I)

Flexibility

1 Representation

Reuse any vocabulariesNo schema required

2 Combining

Easily combine different datasetsRDF merge is simple

3 Sharing

Linked DataBuilt on web technologies (HTTP, URIs)

1 / 21

Page 3: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (I)

Flexibility

1 Representation

Reuse any vocabulariesNo schema required

2 Combining

Easily combine different datasetsRDF merge is simple

3 Sharing

Linked DataBuilt on web technologies (HTTP, URIs)

1 / 21

Page 4: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (I)

Flexibility

1 RepresentationReuse any vocabulariesNo schema required

2 Combining

Easily combine different datasetsRDF merge is simple

3 Sharing

Linked DataBuilt on web technologies (HTTP, URIs)

1 / 21

Page 5: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (I)

Flexibility

1 RepresentationReuse any vocabulariesNo schema required

2 CombiningEasily combine different datasetsRDF merge is simple

3 Sharing

Linked DataBuilt on web technologies (HTTP, URIs)

1 / 21

Page 6: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (I)

Flexibility

1 RepresentationReuse any vocabulariesNo schema required

2 CombiningEasily combine different datasetsRDF merge is simple

3 SharingLinked DataBuilt on web technologies (HTTP, URIs)

1 / 21

Page 7: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (II)

Global Identifiers

× ×√

Schema-less

×√ √

Self-Describing

× × /√ √

Graph-Based

× × /√ √

2 / 21

Page 8: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (II)

Global Identifiers ×

×√

Schema-less ×

√ √

Self-Describing ×

× /√ √

Graph-Based ×

× /√ √

2 / 21

Page 9: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (II)

Global Identifiers × ×

Schema-less ×√

Self-Describing × × /√

Graph-Based × × /√

2 / 21

Page 10: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Why use RDF for data integration (II)

Global Identifiers × ×√

Schema-less ×√ √

Self-Describing × × /√ √

Graph-Based × × /√ √

2 / 21

Page 11: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

RDF-based Data Integration

DataTransformation

DataRepresentation

3 / 21

Page 12: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

RDF-based Data Integration

DataTransformation

DataRepresentation

3 / 21

Page 13: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

RDF-based Data Integration

DataTransformation

DataRepresentation

3 / 21

Page 14: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

RDF-based Data Integration

DataTransformation

DataRepresentation

3 / 21

Page 15: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

RDF-based Data Integration

DataTransformation

DataRepresentation

3 / 21

Page 16: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Data Transformation: Query Languages

SQLselect address from personwhere name = "Nuno"

XQueryfor $person in doc("people.xml")return $person//address

SPARQLselect $addressfrom <nunolopes.org/..>where { :nuno foaf:address

$address }

relation

solution sequence

sequence of items

Med

iato

r/

Dat

aW

areh

ouse

SPA QLML

XDF

R

4 / 21

Page 17: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Data Transformation: Query Languages

SQLselect address from personwhere name = "Nuno"

XQueryfor $person in doc("people.xml")return $person//address

SPARQLselect $addressfrom <nunolopes.org/..>where { :nuno foaf:address

$address }

relation

solution sequence

sequence of items

Med

iato

r/

Dat

aW

areh

ouse

SPA QLML

XDF

R

4 / 21

Page 18: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Data Transformation: Query Languages

SQLselect address from personwhere name = "Nuno"

XQueryfor $person in doc("people.xml")return $person//address

SPARQLselect $addressfrom <nunolopes.org/..>where { :nuno foaf:address

$address }

relation

solution sequence

sequence of items

Med

iato

r/

Dat

aW

areh

ouse

SPA QLML

XDF

R

4 / 21

Page 19: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Data Transformation: Query Languages

SQLselect address from personwhere name = "Nuno"

XQueryfor $person in doc("people.xml")return $person//address

SPARQLselect $addressfrom <nunolopes.org/..>where { :nuno foaf:address

$address }

relation

solution sequence

sequence of items

Med

iato

r/

Dat

aW

areh

ouse

SPA QLML

XDF

R

4 / 21

Page 20: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XSPARQL

SPA QLML

XDF

RTransformation language between RDB,XML, and RDF

Syntactic extension of XQuerySemantics based on XQuery’s semantics

Why based on XQuery?Expressive languageUse as scripting language

Arbitrary Nesting of expressions

5 / 21

Page 21: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XSPARQL

SPA QLML

XDF

RTransformation language between RDB,XML, and RDFSyntactic extension of XQuery

Semantics based on XQuery’s semantics

Why based on XQuery?Expressive languageUse as scripting language

Arbitrary Nesting of expressions

5 / 21

Page 22: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XSPARQL

SPA QLML

XDF

RTransformation language between RDB,XML, and RDFSyntactic extension of XQuerySemantics based on XQuery’s semantics

Why based on XQuery?Expressive languageUse as scripting language

Arbitrary Nesting of expressions

5 / 21

Page 23: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XSPARQL

SPA QLML

XDF

RTransformation language between RDB,XML, and RDFSyntactic extension of XQuerySemantics based on XQuery’s semantics

Why based on XQuery?Expressive languageUse as scripting language

Arbitrary Nesting of expressions

5 / 21

Page 24: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XSPARQL

SPA QLML

XDF

RTransformation language between RDB,XML, and RDFSyntactic extension of XQuerySemantics based on XQuery’s semantics

Why based on XQuery?Expressive languageUse as scripting languageArbitrary Nesting of expressions

5 / 21

Page 25: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Same Language for each Format

XSPARQLfor address as $address from peoplewhere name = "Nuno"return $address

for $person in doc("people.xml")return $person//address

XSPARQLfor $address from <nunolopes.org/..>where { :nuno foaf:address $address }return $address

for var in Exprlet var := Exprwhere Exprorder by Exprreturn Expr

for SelectSpecfrom RelationListwhere WhereSpecListreturn Expr

for varlistfrom DatasetClausewhere { pattern }return Expr

6 / 21

Page 26: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Same Language for each Format

XSPARQLfor address as $address from peoplewhere name = "Nuno"return $address

XQueryfor $person in doc("people.xml")return $person//address

XSPARQLfor $address from <nunolopes.org/..>where { :nuno foaf:address $address }return $address

for var in Exprlet var := Exprwhere Exprorder by Exprreturn Expr

for SelectSpecfrom RelationListwhere WhereSpecListreturn Expr

for varlistfrom DatasetClausewhere { pattern }return Expr

6 / 21

Page 27: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Same Language for each Format

XSPARQLfor address as $address from peoplewhere name = "Nuno"return $address

XSPARQLfor $person in doc("people.xml")return $person//address

XSPARQLfor $address from <nunolopes.org/..>where { :nuno foaf:address $address }return $address

for var in Exprlet var := Exprwhere Exprorder by Exprreturn Expr

for SelectSpecfrom RelationListwhere WhereSpecListreturn Expr

for varlistfrom DatasetClausewhere { pattern }return Expr

6 / 21

Page 28: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Same Language for each Format

XSPARQLfor address as $address from peoplewhere name = "Nuno"return $address

for $person in doc("people.xml")return $person//address

XSPARQLfor $address from <nunolopes.org/..>where { :nuno foaf:address $address }return $address

for var in Exprlet var := Exprwhere Exprorder by Exprreturn Expr

for SelectSpecfrom RelationListwhere WhereSpecListreturn Expr

for varlistfrom DatasetClausewhere { pattern }return Expr

6 / 21

Page 29: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Same Language for each Format

XSPARQLfor address as $address from peoplewhere name = "Nuno"return $address

for $person in doc("people.xml")return $person//address

XSPARQLfor $address from <nunolopes.org/..>where { :nuno foaf:address $address }return $address

for var in Exprlet var := Exprwhere Exprorder by Exprreturn Expr

for SelectSpecfrom RelationListwhere WhereSpecListreturn Expr

for varlistfrom DatasetClausewhere { pattern }return Expr

6 / 21

Page 30: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Inparanoid

7 / 21

Page 31: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Inparanoid

7 / 21

Page 32: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Inparanoid

7 / 21

Page 33: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Predicting Protein-Protein Interactions

8 / 21

Page 34: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Creating RDF with XSPARQL

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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} . }

constructclause generatesRDF

Arbitrary XSPARQLexpressions 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

Page 35: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Creating RDF with XSPARQL

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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} . }

constructclause generatesRDF

Arbitrary XSPARQLexpressions 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

Page 36: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Creating RDF with XSPARQL

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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} . }

constructclause generatesRDF

Arbitrary XSPARQLexpressions 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

Page 37: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Creating RDF with XSPARQL

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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} . }

constructclause generatesRDF

Arbitrary XSPARQLexpressions 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

Page 38: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Combining Inparanoid with BridgeDB

10 / 21

Page 39: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Combining Inparanoid with BridgeDB

10 / 21

Page 40: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Usecase: Combining Inparanoid with BridgeDB

10 / 21

Page 41: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Integration Query Example

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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 linkwhere idRight = $geneIdconstruct { <{$uri}> purl:identifier {$id};

:geneID {$geneId};:protID {$protId};:link {$idRight} . }

More involved XSPARQL queries: RDB2RDFDirect Mapping: ∼130 LoCR2RML: ∼290 LoC

11 / 21

Page 42: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Integration Query Example

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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 linkwhere idRight = $geneIdconstruct { <{$uri}> purl:identifier {$id};

:geneID {$geneId};:protID {$protId};:link {$idRight} . }

More involved XSPARQL queries: RDB2RDFDirect Mapping: ∼130 LoCR2RML: ∼290 LoC

11 / 21

Page 43: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Integration Query Example

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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 linkwhere idRight = $geneIdconstruct { <{$uri}> purl:identifier {$id};

:geneID {$geneId};:protID {$protId};:link {$idRight} . }

More involved XSPARQL queries: RDB2RDFDirect Mapping: ∼130 LoCR2RML: ∼290 LoC

11 / 21

Page 44: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Integration Query Example

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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 linkwhere idRight = $geneIdconstruct { <{$uri}> purl:identifier {$id};

:geneID {$geneId};:protID {$protId};:link {$idRight} . }

More involved XSPARQL queries: RDB2RDFDirect Mapping: ∼130 LoCR2RML: ∼290 LoC

11 / 21

Page 45: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Integration Query Example

for $gene in doc("H.sapiens-M.musculus.xml")//genelet $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 linkwhere idRight = $geneIdconstruct { <{$uri}> purl:identifier {$id};

:geneID {$geneId};:protID {$protId};:link {$idRight} . }

More involved XSPARQL queries: RDB2RDFDirect Mapping: ∼130 LoCR2RML: ∼290 LoC

11 / 21

Page 46: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Cloudspaces

CloudSpace Platform offersInfrastructure for the intersection of:

Linked DataBig DataCloud Computing

12 / 21

Page 47: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Cloudspaces & Sindice

CloudspacesA collection of tool to help users Extract, Transform & Load big

data sets.

Cloudspaces is based on Sindice, allowing user-defined Linked Datapipelines to be used in the Cloud

SindiceLinked Data "Search Engine"High availability Sparql Endpoint:

12 Billion TriplesCan load 100 million triples a day (updated daily)

13 / 21

Page 48: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Cloudspaces & Sindice

CloudspacesA collection of tool to help users Extract, Transform & Load big

data sets.

Cloudspaces is based on Sindice, allowing user-defined Linked Datapipelines to be used in the Cloud

SindiceLinked Data "Search Engine"High availability Sparql Endpoint:

12 Billion TriplesCan load 100 million triples a day (updated daily)

13 / 21

Page 49: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Overview

XSPARQL

Usecases & Other features

Beyond XSPARQL

Conclusions14 / 21

Page 50: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

SPARQL 1.1

Data integration features in SPARQL 1.1AggregatesSubqueriesFederation ExtensionsNegationExpressions in the SELECT clauseProperty PathsAssignment

14 / 21

Page 51: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

SPARQL 1.1

Data integration features in SPARQL 1.1AggregatesSubqueriesFederation ExtensionsNegationExpressions in the SELECT clauseProperty PathsAssignment

14 / 21

Page 52: XSPARQL CrEDIBLE workshop

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 ?MyBFROM <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)) )

}

Problemlimits from SPARQL endpoints prevent this query from working!

15 / 21

Page 53: XSPARQL CrEDIBLE workshop

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 ?MyBFROM <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)) )

}

Problemlimits from SPARQL endpoints prevent this query from working!

15 / 21

Page 54: XSPARQL CrEDIBLE workshop

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 ?MyBFROM <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)) )

}

Problemlimits from SPARQL endpoints prevent this query from working!

15 / 21

Page 55: XSPARQL CrEDIBLE workshop

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

Page 56: XSPARQL CrEDIBLE workshop

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

Page 57: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Converting Logainm dump to RDF

SPA QLML

XDF

R

∼ 1.3M triples

Data provided in XML

Translated to RDF using XSPARQL

Exposed using Openlink Virtuoso

17 / 21

Page 58: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Converting Logainm dump to RDF

SPA QLML

XDF

R

∼ 1.3M triples

Data provided in XML

Translated to RDF using XSPARQL

Exposed using Openlink Virtuoso

17 / 21

Page 59: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Converting Logainm dump to RDF

SPA QLML

XDF

R

∼ 1.3M triples

Data provided in XML

Translated to RDF using XSPARQL

Exposed using Openlink Virtuoso

17 / 21

Page 60: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Overview

XSPARQL

Usecases & Other features

Beyond XSPARQL

Conclusions18 / 21

Page 61: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

XSPARQLVizhttp://deri-srvgal33.nuig.ie:8080/XsparqlViz/

18 / 21

Page 62: XSPARQL CrEDIBLE workshop

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

Page 63: XSPARQL CrEDIBLE workshop

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

Page 64: XSPARQL CrEDIBLE workshop

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

Page 65: XSPARQL CrEDIBLE workshop

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 QuerySELECT * WHERE { $person :birthday $birthday .q] }

$person $birthdayap “24/03”nl “23/12”

20 / 21

Page 66: XSPARQL CrEDIBLE workshop

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 QuerySELECT * WHERE { $person :birthday $birthday :[[nl]] . }

$person $birthdayap “24/03”nl “23/12”

20 / 21

Page 67: XSPARQL CrEDIBLE workshop

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 QuerySELECT * WHERE { $person :birthday $birthday :[[nl]] . }

$person $birthdayap “24/03”nl “23/12”

20 / 21

Page 68: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Conclusions

You can use XSPARQL to easily merge data from differentsources in a common language

Annotated RDF can provide Access Control over RDF data

Useful linksXSPARQL http://xsparql.deri.org/

XSPARQLViz http://deri-srvgal33.nuig.ie:8080/XsparqlViz/

logainm http://data.logainm.ie/

Thank you! Questions?

21 / 21

Page 69: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Conclusions

You can use XSPARQL to easily merge data from differentsources in a common languageAnnotated RDF can provide Access Control over RDF data

Useful linksXSPARQL http://xsparql.deri.org/

XSPARQLViz http://deri-srvgal33.nuig.ie:8080/XsparqlViz/

logainm http://data.logainm.ie/

Thank you! Questions?

21 / 21

Page 70: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Conclusions

You can use XSPARQL to easily merge data from differentsources in a common languageAnnotated RDF can provide Access Control over RDF data

Useful linksXSPARQL http://xsparql.deri.org/

XSPARQLViz http://deri-srvgal33.nuig.ie:8080/XsparqlViz/

logainm http://data.logainm.ie/

Thank you! Questions?

21 / 21

Page 71: XSPARQL CrEDIBLE workshop

www.insight)centre.org.

Conclusions

You can use XSPARQL to easily merge data from differentsources in a common languageAnnotated RDF can provide Access Control over RDF data

Useful linksXSPARQL http://xsparql.deri.org/

XSPARQLViz http://deri-srvgal33.nuig.ie:8080/XsparqlViz/

logainm http://data.logainm.ie/

Thank you! Questions?

21 / 21