AufgabeHarvestingOpenRefineUndWikidata
Inkompetenz
BearbeitenHier sind noch mal 500 bescheuerte Änderungen, in diesem Fall von @Lisa Klingsporn:, die jemand anders mühsam aufräumen musste.
(Diesmal hier, da ihr Diskussion:AufgabeHarvestingOpenRefineUndWikidata ja nicht zu lesen scheint.)
Harvesting Übungsaufgabe
BearbeitenIn dieser Übungsaufgabe zum Harvesten sollen Metadaten über wissenschaftliche Artikel vom Directory of Open Access Journals (DOAJ) heruntergeladen werden, über Open Refine in das QuickStatements Format transformiert werden und dann zu Wikidata exportiert werden.
Schritt 1: Harvesting über OAI-PMH
Bearbeiten
Das DOAJ stellt eine OAI-PMH Schnittstelle bereit. Information darüber sind hier erhältlich: https://doaj.org/features
Die Artikel werden in verschiedenen Sets (die unterschiedliche Fachgebiete abbilden) ausgeliefert. Sucht euch jeweils ein Set aus der unteren Liste aus und markiert mit Link auf euren Benutzernamen welches Set ihr jeweils gewählt habt:
- LCC:Acoustics. Sound
- LCC:African languages and literature
- LCC:Cartography
- LCC:Computational linguistics. Natural language processing
- LCC:Discourse analysis
- LCC: Environmental pollution
- LCC:Geodesy
- LCC:Logic
Dokumentation und Einführung in OAI-PMH: http://www.openarchives.org/OAI/openarchivesprotocol.html
- Lasst euch eine Liste aller Sets anzeigen, um die ID des Sets herauszufinden.
- Formuliert die passende OAI-PMH Anfrage, um alle Artikel des Sets aus diesem Jahr zu erhalten und ladet die Metadaten herunter. Dabei ist zu beachten, dass nicht alle Ergebnisse auf der ersten Seite sind. Es kann nicht nach dem Erscheinungsdatum des Artikels gefiltert werden, nur nach dem Datestamp des Datensatzes. Dadurch werden alle Artikel gefunden, die in diesem Jahr hinzugefügt oder aktualisiert wurden.
- Option 1: Gebt die Anfragen direkt im Browser ein
- Option 1: Gebt die Anfragen direkt im Browser ein
- Option 2: Schreibt ein Programm, um den Download zu automatisieren
- Option 2: Schreibt ein Programm, um den Download zu automatisieren
- Speichert die Datei als XML
Optional: Ladet die Volltexte herunter
Schritt 2: Transformation in Open Refine
BearbeitenEine Einführung zu Open Refine und der Arbeit mit Wikidata findet ihr hier: Wikidata:Tools/OpenRefine
Download des Tools hier: http://openrefine.org/download.html
Das Programm läuft auf dem eigenen Rechner und wird über den Browser benutzt.
Lest euch die gesamte Aufgabe und auch die untenstehenden Hinweise durch, bevor ihr mit der Arbeit beginnt.
Findet heraus, welche Informationen ihr braucht, um die Artikeldaten nach Wikidata zu exportieren. Sucht dafür nach verschiedenen anderen wissenschaftlichen Artikeln in Wikidata.
Macht euch nun mit den verschiedenen Spalten vertraut. Nicht benötigte Spalten können ausgeblendet werden. Andere können zur besseren Übersicht umbenannt werden.
Benutzt zunächst die Reconcile Funktion für den Artikeltitel. Dabei werden die Zelleninhalte mit Wikidata items abgeglichen. So könnt ihr bereits existierende Artikel finden und herausfiltern.
Alle anderen Artikel sollen für den Wikidata Upload genutzt werden. Dazu muss für jeden Artikel ein neues Item erstellt werden (in Openrefine).
Legt ein Schema für den Upload zu Wikidata an (im Tab “Schema”). Dabei werdet ihr merken, welche Spalten ihr braucht, und ob ihr noch Spalten verändern oder erstellen müsst.
Gebt den Link zu dem jeweiligen Record im DOAJ als Quelle für eure Statements an.
Hinweise:
Bearbeiten- Reconciliation Tutorial: https://github.com/OpenRefine/OpenRefine/wiki/Reconciliation
- Beim Reconciliation Prozess kann ausgewählt werden, dass Treffer mit hoher Sicherheit automatisch gematcht werden. Damit entfällt das manuelle Bestätigen der Matches (siehe auch Dokumentation der Schritte am Ende der Seite).
- Hier sind die Sprachcodes für die Freitexte zu finden: https://www.wikidata.org/wiki/Help:Wikimedia_language_codes/lists/all
- Reconciliation muss bei mehreren Spalten durchgeführt werden
- Ein Artikel hat oft mehrere Autoren, weswegen beim Erstellen der Uploads Probleme auftreten können. Eine mögliche Lösung ist es, die Artikel zunächst nur mit einem Autor hochzuladen, den Reconciliation Prozess für die Titel erneut durchzuführen, und dann die restlichen Autoren hochzuladen.
Schritt 3: Upload zu Wikidata
BearbeitenDer Upload kann direkt über Open Refine oder QuickStatements (https://www.wikidata.org/wiki/Help:QuickStatements) erfolgen.
Es ist möglich, dass der Upload über OpenRefine momentan nicht funktioniert, dann kann nur QuickStatements verwendet werden. Die Edits können direkt aus Openrefine in das QuickStatements Format exportiert werden.
Am besten ihr probiert die Uploads vorher in der Sandbox aus: Wenn ihr bereit seid, ladet zunächst nur einen Datensatz hoch, um mögliche Probleme zu finden. Erst wenn alles korrekt übertragen wurde, könnt ihr die restlichen Daten hochladen.
Dokumentation der Schritte
BearbeitenSchritt 0: Set-ID für das Set herausfinden
Bearbeitenhttps://www.doaj.org/oai?verb=ListSets
Beispiel: TENDOkluZHVzdHJ5 (LCC:Industry)
Schritt 1a: Harvesting über OAI-PMH mit Python
BearbeitenZuerst werden die nötigen Bibliotheken importiert.
import requests
from xml.etree import ElementTree
Eine GET-Request kann nun an den DOAJ-OAI-Endpoint gesendet werden.
r = requests.get('https://www.doaj.org/oai.article', params={
'set': 'TENDOkNhcnRvZ3JhcGh5',
'verb': 'ListRecords',
'from': '2020-01-01',
'until': '2020-12-31',
'metadataPrefix': 'oai_dc'}
)
Die Response enthält XML, weshalb im nächsten Schritt ein XML-Objekt erzeugt wird.
doc = ElementTree.fromstring(r.content)
tree = ElementTree.ElementTree(doc)
Dann wird das erzeugte XML-Objekt für die weitere Verarbeitung mit Open Refine auf dem Rechner gespeichert.
tree.write('oai_doaj.xml')
Schritt 1b: Harvesting über Browser
BearbeitenURL zur XML-Seite: https://www.doaj.org/oai.article?verb=ListRecords&from=2020-01-01&until=2020-06-01&set=(Set-ID)&metadataPrefix=oai_dc
Im Browser: Datei -> Seite speichern unter -> Webseite, komplett -> .xml beim Dateinamen anhängen
Schritt 2: Reconciliation mit Open Refine
Bearbeiten1. openrefine.exe starten, Open Refine wird im localhost:3333 geöffnet.
2. Auf "Create Project" klicken und neues Projekt erstellen.
3. Bei "Configure Parsing Options" den ersten <record> anklicken.
4. Spalten umbenennen/löschen.
5. Bei der "Titel"-Spalte (und den Spalten, wo nötig): auf den Pfeil neben den Spaltennamen klicken und "Reconcile" sowie "Start Reconciling" auswählen. Dies gleicht die Spalte mit Wikidata ab. Aktiviert das Automatching! (Siehe Screenshot)
6. Die Matches für die einzelnen Objekte auswählen, oder neue erstellen.
7. Filtern nach Datum: In der Überschrift von Spalte "dc:date" auf den Pfeil nach unten klicken. Dann auf "Text filter" klicken und "2020" eingeben. Nun werden nur noch die Artikel aus dem Jahr 2020 angezeigt. (Anmerkung: durch die geänderte Aufgabenstellung nicht mehr nötig.)
8. Wenn der Abgleich der Daten erfolgreich war, erscheint ein dunkelblauer Link. In diesem Fall ist der Abgleich korrekt und muss nicht manuell überprüft werden. Wird das Ergebnis des Abgleichs als hellblauer Link angegeben, so muss der richtige Link manuell ausgewählt werden.
Schritt 3: Schemaerstellung in Open Refine
Bearbeiten1. Oben in der blauen Leiste Extensions: Wikidata anklicken.
2. "Edit Wikidata Schema" auswählen.
3. "Add item" auswählen und "Titel" hinzufügen.
4. Alle vorher gewählten "Terms" und "Statements" hinzufügen, um das Schema zu vervollständigen.
5. 'Issues' so gut wie möglich beseitigen.
Schritt 4a: Upload zu Wikidata über Open Refine
Bearbeiten1. Klick in OpenRefine oben rechts auf "Wikidata".
2. Wähle "Upload edits to Wikidata" aus.
3. Im nächsten Schritt muss man sich mit seinen Login Daten bei Wikidata anmelden.
4. Im Feld "Edit summary" eine kurze Zusammenfassung des Uploads angeben.
5. Mit Klick auf "Upload Edits" werden die Daten hochgeladen.
Schritt 4b: Upload zu Wikidata über Quick Statements
Bearbeiten- QuickStatements öffnen
- Mit Wikipedia Nutzerdaten anmelden
- Ein neuen Stapel erstellen
- Befehl einfügen. Siehe folgende Abschnitt: CSV file syntax (https://www.wikidata.org/wiki/Help:QuickStatements#Running_QuickStatements)
- Anschließend auf "V1-Befehle importieren" oder "CSV-Befehle importieren"klicken. (Das Tool konvertiert Befehle in eine für Menschen lesbare Form)
- Überprüfen und auf "Ausführen" klicken.
- Bei der Verarbeitung sollten die Ergebnisse überprüft werden! Auf "STOP" klicken, wenn ein Problem erkannt wird.
- Die Benutzeroberfläche zeigt an, wann alle Befehle verarbeitet wurden.