Wikidata Toolkit

This page is a translated version of the page Wikidata Toolkit and the translation is 100% complete.

Das Wikidata Toolkit ist eine Open-Source-Java-Bibliothek zur Nutzung von Daten aus Wikidata und anderen Wikibase-Seiten. Sein Hauptziel ist es, es für externe Entwickler einfach zu machen, diese Daten in ihren eigenen Anwendungen zu nutzen. Das Projekt begann Anfang 2014 und wurde von einem Individual Engagement Grant der Wikimedia Foundation unterstützt. Der ursprüngliche Projektvorschlag sah Funktionen zum Herunterladen von Daten aus Dumps oder der MediaWiki Action API vor, sowie Abfrage-Funktionen für den Zugriff auf die Daten und deren Analyse.

Diese Seite und ihre Unterseiten stellen die Haupt-Zugangspunkte zur Dokumentation und Ressourcen zum Wikidata Toolkit dar.

Was ist Wikidata? Was ist Wikibase?

Wikidata ist ein Projekt der Wikimedia Foundation, dessen Anspruch es ist, Daten aus allen Wikipedias und vielen anderen Projekten an einem Ort zu sammeln. Es ist ein Wiki und jeder kann die Daten bearbeiten. Wenn du mehr über das Projekt, seine Ziele, Inhalt und Entwicklung erfahren möchtest, ist der einleitende Artikel Wikidata: A Free Collaborative Knowledge Base ein guter Startpunkt. Weitere Details finden sich auf den Projektseiten auf wikidata.org.

Die Software, die genutzt wird, um die Seite zu betreiben, ist Wikibase. Dies ist eine Erweiterung der MediaWiki-Software, die weiterhin zugrunde liegt. Wikidata enthält jedoch neben den Datenseiten, die den größten Teil des Inhalts ausmachen, auch viele Wikitextseiten, die nebeneinander existieren. Es ist möglich, Wikibase auf anderen Seiten zu nutzen (das erste Beispiel dafür ist das Wiki des EAGLE-Projekts). Das Wikidata Toolkit wurde so geschrieben, dass es auch diese Seiten unterstützt.

Wie man das Wikidata Toolkit nutzt

Derzeit gibt es zwei Hauptmöglichkeiten, das Wikidata Toolkit zu nutzen:

  1. Als Java-Bibliothek, um Wikidata-Inhalte in deiner Anwendung zu verarbeiten
  2. Als eigenständiger Kommandozeilen-Client, um Wikidata-Inhalte zu verarbeiten

Der Rest dieser Seite konzentriert sich auf die Nutzung in Java. Für weitere Informationen zur Nutzung des Clients, siehe die Wikidata-Toolkit-Client-Dokumentation. Die aktuelle Version von Wikidata Toolkit kann genutzt werden, um automatisch Dump-Dateien von Wikidata.org in Java herunterzuladen und zu verarbeiten. Dies ist nützlich, wenn du alle Daten in Wikidata.org in einem Streaming-Modus in Java verarbeiten möchtest. Erweiterte Abfragemöglichkeiten werden in zukünftigen Versionen hinzugefügt werden.

