Wikidata Query Service/User Manual/de

Der Wikidata Query Service (WDQS) ist ein Softwarepaket und öffentlicher Dienst, der einen SPARQL-Endpunkt zur Abfrage des Wikidata-Datensets bieten soll.

Diese Seite oder andere relevante Dokumentationsseiten werden entsprechend aktualisiert; es wird empfohlen, dass du sie beobachtest, wenn du den Dienst nutzt.

Du kannst dir Beispiele für SPARQL-Abfragen auf der SPARQL-Beispielseite ansehen.

Datensatz
Der Wikidata Query Service arbeitet mit einem Datensatz von Wikidata.org, der, wie in der Dokumentation des RDF-Dump-Formats beschrieben, in RFD dargestellt wird.

Der Datensatz des Dienstes stimmt nicht exakt mit dem Datensatz überein, der von RDF-Dumps erzeugt wird, hauptsächlich aus Gründen der Performance; Die Dokumentation beschreibt eine kleine Reihe von Unterschieden.

Du kannst dir einen wöchentlichen Dump der gleichen Daten herunterladen:

https://dumps.wikimedia.org/wikidatawiki/entities/

Grundlagen - SPO (Subjekt, Prädikat, Objekt; auch bekannt als semantisches Tripel) verstehen
SPO oder "Subjekt, Prädikat, Objekt" ist bekannt als ein Tripel und wird in Wikidata häufig als Aussage über Daten bezeichnet.

Die Aussage "Die Hauptstadt der Vereinigten Staaten ist Washington, D.C." besteht aus dem Subjekt "Vereinigte Staaten" (Q30), dem Prädikat "Hauptstadt" (P36) und einem Objekt "Washington, D.C." (Q61). Diese Aussage kann in Form von drei URIs dargestellt werden:

Dank den Präfixen (siehe unten) kann die gleiche Aussage in einer prägnanteren Form geschrieben werden. Beachte, dass der Punkt am Ende das Ende der Aussage repräsentiert.

/entity/ (wd:) steht für ein Wikidata-Datenobjekt (Werte mit einer Q-Nummer). /prop/direct/ (wdt:) ist eine "wahre" Eigenschaft — ein Wert, den wir am häufigsten erwarten würden, wenn wir uns die Aussage ansehen. Die wahren Eigenschaften werden benötigt, da manche Aussagen "wahrer" sein können, als andere. Beispielsweise ist die Aussage "Die Hauptstadt der Vereinigten Staaten ist New York City" wahr — jedoch nur im historischen Kontext des Jahres 1790. WDQS nutzt Ränge, um zu bestimmen, welche Aussagen als "wahr" genutzt werden sollen.

Zusätzlich zu den wahren Aussagen speichert der WDQS alle Aussagen (wahre und unwahre), jedoch nutzen sie nicht das gleiche Präfix wdt:. Die Hauptstadt der Vereinigten Staaten hat drei Werte: Washington, D.C., Philadelphia, und New York City. Und jeder von diesen Werten hat "Qualifikatoren" - zusätzliche Informationen, wie Start- und Enddatum, was den Umfang jeder Aussage einengt. Um diese Informationen als Tripel zu speichern, hat der WDQS ein automatisches "Aussagen"-Subjekt eingefügt, was im Wesentlichen eine zufällige Zahl ist:

Siehe SPARQL-Tutorial - Qualifikatoren für weitere Informationen.

SPO wird auch als Form eines grundlegenden Syntax-Layouts zur Abfrage von RDF-Datenstrukturen, Graph-Daten oder einem Tripelspeicher, wie dem Wikidata Query Service (WDQS), der auf Blazegraph, einer Graph-Datenbank mit hoher Performance, läuft, genutzt.

Fortgeschrittene Nutzungen eines Tripels (SPO) umfassen die Nutzung von Tripels als Objekten oder Subjekten anderer Tripel!

