[
Back to the SP²Bench Main Page ]
SP²Bench Benchmark Queries
In the following we present the SP²Bench benchmark queries, including
a short textual description. If you are interested in detailed information
on the queries and how to interpret them, please contact
Michael Schmidt. Some hints are also given in the
data
generator description, which describes selected key characteristics
of the underlying data. Q1-Q11 are SPARQL
SELECT queries, and
Q12(a), (b), and (c) are SPARQL
ASK queries.
All queries are available for download as text files in the
download section.
Return the year of publication of Journal 1 (1940). |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?yr
WHERE {
?journal rdf:type bench:Journal .
?journal dc:title "Journal 1 (1940)"^^xsd:string .
?journal dcterms:issued ?yr
}
|
Extract all inproceedings with properties dc:creator,
bench:booktitle, dc:title, swrc:pages,
dcterms:partOf, rdfs:seeAlso, foaf:homepage
dcterms:issued, and optionally bench:abstract,
including these properties, ordered by year. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX swrc: <http://swrc.ontoware.org/ontology#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?inproc ?author ?booktitle ?title
?proc ?ee ?page ?url ?yr ?abstract
WHERE {
?inproc rdf:type bench:Inproceedings .
?inproc dc:creator ?author .
?inproc bench:booktitle ?booktitle .
?inproc dc:title ?title .
?inproc dcterms:partOf ?proc .
?inproc rdfs:seeAlso ?ee .
?inproc swrc:pages ?page .
?inproc foaf:homepage ?url .
?inproc dcterms:issued ?yr
OPTIONAL {
?inproc bench:abstract ?abstract
}
}
ORDER BY ?yr
|
(a) Select all articles with property swrc:pages. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX swrc: <http://swrc.ontoware.org/ontology#>
SELECT ?article
WHERE {
?article rdf:type bench:Article .
?article ?property ?value
FILTER (?property=swrc:pages)
}
|
(b) Select all articles with property swrc:month. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX swrc: <http://swrc.ontoware.org/ontology#>
SELECT ?article
WHERE {
?article rdf:type bench:Article .
?article ?property ?value
FILTER (?property=swrc:month)
}
|
(c) Select all articles with property swrc:isbn. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX swrc: <http://swrc.ontoware.org/ontology#>
PREFIX bench: <http://localhost/vocabulary/bench/>
SELECT ?article
WHERE {
?article rdf:type bench:Article .
?article ?property ?value
FILTER (?property=swrc:isbn)
}
|
Select all distinct pairs of article author names for
authors that have published in the same journal. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX swrc: <http://swrc.ontoware.org/ontology#>
SELECT DISTINCT ?name1 ?name2
WHERE {
?article1 rdf:type bench:Article .
?article2 rdf:type bench:Article .
?article1 dc:creator ?author1 .
?author1 foaf:name ?name1 .
?article2 dc:creator ?author2 .
?author2 foaf:name ?name2 .
?article1 swrc:journal ?journal .
?article2 swrc:journal ?journal
FILTER (?name1<?name2)
}
|
(a) Return the names of all persons that occur as author
of at least one inproceeding and at least one article. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT DISTINCT ?person ?name
WHERE {
?article rdf:type bench:Article .
?article dc:creator ?person .
?inproc rdf:type bench:Inproceedings .
?inproc dc:creator ?person2 .
?person foaf:name ?name .
?person2 foaf:name ?name2
FILTER (?name=?name2)
}
|
(b) Return the names of all persons that occur as author
of at least one inproceeding and at least one article
(same as Q5a). |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT DISTINCT ?person ?name
WHERE {
?article rdf:type bench:Article .
?article dc:creator ?person .
?inproc rdf:type bench:Inproceedings .
?inproc dc:creator ?person .
?person foaf:name ?name
}
|
Return, for each year, the set of all publications authored
by persons that have not published in years before. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?yr ?name ?document
WHERE {
?class rdfs:subClassOf foaf:Document .
?document rdf:type ?class .
?document dcterms:issued ?yr .
?document dc:creator ?author .
?author foaf:name ?name
OPTIONAL {
?class2 rdfs:subClassOf foaf:Document .
?document2 rdf:type ?class2 .
?document2 dcterms:issued ?yr2 .
?document2 dc:creator ?author2
FILTER (?author=?author2 && ?yr2<?yr)
} FILTER (!bound(?author2))
}
|
Return the titles of all papers that have been cited at least
once, but not by any paper that has not been cited itself. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT DISTINCT ?title
WHERE {
?class rdfs:subClassOf foaf:Document .
?doc rdf:type ?class .
?doc dc:title ?title .
?bag2 ?member2 ?doc .
?doc2 dcterms:references ?bag2
OPTIONAL {
?class3 rdfs:subClassOf foaf:Document .
?doc3 rdf:type ?class3 .
?doc3 dcterms:references ?bag3 .
?bag3 ?member3 ?doc
OPTIONAL {
?class4 rdfs:subClassOf foaf:Document .
?doc4 rdf:type ?class4 .
?doc4 dcterms:references ?bag4 .
?bag4 ?member4 ?doc3
} FILTER (!bound(?doc4))
} FILTER (!bound(?doc3))
}
|
Compute authors that have published with Paul Erdoes,
or with an author that has published with Paul Erdoes. |
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT DISTINCT ?name
WHERE {
?erdoes rdf:type foaf:Person .
?erdoes foaf:name "Paul Erdoes"^^xsd:string .
{
?document dc:creator ?erdoes .
?document dc:creator ?author .
?document2 dc:creator ?author .
?document2 dc:creator ?author2 .
?author2 foaf:name ?name
FILTER (?author!=?erdoes &&
?document2!=?document &&
?author2!=?erdoes &&
?author2!=?author)
} UNION {
?document dc:creator ?erdoes.
?document dc:creator ?author.
?author foaf:name ?name
FILTER (?author!=?erdoes)
}
}
|
Return incoming and outcoming properties of persons.
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?predicate
WHERE {
{
?person rdf:type foaf:Person .
?subject ?predicate ?person
} UNION {
?person rdf:type foaf:Person .
?person ?predicate ?object
}
}
|
Return all subjects that stand in any relation to Paul
Erdoes. In our scenario, the query might also be formulated
as "Return publications and venues in which Paul Erdoes
is involved either as author or as editor". |
PREFIX person: <http://localhost/persons/>
SELECT ?subject ?predicate
WHERE {
?subject ?predicate person:Paul_Erdoes
}
|
Return (up to) 10 electronic edition URLs starting from the
51th publication, in lexicographical order. |
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?ee
WHERE {
?publication rdfs:seeAlso ?ee
}
ORDER BY ?ee
LIMIT 10
OFFSET 50
|
(a) Return yes if a person occurs as author of at least one
inproceeding and article, no otherwise. This query is
the boolean counterpart of Q5a. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX bench: <http://localhost/vocabulary/bench/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
ASK {
?article rdf:type bench:Article .
?article dc:creator ?person1 .
?inproc rdf:type bench:Inproceedings .
?inproc dc:creator ?person2 .
?person1 foaf:name ?name1 .
?person2 foaf:name ?name2
FILTER (?name1=?name2)
}
|
(b) Return yes if an author has published with Paul Erdoes
or with an author that has published with Paul Erdoes, and no
otherwise. This query is the boolean counterpart of Q8.
|
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
ASK {
?erdoes rdf:type foaf:Person .
?erdoes foaf:name "Paul Erdoes"^^xsd:string .
{
?document dc:creator ?erdoes .
?document dc:creator ?author .
?document2 dc:creator ?author .
?document2 dc:creator ?author2 .
?author2 foaf:name ?name
FILTER (?author!=?erdoes &&
?document2!=?document &&
?author2!=?erdoes &&
?author2!=?author)
} UNION {
?document dc:creator ?erdoes .
?document dc:creator ?author .
?author foaf:name ?name
FILTER (?author!=?erdoes)
}
}
|
(c) Check if the person John Q Public exists in the database. |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX person: <http://localhost/persons/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK {
person:John_Q_Public rdf:type foaf:Person.
}
|
[
Back to the SP²Bench Main Page ]
Last modified:
January 28, 2009