Sample queries
Jump to navigation
Jump to search
Instance count
To get an overview of what's in the BBP, the following query will return a count of all of the different instances, such as works, people, and places.
SELECT ?typeLabel (count(distinct ?x) as ?count)
WHERE
{
?x wdt:P8 ?type .
?type rdfs:label ?typeLabel.
FILTER((LANG(?typeLabel)) = "en")
}
group by ?type ?typeLabel
order by desc(?count)
First 100 Works
Get a list of all of the works
(as of 2019-11, that's exactly 100 works!)
SELECT ?work ?workLabel (count(distinct ?edition) as ?editions)
(min(?year) as ?earliestPublicationDate)
(GROUP_CONCAT(distinct ?authorLabel; SEPARATOR="; ") as ?authors)
(GROUP_CONCAT(distinct ?literaryFormLabel; SEPARATOR="; ") as ?format)
WHERE
{
?work wdt:P8 wd:Q4 .
OPTIONAL { ?work wdt:P90 ?author . ?author rdfs:label ?authorLabel }
OPTIONAL { ?work wdt:P11 ?literaryForm . ?literaryForm rdfs:label ?literaryFormLabel }
OPTIONAL { ?edition wdt:P13 ?work . ?edition p:P29|p:P32 ?pubStatement }
OPTIONAL { ?pubStatement pq:P31 ?date .
BIND(str(YEAR(?date)) AS ?year) }
?work rdfs:label ?workLabel .
}
group by ?work ?workLabel
order by ?workLabel
Author Gallery
Return a list of everyone in the BBP listed as an author, as long as they also have a picture in Wikimedia commons, and sort the results by the total number of works listed.
PREFIX wd_1: <http://www.wikidata.org/entity/>
PREFIX wdt_1: <http://www.wikidata.org/prop/direct/>
SELECT distinct ?person ?personLabel ?pic (COUNT(distinct ?work) as ?workCount)
WHERE
{
?person wdt:P8 wd:Q3 .
?person rdfs:label ?personLabel .
?person wdt:P107 ?wid .
?person ^wdt:P90 ?work .
BIND(IRI(CONCAT('http://www.wikidata.org/entity/', ?wid)) AS ?wikidataURI )
SERVICE <https://query.wikidata.org/sparql> {
?wikidataURI wdt_1:P18 ?pic .
}
}
group by ?person ?personLabel ?pic
order by desc(?workCount)
Birthplaces
Map the birth places for everyone listed in the BBP, using coordinate data from Wikidata
PREFIX wd_1: <http://www.wikidata.org/entity/>
PREFIX wdt_1: <http://www.wikidata.org/prop/direct/>
SELECT distinct ?person ?personLabel ?pob ?pobLabel ?coords
WITH {
SELECT ?person WHERE {
?item wdt:P8 wd:Q3 .
?item wdt:P107 ?wid .
BIND(IRI(CONCAT('http://www.wikidata.org/entity/', ?wid)) AS ?person )
}
} AS %people
WHERE {
include %people
SERVICE <https://query.wikidata.org/sparql> {
?person wdt_1:P19 ?pob .
?pob wdt_1:P625 ?coords .
?person rdfs:label ?personLabel .
FILTER((LANG(?personLabel)) = "en")
?pob rdfs:label ?pobLabel .
FILTER((LANG(?pobLabel)) = "en")
}
}
Inscription Overview
SELECT ?item ?itemLabel ?inscriptionNote ?from ?to
WHERE {
?item wdt:P52 ?inscriptionNote .
?item rdfs:label ?itemLabel .
?item ?x ?statement .
?statement ps:P52 ?inscriptionNote ; pq:P53 ?addressee ; pq:P54 ?inscriber .
?addressee rdfs:label ?to .
?inscriber rdfs:label ?from .
}
ORDER by ?from
Narrative Publication Overview
prefix wd_1: <http://www.wikidata.org/entity/>
prefix wdt_1: <http://www.wikidata.org/prop/direct/>
select ?work ?edition ?publisher (year(?date) as ?publicationYear) (count(*) as ?editionsPublishedAtThisLocation) ?coords {
?work wdt:P11 wd:Q28 .
?edition wdt:P13 ?work ; wdt:P29 ?publisher .
?edition ?has ?pubStmt .
?pubStmt ps:P29 ?publisher ; pq:P30 ?place ; pq:P31 ?date .
?place wdt:P107 ?wid .
?publisher rdfs:label ?pubLabel .
?place rdfs:label ?placeLabel .
BIND(IRI(CONCAT('http://www.wikidata.org/entity/', ?wid)) AS ?placeMatch )
SERVICE <https://query.wikidata.org/sparql> {
?placeMatch wdt_1:P625 ?coords .
}
}
group by ?work ?edition ?publisher ?date ?coords ?pubLabel ?placeLabel
Edition count by year and genre
SELECT ?year (COUNT(?_genreLabel) AS ?count ) (SAMPLE(?_genreLabel) AS ?genreLabel ) WHERE {
?edition wdt:P8 wd:Q7 .
?edition p:P29 ?pubStatement .
?pubStatement pq:P31 ?date .
BIND(str(YEAR(?date)) AS ?year)
?edition wdt:P13 ?work .
?work wdt:P11 ?literaryForm .
?literaryForm rdfs:label ?_genreLabel
}
GROUP BY ?_genreLabel ?year
ORDER BY ?year
Page counts, down the line
# List of stuff numbered by pages, in order
# look at Table view…. and at Line view. What’s different? Why?
#defaultView:LineChart
SELECT ?item ?itemLabel ?pages
WHERE
{
?item ?b ?statement.
?statement pq:P34 ?pages.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY desc(?pages)
Illustration Overview
# How many and which titles are illustrated?
# Works that have editions that are marked as illustrated.
SELECT ?workLabel (GROUP_CONCAT(distinct ?illLabel; SEPARATOR="; ") as ?illustrationLabel)
(GROUP_CONCAT(distinct ?x; SEPARATOR="; ") as ?illustrationOverview)
(GROUP_CONCAT(distinct ?illustratorLabel; SEPARATOR="; ") as ?illustrator)
(count(distinct ?edition) as ?editionCount)
(GROUP_CONCAT(distinct ?editionLabel; SEPARATOR="; ") as ?editions)
(GROUP_CONCAT(distinct ?authorLabel; SEPARATOR="; ") as ?authors)
(min(?year) as ?earliestPublicationDate)
WHERE {
?edition wdt:P35 ?illustration ; wdt:P13 ?work ; rdfs:label ?editionLabel .
?illustration rdfs:label ?illLabel .
?work rdfs:label ?workLabel .
OPTIONAL { ?edition p:P35 ?statement . ?statement pq:P64|pq:P28 ?x .}
OPTIONAL { ?edition wdt:P79 ?illustrator . ?illustrator rdfs:label ?illustratorLabel }
OPTIONAL { ?edition p:P29|p:P32 ?pubStatement . ?pubStatement pq:P31 ?date . BIND(str(YEAR(?date)) AS ?year) }
OPTIONAL { ?work wdt:P90 ?author . ?author rdfs:label ?authorLabel }
}
group by ?workLabel
order by ?workLabel
Just the Frontispieces
# Just the Frontispieces
# How many titles have frontispieces?
SELECT ?workLabel ?frontispieceLabel
(GROUP_CONCAT(distinct ?note; SEPARATOR="; ") as ?frontispieceNote)
(count(distinct ?edition) as ?editionCount)
(GROUP_CONCAT(distinct ?editionLabel; SEPARATOR="; ") as ?editions)
(GROUP_CONCAT(distinct ?authorLabel; SEPARATOR="; ") as ?authors)
(min(?year) as ?earliestPublicationDate)
WHERE {
?edition wdt:P35 wd:Q35 ; wdt:P13 ?work ; rdfs:label ?editionLabel .
wd:Q35 rdfs:label ?frontispieceLabel .
?work rdfs:label ?workLabel .
OPTIONAL { ?edition p:P35 ?statement . ?statement pq:P64 ?note .}
OPTIONAL { ?edition p:P29|p:P32 ?pubStatement . ?pubStatement pq:P31 ?date . BIND(str(YEAR(?date)) AS ?year) }
OPTIONAL { ?work wdt:P90 ?author . ?author rdfs:label ?authorLabel }
}
group by ?workLabel ?frontispieceLabel
order by ?workLabel