Wikidata:SPARQL query service/A gentle introduction to the Wikidata Query Service/de

Other languages:
Afrikaans • ‎Bahasa Indonesia • ‎Deutsch • ‎English • ‎Türkçe • ‎català • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎svenska • ‎русский • ‎српски / srpski • ‎українська • ‎العربية • ‎বাংলা • ‎中文 • ‎日本語

Eine behutsame Einführung in den Wikidata Query Service

Hast du dir jemals solche Fragen gestellt, wie:

  • Was sind die größten Städte der Welt, die eine weibliche Bürgermeisterin haben?
  • Welche Flughäfen sind im Umkreis von 100 Kilometer von Berlin?
  • Wer sind alle bekannten Nachfahren von Dschingis Kahn?

Wikidata kennt die Antworten!

Was ist Wikidata?

Wikidata ist ein ganzes Archiv an Wissen. Eine kleine Einführung in die Gedanken und Konzepte hinter Wikidata findest du auf der Wikidata-Einführung.

Wie stelle ich eine Frage?

Die Anfragesprache, die verwendet wird, um Wikidata Fragen zu stellen, heißt „SPARQL“. Keine Sorge, falls das zu technisch oder kompliziert ist für deinen Geschmack: Für diese kurze Einführung brauchst du nicht SPARQL zu lernen. Wir schauen uns stattdessen Beispielfragen an, und wie man diese bearbeiten kann.

Was ist eine Abfrage?

Eine Abfrage ist eine spezielle Form, eine Frage so zu formulieren, dass ein Computersystem sie verstehen und beantworten kann. Sofern du nicht einer künstlichen Intelligenz gegenübersitzt, ist es wichtig, zu wissen, wie man seine Fragen entsprechend formulieren kann.

Kann ich diese Daten frei verwenden?

Natürlich! Wikidata kann von jedem für alles verwendet werden, denn alle Informationen stehen in der Public Domain (CC0).

Was nun?

Wir werden mit einem einfachen Beispiel anfangen, um zu zeigen, wie Wikidata genutzt werden kann. Wenn wir uns später komplexere Beispiele anschauen, wirst du die Antwort auf diese Frage erhalten. Versprochen!

Wikidata für eine einfache Abfrage verwenden

Wir schauen uns ein einfaches Beispiel an, welches uns eine Liste aller bekannten Katzenarten der Welt anzeigt.

Liste aller Katzenarten weltweit

Besuche die Anfragenschnittstelle: https://query.wikidata.org Dann:

  1. Klicke auf „Beispiele“
  2. Wähle das Beispiel „Cats“ (bzw. „Katzen“) aus der Liste aus
  3. Klicke auf den Play-Knopf unter dem Eingabefeld, um die Anfrage auszuführen.

Wenn du möchtest, kannst du mit der Schaltfläche oben rechts die Sprache der Bedienelemente auf Deutsch stellen.  

So haben wir jetzt eine Liste aller bekannten und weniger bekannten Katzenarten der Welt erhalten - oder zumindest die, von denen Wikidata weiß. Das ist schon super, wenn man ein Katzenliebhaber ist. Aber was ist mit Hunden?

Und was ist mit Hunden?

Falls du die Hunde, statt Katzen, auflisten möchtest (oder was auch immer), gibt es zwei Möglichkeiten deine Abfrage abzuändern:

  1. Benutze den Query Helper ("Abfragehelfer") um das Item von "Katze" in "Zoo" zu änderen:  
  2. Die Abfrage manuell anpassen Jeder Wissensgegenstand hat in der Wikidata einen eindeutigen Zahlencode. Der Code „Q146“ steht beispielsweise für „Katze“. Um den richtigen Code für „Hund“ herauszufinden, kannst du ihn einfach in der Wikidata nachschlagen:
  1. Use autocompletion (will be covered at the end)
  2. Start with "Cat" example, remove "Q146"
  3. Place cursor after "wd:"
  4. Type "Dog" after "wd:"
  5. Press Ctrl+Space
  6. Use up/down arrows; when you hit Enter - it will be substituted with Q144
    Note: search results depend on interface language.
  1. Besuche https://www.wikidata.org
  2. Gib „Dog“ in das Suchfeld ein
  3. Klicke auf das erste erste Suchergebnis im Drop-down Menü
  4. Merke dir die Codenummer für „Dog“ auf der Wikidata-Seite, die erscheint (in diesem Fall „Q144“)

 

Jetzt kannst du einfach im SPARQL-Anfrageninterface den Code „Q146“ durch den Code „Q144“ ersetzen, und schon fragst du nach Hunden, statt nach Katzen!

Jetzt brauchst du die Anfrage nur noch auszuführen, und schon siehst du eine Liste mit allen bekannten (und weniger bekannten) Hundearten des Internets!

 

Die Anfrage unter der Lupe

