Top Banner
FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra Sebastian Rudolph Dresden, May 9
56

Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

May 24, 2018

Download

Documents

buidat
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

FOUNDATIONS OF SEMANTICWEB TECHNOLOGIES

SPARQL Algebra

Sebastian Rudolph

Dresden, May 9

Page 2: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

ContentOverview & XML 11 APR DS5Introduction into RDF 11 APR DS6RDFS – Syntax & Intuition 16 APR DS6Tutorial 1 23 APR DS6RDFS – Semantics 25 APR DS5RDFS Rule-based Reasoning 25 APR DS6Tutorial 2 30 APR DS6SPARQL – Syntax & Intuition 02 MAY DS5SPARQL – Semantics 02 MAY DS6SPARQL Algebra 09 MAY DS5Tutorial 3 09 MAY DS6OWL – Syntax & Intuition 14 MAY DS6OWL & Description Logics 16 MAY DS5OWL 2 16 MAY DS6Tutorial 4 23 MAY DS5

Tableau I 23 MAY DS6Tableau II 30 MAY DS5Tutorial 5 30 MAY DS6Hypertableau I 4 JUN DS6Hypertableau II 6 JUN DS5Tutorial 6 6 JUN DS6SPARQL 1.1 18 JUN DS6SPARQL Entailment 20 JUN DS5Tutorial 7 20 JUN DS6OWL & Rules 25 JUN DS6Ontology Editing 27 JUL DS5Ontology Engineering 27 JUL DS6Tutorial 8 2 JUL DS6Linked Data & Applications 4 JUL DS5Q&A Session 9 JUL DS6Q&A Session 11 JUL DS5

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 2 of 56

Page 3: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

The SPARQL Query Language

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 3 of 56

Page 4: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

The SPARQL Query Language

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 4 of 56

Page 5: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Agenda

1 Recap

2 Evaluation of the SPARQL Algebra

3 SPARQL Algebra Transformation

4 Operators for the Modifiers

5 Summary

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 5 of 56

Page 6: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Agenda

1 Recap

2 Evaluation of the SPARQL Algebra

3 SPARQL Algebra Transformation

4 Operators for the Modifiers

5 Summary

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 6 of 56

Page 7: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Recap: Introduced SPARQL Features

Basic StructurePREFIXWHERE

Graph PatternsBasic Graph Patterns{. . . }OPTIONALUNION

FilterBOUNDisURIisBLANKisLITERALSTRLANGDATATYPEsameTERMlangMATCHESREGEX

ModifiersORDER BYLIMITOFFSETDISTINCT

Output FormatsSELECTCONSTRUCTASKDESCRIBE

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 7 of 56

Page 8: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ ?book ex:price ?price .FILTER (?price < 15)OPTIONAL { ?book ex:title ?title }{ ?book ex:author ex:Shakespeare } UNION{ ?book ex:author ex:Marlowe }

}

Semantics of a SPARQL query:1 Transformation of the query into an algebra expression2 Evaluation of the algebra expression

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 8 of 56

Page 9: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ ?book ex:price ?priceFILTER (?price < 15)OPTIONAL { ?book ex:title ?title }{ ?book ex:author ex:Shakespeare } UNION{ ?book ex:author ex:Marlowe }

}

Attention: Filters apply to the whole group in which they occur

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 9 of 56

Page 10: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ ?book ex:price ?priceOPTIONAL { ?book ex:title ?title }{ ?book ex:author ex:Shakespeare } UNION{ ?book ex:author ex:Marlowe }FILTER (?price < 15)

}

1 Expand abbreviated IRIs

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 10 of 56

Page 11: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ ?book <http://ex.org/price> ?priceOPTIONAL { ?book <http://ex.org/title> ?title }{ ?book <http://ex.org/author>

<http://ex.org/Shakespeare> } UNION{ ?book <http://ex.org/author>

<http://ex.org/Marlowe> }FILTER (?price < 15)

}

2. Replace triple patterns with operator Bgp(·)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 11 of 56

Page 12: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ ?book <http://ex.org/price> ?priceOPTIONAL { ?book <http://ex.org/title> ?title }{ ?book <http://ex.org/author>

<http://ex.org/Shakespeare> } UNION{ ?book <http://ex.org/author>

<http://ex.org/Marlowe> }FILTER (?price < 15)

}

2. Replace triple patterns with operator Bgp(·)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 12 of 56

