Wikidata-Wochenend-Quiz #5: Weit entfernte Großstädte in Deutschland

linkeddata
wikidata
wkndata
Tags: #<Tag:0x00007fd0bfc9ad00> #<Tag:0x00007fd0bfc9abc0> #<Tag:0x00007fd0bfc9a990>

#1

Fragestellung: Welche beiden Städte in Deutschland mit mehr als 100.000 Einwohner sind am weitesten entfernt voneinander?


Diese Fragestellung soll mit Hilfe des SPARQL-Endpoints von Wikidata und den dort enthaltenen Daten beantwortet werden.

Wenn man nicht weiter kommt, dann kann man nach einen Tipp fragen und auch hier verschiedene Ansätze diskutieren.


#2

Hallo.

Hier ist meine Lösung. http://tinyurl.com/y8ryytc9

#3

Oh, das ist schön kurz!

Ich habe mich mit den Einwohnerzahlen direkt abgemüht und dann muss man die Abfrage etwas optimieren, dass sie noch durchläuft. Damit kann man aber beispielsweise dann auch die gleiche Frage für deutsche Städte mit mindestens 300.000 Einwohner beantworten.

Hier ist meine Lösung: http://tinyurl.com/yct9l5rs

Zusatzfrage: Sind alle deutschen Städte mit mindestens 100.000 Einwohner in Wikidata als Großstadt klassifiziert? Wie mache ich das in SPARQL?


#4

Hallo,
mein Versuche - sehr ähnlich zuphilips (Selbst-)Antwort. :wink:
http://tinyurl.com/yd6p55pk


#5

@LibrErli Da braucht es nur ein paar Kleinigkeiten und es funktioniert auch:

  • Sortierung absteigend (anstatt aufsteigend) kann man mit DESC(...) erreichen
  • Nicht alle deutschen Städte sind direkt als Stadt Q515 klassifiziert, sondern teilweise auch in einer Klasse, welche eine Unterklasse von Q515 ist.
  • (optional) Es sollte sich nicht um die gleiche Städte handeln, d.h. mit einem Filter kann man dies sicherstellen.

#6

Danke für die Infos. Sortierung DESC() und LIMIT 1 hatte ich schon implementiert, aber den falschen tinyurl versandt…

Zu deiner Zusatzfrage nach dt. Städten mit EW-Zahl > 100.000 auch als Großstadt klassifiziert - hier ein Versuch unter http://tinyurl.com/y93ks42y
aber irgendetwas stimmt nicht, da zB Stuttgart oder Lübeck (Q2843) alle P31 Großstadt verfügen…


#7

Das wollte ich auch erst so machen, hat aber nicht auf Anhieb geklappt und ich hatte nicht soviel Zeit. Deshalb schaue ich mir gerne dein Ergebnis an und habe zwei Fragen:

  1. Wozu das MAX? Etwa damit die Einwohnerzahl mit einem Größer-als-Filter funktioniert? (Das war nämlich ein Problem bei mir…)
  2. Was macht SAMPLE und wieso wird das hier benötigt? Die Distanzberechnung funktioniert ja theoretisch auch ohne.

#8

Ich konnte nicht umhin, die fehlenden Großststadt-Aussagen bei den NRW-Städten direkt zu ergänzen. Jetzt ist der einzige Treffer, wo der Typ tatsächlich fehlt, Bremen.


#9

Die falschen Ergebnisse bei dieser Abfrage (und meiner eigenen auch) für die Zusatzfrage ist merkwürdig. Das Problem tritt auch auf bei folgender Abfrage nach den Typen (P31) von Stuttgart (Q1022):

SELECT ?typeLabel WHERE {
  wd:Q1022 wdt:P31 ?type .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "de". }
}

wobei das lediglich “Stadt” und “Gemeinde in Deutschland” zurückgeliefert wird: http://tinyurl.com/y8dekz9h. Was ist hier los?


#10

Ohne die Gruppierung und das Verkleinern der beiden Teilresultate mit MAX sowie SAMPLE laufen meine Abfragen immer in eine Zeitüberschreitung. Im Prinzip ist die Fragestellung nicht ganz sauber, ob man alle jetzigen sowie früheren Großstädte nehmen soll (was dem MAX) entspricht, oder etwas anderes. Flensburg war beispielsweise auch einmal eine Großstadt, aber dies weiß Wikidata noch nicht:) Mit SAMPLE wird einer der Werte innerhalb der Gruppe ausgewählt und ist für die Verkleinerung des Teilresultates wichtig. Ich habe dies aus dem Beispiel http://tinyurl.com/yacwsmp2 kopiert.


#11

Es geht da also um Items geht, die mehr als eine Angabe unter P625/Geokoordinaten haben, und mit SAMPLE wird willkürlich eine Angabe ausgewählt, oder verstehe ich das falsch?


#12

ah, interessant - es werden bei den Abfragen nur jene P31 Objekte geliefert, die “preferred rank” besitzen. da scheint wohl ein standardverhalten zu sein.
Jetzt müsst’ ich nur noch herausfinden, wie eine Abfrage greift unabhängig ob preferred oder normal rank zugewiesen wurde.


#13

Genau. Diese Anfrage gibt das gewünschte Ergebnis: http://tinyurl.com/ycwtdezd


#14

Ja, mit SAMPLE wird ein beliebiger Wert zurückgegeben, vgl. https://www.w3.org/TR/sparql11-query/#defn_aggSample.