# Wikidata Quiz
Ein Wikidata Quiz ist eine Fragestellung, welche man mit einer Abfrage in Wikidata "lösen" soll: https://query.wikidata.org/. Hierbei ist der Weg, d.h. die entsprechende **SPARQL-Abfrage**, der relevantere Teil und die Antwort selbst dann häufig abhängig von der Vollständigkeit der Daten in Wikidata.
Jeder kann bei den Fragen mitknobeln oder auch neue Quizfragen stellen. Gute Aufgaben haben einen oder mehrere Tipps und optional eine mögliche Lösung, welche man aber erst nach eigenen Versuchen konsultieren sollte.
Tutorials:
* [Wikidata:SPARQL tutorial](https://www.wikidata.org/wiki/Wikidata:SPARQL_tutorial)
* [Why should you learn SPARQL? Wikidata!](https://longair.net/blog/2017/11/29/sparql-wikidata/)
Twitter-Hashtag: [#wkndata](https://twitter.com/hashtag/wkndata?src=hash)
## #4 Umzug nach discourse
Zur Nummer 4 des Wikidata-Quiz sind wir nach discourse gewechselt, siehe https://discourse.openbiblio.eu/t/wikidata-wochenend-quiz-von-mannheim-nach-kiel/281
## #3 Personen mit einer ORCID aber keiner weiteren Personen-ID (10. März)
Finde alle Personen in Wikidata, die nur eine ORCID haben (die sonst keine anderen IDs haben). https://twitter.com/herr_tu/status/972413519512653824
<details>
<summary>Tipp</summary>
Benütze `FILTER NOT EXISTS` um einzuschränken.
</details>
:point_up:
<details>
<summary>Tipp</summary>
Verschachtelung ist hier essentiell, ggf. mit `SELECT *` und `LIMIT 10` temporär die Resultate prüfen.
</details>
:point_up:
<details>
<summary>Lösung</summary>
http://tinyurl.com/y9xc8hgp
```
SELECT * WHERE {
?item wdt:P31 wd:Q5;
wdt:P496 ?orcid.
FILTER NOT EXISTS {
?item ?property ?value.
?property ^wikibase:directClaim ?propertyObject.
?propertyObject wdt:P31/wdt:P279* wd:Q18614948.
FILTER (!(?property=wdt:P496))
}
}
```
</details>
:point_up:
## #2 Früheste geborene Person in DBLP (03. März)
Finde die früheste geborene Person in Wikidata mit einer DBLP-ID. https://twitter.com/zuphilip/status/969879102495821825
<details>
<summary>Tipp</summary>
Wie kann man die "no values" herausfiltern?
</details>
:point_up:
<details>
<summary>Lösung</summary>
http://tinyurl.com/y7gcrdvd
```
#earliest born person in wikidata with dblp id
SELECT ?item ?itemLabel ?dblpid ?birthdate
WHERE
{
?item wdt:P31 wd:Q5.
?item wdt:P2456 ?dblpid.
?item wdt:P569 ?birthdate.
FILTER (!isBLANK(?birthdate)).
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY ?birthdate
LIMIT 1
```
</details>
:point_up:
## #1 Alle IDs einer Person (23. Februar)
Wie fragt man mit SPARQL alle IDs einer Person ab? https://twitter.com/herr_tu/status/967073289104449536
<details>
<summary>Tipp</summary>
Aussagen über Properties selbst brauchen einen anderen Prefix, vgl. https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Properties
</details>
:point_up:
<details>
<summary>Lösung</summary>
Für [Q2496322](https://www.wikidata.org/wiki/Q2496322) beispielsweise http://tinyurl.com/y823mj7q
```
SELECT DISTINCT *
WHERE
{
wd:Q2496322 ?property ?value.
?property ^wikibase:directClaim ?propertyObject.
?propertyObject wdt:P31/wdt:P279* wd:Q18614948.
}
```
Oder – besser für Menschen lesbar – nur die Bennenung der ID und ihr Wert:
```
SELECT DISTINCT ?propertyObjectLabel ?value
WHERE
{
wd:Q2496322 ?property ?value.
?property ^wikibase:directClaim ?propertyObject.
?propertyObject wdt:P31/wdt:P279* wd:Q18614948.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],de". }
}
```
</details>
:point_up: