Sample queries: Difference between revisions
Jump to navigation
Jump to search
No edit summary Tag: visualeditor-switched |
No edit summary |
||
Line 104: | Line 104: | ||
</pre> | </pre> | ||
== Narrative Publication Overview == | == Narrative Publication Overview == |
Revision as of 20:19, 7 February 2023
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 (now more than 100)
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
Andrews List, mapped out
PREFIX wd_1: <http://www.wikidata.org/entity/> PREFIX wdt_1: <http://www.wikidata.org/prop/direct/> SELECT * WHERE { ?edition wdt:P13 ?work ; wdt:P121 wd:Q1176 ; wdt:P29 ?publisher ; ?has ?pubStmt . ?pubStmt ps:P29 ?publisher ; pq:P30 ?place . ?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 . } }
Copyright Data
# How many editions have copyright statements? # How many of those statements are qualified by rights holder? # How many of those rights holders were also the author of the work? SELECT ?editionCount ?copyrightedEditionCount ?rightsHolderCount (xsd:float(?copyrightedEditionCount)/xsd:float(?editionCount) AS ?percentCopyrighted) (xsd:float(?rightsHolderCount)/xsd:float(?copyrightedEditionCount) AS ?percentWithRightsHolder) (xsd:float(?authorAsRightsHolderCount)/xsd:float(?rightsHolderCount) AS ?percentWithRightsHolderCopyrightedByAuthor) WHERE { { SELECT (COUNT(?editionType) AS ?editionCount) WHERE { ?edition bbppd:P8 bbpq:Q7 ; bbppd:P13 ?work . BIND(bbpq:Q7 AS ?editionType) } GROUP BY ?editionType } { SELECT ?editionType (COUNT(?editionType) AS ?copyrightedEditionCount) WHERE { ?work bbppd:P8 bbpq:Q4 ; bbppd:P90 ?author . ?edition bbppd:P8 bbpq:Q7 ; bbppd:P13 ?work ; bbpp:P19 ?copyRightStmt . BIND(bbpq:Q7 AS ?editionType) } GROUP BY ?editionType } { SELECT ?editionType (COUNT(?editionType) AS ?rightsHolderCount) WHERE { ?work bbppd:P8 bbpq:Q4 ; bbppd:P90 ?author . ?edition bbppd:P8 bbpq:Q7 ; bbppd:P13 ?work ; bbpp:P19 ?copyRightStmt . ?copyRightStmt bbppq:P20 ?rightsHolder . BIND(bbpq:Q7 AS ?editionType) #FILTER(?author = ?rightsHolder) } GROUP BY ?editionType } { SELECT ?editionType (COUNT(?editionType) AS ?authorAsRightsHolderCount) WHERE { ?work bbppd:P8 bbpq:Q4 ; bbppd:P90 ?author . ?edition bbppd:P8 bbpq:Q7 ; bbppd:P13 ?work ; bbpp:P19 ?copyRightStmt . ?copyRightStmt bbppq:P20 ?rightsHolder . BIND(bbpq:Q7 AS ?editionType) FILTER(?author = ?rightsHolder) } GROUP BY ?editionType } }