Grundlagen - Präfixe verstehen
Die Subjekte und Prädikate (erster und zweiter Wert des Tripels) müssen immer als URIs gespeichert werden. Wenn das Subjekt beispielsweise das Universum (Q1) ist, wird es als    gespeichert. Präfixe ermöglichen es uns, diesen langen URI in einer kürzeren Form zu schreiben: wd:Q1. Im Gegensatz zu Subjekten und Prädikaten kann das Objekt (dritter Wert des Tripels) entweder ein URI oder ein Wort sein, z.B. eine Zahl oder eine Zeichenkette.

WDQS versteht viele Abkürzungen, bekannt als Präfixe. Manche sind Wikidata-intern, z.B. wd, wdt, p, ps, bd, und manche sind häufig genutzte externe Präfixe, wie rdf, skos, owl, schema.

In der folgenden Abfrage suchen wir Datenobjekte mit der Aussage "P279 = Q7725634" oder vollständiger ausgedrückt Subjekte, die ein Prädikat "Unterklasse von" mit einem Objekt = "literarisches Werk" haben.

Die Ausgabe-Variablen:

Erweiterungen
Der Abfragedienst unterstützt die folgenden Erweiterungen der Standard-SPARQL-Fähigkeiten:

Bezeichnungs-Dienst
Du kannst die Bezeichnung, Alias oder Beschreibung von Einträgen unter Berücksichtigung der Sprach-Rückfallkette erhalten, indem du den spezialisierten Dienst mit dem URI  nutzt. Dieser Dienst ist sehr hilfreich, wenn du Bezeichnungen abrufen möchtest, da er die Komplexität von SPARQL-Abfragen, die du sonst benötigen würdest, um das gleiche Ergebnis zu erzielen, reduziert.

Der Dienst kann in zwei unterschiedlichen Modi genutzt werden: manuell und automatisch.

Im automatischen Modus musst du nur die Vorlage des Dienstes angeben, z.B.:

Der WDQS generiert dann automatisch wie folgt Bezeichnungen:


 * Wenn eine ungebundene Variable in  den Namen   hat, produziert WDQS die Bezeichnung  für den Eintrag in der Variable.
 * Wenn eine ungebundene Variable in  den Namen   hat, produziert WDQS das Alias  für den Eintrag in der Variable.
 * Wenn eine ungebundene Variable in  den Namen   hat, produziert WDQS die Beschreibung  für den Eintrag in der Variable.

In jedem Fall sollte die Variable in  gebunden sein, da der Dienst andernfalls fehlschlägt.

Der automatische Modus prüft nur die Projektion der Abfrage – beispielsweise wird in  nur die erste Bezeichnung erkannt und   wird im automatischen Modus überhaupt nicht unterstützt. In solchen Fällen musst du den manuellen Modus nutzen (siehe unten).

Du kannst deine bevorzugte(n) Sprache(n) für die Bezeichnung mit einem oder mehreren -Tripeln angeben. Jede Zeichenkette kann einen oder mehrere Sprachcodes enthalten, die durch ein Komma getrennt werden. WDQS betrachtet Sprachen in der Reihenfolge, in der du sie angegeben hast. Wenn in keiner der angegeben Sprachen eine Bezeichnung verfügbar ist, ist die Q-ID des Eintrags (ohne Präfix) seine Bezeichnung.

Die Webseite des Wikidata Query Service ersetzt automatisch  durch den Sprachcode der aktuellen Benutzeroberfläche des Benutzers. Wenn beispielsweise die Benutzeroberfläche des Benutzers in Französisch ist, wird der SPARQL-Code  in   umgewandelt, bevor er an den Abfragedienst gesendet wird.

Beispiel, das die Liste von US-Präsidenten und ihren Ehepartnern zeigt:

In diesem Beispiel erstellt WDQS automatisch die Bezeichnungen  und   für Eigenschaften.

Im manuellen Modus bindest du die Variablen für die Bezeichnung explizit im Anrufdienst, jedoch wird WDQS weiterhin Sprach-Auflösungen und die Sprach-Rückfallkette anbieten. Beispiel:

Dabei werden Bezeichnungen und Beschreibungen in Französisch, Deutsch und Englisch berücksichtigt und sofern keine verfügbar ist, die Q-ID als Bezeichnung genutzt.