Ein Beispiel dazu, wie man das Wikidata Toolkit in einem Java-Projekt nutzt, findet sich im Wikidata-Beispielprojekt. Es enthält eine Reihe von Beispielprogrammen und Bots, die grundlegende Funktionen demonstrieren. Das Folgende ist eine Auswahl; für vollständige Details siehe die Beispiel-Dokumentation.

  • FetchOnlineDataExample liest einige Live-Daten aus Wikidata.org aus (ohne dass zuerst eine Dump-Datei heruntergeladen werden müsste).
  • EditOnlineDataExample schreibt Daten nach test.wikidata.org. Es wird gezeigt, wie man neue Datenobjekte erstellt und vorhandene Aussagen bearbeitet. Das Wikidata Toolkit legt doppelte Aussagen für dich zusammen und kombiniert ihre Fundstellen.
  • EntityStatisticsProcessor erstellt einige einfache Statistiken der aktuellen Dumps. Dafür muss zuerst eine Dump-Datei heruntergeladen werden (dies wird nur einmal für jeden Dump durchgeführt).
  • GreatestNumberProcessor Welche Fernsehserie hatte die größte Episodenanzahl? Finde es mit diesem einfachen Programm heraus, das die Daten für den größten Wert einer Eigenschaft sucht.
  • LifeExpectancyProcessor zeigt die durchschnittliche Lebenserwartung von Personen in Wikipedia an und erstellt eine CSV-Datei, die du in einer Tabelle öffnen kannst, um ein Diagramm zu erzeugen – die Ergebnisse sind überraschend. Zeigt auch, wie man mit Zeiten umgeht.
  • GenderRatioProcessor Inspiriert vom Werk von Max Klein, analysiert dieses Programm die Verbreitung von Geschlechtern in Wikipedia und anderen Wikimedia-Projekten. Auch hier können aus der erhaltenen Tabelle im CSV-Format überraschende Ergebnisse gewonnen werden.
  • JsonSerializationProcessor Dieses Programm liest die Dumps und schreibt die Daten in eine Ausgabe-Datei, wobei das Standard-JSON-Format genutzt wird. Wenn du es etwas veränderst, kannst du Dateien erstellen, die nur ausgewählte Objekte enthalten, welche von Skripten genutzt werden können, die das JSON-Format verstehen.
  • SitelinksExample Das Wikidata Toolkit kann auch genutzt werden, um Links auf Wikimedia-Projekte aufzulösen, z.B. um die URL eines Artikels im deutschsprachigen Wikivoyage zu finden. Dieses Beispiel zeigt, wie man dies macht.
  • RdfSerializationExample Beispielprogramm, dass die früheren RDF-Exporte von Wikidata erstellt (bitte nutze die von Wikibase erzeugten Dumps). Solche Exporte können auch über den Wikidata Toolkit Client erstellt werden.
  • OnlineMediaInfoExample Beispielprogramm, um Daten aus den MediaInfo-Einträgen in Wikimedia Commons und Wikidata-Datenobjekten abzurufen.
  • EditOnlineMediaInfoExample Beispielprogramm, um MediaInfo in Wikimedia Commons zu bearbeiten.

Das Code-Repositorium enthält weitergehende Dokumentation dazu, wie diese Beispiele ausgeführt werden.

Download und Installation

Die aktuelle Version des Wikidata Toolkits ist Version 0.14.4. Der einfachste Weg zur Nutzung der Bibliothek ist Maven. Maven-Benutzer müssen folgende Abhängigkeit zu den Abhängigkeiten in ihrer pom.xml-Datei hinzufügen:

<dependency>
	<groupId>org.wikidata.wdtk</groupId>
	<artifactId>wdtk-dumpfiles</artifactId>
	<version>0.14.4</version>
</dependency>

Du musst Java 8 oder höher oder eine aktuelle Version von Android SDK verwenden. Wenn du Maven aus Eclipse nutzt, musst du möglicherweise deine Maven-Konfiguration ändern (siehe die Einsteiger-Anleitung unten).

Derzeit sind die folgenden Maven-Module (Artifakte) verfügbar:

  • wdtk-wikibaseapi: Liest und schreibt Daten in Wikidata oder jede andere Wikibase-Seite über die MediaWiki Action API. Dies kann genutzt werden, um Java-basierte Bots für Wikidata zu schreiben oder einfach, um Live-Daten in einem Programm zu erhalten. Beispielprogramme sind dazu verfügbar, wie man Daten mit dieser Bibliothek liest und schreibt.
  • wdtk-dumpfiles: Lädt Dump-Dateien herunter und verarbeitet diese. Wie in den Beispielen gezeigt, kann dies genutzt werden, um Java-Zugriff auf alle Wikidata.org-Daten zu erhalten. Es kann auch genutzt werden, um XML-Dump-Dateien für beliebige MediaWiki-Projekte herunterzuladen und zu verarbeiten, insbesondere für die Wikimedia-Projekte, die Dumps auf dumps.wikimedia.org veröffentlichen. Dieser Zugriff erfolgt jedoch nur auf dem Wikitext-Level; ein Parser für den MediaWiki-Wikitext ist nicht enthalten.
  • wdtk-datamodel: Stellt Wikibase-Daten in Java dar. Es handelt sich um eine Implementation des Wikibase-Datenmodells, wie es von Wikidata und anderen Wikibase-Seiten genutzt wird. Es enthält auch den nötigen Code, um vom Standard-JSON-Format in Java-Objekte und zurück zu konvertieren.
  • wdtk-rdf: Code zur Serialisierung von Wikibase-Daten in RDF, dem W3C-Resource-Description-Format.
  • wdtk-storage: Verbreitete Daten-Strukturen, die vom Wikidata Toolkit genutzt werden, um Daten zu speichern.
  • wdtk-util: Dienstprogrammcode, der für keines der anderen Module spezifisch ist.

