Wikidata:Werkzeuge/OpenRefine/Bearbeiten/Spezielle Schemas

This page is a translated version of the page Wikidata:Tools/OpenRefine/Editing/Advanced schemas and the translation is 100% complete.

Manchmal sind deine Daten nicht so einfach wie normale Tabellen oder die Art von Aussagen, die du treffen möchtest, unterscheidet sich in jeder Zeile. Dieses Dokument beschreibt, wie man in solchen Fällen vorgeht.

Hierarchische Daten

Manchmal bietet deine Quellen Daten in einem strukturierten Format wie XML, JSON oder RDF. OpenRefine kann diese Dateien importieren und konvertiert sie in Tabellen. Diese Tabellen geben die Hierarchie aus der Datei mit leeren Zellen wieder.

{
  "artists": [
    {
      "name": "Gilberto Gil",
      "songs": [
        "Toda menina Bahiana",
        "Expresso 2222",
        "Refazenda"
      ]
    },
    {
      "name": "Hiromi Uehara",
      "songs": [
        "Desire",
        "Deep Into The Night"
      ]
    }
  ]
}
    

OpenRefine nutzt den Aufzeichnungs-Modus, der Aufzeichnungen als atomare Objekte behandelt. Du kannst sehen, dass er 2 Aufzeichnungen zählt, obwohl es 5 Zeilen gibt, was durch die Schattierung wiedergegeben wird. Du kannst in diesem Artikel mehr über die Unterschiede zwischen dem Aufzeichnungs-Modus und dem Zeilen-Modus lernen.

Die Wikidata-Erweiterung nutzt immer den Zeilen-Modus, so dass wir, wenn wir Aussagen mit einer Fundstelle sowohl zum Künstler als auch zum Lied hinzufügen möchten, entsprechen leere Zellen für den Künstler angeben müssen. Du kannst dies mit dem Befehl Auffüllen (im Menü Zellen bearbeiten für diese Spalte) tun. Diese Funktion kopiert nicht nur Zellen-Werte sondern auch abgeglichene Ergebnisse.

 
OpenRefine-Bearbeitungsanleitung: Beispiel der Nutzung der Funktion Auffüllen beim Arbeiten mit hierarchischen Daten.

Bedingte Hinzufügungen

Manchmal möchtest du eine Aussage nur unter bestimmten Bedingungen hinzufügen.

Der Arbeitsablauf, um dies zu erreichen, sieht wie folgt aus:

  • Nutze Aspekte, um die Zeilen auszuwählen, mit denen du keine Informationen hinzufügen möchtest;
  • Blende die Zellen in der Spalte aus, die Informationen enthalten, die du hinzufügen möchtest. Wenn du die Informationen nicht verlieren möchtest, kannst du zuvor eine Kopie der Spalte erstellen;
  • Entferne den Aspekt, um wieder alle Zeilen zu sehen;
  • Erstelle mithilfe der teilweise ausgeblendeten Spalten als Aussage-Werten ein Schema.

Beispielsweise möchtest du vielleicht nur dann eine Aussage hinzufügen, wenn es noch keine Aussage mit dieser Eigenschaft im entsprechenden Datenobjekt gibt. Sieh dir die folgende Tabelle an:

 
Ursprüngliche Tabelle, Teil einer Anleitung für das bedingte Hochladen nach Wikidata über OpenRefine

Wir wollen diese Höhen nach Wikidata hochladen, jedoch nur für Berge, deren Höhe bisher unbekannt ist. Um dies zu tun, holen wir uns mit der Funktion "Füge Spalten aus abgeglichenen Werten hinzu" die bereits vorhandenen Höhenangaben und erhalten diese Tabelle:

 
Zweite Version der Tabelle, Teil einer Anleitung für das bedingte Hochladen nach Wikidata über OpenRefine

Wir erstellen einen Aspekt zur "Höhe über dem Meeresspiegel" (aus Wikidata), um nur die nicht leeren Werte auszuwählen. Dann entfernen wir die entsprechenden Zellen in der Spalte "Höhe" mit der Funktion "Zellen bearbeiten" -> "Gewöhnliche Transformation" -> "Zu Null". Dann können wir den leeren Aspekt entfernen und erhalten diese Tabelle:

 
Finale Version der Tabelle, Teil einer Anleitung für das bedingte Hochladen nach Wikidata über OpenRefine