Geodaten-Suche
Der Dienst erlaubt es, nach Datenobjekten mit Koordinaten zu suchen, die sich in einem bestimmten Radius um einen Punkt oder innerhalb einer Box befinden.

Suche um einen Punkt
Beispiel:

Die erste Zeile des Anrufs an den -Dienst muss das Format       haben, wobei das Ergebnis der Suche   an Datenobjekte am angegebenen Ort und   an deren Koordinaten bindet. Die unterstützten Parameter sind:

Suche in einer Box
Beispiel einer Box-Suche:

oder:

Koordinaten können direkt angegeben werden:

Die erste Zeile des Anrufs an den -Dienst muss das Format       haben, wobei das Ergebnis der Suche   an Datenobjekte am angegebenen Ort und   an deren Koordinaten bindet. Die unterstützten Parameter sind:

und  sollten zusammen genutzt werden, ebenso wie   und   und können nicht gemischt werden. Wenn die Prädikate  ist   genutzt werden, wird angenommen, dass die Punkte die Diagonale der Box sind und die Ecken werden dementsprechend abgeleitet.

Entfernungs-Funktion
Die Funktion  gibt die Entfernung zwischen zwei Punkten auf der Erde in Kilometern aus. Nutzungsbeispiel:

Koordinaten-Funktionen
Die Funktionen,   und   geben Teile der Koordinaten aus - Globus-URI, Breitengrad und Längengrad.

URL-Entschlüsselungs-Funktionen
Die Funktion  dekodiert (d.h. sie macht die Prozentkodierung rückgängig) eine gegebene URI-Zeichenkette. Dies kann nötig sein, wenn Wikipedia-Titel (die kodiert sind) in Zeichenketten umgewandelt werden. Diese Funktion ist ein Gegenstück zur SPARQL-Funktion encode_for_uri.

Automatische Präfixe
Die meisten Präfixe, die in üblichen Abfragen genutzt werden, werden von der Maschine genutzt, ohne dass sie explizit angegeben werden müssen.

Erweiterte Daten
Der Dienst unterstützt Datumswerte vom Typ  in einer Zeitspanne von 290 Milliarden Jahren in der Vergangenheit und der Zukunft mit einer Auflösung von einer Sekunde. WDQS speichert die Daten als 64-Bit-Zahl seit Beginn der Unixzeit.

Blazegraph-Erweiterungen
Die Blazegraph-Plattform, auf der WDQS implementiert wurde, hat ihre eigene SPARQL-Erweiterung. Dazu gehören unterschiedliche Graph-Durchlaufalgorithmen, die im Blazegraph-Wiki dokumentiert sind, darunter BFS, shortest path, CC und PageRank-Implementierungen.

Bitte sieh dir auch die Blazegraph-Dokumentation zu Abfragehinweisen an, um Informationen darüber zu erhalten, wie man die Ausführung von Abfragen und unterschiedliche Aspekte der Maschine kontrolliert.

Es gibt im BlazeGraph-Wiki keine Dokumentation über die bd:sample-Erweiterung. Sie ist nur in einem Kommentar im Code dokumentiert.

Vereinigung
Wir erlauben SPARQL-Vereinigungsabfragen, eine ausgewählte Anzahl externer Datenbanken anzurufen. Siehe bitte die vollständige Liste von Vereinigungsendpunkten auf der entsprechenden Seite.

Beispiel-Vereinigungsabfrage:

Bitte beachte, dass die Datenbanken, die die Vereinigungsendpunkte bedienen, Ontologien verwenden, die sich stark von denen in Wikidata unterscheiden können. Siehe bitte die Links zu den Eigentümer-Dokumentationen, um mehr über die Ontologien und den Datenzugriff auf diese Datenbanken zu erfahren.

MediaWiki API
Siehe bitte die vollständige Beschreibung auf der Dokumentationsseite zum MediaWiki-API-Dienst.

Der MediaWiki-API-Dienst erlaubt es, aus SPARQL die MediaWiki-API anzurufen und die Ergebnisse aus der SPARQL-Abfrage zu erhalten. Beispiel (findet Kategoriemitglieder):