Page 13: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ Bgp(?book <http://ex.org/price> ?price)OPTIONAL {Bgp(?book <http://ex.org/title> ?title)}{Bgp(?book <http://ex.org/author>

<http://ex.org/Shakespeare>)} UNION{Bgp(?book <http://ex.org/author>

<http://ex.org/Marlowe>)}FILTER (?price < 15)

}

3. Introduce the LeftJoin(·) operator for optional parts

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 13 of 56

Page 14: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ Bgp(?book <http://ex.org/price> ?price)OPTIONAL {Bgp(?book <http://ex.org/title> ?title)}{Bgp(?book <http://ex.org/author>

<http://ex.org/Shakespeare>)} UNION{Bgp(?book <http://ex.org/author>

<http://ex.org/Marlowe>)}FILTER (?price < 15)

}

3. Introduce the LeftJoin(·) operator for optional parts

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 14 of 56

Page 15: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ LeftJoin(Bgp(?book <http://ex.org/price> ?price),Bgp(?book <http://ex.org/title> ?title),true)

{Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>)} UNION

{Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>)}

FILTER (?price < 15)}

4. Combine alternative graph patterns with Union(·) operator

Refers to neighbouring patterns and has higher precedence thanconjunction (left associative)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 15 of 56

Page 16: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ LeftJoin(Bgp(?book <http://ex.org/price> ?price),Bgp(?book <http://ex.org/title> ?title),true)

{Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>)} UNION

{Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>)}

FILTER (?price < 15)}

4. Combine alternative graph patterns with Union(·) operator

Refers to neighbouring patterns and has higher precedence thanconjunction (left associative)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 16 of 56

Page 17: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ LeftJoin(Bgp(?book <http://ex.org/price> ?price),Bgp(?book <http://ex.org/title> ?title),true)

Union(Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>),

Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>))

FILTER (?price < 15)}

5. Apply Join(·) operator to join non-filter elements

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 17 of 56

Page 18: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ LeftJoin(Bgp(?book <http://ex.org/price> ?price),Bgp(?book <http://ex.org/title> ?title),true)

Union(Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>),

Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>))

FILTER (?price < 15)}

5. Apply Join(·) operator to join non-filter elements

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 18 of 56

Page 19: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ Join(LeftJoin(Bgp(?book <http://ex.org/price> ?price),

Bgp(?book <http://ex.org/title> ?title),true),

Union(Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>),

Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>)))

FILTER (?price < 15)}

6. Translate a group with filters with the Filter(·) operator

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 19 of 56

Page 20: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

{ Join(LeftJoin(Bgp(?book <http://ex.org/price> ?price),

Bgp(?book <http://ex.org/title> ?title),true),

Union(Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>),

Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>)))

FILTER (?price < 15)}

6. Translate a group with filters with the Filter(·) operator

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 20 of 56

Page 21: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://ex.org/price> ?price),Bgp(?book <http://ex.org/title> ?title),true),

Union(Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>),

Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>))))

• Online translation tool:http://sparql.org/query-validator.html

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 21 of 56

Page 22: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Translation into SPARQL Algebra

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://ex.org/price> ?price),Bgp(?book <http://ex.org/title> ?title),true),

