inf3580 { semantic technologies { spring 2011 · today’s plan 1 reminder: sparql 2 rdf datasets 3...
TRANSCRIPT
![Page 1: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/1.jpg)
INF3580 – Semantic Technologies – Spring 2011Lecture 13: More SPARQL
Kjetil Kjernsmo
26th April 2011
Department ofInformatics
University ofOslo
![Page 2: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/2.jpg)
Today’s Plan
1 Reminder: SPARQL
2 RDF Datasets
3 Functions and Operators
4 SPARQL 1.1
5 New Semantic Web Community
INF3580 :: Spring 2011 Lecture 13 :: 26th April 2 / 44
![Page 3: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/3.jpg)
Oblig 4
Oblig 4 is corrected.
Results will be available in Devilry today.
Due date for second attempt extended with one week: 09.05.201123:59.
Students who did not handin first attempt are encouraged to tryagain!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 3 / 44
![Page 4: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/4.jpg)
Reminder: SPARQL
Outline
1 Reminder: SPARQL
2 RDF Datasets
3 Functions and Operators
4 SPARQL 1.1Update languageProperty pathsAggregates and negation
5 New Semantic Web Community
INF3580 :: Spring 2011 Lecture 13 :: 26th April 4 / 44
![Page 5: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/5.jpg)
Reminder: SPARQL
Query with Basic Graph Pattern
Titles of publications by people called “Martin Giese”
SELECT ?title WHERE {?mg foaf:name "Martin Giese" .?pub dc:creator ?mg .?pub dc:title ?title .
}
PREFIX declarations omitted from all examples, use http://prefix.ccto find!Answer:
?title
"Incremental Closure of Free Variable Tableaux."^^xsd:string
"The KeY system 1.0 (Deduction Component)."^^xsd:string
"The KeY System: Integrating Object-Oriented Design and Formal Methods."^^xsd:string
"The KeY Approach: Integrating Object Oriented Design and Formal Verification."^^xsd:string
"Saturation Up to Redundancy for Tableau and Sequent Calculi."^^xsd:string
. . .
INF3580 :: Spring 2011 Lecture 13 :: 26th April 5 / 44
![Page 6: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/6.jpg)
Reminder: SPARQL
Query with Basic Graph Pattern
Titles of publications by people called “Martin Giese”
SELECT ?title WHERE {?mg foaf:name "Martin Giese" .?pub dc:creator ?mg .?pub dc:title ?title .
}
PREFIX declarations omitted from all examples, use http://prefix.ccto find!
Answer:
?title
"Incremental Closure of Free Variable Tableaux."^^xsd:string
"The KeY system 1.0 (Deduction Component)."^^xsd:string
"The KeY System: Integrating Object-Oriented Design and Formal Methods."^^xsd:string
"The KeY Approach: Integrating Object Oriented Design and Formal Verification."^^xsd:string
"Saturation Up to Redundancy for Tableau and Sequent Calculi."^^xsd:string
. . .
INF3580 :: Spring 2011 Lecture 13 :: 26th April 5 / 44
![Page 7: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/7.jpg)
Reminder: SPARQL
Query with Basic Graph Pattern
Titles of publications by people called “Martin Giese”
SELECT ?title WHERE {?mg foaf:name "Martin Giese" .?pub dc:creator ?mg .?pub dc:title ?title .
}
PREFIX declarations omitted from all examples, use http://prefix.ccto find!Answer:
?title
"Incremental Closure of Free Variable Tableaux."^^xsd:string
"The KeY system 1.0 (Deduction Component)."^^xsd:string
"The KeY System: Integrating Object-Oriented Design and Formal Methods."^^xsd:string
"The KeY Approach: Integrating Object Oriented Design and Formal Verification."^^xsd:string
"Saturation Up to Redundancy for Tableau and Sequent Calculi."^^xsd:string
. . .
INF3580 :: Spring 2011 Lecture 13 :: 26th April 5 / 44
![Page 8: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/8.jpg)
Reminder: SPARQL
SPARQL Query with blank nodes
Names of people who have published with “Martin Giese”
SELECT DISTINCT ?name WHERE {_:mg foaf:name "Martin Giese" ._:pub dc:creator _:mg ._:pub dc:creator _:other ._:other foaf:name ?name.
}
The same with blank node syntax
SELECT DISTINCT ?name WHERE {[ dc:creator [foaf:name "Martin Giese"] ,
[foaf:name ?name]]
}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 6 / 44
![Page 9: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/9.jpg)
Reminder: SPARQL
Filters
E.g.
Places with more than a million inhabitants
{?x a dbpedia-owl:Place ;
dbpprop:population ?pop .FILTER (?pop > 1000000)
}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 7 / 44
![Page 10: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/10.jpg)
Reminder: SPARQL
Optional Patterns
A match can leave some variables unbound.E.g.
Places and their population, and Norwegian abstract if it exists
{?x a dbpedia-owl:Place ;
dbpprop:population ?pop .OPTIONAL {?x dbpprop:abstract ?abs .FILTER (lang(?abs) = "no")
}}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 8 / 44
![Page 11: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/11.jpg)
Reminder: SPARQL
Matching Alternatives
A UNION pattern matches if any of some alternatives matchesE.g.
Find the book and its author regardless of predicate
{{ ?book dc:creator ?author . }UNION{ ?book foaf:maker ?author . }UNION{ ?author foaf:made ?book . }
}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 9 / 44
![Page 12: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/12.jpg)
Reminder: SPARQL
Four Types of Queries
SELECT Compute table of bindings for variablesSELECT ?a ?b WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
CONSTRUCT Use bindings to construct a new RDF graphCONSTRUCT {?a foaf:knows ?b .
} WHERE {[ dc:creator ?a ;
dc:creator ?b ]}
ASK Answer (yes/no) whether there is ≥ 1 match
DESCRIBE Answer available information about matching resources
INF3580 :: Spring 2011 Lecture 13 :: 26th April 10 / 44
![Page 13: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/13.jpg)
Reminder: SPARQL
Four Types of Queries
SELECT Compute table of bindings for variablesSELECT ?a ?b WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
CONSTRUCT Use bindings to construct a new RDF graphCONSTRUCT {?a foaf:knows ?b .
} WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
ASK Answer (yes/no) whether there is ≥ 1 match
DESCRIBE Answer available information about matching resources
INF3580 :: Spring 2011 Lecture 13 :: 26th April 10 / 44
![Page 14: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/14.jpg)
Reminder: SPARQL
Four Types of Queries
SELECT Compute table of bindings for variablesSELECT ?a ?b WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
CONSTRUCT Use bindings to construct a new RDF graphCONSTRUCT {?a foaf:knows ?b .
} WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
ASK Answer (yes/no) whether there is ≥ 1 match
DESCRIBE Answer available information about matching resources
INF3580 :: Spring 2011 Lecture 13 :: 26th April 10 / 44
![Page 15: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/15.jpg)
Reminder: SPARQL
Four Types of Queries
SELECT Compute table of bindings for variablesSELECT ?a ?b WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
CONSTRUCT Use bindings to construct a new RDF graphCONSTRUCT {?a foaf:knows ?b .
} WHERE {[ dc:creator ?a ;dc:creator ?b ]
}
ASK Answer (yes/no) whether there is ≥ 1 match
DESCRIBE Answer available information about matching resources
INF3580 :: Spring 2011 Lecture 13 :: 26th April 10 / 44
![Page 16: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/16.jpg)
Reminder: SPARQL
Solution Modifiers
Patterns generate an unordered collection of solutions
SELECT treats solutions as a sequence (solution sequence)
Sequence modifiers can modify the solution sequence:
OrderProjectionDistinctReduceOffsetLimit
Applied in this order.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 11 / 44
![Page 17: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/17.jpg)
Reminder: SPARQL
SPARQL on the ’Net
Many sites (DBLP, dbpedia, dbtunes,. . . ) publish SPARQL endpoints
I.e. SPARQL queries can be submitted to a database server thatsends back the results
Uses HTTP to submit URL-encoded queries to serverGET /sparql/?query=... HTTP/1.1
Actually defined via W3C Web Services, see
http://www.w3.org/TR/rdf-sparql-protocol/
For SELECT queries you get a XML or JSON result set, see
http://www.w3.org/TR/rdf-sparql-XMLres/http://www.w3.org/TR/rdf-sparql-json-res/
Nothing you would want to do manually!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 12 / 44
![Page 18: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/18.jpg)
Reminder: SPARQL
SPARQL on the ’Net
Many sites (DBLP, dbpedia, dbtunes,. . . ) publish SPARQL endpoints
I.e. SPARQL queries can be submitted to a database server thatsends back the results
Uses HTTP to submit URL-encoded queries to serverGET /sparql/?query=... HTTP/1.1
Actually defined via W3C Web Services, see
http://www.w3.org/TR/rdf-sparql-protocol/
For SELECT queries you get a XML or JSON result set, see
http://www.w3.org/TR/rdf-sparql-XMLres/http://www.w3.org/TR/rdf-sparql-json-res/
Nothing you would want to do manually!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 12 / 44
![Page 19: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/19.jpg)
Reminder: SPARQL
SPARQL on the ’Net
Many sites (DBLP, dbpedia, dbtunes,. . . ) publish SPARQL endpoints
I.e. SPARQL queries can be submitted to a database server thatsends back the results
Uses HTTP to submit URL-encoded queries to serverGET /sparql/?query=... HTTP/1.1
Actually defined via W3C Web Services, see
http://www.w3.org/TR/rdf-sparql-protocol/
For SELECT queries you get a XML or JSON result set, see
http://www.w3.org/TR/rdf-sparql-XMLres/http://www.w3.org/TR/rdf-sparql-json-res/
Nothing you would want to do manually!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 12 / 44
![Page 20: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/20.jpg)
Reminder: SPARQL
SPARQL on the ’Net
Many sites (DBLP, dbpedia, dbtunes,. . . ) publish SPARQL endpoints
I.e. SPARQL queries can be submitted to a database server thatsends back the results
Uses HTTP to submit URL-encoded queries to serverGET /sparql/?query=... HTTP/1.1
Actually defined via W3C Web Services, see
http://www.w3.org/TR/rdf-sparql-protocol/
For SELECT queries you get a XML or JSON result set, see
http://www.w3.org/TR/rdf-sparql-XMLres/http://www.w3.org/TR/rdf-sparql-json-res/
Nothing you would want to do manually!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 12 / 44
![Page 21: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/21.jpg)
Reminder: SPARQL
SPARQL on the ’Net
Many sites (DBLP, dbpedia, dbtunes,. . . ) publish SPARQL endpoints
I.e. SPARQL queries can be submitted to a database server thatsends back the results
Uses HTTP to submit URL-encoded queries to serverGET /sparql/?query=... HTTP/1.1
Actually defined via W3C Web Services, see
http://www.w3.org/TR/rdf-sparql-protocol/
For SELECT queries you get a XML or JSON result set, see
http://www.w3.org/TR/rdf-sparql-XMLres/http://www.w3.org/TR/rdf-sparql-json-res/
Nothing you would want to do manually!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 12 / 44
![Page 22: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/22.jpg)
Reminder: SPARQL
SPARQL on the ’Net
Many sites (DBLP, dbpedia, dbtunes,. . . ) publish SPARQL endpoints
I.e. SPARQL queries can be submitted to a database server thatsends back the results
Uses HTTP to submit URL-encoded queries to serverGET /sparql/?query=... HTTP/1.1
Actually defined via W3C Web Services, see
http://www.w3.org/TR/rdf-sparql-protocol/
For SELECT queries you get a XML or JSON result set, see
http://www.w3.org/TR/rdf-sparql-XMLres/http://www.w3.org/TR/rdf-sparql-json-res/
Nothing you would want to do manually!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 12 / 44
![Page 23: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/23.jpg)
RDF Datasets
Outline
1 Reminder: SPARQL
2 RDF Datasets
3 Functions and Operators
4 SPARQL 1.1Update languageProperty pathsAggregates and negation
5 New Semantic Web Community
INF3580 :: Spring 2011 Lecture 13 :: 26th April 13 / 44
![Page 24: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/24.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 25: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/25.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graph
possibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 26: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/26.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 27: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/27.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 28: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/28.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 29: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/29.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 30: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/30.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.
a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 31: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/31.jpg)
RDF Datasets
SPARQL is used against an RDF Dataset
The RDF Dataset is composed of:
one default unnamed graphpossibly one or more named graphs.
URIs are used as names for the graphs.
We have so far used the default unnamed graph as the active graph.
We may specify
a new default graph for the query by an RDF Merge of named graphs.a new active graph for parts of the query.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 14 / 44
![Page 32: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/32.jpg)
RDF Datasets
Motivations
Used to divide the data up in chunks.
To improve performance.
To track provenance.
For access control.
To return only specific data.
Select only trusted data.
. . .
INF3580 :: Spring 2011 Lecture 13 :: 26th April 15 / 44
![Page 33: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/33.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 34: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/34.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.
FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 35: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/35.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 36: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/36.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 37: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/37.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.
named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 38: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/38.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 39: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/39.jpg)
RDF Datasets
Features to use named graphs
Query language standard way is to use:
FROM to add a graph to the default graph.FROM NAMED and GRAPH to address an active graph.
Protocol standard way (takes precedence):
default-graph-uri to add a graph to the default graph.named-graph-uri to address a graph
Several non-standard extensions.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 16 / 44
![Page 40: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/40.jpg)
RDF Datasets
Default graph example
Add three Turtle files to default graph
SELECT ?kname ?fnameFROM <http://data.lenka.no/dumps/fylke-geonames.ttl>FROM <http://data.lenka.no/dumps/kommune-navn.ttl>FROM <http:// .../dumps/kommunesentre-geonames.ttl>WHERE {?fylke a gd:Fylke ;
gn:officialName ?fname ;gn:childrenFeatures ?kommune .
?kommune a gd:Kommune ;gn:officialName ?kname ;
FILTER (langMatches(lang(?fname), ’no’))FILTER (langMatches(lang(?kname), ’no’))
}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 17 / 44
![Page 41: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/41.jpg)
RDF Datasets
Named graph example
Take coordinates from one source onlySELECT *
FROM <http://data.lenka.no/dumps/kommune-navn.ttl>
FROM <http://data.lenka.no/dumps/kommunesentre-geonames.ttl>
FROM NAMED <http://data.lenka.no/dumps/kommunesentre-geonames.ttl>
FROM <http://sws.geonames.org/6453350/about.rdf>
WHERE {
{
?feature gn:officialName "Lillehammer"@no .
} UNION {
?feature gn:name "Lillehammer" .
}
OPTIONAL {
GRAPH <http://data.lenka.no/dumps/kommunesentre-geonames.ttl> {
?feature pos:lat ?lat ;
pos:long ?long ;
owl:sameAs ?other .
}
}
OPTIONAL {
?feature gn:population ?pop .
}
}
Run this in the exercises!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 18 / 44
![Page 42: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/42.jpg)
RDF Datasets
Note
Nothing compels the query engine to actually fetch the URIs!
The examples from “Semantic Web Programming” doesn’t workanymore (but default Joseki config can do the same thing).
Older frameworks (i.e. pre-SPARQL 1.0) sometimes use “contexts”.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 19 / 44
![Page 43: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/43.jpg)
Functions and Operators
Outline
1 Reminder: SPARQL
2 RDF Datasets
3 Functions and Operators
4 SPARQL 1.1Update languageProperty pathsAggregates and negation
5 New Semantic Web Community
INF3580 :: Spring 2011 Lecture 13 :: 26th April 20 / 44
![Page 44: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/44.jpg)
Functions and Operators
Overview
Usual binary operators: ||, &&, =, !=, <, >, <=, >=, +, -, *, /.
Usual unary operators: !, +, -.
Unary tests: bound(?var), isURI(?var), isBlank(?var),isLiteral(?var).
Accessors: str(?var), lang(?var), datatype(?var)
Read the spec for details!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 21 / 44
![Page 45: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/45.jpg)
Functions and Operators
More tests
Uses the concept of “Effective Boolean Value”.
sameTerm(?var) is used with unsupported data types.
langMatches is used with lang to test for language e.g.langMatches( lang(?title), "no" ).
regex is to used to match a variable with a regular expression.Always use with str(?var)! E.g.: regex(str(?name), "Os").
Has extension mechanism for writing your own!
SPARQL 1.1 brings more functions!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 22 / 44
![Page 46: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/46.jpg)
SPARQL 1.1
Outline
1 Reminder: SPARQL
2 RDF Datasets
3 Functions and Operators
4 SPARQL 1.1Update languageProperty pathsAggregates and negation
5 New Semantic Web Community
INF3580 :: Spring 2011 Lecture 13 :: 26th April 23 / 44
![Page 47: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/47.jpg)
SPARQL 1.1
SPARQL 1.1 Status
SPARQL 1.1 is work in progress!
Some implementors are tracking it closely.
Some features have been implemented for a while.
Some are still in flux, thus things said in this lecture may change.
Bugs abound!
Subset lectured here.
The following (read-only) examples can be tried onhttp://lod.kjernsmo.net/sparql.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 24 / 44
![Page 48: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/48.jpg)
SPARQL 1.1 Update language
Whole graph operations
From the specification:
LOAD [ SILENT ] <documentURI> [ INTO GRAPH <uri> ] Loads thegraph at documentURI into the specified graph, or thedefault graph if not given.
CLEAR [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the triples from the specified graph, the defaultgraph, all named graps or all graphs respectively. Someimplementations may remove the whole graph.
CREATE [ SILENT ] GRAPH <uri> Creates a new graph in stores thatrecord empty graphs.
DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the specified graph, the default graph, all namedgraps or all graphs respectively. It also removes all triples ofthose graphs.
Usually, LOAD and DROP are what you want.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 25 / 44
![Page 49: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/49.jpg)
SPARQL 1.1 Update language
Whole graph operations
From the specification:
LOAD [ SILENT ] <documentURI> [ INTO GRAPH <uri> ] Loads thegraph at documentURI into the specified graph, or thedefault graph if not given.
CLEAR [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the triples from the specified graph, the defaultgraph, all named graps or all graphs respectively. Someimplementations may remove the whole graph.
CREATE [ SILENT ] GRAPH <uri> Creates a new graph in stores thatrecord empty graphs.
DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the specified graph, the default graph, all namedgraps or all graphs respectively. It also removes all triples ofthose graphs.
Usually, LOAD and DROP are what you want.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 25 / 44
![Page 50: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/50.jpg)
SPARQL 1.1 Update language
Whole graph operations
From the specification:
LOAD [ SILENT ] <documentURI> [ INTO GRAPH <uri> ] Loads thegraph at documentURI into the specified graph, or thedefault graph if not given.
CLEAR [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the triples from the specified graph, the defaultgraph, all named graps or all graphs respectively. Someimplementations may remove the whole graph.
CREATE [ SILENT ] GRAPH <uri> Creates a new graph in stores thatrecord empty graphs.
DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the specified graph, the default graph, all namedgraps or all graphs respectively. It also removes all triples ofthose graphs.
Usually, LOAD and DROP are what you want.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 25 / 44
![Page 51: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/51.jpg)
SPARQL 1.1 Update language
Whole graph operations
From the specification:
LOAD [ SILENT ] <documentURI> [ INTO GRAPH <uri> ] Loads thegraph at documentURI into the specified graph, or thedefault graph if not given.
CLEAR [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the triples from the specified graph, the defaultgraph, all named graps or all graphs respectively. Someimplementations may remove the whole graph.
CREATE [ SILENT ] GRAPH <uri> Creates a new graph in stores thatrecord empty graphs.
DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the specified graph, the default graph, all namedgraps or all graphs respectively. It also removes all triples ofthose graphs.
Usually, LOAD and DROP are what you want.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 25 / 44
![Page 52: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/52.jpg)
SPARQL 1.1 Update language
Whole graph operations
From the specification:
LOAD [ SILENT ] <documentURI> [ INTO GRAPH <uri> ] Loads thegraph at documentURI into the specified graph, or thedefault graph if not given.
CLEAR [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the triples from the specified graph, the defaultgraph, all named graps or all graphs respectively. Someimplementations may remove the whole graph.
CREATE [ SILENT ] GRAPH <uri> Creates a new graph in stores thatrecord empty graphs.
DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )Removes the specified graph, the default graph, all namedgraps or all graphs respectively. It also removes all triples ofthose graphs.
Usually, LOAD and DROP are what you want.INF3580 :: Spring 2011 Lecture 13 :: 26th April 25 / 44
![Page 53: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/53.jpg)
SPARQL 1.1 Update language
Inserting and deleting triples
Inserting triples in a graph
INSERT DATA {GRAPH </graph/courses/> {<course/inf3580> ex:taughtBy <staff/kjetil> .<staff/kjetil> foaf:name "Kjetil Kjernsmo" ;
owl:sameAs <http:// ...> .} }
Deleting triples from a graph
DELETE DATA {GRAPH </graph/courses/> {<course/inf3580> ex:oblig <exercise/oblig6> .<exercise/oblig6> rdfs:label "Mandatory Exercise 6" .
} }
If no GRAPH is given, default graph is used.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 26 / 44
![Page 54: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/54.jpg)
SPARQL 1.1 Update language
Inserting and deleting triples
Inserting triples in a graph
INSERT DATA {GRAPH </graph/courses/> {<course/inf3580> ex:taughtBy <staff/kjetil> .<staff/kjetil> foaf:name "Kjetil Kjernsmo" ;
owl:sameAs <http:// ...> .} }
Deleting triples from a graph
DELETE DATA {GRAPH </graph/courses/> {<course/inf3580> ex:oblig <exercise/oblig6> .<exercise/oblig6> rdfs:label "Mandatory Exercise 6" .
} }
If no GRAPH is given, default graph is used.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 26 / 44
![Page 55: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/55.jpg)
SPARQL 1.1 Update language
Inserting and deleting triples
Inserting triples in a graph
INSERT DATA {GRAPH </graph/courses/> {<course/inf3580> ex:taughtBy <staff/kjetil> .<staff/kjetil> foaf:name "Kjetil Kjernsmo" ;
owl:sameAs <http:// ...> .} }
Deleting triples from a graph
DELETE DATA {GRAPH </graph/courses/> {<course/inf3580> ex:oblig <exercise/oblig6> .<exercise/oblig6> rdfs:label "Mandatory Exercise 6" .
} }
If no GRAPH is given, default graph is used.INF3580 :: Spring 2011 Lecture 13 :: 26th April 26 / 44
![Page 56: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/56.jpg)
SPARQL 1.1 Update language
Inserting conditionally
Most useful when inserting statements that you already have, but holdtrue for something else.
Inserting triples for another subject
INSERT {<http:// .../geo/inndeling/03> a gd:Fylke ;
gn:name "Oslo" ;?p ?o .
}WHERE {<http:// .../geo/inndeling/03/0301> a gd:Kommune ;
?p ?o .}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 27 / 44
![Page 57: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/57.jpg)
SPARQL 1.1 Update language
Deleting conditionally
From specification:
Deleting old books
DELETE {?book ?p ?v .
}WHERE {?book dc:date ?date .FILTER ( ?date < "2000-01-01T00:00:00"^^xsd:dateTime )?book ?p ?v .
}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 28 / 44
![Page 58: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/58.jpg)
SPARQL 1.1 Update language
Deleting conditionally, common shortform
Deleting exactly what’s matched by the WHERE clause.
Deleting in SMIL
DELETE WHERE {?s a skos:Concept .?s ?p <http://smil.uio.no/topic/betennelse-i-bihuler> .
}
Most common update query in the Sublima and Media Zone projects.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 29 / 44
![Page 59: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/59.jpg)
SPARQL 1.1 Update language
Delete/Insert full syntax
In most cases, you would delete some triples first, then add new, possiblyin the same or other graphs.From specification:
All the possibilities offered by DELETE/INSERT
[ WITH <uri> ]DELETE {modify template [ modify template ]* }INSERT {modify template [ modify template ]* }[ USING [NAMED] <uri> ]*[ WHERE ] GroupGraphPattern
INF3580 :: Spring 2011 Lecture 13 :: 26th April 30 / 44
![Page 60: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/60.jpg)
SPARQL 1.1 Update language
Delete/Insert simple example
Update user information query from Sublima
DELETE {<http:// .../user/larshvermannsen> ?p ?o .
}INSERT {<http:// .../user/larshvermannsen> a sioc:User ;rdfs:label """Lars Hvermannsen"""@no ;sioc:email <mailto:[email protected]> ;sioc:has function <http:// .../role/Administrator> ;wdr:describedBy status:inaktiv .
}WHERE {<http:// .../user/larshvermannsen> ?p ?o .
}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 31 / 44
![Page 61: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/61.jpg)
SPARQL 1.1 Update language
Delete/Insert example with named graphs
Update user information query from Sublima
DELETE {GRAPH </graphs/users/> {<http:// .../user/larshvermannsen> ?p ?o .
}}INSERT {GRAPH </graphs/users/> {<http:// .../user/larshvermannsen> a sioc:User ;
rdfs:label """Lars Hvermannsen"""@no .}
}USING </graphs/users/> WHERE {
<http:// .../user/larshvermannsenno> ?p ?o .}
INF3580 :: Spring 2011 Lecture 13 :: 26th April 32 / 44
![Page 62: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/62.jpg)
SPARQL 1.1 Update language
Delete/Insert example explained
USING plays the same role as FROM.
GRAPH says where to insert or delete.
This makes it possible to delete, insert and match against differentgraphs.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 33 / 44
![Page 63: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/63.jpg)
SPARQL 1.1 Update language
Delete/Insert example explained
USING plays the same role as FROM.
GRAPH says where to insert or delete.
This makes it possible to delete, insert and match against differentgraphs.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 33 / 44
![Page 64: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/64.jpg)
SPARQL 1.1 Update language
Delete/Insert example explained
USING plays the same role as FROM.
GRAPH says where to insert or delete.
This makes it possible to delete, insert and match against differentgraphs.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 33 / 44
![Page 65: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/65.jpg)
SPARQL 1.1 Update language
Delete/Insert example with single named graphs
Update user information query from Sublima
WITH </graphs/users/>DELETE {<http:// .../user/larshvermannsen> ?p ?o .
}INSERT {<http:// .../user/larshvermannsen> a sioc:User ;
rdfs:label """Lars Hvermannsen"""@no .}WHERE {<http:// .../user/larshvermannsenno> ?p ?o .
}
Equivalent to the previous query!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 34 / 44
![Page 66: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/66.jpg)
SPARQL 1.1 Property paths
Basic motivation for Property paths
Some queries get needlessly complex.
Sometimes write foaf:maker|dct:creator instead of UNION.
To get friend’s name, go { _:me foaf:knows/foaf:name?friendsname }.etc.
Adds a small property-oriented query language inside the language.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 35 / 44
![Page 67: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/67.jpg)
SPARQL 1.1 Property paths
Longer example
Friends of Kjetil Kjernsmo, including subproperties
SELECT ?label ?name WHERE {?rel rdfs:subPropertyOf? foaf:knows ;
rdfs:label ?label .<http://www.kjetil.kjernsmo.net/foaf#me> ?rel ?friend .?friend foaf:name|foaf:firstName ?name .
}
Answer (manual excerpt):
?label ?name
"Child Of"@en "Ragnhild Kjernsmo"
"Child Of"@en "Dag Kjernsmo"
"knows" "Gregory Todd Williams"
"Parent Of"@en "Eivind"
"Parent Of"@en "Synne"
"Spouse Of"@en "Hege Prestrud"
. . . . . .
INF3580 :: Spring 2011 Lecture 13 :: 26th April 36 / 44
![Page 68: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/68.jpg)
SPARQL 1.1 Property paths
Longer example
Friends of Kjetil Kjernsmo, including subproperties
SELECT ?label ?name WHERE {?rel rdfs:subPropertyOf? foaf:knows ;
rdfs:label ?label .<http://www.kjetil.kjernsmo.net/foaf#me> ?rel ?friend .?friend foaf:name|foaf:firstName ?name .
}
Answer (manual excerpt):
?label ?name
"Child Of"@en "Ragnhild Kjernsmo"
"Child Of"@en "Dag Kjernsmo"
"knows" "Gregory Todd Williams"
"Parent Of"@en "Eivind"
"Parent Of"@en "Synne"
"Spouse Of"@en "Hege Prestrud"
. . . . . .
INF3580 :: Spring 2011 Lecture 13 :: 26th April 36 / 44
![Page 69: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/69.jpg)
SPARQL 1.1 Property paths
From the specification
Syntax Form Matches
uri A URI or a prefixed name. A path of length one.elt Inverse path (object to subject).(elt) A group path elt, brackets control precedence.elt1 / elt2 A sequence path of elt1, followed by elt2elt1 ˆ elt2 Like elt1 / elt2, (elt1 and the inverse of elt2).elt1 | elt2 A alternative path of elt1, or elt2.elt* A path of zero or more occurrences of elt.elt+ A path of one or more occurrences of elt.elt? A path of zero or one elt.elt{n,m} A path between n and m occurrences of elt.elt{n} Exactly n occurrences of elt. A fixed length path.elt{n,} n or more occurrences of elt.elt{,n} Between 0 and n occurrences of elt.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 37 / 44
![Page 70: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/70.jpg)
SPARQL 1.1 Aggregates and negation
Aggregate functions: Set functions
Flatten is a function which is used to collapse multisets of lists intoa multiset, so for example {(1, 2), (3, 4)} becomes {1, 2, 3, 4}.Count counts the number of times a variable has been bound.
Sum sums numerical values of bound variables.
Avg finds the average of numerical values of bound variables.
Min finds the minimum of the numerical values of bound variables.
Max finds the maximum of the numerical values of bound variables.
Group Concat creates a string with the values concatenated,separated by some optional character.
Sample just returns a sample of the values.
Already implemented in most frameworks!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 38 / 44
![Page 71: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/71.jpg)
SPARQL 1.1 Aggregates and negation
Aggregate functions: Grouping
Solutions can optionally be grouped according to one or moreexpressions.
To specify the group, use GROUP BY.
To filter solutions resulting from grouping, use HAVING.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 39 / 44
![Page 72: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/72.jpg)
SPARQL 1.1 Aggregates and negation
Aggregate functions: Grouping
Solutions can optionally be grouped according to one or moreexpressions.
To specify the group, use GROUP BY.
To filter solutions resulting from grouping, use HAVING.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 39 / 44
![Page 73: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/73.jpg)
SPARQL 1.1 Aggregates and negation
Aggregate functions: Grouping
Solutions can optionally be grouped according to one or moreexpressions.
To specify the group, use GROUP BY.
To filter solutions resulting from grouping, use HAVING.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 39 / 44
![Page 74: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/74.jpg)
SPARQL 1.1 Aggregates and negation
Example
Counties of Norway with less than 15 municipalities
SELECT ?name (count(?kommune) AS ?kcount)WHERE {?fylke a gd:Fylke ;
gn:officialName ?name ;gn:childrenFeatures ?kommune .
?kommune a gd:Kommune .FILTER (langMatches(lang(?name),’no’))
} GROUP BY ?name HAVING (?kcount < 15)
Also uses projection!Answer:
name kcount
"Vest-Agder"@no 14
"Oslo"@no 1
"Vestfold"@no 13
INF3580 :: Spring 2011 Lecture 13 :: 26th April 40 / 44
![Page 75: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/75.jpg)
SPARQL 1.1 Aggregates and negation
Negation
Two ways to do negation:
People without names
SELECT DISTINCT * WHERE {?person a foaf:Person .MINUS { ?person foaf:name ?name }
}
People without names, take II
SELECT DISTINCT * WHERE {?person a foaf:Person .FILTER NOT EXISTS { ?person foaf:name ?name }
}
FILTER NOT EXISTS filters based on bindings whereas MINUS removessolutions that matches the pattern.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 41 / 44
![Page 76: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/76.jpg)
SPARQL 1.1 Aggregates and negation
Open World Assumption
Aggregates and negation assume Closed World and Unique names!The answers are only true with respect to the current dataset.
“As far as we know, there are 13 municipalities in Vestfold.”
Can’t say: “they don’t have names”, can say: “we don’t know theirnames”.
“As far as we know, no-one has climbed that mountain.”
“Based on the available data, the average fuel price is 13.37 NOK/l.”
This is like the Real World!
INF3580 :: Spring 2011 Lecture 13 :: 26th April 42 / 44
![Page 77: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/77.jpg)
New Semantic Web Community
Outline
1 Reminder: SPARQL
2 RDF Datasets
3 Functions and Operators
4 SPARQL 1.1Update languageProperty pathsAggregates and negation
5 New Semantic Web Community
INF3580 :: Spring 2011 Lecture 13 :: 26th April 43 / 44
![Page 78: INF3580 { Semantic Technologies { Spring 2011 · Today’s Plan 1 Reminder: SPARQL 2 RDF Datasets 3 Functions and Operators 4 SPARQL 1.1 5 New Semantic Web Community INF3580 :: Spring](https://reader034.vdocuments.mx/reader034/viewer/2022050311/5f73019b7e5a355bf41429d9/html5/thumbnails/78.jpg)
New Semantic Web Community
Lenka.no
A community site for Linked Data in Norway.
A site to just do stuff instead of waiting for “official” projects.
Lenka.no isn’t up yet, but these are:
http://lists.lenka.no/listinfo/datahttp://vocab.lenka.no/E.g. http://data.lenka.no/geo/inndeling/03/0301
Next up: Yr.no, a database of places in Norway, etc.
INF3580 :: Spring 2011 Lecture 13 :: 26th April 44 / 44