Lass uns gemeinsam den Code untersuchen, um zu verstehen, wie wir ihn verallgemeinern können, um auch nach anderen Dingen zu suchen (zum Beispiel Hunde, Planeten, Länder, Musiktitel, …)

#Cats
SELECT ?item ?itemLabel
WHERE
{
	?item wdt:P31 wd:Q146 . 
	SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
  • SELECT A query SELECTs something. What exactly you want to select and display is described later, but for the time being you just state the placeholders (or variables). Here they are called ?item and ?itemLabel. You can tell that something is a variable if it starts with a question mark.
  • ?item This is the list of items we are looking for. In our case that would be the famous cats. Items on Wikidata work in many different languages, almost 300 of them. Because we don’t think that everything in the world is English and all the other languages are just special cases of English, items are stored in a way that works across languages. Every concept gets a number. Q146 is the concept of a cat, Q64 is Berlin in Germany, Q42 is the writer Douglas Adams and so on. Tip: ?item is just a variable name that we decided to use in our query. It could be anything, for example: ?animal.
  • ?itemLabel Humans can digest names in a human language much better than numbers. A label is the name of an item in a human language, e.g. English (or Esperanto, or Japanese, or Zulu…). We want the labels displayed in our query so that Q1371145 gets displayed as “Socks” (the cat belonging to Bill Clinton and family). Precise details about label service in User manual.
  • WHERE {   This is the WHERE clause of the query. Here we define what goes in the placeholders. A WHERE clause starts with an opening curly bracket { and ends with a closing curly bracket }.
  • wdt:P31 This is the predicate of the subject. If you hover over it, you’ll see that it stands for instance of.

 

  • wd:Q146 . This is the object. If you hover over it, you’ll see that it stands for cat.

 

Manchmal ist das alles etwas viel am Anfang. Dann hilft es oft, die Frage erstmal in normaler Sprache zu formulieren:

„Zeig mir eine Liste von allen Wissensgegenständen und ihren Namen, die eine Instanz von „Katze“ sind. Dann zeig mir die Namen dazu auf Englisch.“

Mit dem Beispielcode haben wir uns eine Liste aller bekannten Katzenarten erzeugen lassen. Diese Anfrage kann man natürlich ganz einfach anpassen, um sich eine ähnliche Liste für Hunde anzuzeigen.

Text to SPARQL walkthrough

The animations below show how to write triplets in natural language, and convert them into SPARQL queries.

The key is to prefix variables with ?, items with wd: and properties with wdt:, and then using the Ctrl+Space (or Ctrl+Alt+Space or Alt+Enter) keyboard shortcut to activate the auto-completion feature that replaces the latter two with the actual Wikidata identifiers.

 

 

Die Benutzeroberfläche

Die Anzeigesprache der Ergebnisse ändern

Mit der Anfrageschnittstelle von Wikidata kannst du nicht nur einfache oder komplizierte Anfragen stellen, du kannst sogar in jeder beliebigen Sprache suchen, und dir auch die Ergebnisse in jeder beliebigen Sprache anzeigen lassen!

  • Du kannst dazu den Standard-Sprachcodes von „en“ für Englisch in jede beliebige andere Sprache ändern, zum Beispiel „ja“ für Japanisch.
#Cats  
SELECT ?item ?itemLabel WHERE
{
     ?item wdt:P31 wd:Q146 .
     SERVICE wikibase:label { bd:serviceParam wikibase:language "ja" }
}

Die Sortierreihenfolge der Ergebnisse beeinflussen

Die Sortierreihenfolge der angezeigten Elemente kann ebenfalls einfach geändert werden. Es genügt, einfach auf die entsprechende Spalte zu klicken, um die Sortierreihenfolge anzupassen.

 

Die Sprache der Benutzeroberfläche ändern

Du kannst die Sprache der Benutzeroberfläche ändern, indem du einfach auf das Wort „Englisch“ klickst und die entsprechende Sprache auswählst.

 

Anschließend werden die Bedienelemente in der ausgewählten Sprache angezeigt.

Ich will Fotos sehen! Kann man auch nach Bildern suchen?

Bisher haben wir uns die Ergebnisse nur als Tabelle anzeigen lassen. Aber Bilder sind genauso möglich:

Klicke erneut auf die Schaltfläche „Beispiele“, und wähle diesmal den Eintrag „Even more cats, with pictures“. Du kannst das Beispiel anschließend einfach ausführen, und solltest nun im unteren Bildschirmbereich Katzenfotos angezeigt bekommen.#

 

So wird die Ausgabe in Form von Bildern anstelle einer Tabelle angefordert. Du kannst mit dem Menü „Display“ in der unteren rechten Ecke selber einstellen, wie du deine Ergebnisse sehen willst. Probiere doch mal, die Ausgabe zurück auf „Tabelle“ zu stellen, um dasselbe Ergebnis in einer Tabelle zu sehen!

Let’s have a look at what’s new in the query, compared to the query in the previous chapter. Written in plain English, the query would read “Give me all items that have something to do with cats. Also give me the image for each item. And by the way, display the result as a grid of images, not as a table.”

  • #defaultView:ImageGrid What looks like a comment, is actually an instruction to display the query result as images instead of a table.
  • ?x1 This means that we query for any predicate, not only for “is an instance of”. Think of predicates like “depicts” (P180) or “is named after” (P138). We are not using ?x1 anywhere else in the query, meaning the placeholder stands for “I don’t care what the predicate is, give me all results that somehow have a cat as the subject”
  • OPTIONAL Inside the curly braces you see another statement that adds optional data to the result. The placeholder ?item is reused and coupled with the predicate P18 (meaning “(has) image” and a new placeholder ?pic. Wrapping the statement with OPTIONAL means that items do not necessarily have to have a P18 predicate to show up in the list and that the ?pic placeholder can be empty.

Try modifying the query:

  • Search for dogs instead of cats. Hint: Change the Object part of the first statement in WHERE.
  • Only show items that “depict” cats (you’ll get paintings). Hint: replace ?x1 with something else.
  • Remove the OPTIONAL

There are other ways to show your data, but not all of them are always applicable, which is why some are greyed out in the menu. “Image map” is only selectable if the result data actually contains image URLs. In one of the following chapters you’ll learn how to display items as points on a map.

Wie kann ich eine Anfrage mit anderen teilen?

Wenn du deine Anfrage und das Ergebnjs an jemanden weiterleiten möchtest, zum Beispiel über E-Mail oder ein soziales Netzwerk, kannst du ganz einfach einen kurzen Link für deine Anfrage erzeugen:

  • Schließe zunächst deine Anfrage ab, und mache alle gewünschten Änderungen
  • Dann verwende das Symbol für „Link“:
  • Die angezeigte URL kannst du einfach kopieren, sie führt den Nutzer auf genau deine Anfrage.

Wie kann ich mir Orte auf einer Karte anzeigen lassen?

Natürlich gibt es noch weitere Wege, sich die Ergebnisse einer Anfrage anzeigen zu lassen. Wenn du zum Beispiel nach Geokoordinaten suchst, kannst du dir die Antwort auf deine Frage ganz einfach auf einer Karte anzeigen lassen:

Look at this example of lighthouses in Norway. When you run the query, you’ll see red dots that mark the location of lighthouses on the Norwegian coast.


Using the Explorer Dialog

Once the results of a query have loaded, you can see a magnifying glass icon on each result. Clicking this icon opens the Explorer Dialog.

 

The explorer dialog by default, displays a single node representing that particular result. Below the node, you can see a toggle that defaults to ‘Outgoing’. This means that clicking on any node will expand all the properties of that node, from the entire Wikidata knowledge base. Toggling this to ‘Incoming’ allows you to see all the incoming links or properties that point to the node. This is a way to explore all the relationships between the various items and their properties using Wikidata.

 

You can open multiple explorer dialogs at once, allowing you to compare the results of more than one query at once. The explorer dialog also has a toolbar at the bottom right corner which is used to switch between multiple views like Graph, Tree, Map, Table etc.

Und das ist noch nicht alles!

Es gibt noch andere Visualisierungen zu entdecken:

Schau dir die Query-Beispiele an und probiere sie selbst aus!

Auto-Vervollständigen

Im Editor kannst du die Auto-Vervollständigung benutzen: Dazu drücke einfach die Tasten Strg+Leerzeichen auf deiner Tastatur irgendwo in deiner Anfrage, und du bekommst Vorschläge, welcher Code passend sein könnte. Den gewünschten Vorschlag kannst du mit den Pfeiltasten auswählen und mit Enter direkt einfügen.

For example, instead of writing out SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } every time, you can just type SERV, hit Ctrl+Space, and the first suggestion will be that complete label service incantation, ready for use! Just hit Enter to accept it. (The formatting will be a bit different, but that doesn’t matter.)

And autocompletion can also search for you. If you type one of the Wikidata prefixes, like wd: or wdt:, and then just write text afterwards, Ctrl+Space will search for that text on Wikidata and suggest results. wd: searches for items, wdt: for properties. For example, instead of looking up the items for Johann Sebastian Bach (Q1339) and father (P22), you can just type wd:Bach and wdt:fath and then just select the right entry from the autocompletion. (This even works with spaces in the text, e. g. wd:Johann Sebastian Bach.)

NB: For ChromeOS and MacOS users: the shortcuts Ctrl+Alt+Space and Alt+Enter should also work.

Wie geht es weiter?

Jetzt hast du das Handwerkszeug gelernt, um deinen Weg durch die Anfrageschnittstelle selbst zu finden. Einfach Sachen auszuprobieren, zum Beispiel Werte in der Anfrage zu ändern und zu sehen was passiert, hilft meistens am besten, zu lernen, wie du mit Wikidata Antworten auf deine Fragen findest.