Union(Bgp(?book <http://ex.org/author><http://ex.org/Shakespeare>),

Bgp(?book <http://ex.org/author><http://ex.org/Marlowe>))))

• Online translation tool:http://sparql.org/query-validator.html

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 22 of 56

Page 23: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Agenda

1 Recap

2 Evaluation of the SPARQL Algebra

3 SPARQL Algebra Transformation

4 Operators for the Modifiers

5 Summary

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 23 of 56

Page 24: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Semantics of the SPARQL AlgebraOperationsBgp(P) match/evaluate pattern PJoin(M1, M2) conjunctive join of solutions M1 and M2Union(M1, M2) union of solutions M1 with M2LeftJoin(M1, M2, F) optional join of M1 with M2 with filter

constraint F (true if no filter given)Filter(F, M) filter solutions M with constraint FZ empty pattern (identity for join)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 24 of 56

Page 25: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

SPARQL Solutions

Solutions as partial functions• Domain: variables from the query• Range: IRIs ∪ blank nodes ∪ RDF literals• Assignment σ for blank nodes in the query• Evaluation JBgp(P)KG of a BGP P over a graph G results in a multi set

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 25 of 56

Page 26: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Union of Solutions

Definition (Compatibility & Union)Two solutions µ1 and µ2 are compatible ifµ1(x) = µ2(x) for all x, for which µ1 and µ2 are defined.

The union of two compatible solutions µ1 and µ2 is defined as:

(µ1 ∪ µ2)(x) ={µ1(x) if x ∈ dom(µ1)µ2(x) otherwise

simple intuition: union of matching table rows

• We now also define the evaluation of the other SPARQL algebra operators

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 26 of 56

Page 27: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Union of Solutions

Definition (Compatibility & Union)Two solutions µ1 and µ2 are compatible ifµ1(x) = µ2(x) for all x, for which µ1 and µ2 are defined.

The union of two compatible solutions µ1 and µ2 is defined as:

(µ1 ∪ µ2)(x) ={µ1(x) if x ∈ dom(µ1)µ2(x) otherwise

simple intuition: union of matching table rows

• We now also define the evaluation of the other SPARQL algebra operators

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 27 of 56

Page 28: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Evaluation of Join(·)For the evaluation of Join(A1, A2) over a graph G with A1, A2 algebra objects, wedefine:

• Let M1 = JA1KG• Let M2 = JA2KG

• Let J(µ) ={(µ1,µ2) | M1(µ1) > 0, M2(µ2) > 0,

µ1 and µ2 are compatible and µ = µ1 ∪ µ2}

J defines compatible pairs of solutions from M1 and M2

The evaluation JJoin(A1, A2)KG results in

{(µ, n)| n =

∑(µ1,µ2)∈J(µ)

(M1(µ1) ∗M2(µ2)

)> 0}

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 28 of 56

Page 29: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example to Join(·)We consider Join(A1, A2) over a graph G with JA1KG = M1, JA2KG = M2 and:

M1 ={((µ1 : ?x 7→ ex : a,?y 7→ ex : b), 2),

((µ2 : ?x 7→ ex : a, 1)}M2 ={((µ3 : ?y 7→ ex : b,?z 7→ ex : c, 3)}µ =?x 7→ ex : a,?y 7→ ex : b,?z 7→ ex : c

J(µ) ={(µ1,µ3), (µ2,µ3)}

Join(M1, M2) ={(µ, n)| n =

∑(µ1,µ2)∈J(µ)

(M1(µ1) ∗M2(µ2)

)> 0}

={(µ, 9)}n =2 ∗ 3 + 1 ∗ 3 = 6 + 3 = 9

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 29 of 56

Page 30: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Evaluation of Union(·)The evaluation of Union(A1, A2) over a graph G, written JUnion(A1, A2)KG, withA1, A2 algebra objects results in:{

(µ, n) | M1 = JA1KG, M2 = JA2KG, n = M1(µ) + M2(µ) > 0}

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 30 of 56

Page 31: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Evaluation of Filter(·)The evaluation of Filter(F, A) over a graph G, written JFilter(F, A)KG, with F afilter condition and A an algebra object results in:{

(µ, n) | M = JAKG, M(µ) = n > 0 and Jµ(F)K = true}

Jµ(F)K is the Boolean result of evaluating the filter condition

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 31 of 56

Page 32: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Evaluation of LeftJoin(·)The evaluation of LeftJoin(A1, A2, F) over a graph G with F a filter condition andA1, A2 algebra objects is defined as:

• M1 = JA1KG• M2 = JA2KG

The evaluation JLeftJoin(A1, A2, F)KG of LeftJoin(A1, A2, F) over G results in

JFilter(F, Join(A1, A2))KG ∪{(µ1, M1(µ1)

)| for all µ2 with M2(µ2) > 0 : µ1 and µ2 are

incompatible or J(µ1 ∪ µ2)(F)K = false}

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 32 of 56

Page 33: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example

@prefix ex: <http://eg.org/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .ex:Hamlet ex:author ex:Shakespeare ;

ex:price "10.50"^^xsd:decimal .ex:Macbeth ex:author ex:Shakespeare .ex:Tamburlaine ex:author ex:Marlowe ;

ex:price "17"^^xsd:integer .ex:DoctorFaustus ex:author ex:Marlowe ;

ex:price "12"^^xsd:integer ;ex:title "The Tragical History of Doctor Faustus" .

ex:RomeoJulia ex:author ex:Brooke ;ex:price "9"^^xsd:integer .

{ ?book ex:price ?price . FILTER (?price < 15)OPTIONAL { ?book ex:title ?title . }{ ?book ex:author ex:Shakespeare . } UNION{ ?book ex:author ex:Marlowe . }

}

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 33 of 56

Page 34: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

@prefix ex: <http://eg.org/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .ex:Hamlet ex:author ex:Shakespeare ;

ex:price "10.50"^^xsd:decimal .ex:Macbeth ex:author ex:Shakespeare .ex:Tamburlaine ex:author ex:Marlowe ;

ex:price "17"^^xsd:integer .ex:DoctorFaustus ex:author ex:Marlowe ;

ex:price "12"^^xsd:integer ;ex:title "The Tragical History of Doctor Faustus" .

ex:RomeoJulia ex:author ex:Brooke ;ex:price "9"^^xsd:integer .

Filter(?price < 15,Join(LeftJoin(Bgp(?book <http://eg.org/price> ?price),

Bgp(?book <http://eg.org/title> ?title), true),Union(Bgp(?book <http://eg.org/author>

<http://eg.org/Shakespeare>),Bgp(?book <http://eg.org/author>

<http://eg.org/Marlowe>))))

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 34 of 56

Page 35: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (1)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

bookex:Tamburlaineex:DoctorFaustus

bookex:Macbethex:Hamlet

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 35 of 56

Page 36: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (1)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

bookex:Tamburlaineex:DoctorFaustus

bookex:Macbethex:Hamlet

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 36 of 56

Page 37: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (2)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

bookex:Hamletex:Macbeth

ex:Tamburlaineex:DoctorFaustus

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 37 of 56

Page 38: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (3)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

book priceex:Hamlet 10.5

ex:Tamburlaine 17ex:DoctorFaustus 12ex:RomeoJulia 9

book titleex:DoctorFaustus "The Tragical History

of Doctor Faustus"

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 38 of 56

Page 39: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (3)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

book priceex:Hamlet 10.5

ex:Tamburlaine 17ex:DoctorFaustus 12ex:RomeoJulia 9

book titleex:DoctorFaustus "The Tragical History

of Doctor Faustus"

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 39 of 56

Page 40: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (4)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

book price titleex:Hamlet 10.5

ex:Tamburlaine 17ex:DoctorFaustus 12 "The Tragical History of Doctor Faustus"ex:RomeoJulia 9

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 40 of 56

Page 41: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (5)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

book price titleex:Hamlet 10.5

ex:Tamburlaine 17ex:DoctorFaustus 12 "The Tragical History of Doctor Faustus"

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 41 of 56

Page 42: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Example Evaluation (6)

Filter(?price < 15,Join(

LeftJoin(Bgp(?book <http://eg.org/price> ?price),Bgp(?book <http://eg.org/title> ?title),true),

Union(Bgp(?book <http://eg.org/author><http://eg.org/Shakespeare>),

Bgp(?book <http://eg.org/author><http://eg.org/Marlowe>))))

book price titleex:Hamlet 10.5

ex:DoctorFaustus 12 "The Tragical History of Doctor Faustus"

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 42 of 56

Page 43: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Agenda

1 Recap

2 Evaluation of the SPARQL Algebra

3 SPARQL Algebra Transformation

4 Operators for the Modifiers

5 Summary

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 43 of 56

Page 44: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Formal Algebra Transformation• During parsing of a query, a parse tree is constructed• The parse tree contains objects that correspond to the grammar• For the transformation, we traverse the parse tree and recursively build

the algebra objects• The query pattern is a GroupGraphPattern consisting of the following

elements:– TriplesBlock– Filter– OptionalGraphPattern– GroupOrUnionGraphPattern– GraphGraphPattern

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 44 of 56

Page 45: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Part of the SPARQL GrammarGroupGraphPattern ::= ’{’ TriplesBlock?

( ( GraphPatternNotTriples| Filter ) ’.’ ? TriplesBlock? )*

’}’GraphPatternNotTriples ::= OptionalGraphPattern

| GroupOrUnionGraphPattern| GraphGraphPattern

OptionalGraphPattern ::= ’OPTIONAL’ GroupGraphPatternGroupOrUnionGraphPattern ::= GroupGraphPattern ( ’UNION’

GroupGraphPattern )*Filter ::= ’FILTER’ Constraint

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 45 of 56

Page 46: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Transformation ofGroupOrUnionGraphPattern

translate(GroupOrUnionGraphPattern G)Input: a GroupOrUnionGraphPattern G

with elements e1, . . . , enOutput: a SPARQL algebra expression A1: for i = 1, . . . , n do2: if A is undefined then3: A := translate(ei)4: else5: A := Union(A, translate(ei))6: return A

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 46 of 56

Page 47: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Transformation of GraphGraphPattern

translate(GraphGraphPattern G)Input: a GraphGraphPatternOutput: a SPARQL algebra expression A1: if G GRAPH IRI GroupGraphPattern then2: A := Graph(IRI, translate(GroupGraphPattern))3: else if G GRAPH Var GroupGraphPattern then4: A := Graph(Var, translate(GroupGraphPattern))5: return A

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 47 of 56

Page 48: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Transformation of GroupGraphPattern

translate(GroupGraphPattern G)Input: a GroupGraphPattern G = (e1, . . . , en)Output: a SPARQL algebra expression A1: A := Z { the empty pattern}2: F := ∅ { filter}3: for i = 1, . . . , n do4: if ei is FILTER( f ) then5: F := F ∪ {f}6: else if ei is OPTIONAL { P } then7: if translate(P) is Filter(F′

, A′) then8: A := LeftJoin(A, A′

, F′)9: else10: A := LeftJoin(A, translate(P), true)11: else12: A := Join(A, translate(ei))13: if F 6= ∅ then14: A := Filter(

∧f∈F f, A)

15: return A

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 48 of 56

Page 49: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Simplification of Algebra Objects• Groups with just one pattern (without filters) result in Join(Z, A) and can

be substituted by A• The empty pattern is the identity for joins:

– Replace Join(Z, A) by A– Replace Join(A, Z) by A

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 49 of 56

Page 50: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Agenda

1 Recap

2 Evaluation of the SPARQL Algebra

3 SPARQL Algebra Transformation

4 Operators for the Modifiers

5 Summary

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 50 of 56

Page 51: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Operators for Representing the ModifiersToList(M) Constructs from a multi set a sequence with the

same elements and multiplicity (arbitrary order,duplicates not necessarily adjacent)

OrderBy(M, comparators) sorts the solutionsDistinct(M) removes the duplicatesReduced(M) may remove duplicatesSlice(M, o, l) cuts the solutions to a list of length l starting

from position oProject(M, vars) projects out the mentioned variables

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 51 of 56

Page 52: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Transformation of the ModifiersLet q be a SPARQL query with pattern P and corresponding algebra object AP.We construct an algebra object Aq for q as follows:

1 Aq := ToList(AP)

2 Aq := OrderBy(Aq, (c1, . . . , cn)) if q contains an ORDER BY clause withcomparators c1, . . . , cn

3 Aq := Project(Aq, vars) if the result format is SELECT with vars theselected variables (* all variables in scope)

4 Aq := Distinct(Aq) is the result format is SELECT and q containsDISTINCT

5 Aq := Reduced(Aq) if the result format is SELECT and q containsREDUCED

6 Aq := Slice(Aq, start, length) if the query contains OFFSET start orLIMIT length where start defaults to 0 and length defaults to(|JAqKG| − start)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 52 of 56

Page 53: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Evaluation of the ModifiersThe algebra objects for the modifiers are recursively evaluated

• Evaluate the algebra expression of the operator• Apply the operations for the solution modifiers to the obtained solutions

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 53 of 56

Page 54: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Agenda

1 Recap

2 Evaluation of the SPARQL Algebra

3 SPARQL Algebra Transformation

4 Operators for the Modifiers

5 Summary

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 54 of 56

Page 55: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Summary• We learned how to evaluate SPARQL queries• The query is transformed into an algebra object• The query basic graph patterns generate solutions• The other operators combine solutions• The result format determines how the solutions are presented

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 55 of 56

Page 56: Foundations of Semantic Web Technologies - SPARQL Algebra · FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES SPARQL Algebra ... Tutorial 2 30 APR DS6 SPARQL ... May 9 Foundations of Semantic

Outlook• Next lecture: SPARQL 1.1 features• Non-Query parts of the specification (Protocol, Service Descriptions,

Update, . . . )• Then: Entailment Regimes (SPARQL with inferred results)

TU Dresden, May 9 Foundations of Semantic Web Technologies slide 56 of 56