Wikimedia-Dienst
Wikimedia betreibt den öffentlichen Dienst WDQS, der auf http://query.wikidata.org/ genutzt werden kann.

Die Ausführungszeit für die Abfrage über den öffentlichen Endpunkt ist auf 60 Sekunden begrenzt. Dies gilt sowohl für das GUI als auch für den öffentlichen SPARQL-Endpunkt.

GUI
Die GUI auf http://query.wikidata.org/ erlaubt es dir, SPARQL-Abfragen zu bearbeiten und an die Abfragemaschine zu übermitteln. Die Ergebnisse werden als HTML-Tabelle angezeigt. Beachte, dass jede Abfrage eine einzigartige URL hat, die als Lesezeichen zur späteren Verwendung gespeichert werden kann. Wenn du auf diese URL gehst, wird die Abfrage im Bearbeitungsfenster erscheinen, sie wird jedoch nicht ausgeführt - du musst dafür weiterhin auf "Ausführen" klicken.

Du kannst auch über einen Kurz-URL-Dienst eine Kurz-URL für die Abfrage generieren, indem du auf den Link "Kurz-URL erzeugen" auf der rechten Seite klickst - dadurch wird die verkürzte URL für die aktuelle Abfrage erzeugt.

Die Schaltfläche "Präfixe hinzufügen" generiert den Header, der Standard-Präfixe für SPARQL-Abfragen enthält. Die vollständige Liste von Präfixen, die nützlich sein kann, ist in der Dokumentation des RDF-Formats zu finden. Beachte, dass die am häufigsten verwendeten Präfixe automatisch funktionieren, da WDQS sie automatisch unterstützt.

Die GUI besitzt auch einen einfachen Eintrags-Explorer, der aktiviert werden kann, indem man auf das Symbol "🔍" neben dem Eintragsergebnis klickt. Durch Klicken auf die Q-ID des Eintrags selbst gelangt man auf die Seite des Eintrags auf wikidata.org.

Standard-Ansichten

 * Hauptartikel: wikidata:Special:MyLanguage/Wikidata:SPARQL query service/Wikidata Query Help/Result Views

Wenn du die Abfrage im WDQS-GUI ausführst, kannst du auswählen, in welcher Ansicht die Ergebnisse angezeigt werden, indem du einen Kommentar einfügst:  am Anfang der Abfrage.

Einen Titel anzeigen
Wenn du die Abfrage im WDQS-GUI ausführst, kannst du über den Ergebnissen einen Titel anzeigen, indem du einen Kommentar einfügst:  am Anfang der Abfrage.

SPARQL-Endpunkte
SPARQL-Abfragen können mit einer GET- oder POST-Abfrage an  direkt an den SPARQL-Endpunkt übermittelt werden.

Bei GET-Abfragen ist die Abfrage im Format  in der URL enthalten, z.B..

Bei POST-Abfragen kann die Abfrage alternativ im Körper der Abfrage enthalten sein, statt in der URL, was es ermöglicht, längere Abfragen auszuführen, ohne die URL-Beschränkungen zu erreichen. (Beachte, dass der POST-Körper weiterhin das Präfix  enthalten muss (es sollte also   statt   sein), und die SPARQL-Abfrage URL-encodiert sein muss.)

Das Ergebnis wird standardmäßig als XML ausgegeben oder als JSON, wenn entweder der Parameter  in der URL enthalten ist oder der Header   mit der Abfrage übergeben wird.

Das JSON-Format ist standardmäßig das SPARQL-1.1-Abfrageergebnis-JSON-Format.

Es wird empfohlen, GET für kleinere Abfragen zu nutzen und POST für größere Abfragen, da POST-Abfragen nicht zwischengespeichert werden.

Unterstützte Formate
Die folgenden Ausgabeformate werden derzeit vom SPARQL-Endpunkt unterstützt:

Abfragelimits
Es ist ein hartes Abfragelimit konfiguriert, das bei 60 Sekunden liegt. Es gibt auch die folgenden Limits:


 * Ein Klient (User Agent + IP) darf alle 60 Sekunden 60 Sekunden Verarbeitungszeit nutzen
 * Ein Klient darf 30 fehlerhafte Abfragen je Minute stellen

