Quality control queries: Difference between revisions

From Black Bibliography Project
Jump to navigation Jump to search
Line 37: Line 37:
== Places without a Wikidata identifier (also check if they are really places) ==
== Places without a Wikidata identifier (also check if they are really places) ==
<pre>
<pre>
# Return all places that lack a Wikidata identifier.  
# Places without Wikidata identifier statement.
SELECT ?label ?link
SELECT ?place ?placeLabel
WHERE
WHERE
{
{
?item wdt:P8 wd:Q10 ; rdfs:label ?label .
    ?place wdt:P8 wd:Q10 .
FILTER NOT EXISTS { ?item wdt:P107 ?id } .
    MINUS { ?place wdt:P107 [] } .
BIND(IRI(CONCAT('http://172.17.10.220/wiki/Item:', REPLACE( str(?item) , 'http://wikibase.svc/entity/', '' ))) AS ?link )
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
}
order by ?label
ORDER BY ?placeLabel
</pre>
[http://172.17.10.220:8834/embed.html#%23%20Return%20all%20places%20that%20lack%20a%20Wikidata%20identifier.%20%0ASELECT%20%3Flabel%20%3Flink%0AWHERE%0A%7B%0A%20%3Fitem%20wdt%3AP8%20wd%3AQ10%20%3B%20rdfs%3Alabel%20%3Flabel%20.%0A%20FILTER%20NOT%20EXISTS%20%7B%20%3Fitem%20wdt%3AP107%20%3Fid%20%7D%20.%0A%20BIND%28IRI%28CONCAT%28%27http%3A%2F%2F10.5.32.142%3A8181%2Fwiki%2FItem%3A%27%2C%20REPLACE%28%20str%28%3Fitem%29%20%2C%20%27http%3A%2F%2Fwikibase.svc%2Fentity%2F%27%2C%20%27%27%20%29%29%29%20AS%20%3Flink%20%29%0A%20%0A%7D%0Aorder%20by%20%3Flabel Try it out!]
 


== Checking in on the Andrews List editions ==
== Checking in on the Andrews List editions ==

Revision as of 18:34, 9 June 2025

Missing "edition of" statements

Get a list of editions that lack an "edition of" statement:

# Editions without Edition of statement.
SELECT ?edition ?editionLabel
WHERE
{
    ?edition wdt:P8 wd:Q7 .
    MINUS { ?edition wdt:P13 [] } .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
ORDER BY ?editionLabel

Missing instance statements

Get a list of Item pages that lack an "instance of" declaration:

# Return all items that are missing an "instance of" statement
prefix wbb: <http://wikiba.se/ontology-beta#> 
prefix wb: <http://wikiba.se/ontology#> 

SELECT ?label ?link
WHERE
{
 ?item rdf:type ?wbitem ;
       rdfs:label ?label .    
 FILTER(?wbitem in (wbb:Item, wb:Item))
 FILTER((LANG(?label)) = "en")
 FILTER NOT EXISTS { ?item wdt:P8 ?type }
 BIND(IRI(CONCAT('http://172.17.10.220/wiki/Item:', REPLACE( str(?item) , 'http://wikibase.svc/entity/', '' ))) AS ?link )
}
order by ?label

Try it out!

Places without a Wikidata identifier (also check if they are really places)

# Places without Wikidata identifier statement.
SELECT ?place ?placeLabel
WHERE
{
    ?place wdt:P8 wd:Q10 .
    MINUS { ?place wdt:P107 [] } .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
ORDER BY ?placeLabel

== Checking in on the Andrews List editions ==
<pre>
# list of editions associated with the Andrews bibliography
SELECT 
?editionLabel
?link 
(group_concat(distinct ?publisherLabel;separator='; ') as ?publishers) 
(group_concat(distinct ?pubPlaceLabel;separator='; ') as ?publishedPlaces)
(group_concat(distinct ?pubDate;separator='; ') as ?publishedDates)

(group_concat(distinct ?printerLabel;separator='; ') as ?printers) 
(group_concat(distinct ?printPlaceLabel;separator='; ') as ?printedPlaces)
(group_concat(distinct ?printDate;separator='; ') as ?printedDates)

WHERE {
 ?edition wdt:P121 wd:Q1176 ; #wd:Q1176 is the Andrews bibliography
          rdfs:label ?editionLabel .
   
  OPTIONAL {?edition wdt:P29 ?publisher . ?publisher rdfs:label ?publisherLabel }.
  OPTIONAL {?edition ?has ?pubStmt . ?pubStmt ps:P29 ?publisher ; pq:P30 ?pubPlace . ?pubPlace rdfs:label ?pubPlaceLabel }.
  OPTIONAL {?edition ?has ?pubStmt . ?pubStmt ps:P29 ?publisher ; pq:P31 ?pubDate }.
  
  OPTIONAL {?edition wdt:P32 ?printer . ?printer rdfs:label ?printerLabel }.
  OPTIONAL {?edition ?has ?printStmt . ?printStmt ps:P32 ?printer ; pq:P30 ?printPlace . ?printPlace rdfs:label ?printPlaceLabel }.
  OPTIONAL {?edition ?has ?printStmt . ?printStmt ps:P32 ?printer ; pq:P31 ?printDate }.
  
  
  BIND(IRI(CONCAT('http://172.17.10.220/wiki/Item:', REPLACE( str(?edition) , 'http://wikibase.svc/entity/', '' ))) AS ?link )
}
group by ?editionLabel ?link

Try it out!