Wahrscheinlich möchtest du zu diesem Zeitpunkt wdtk-wikibaseapi und/oder wdtk-dumpfiles verwenden (sie hängen von anderen Modulen ab, die automatisch heruntergeladen werden). Du kannst auch wdtk-datamodel alleine nutzen, um Wikibase-Daten in deiner Anwendung darzustellen. Berücksichtige jedoch trotzdem, dass sich manche Details der API bis zur ersten stabilen Veröffentlichung noch ändern können.

Auch wenn du Maven nicht nutzt, kannst du die Jars für die oben aufgeführten Module manuell von Maven Central herunterladen.

Der Quellcode findet sich auf GitHub, wo er angesehen, dupliziert und verändert und heruntergeladen werden kann:

Anfänger-Anleitung

Wenn du noch nicht viel mit Java gearbeitet hast, sind die Informationen oben für dich möglicherweise überwältigend. Für den Anfang empfehlen wir, dass du die freie IDE Eclipse nutzt, um die Dinge etwas einfacher zu machen. Du solltest auch das Eclipse-Plugin zur Maven-Unterstützung installieren, wie auf der Seite zur Eclipse-Einrichtung beschrieben (mach dir keine Sorgen über Git, es sei denn, du möchtest es jetzt schon nutzen).

Die folgenden Anweisungen beschreiben, wie man mit dem Wikidata Toolkit ein neues Projekt von Grund auf neu aufsetzt. Alternativ kannst du auch eines der bereits existierenden Beispielprojekte kopieren und an deine Bedürfnisse anpassen.

Wenn du Maven noch nicht kennst, möchtest du dir vielleicht die Maven-Einsteigeranleitung ansehen. Diese ist ziemlich lang, weshalb du sie jetzt noch nicht lesen solltest. Sie ist aber ein guter Ausgangspunkt, wenn du Fragen zu Maven hast. Um direkt zu starten, öffne Eclipse und wähle Datei -> Neu -> Projekt ... -> Maven -> Maven-Projekt aus und klicke auf "Weiter". Klicke oben auf "Einfaches Projekt erstellen" und dann auf "Weiter". Du wirst dann nach den Basisdaten für dein neues Projekt gefragt (die Bedeutung dieser Felder wird in der Maven-Anleitung erklärt). Gib eine Gruppen-ID (z.B. "org.beispiel") und eine Artifakt-ID (z.B. "mein-erstes-test-projekt") ein; die anderen Felder sind optional. Klicke auf "Fertig".

Du solltest nun deinen neuen Projekt-Ordner mit einigen Standard-Dateien sehen, die im Eclipse-Paket-Explorer auf der linken Seite vorab erstellt wurden. Du kannst diesen durchsuchen, um pom.xml zu finden, deine Maven-Konfiguration. Klicke doppelt auf diese Datei, um einen pom.xml-Editor zu öffnen. Gehe auf den Reiter "Abhängigkeiten" und klicke auf "Hinzufügen ...". Gib die obigen Daten ein: Gruppen-ID "org.wikidata.wdtk", Artifakt-ID "wdtk-dumpfiles", Version "0.11.1" (oder was aktuell ist). Klicke auf "OK".