Klienten, die die obigen Limits überschreiten, werden mit dem HTTP-Code  gedrosselt. Nutze -Header, um zu sehen, wann die Abfrage wiederholt werden kann. Wenn der Klient 429 Antworten ignoriert und damit fortfährt, Abfragen zu stellen, die die Limits überschreiten, kann er temporär von dem Dienst ausgeschlossen werden. Klienten, die nicht die User-Agent-Richtlinie beachten, können vollständig gesperrt werden – stelle sicher, einen guten -Header abzusenden.

Jede Abfrage wird ein Timeout erzeugen, wenn ihre Ausführung länger dauert als das konfigurierte Abfragelimit. Möglicherweise möchtest du die Abfrage optimieren oder eine problematische Abfrage hier melden.

Beachte auch, dass der Zugang auf den Dienst derzeit auf 5 parallele Abfragen je IP beschränkt ist. Die obigen Limits können sich abhängig von Ressourcen und Nutzungsmustern ändern.

Abfrageerklärung
Blazegraph erlaubt es, Abfrageanalysen anzuzeigen, die erklären, wie die Abfrage geparst wurde und welche Optimierungen angewendet wurden. Um diese Information zu sehen, füge -Parameter zur Abfragezeichenkette hinzu, zum Beispiel:.

Namensräume
Die Daten im Wikidata Query Service umfassen den Hauptnamensraum, an den Abfragen an den Haupt-SPARQL-Endpunkt geleitet werden, sowie andere Hilfsnamensräume, die unten aufgeführt sind. Um Daten aus einem anderen Namensraum abzufragen, nutze die Endpunkt-URL https://query.wikidata.org/bigdata/namespace/NAMESPACENAME/sparql.

Kategorien
Siehe bitte die vollständige Beschreibung auf der Kategorien-Dokumentationsseite.

Der Wikidata Query Service bietet auch Zugriff auf den Kategorien-Graph ausgewählter Wikis. Die Liste der Wikis kann hier eingesehen werden: https://noc.wikimedia.org/conf/dblists/categories-rdf.dblist

Der Name des Kategorienamensraums ist. Der SPARQL-Endpunkt für den Zugriff darauf ist https://query.wikidata.org/bigdata/namespace/categories/sparql.

Siehe bitte die Kategorienseite für eine detailliertere Dokumentation.

DCAT-AP
Die DCAT-AP-Daten für Wikidata sind als SPARQL über den Endpunkt https://query.wikidata.org/bigdata/namespace/dcatap/sparql verfügbar.

Die Quelle für die Daten ist: https://dumps.wikimedia.org/wikidatawiki/entities/dcatap.rdf

Beispiel-Abfrage um Daten abzurufen:

Linked-Data-Fragments-Endpunkt
Wir unterstützen auch die Abfrage der Datenbank über die Triple-Pattern-Fragments-Oberfläche. Dies ermöglicht es, einfach und effizient Tripel-Daten zu finden, bei denen ein oder zwei Teile des Tripels bekannt sind, wenn du alle Tripel abrufen musst, die dieser Vorlage entsprechen. Siehe die weiteren Informationen auf der Seite von Linked Data Fragments.

Auf die Oberfläche kann über folgende URL zugegriffen werden:. Dieser Dienst ist auf der Blazegraph-Datenbank implementiert, sodass er die gleiche Verzögerung wie der Query Service hat. Beispielabfragen:


 * https://query.wikidata.org/bigdata/ldf?subject=http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ146 - alle Tripel mit dem Subjekt
 * https://query.wikidata.org/bigdata/ldf?subject=&predicate=http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23label&object=%22London%22%40en - alle Tripel, die die englische Bezeichnung "London" haben

Beachte, dass derzeit nur vollständige URLs für die Parameter,   und   unterstützt werden.

Standardmäßig wird die HTML-Oberfläche angezeigt, es sind jedoch viele Datenformate verfügbar, die über den -HTTP-Header definiert werden.