Wir können unsere Daten nun mit der ersten und dritten Spalte in ein Wikidata-Schema hochladen.

Unterschiedliche Eigenschaften

Manchmal möchtest du in deinem Schema Spaltenvariablen für Eigenschaften verwenden. Dies ist derzeit nicht möglich, da wir zum einen keinen Abgleichsservice für Eigenschaften haben und da das Ermöglichen der Verwendung unterschiedlicher Eigenschaften auch bedeuten kann, dass diese Eigenschaften unterschiedliche Datentypen haben, was die Struktur des Schemas beschädigen könnte.

Wenn du nur wenige Eigenschaften nutzen möchtest, gibt es eine Möglichkeit, dieses Problem zu umgehen. Beispielsweise kannst du eine Spalte für Höhen nutzen und eine Spalte, um anzugeben, ob sie als maximum operating altitude (P2254) oder als elevation above sea level (P2044) hinzugefügt werden sollen.

 
Wikidata bearbeiten mit OpenRefine: Beispielprojekt, bei dem unterschiedliche Eigenschaften benötigt werden. Ausgangsstatus des Projektes.

Erstelle einen Textaspekt in der Spalte Typ. Nutze einen Filter, um nur die Höhen-Werte zu behalten. Füge anhand der Spalte Meter eine neue Spalte hinzu und behalte den Standardausdruck (Wert), der die vorhandenen Werte kopiert. Wähle dann den Wert maximale Betriebshöhe in dem Aspekt aus und mache das gleiche. Setze den Aspekt zurück und du solltest etwas ähnliches wie dies erhalten:

 
Wikidata bearbeiten mit OpenRefine: Beispielprojekt, bei dem unterschiedliche Eigenschaften benötigt werden. Umgewandeltes Projekt.

Jetzt kannst du den Effekt nutzen, dass leere Zellen von der Wikidata-Erweiterung ignoriert werden. Erstelle einfach das folgende Schema:

 
Wikidata bearbeiten mit OpenRefine: Beispielprojekt, bei dem unterschiedliche Eigenschaften benötigt werden. Schema.

Selbst wenn es so aussieht, als würden wir beide Eigenschaften dem gleichen Datenobjekt hinzufügen, gibt es in der Praxis keine Spalten, die gleichzeitig nicht leer sind, so dass wir die Werte mit den passenden Eigenschaften zu unterschiedlichen Datenobjekten hinzufügen.

Anpassung an in Wikidata vorhandene Daten

Manchmal möchtest du nur Aussagen erstellen, wenn das Datenobjekt diese Aussage noch nicht hat. Hier eine Möglichkeit, um dies zu erreichen:

  • rufe zunächst über Spalten bearbeitenSpalten aus abgeglichenen Werten hinzufügen die vorhandenen Werte aus Wikidata ab;
  • erstelle als nächstes einen Aspekt von null für die neu erstellte Spalte, die die Information enthält, die du kontrollieren möchtest;
  • wähle die Zeilen aus, die nicht null sind (Wert false);
  • entferne den Inhalt der Spalte, in der sich die Werte deiner Quelle befinden (Zellen bearbeitenGewöhnliche TransformationZu Null).

Du kannst jetzt wie gewöhnlich dein Schema erstellen - Werte mit Null werden bei der Generierung der Aussagen ignoriert. Du solltest ein Projekt erhalten haben, das so ähnlich aussieht, wie das folgende:

 
Wikidata bearbeiten mit OpenRefine. Erstellung erweiterter Schemas: Vermeiden vorhandener Werte.

Du kannst diese Methode auch nutzen, um nur Aussagen hinzuzufügen, für die es auf Wikidata noch keinen Wert mit Fundstelle gibt. Klicke beim Hinzufügen von Spalten aus abgeglichenen Werten auf konfigurieren und filtere Aussagen anhand des von dir benötigten Fundstellen-Status:

 
Wikidata bearbeiten mit OpenRefine. Erstellung erweiterter Schemas: Konfigurieren des Abrufs vorhandener Werte.

Beachte, dass du auch nach Rängen filtern kannst und dir die Anzahl zutreffender Werte anstatt der Werte selbst anzeigen lassen kannst (was den Abruf der Daten beschleunigen kann, wenn es für jedes Datenobjekt viele Werte gibt).