Du kannst dir den Reiter "pom.xml" ansehen, um zu sehen, was das mit der Datei gemacht hat. Wenn du dort bist, kopiere den folgenden Block und füge ihn am Ende der XML-Datei ein (genau vor ‎</project>:

<build>
	<plugins>
		<plugin>
			<!-- Used to set JRE version; will be used by IDEs like Eclipse as the 
				target JRE (default is 1.5) -->
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.1</version>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
			</configuration>
		</plugin>
	</plugins>
</build>

Dies weist Eclipse an, Java 1.8 zu nutzen, was für das Wikidata Toolkit erforderlich ist. Vergiss nicht, die Datei zu speichern. Klicke mit der rechten Maustaste auf dein Projekt im Paket-Explorer, dann auf "Maven -> Projekt aktualisieren" und "OK" , um sicherzustellen, dass die geänderte Java-Version wirklich korrekt für Eclipse aufgesetzt ist. Damit hast du dein Projekt zur Nutzung des Wikidata Toolkits in deinen Programmen konfiguriert. Klicke mit der rechten Maustaste auf das Projekt links, wähle "Ausführen als -> Maven-Installation", um zu sehen, ob Maven soweit mit der Konfiguration zufrieden ist.

Dein Projekt hat noch keine Pakete oder Klassen. Du kannst diese wie gewöhnlich (Rechtsklick auf "src/main/java" -> "Neu ...") mit Eclipse erstellen und anfangen, sie zu programmieren. Du kannst auch etwas aus dem Wikidata-Toolkit-Beispielcode in deinem eigenen Projekt ausprobieren (den Code aus den Dateien kopieren, statt das ganze Projekt zu importieren). Um den Code EntityStatisticsProcessor (als Beispiel) auszuführen, musst du eine weitere Abhängigkeit zu deinem Projekt hinzufügen (diese wird zum loggen genutzt; du kannst auch etwas anderes nutzen; siehe den Beispielcode dafür, wie dies konfiguriert wird):

<dependency> 
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.7.6</version>
</dependency>

Füge dies zu deiner pom.xml hinzu (du kannst den Editor benutzen, den du zuvor verwendet hast, oder es direkt in XML einfügen; vergiss aber nicht, die Datei zu speichern). Du kannst nun das Programm ausführen: Finde deine Klassen-Datei im Paket-Explorer links und klicke mit der rechten Maustaste auf "Ausführen als -> Java-Anwendung". Falls etwas schiefgeht, stelle zunächst sicher, dass die Konfiguration funktioniert, indem du im Projekt nochmal auf "Ausführen als -> Maven-Installation" oder "Maven -> Projekt aktualisieren" gehst.

Wenn du das Beispiel (wirklich) aus der Kommandozeile mit Maven ohne Eclipse ausführen möchtest, kannst du dies tun, indem du das Wurzelverzeichnis (in dem sich dein "src"-Ordner befindet) änderst und folgendes ausführst:

mvn compile
mvn exec:java -Dexec.mainClass="org.wikidata.wdtk.examples.FetchOnlineDataExample" 

wobei "org.wikidata.wdtk.examples.FetchOnlineDataExample" die Klasse ist, die du ausführen möchtest (mit ihrem vollständigen Paketnamen). Beachte, dass die Kommandozeile nicht die gleiche Maven-Installation nutzt, die Eclipse nutzt, sodass du möglicherweise zunächst "mvn" für deine Plattform installieren musst.

Hilfe erhalten

Fehler und Anfragen für neue Funktionen sollten über Github unter der Wikidata-Toolkit-Problemverfolgung gemeldet werden. Zur weiteren Diskussion sollten die Mailinglisten wikidata-l (Nutzung, allgemeine Anforderungen) und wikidata-tech (technische Entwicklung) genutzt werden.

Zur Bequemlichkeit bieten wir auch eine Online-Version der Dokumentation der Wikidata-Toolkit-API für den aktuellen Stand der Entwicklung an. Die API-Dokumentation für die Veröffentlichungen ist in den Maven-Paketen enthalten und sollte über Eclipse zugänglich sein, sobald du deine Abhängigkeiten konfiguriert hast.

Beteilige dich

Entwickler werden eingeladen, zum Toolkit beizutragen. Entwickler können das Github-Repositorium herunterladen und kopieren und werden allgemein eingeladen, Kommentare und Anforderungen einzureichen. Das Projekt nutzt Maven, um die Abhängigkeiten zu verwalten und den Code zu entwickeln, wodurch es für Entwickler sehr einfach ist, das Projekt zusammenzustellen. Wechsel in den Ordner, in den der Quellcode heruntergeladen wurde und führe die folgenden Befehle aus, um es zusammenzustellen und den Code zu testen (erfordert die Installation von Maven >=3.0):

mvn install
mvn test

Die Maven-Integration ist für Standard-Java-IDEs verfügbar:

Personen

Das Projekt wird geleitet von Markus Kroetzsch; siehe auch das IEG-Projektvorschlagsteam. Die Liste der Beitragenden findet sich auf Github.