Die Daten werden auf Seiten ausgegeben, wobei eine Seite 100 Tripel umfasst. Die Seiten sind nummeriert, beginnend mit 1 und die Seitenzahl wird über den Parameter  definiert.

Eigenständiger Dienst
As the service is open source software, it is also possible to run the service on any user's server, by using the instructions provided below.

The hardware recommendations can be found in Blazegraph documentation.

If you plan to run the service against non-Wikidata Wikibase instance, please see further instructions.

Installieren
In order to install the service, it is recommended that you download the full service package as a ZIP file, e.g. from Maven Central, with group ID  and artifact ID " ", or clone the source distribution at https://github.com/wikimedia/wikidata-query-rdf/ and build it with "mvn package". The package ZIP will be in the  directory under.

The package contains the Blazegraph server as a .war application, the libraries needed to run the updater service to fetch fresh data from the wikidata site, scripts to make various tasks easier, and the GUI in the  subdirectory. If you want to use the GUI, you will have to configure your HTTP server to serve it.

By default, only the SPARQL endpoint at http://localhost:9999/bigdata/namespace/wdq/sparql is configured, and the default Blazegraph GUI is available at http://localhost:9999/bigdata/. Note that in the default configuration, both are accessible only from localhost. You will need to provide external endpoints and an appropriate access control if you intend to access them from outside.

Using snapshot versions
If you want to install an un-released snapshot version (usually this is necessary if released version has a bug which is fixed but new release is not available yet) and do not want to compile your own binaries, you can use either:
 * https://github.com/wikimedia/wikidata-query-deploy - deployment repo containing production binaries. Needs  working. Check it out and do " ".
 * Archiva snapshot deployments at https://archiva.wikimedia.org/#artifact/org.wikidata.query.rdf/service - choose the latest version, then Artifacts, and select the latest package for download.

Daten laden
Further install procedure is described in detail in the Getting Started document which is part of the distribution, and involves the following steps:


 * 1) Download recent RDF dump from https://dumps.wikimedia.org/wikidatawiki/entities/ (the RDF one is the one ending in  ).
 * 2) Pre-process data with the   script. This creates a set of TTL files with preprocessed data, with names like , etc. See options for the script below.
 * 3) Start Blazegraph service by running the   script.
 * 4) Load the data into the service by using  . Note that loading data is usually significantly slower than pre-processing, so you can start loading as soon as several preprocessed files are ready. Loading can be restarted from any file by using the options as described below.
 * 5) After all the data is loaded, start the Updater service by using.

Kategorien laden
If you also want to load category data, please do the following:


 * 1) Create namespace, e.g.  :
 * 2) Load data into it:

Note that these scripts only load data from Wikimedia wikis according to Wikimedia settings. If you need to work with other wiki, you may need to change some variables in the scripts.

Skripte
The following useful scripts are part of the distribution:

munge.sh
Pre-process data from RDF dump for loading.

Beispiel:

loadData.sh
Load processed data into Blazegraph. Requires  to be installed.

Beispiel:

runBlazegraph.sh
Run the Blazegraph service.

Beispiel:

Inside the script, there are two variables that one may want to edit: Also, the following environment variables are checked by the script (all of them are optional):

runUpdate.sh
Run the Updater service.

It is recommended that the settings for the  and   options (or absence thereof) be the same for munge.sh and runUpdate.sh, otherwise data may not be updated properly.

Beispiel:

Also, the following environment variables are checked by the script (all of them are optional):

Aktualisierungsoptionen
The following options works with Updater app.

They should be given to the  script as additional options after , e.g.:.

Konfigurierbare Eigenschaften
The following properties are configurable via adding them to the script run command in the scripts above:

Fehlende Funktionen
Below are features which are currently not supported:


 * Redirects are only represented as owl:sameAs triple, but do not express any equivalence in the data and have no special support.

Kontakt
If you notice anything wrong with the service, you can contact the Discovery team by email on the list  or on the IRC channel.

Bugs can also be submitted to and tracked on the Discovery Phabricator board.

Siehe auch

 * WDQ to SPARQL syntax translator
 * SPARQL Query examples
 * Discovery team
 * WDQS Implementation notes
 * An introduction to SPARQL query syntax