|
|
(10 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| ==Lecture 3:SPARQL==
| |
|
| |
|
| The KG4News knowledge graph can be accessed [http://bg.newsangler.uib.no here (namespace ''kb'')] (read-only). To test updates, you can run your own Blazegraph server or try the [http://sandbox.i2s.uib.no I2S sandbox].
| |
|
| |
| ===Limit===
| |
| <syntaxhighlight lang="SPARQL">
| |
| SELECT ?p WHERE {
| |
| ?s ?p ?o .
| |
| }
| |
| LIMIT 10</syntaxhighlight>
| |
|
| |
| ===List distinct properties only (with limit)===
| |
| <syntaxhighlight >
| |
| SELECT DISTINCT ?p WHERE {
| |
| ?s ?p ?o .
| |
| }
| |
| LIMIT 10
| |
| </syntaxhighlight>
| |
|
| |
| ===Limit with offset===
| |
| <syntaxhighlight lang="SPARQL">
| |
| SELECT DISTINCT ?p WHERE {
| |
| ?s ?p ?o .
| |
| }
| |
| LIMIT 10 OFFSET 9
| |
| </syntaxhighlight>
| |
|
| |
| ===List rdf:types===
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
| |
|
| |
| SELECT DISTINCT ?t WHERE {
| |
| ?s rdf:type ?t .
| |
| }
| |
| LIMIT 50
| |
| </syntaxhighlight>
| |
|
| |
| ===URI for Tim Berners-Lee===
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX foaf: <http://xmlns.com/foaf/0.1/>
| |
|
| |
| SELECT DISTINCT ?person WHERE {
| |
| ?person foaf:name ?name .
| |
|
| |
| FILTER(CONTAINS(?name, "Berners-Lee"))
| |
| }
| |
| LIMIT 10 # best to use limit if something goes wrong
| |
| </syntaxhighlight>
| |
|
| |
| ===Describe Tim Berners-Lee===
| |
| <syntaxhighlight lang="SPARQL">
| |
| DESCRIBE <http://i2s.uib.no/kg4news/author/1432678629>
| |
| </syntaxhighlight>
| |
| DESCRIBE returns a new RDF graph, whereas SELECT returns a table of rows.
| |
|
| |
| ===Papers that mention "Semantic Web" in the title===
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX ss: <http://semanticscholar.org/>
| |
|
| |
| SELECT DISTINCT ?paper ?title WHERE {
| |
| ?paper ss:title ?title .
| |
|
| |
| FILTER(CONTAINS(STR(?title), "Semantic Web"))
| |
| }
| |
| LIMIT 50
| |
| </syntaxhighlight>
| |
|
| |
| ===Similar filter that ignores capitalisation (lower/upper case)===
| |
| <syntaxhighlight lang="SPARQL">
| |
| FILTER(REGEX(STR(?title), "Semantic Web", "i"))
| |
| </syntaxhighlight>
| |
|
| |
| ===Authors sorted by name===
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX foaf: <http://xmlns.com/foaf/0.1/>
| |
|
| |
| SELECT DISTINCT * WHERE {
| |
| ?author foaf:name ?name .
| |
| }
| |
| ORDER BY ?name
| |
| LIMIT 10
| |
| </syntaxhighlight>
| |
|
| |
| ===Sorted by descending name===
| |
| <syntaxhighlight lang="SPARQL">
| |
| ORDER BY DESC(?name)
| |
| </syntaxhighlight>
| |
|
| |
| ===Count papers by author===
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
| |
| PREFIX dct: <http://purl.org/dc/terms/>
| |
| PREFIX ss: <http://semanticscholar.org/>
| |
|
| |
| SELECT DISTINCT ?author (COUNT(?paper) AS ?count) WHERE {
| |
| ?author rdf:type ss:Author .
| |
| ?paper rdf:type ss:Paper ;
| |
| dct:contributor ?author .
| |
| }
| |
| GROUP BY ?author
| |
| LIMIT 10
| |
| </syntaxhighlight>
| |
|
| |
| ===Only list the most prolific authors===
| |
| <syntaxhighlight lang="SPARQL">
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
| |
| PREFIX dct: <http://purl.org/dc/terms/>
| |
| PREFIX ss: <http://semanticscholar.org/>
| |
|
| |
| SELECT DISTINCT ?author (COUNT(?paper) AS ?count) WHERE {
| |
| ?author rdf:type ss:Author .
| |
| ?paper rdf:type ss:Paper ;
| |
| dct:contributor ?author .
| |
| }
| |
| GROUP BY ?author
| |
| HAVING (?count >= 10) # similar to a filter expression
| |
| LIMIT 10 # include limit when you test
| |
| </syntaxhighlight>
| |
|
| |
| ===Order by descending paper count===
| |
| <syntaxhighlight lang="SPARQL">
| |
| SELECT ... {
| |
| ...
| |
| }
| |
| GROUP BY ?person
| |
| HAVING (?count > 10)
| |
| ORDER BY DESC(?count)
| |
| LIMIT 10
| |
| </syntaxhighlight>
| |
|
| |
| ===Order by descending paper count and then by author name===
| |
| <syntaxhighlight lang="SPARQL">
| |
| PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
| |
| PREFIX dct: <http://purl.org/dc/terms/>
| |
| PREFIX foaf: <http://xmlns.com/foaf/0.1/>
| |
| PREFIX ss: <http://semanticscholar.org/>
| |
|
| |
| SELECT DISTINCT ?person (SAMPLE(?name) AS ?name) (COUNT(?paper) AS ?count) WHERE {
| |
| ?person rdf:type ss:Author ;
| |
| foaf:name ?name .
| |
| ?paper rdf:type ss:Paper ;
| |
| ss:title ?title ;
| |
| dct:contributor ?person .
| |
| }
| |
| GROUP BY ?person
| |
| HAVING (?count > 10)
| |
| ORDER BY DESC(?count)
| |
| LIMIT 10
| |
| </syntaxhighlight>
| |
|
| |
| ===Embedded Wikidata query===
| |
| <syntaxhighlight lang="sparql">
| |
| PREFIX foaf: <http://xmlns.com/foaf/0.1/>
| |
| PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
| |
|
| |
| SELECT DISTINCT ?enname ?person ?wdperson WHERE {
| |
| BIND("T. Berners-Lee"@en AS ?enname)
| |
|
| |
| SERVICE <https://query.wikidata.org/bigdata/namespace/wdq/sparql> {
| |
| SELECT ?wdperson ?enname WHERE {
| |
| ?wdperson skos:altLabel ?enname .
| |
| }
| |
| LIMIT 1
| |
| }
| |
|
| |
| BIND(STR(?enname) AS ?name)
| |
| ?person foaf:name ?name .
| |
|
| |
| }
| |
| LIMIT 1
| |
| </syntaxhighlight>
| |
|
| |
| ===Limit===
| |
| <syntaxhighlight lang="SPARQL">
| |
| </syntaxhighlight>
| |
|
| |
| ===Limit===
| |
| <syntaxhighlight lang="SPARQL">
| |
| </syntaxhighlight>
| |
|
| |
| ===Limit===
| |
| <syntaxhighlight lang="SPARQL">
| |
| </syntaxhighlight>
| |
|
| |
| ===Limit===
| |
| <syntaxhighlight lang="SPARQL">
| |
| </syntaxhighlight>
| |