# https://taskfile.dev version: '3' tasks: default: desc: Elpub Wuppertal vars: PROJECT: wuppertal MINIMUM: 1300 # Mindestanzahl der zu erwartenden Datensätze cmds: - task: harvest - task: refine # Folgende Tasks beginnend mit ":" sind für alle Datenquellen gleich in Taskfile.yml definiert - task: :check vars: {PROJECT: '{{.PROJECT}}', MINIMUM: '{{.MINIMUM}}'} - task: :split vars: {PROJECT: '{{.PROJECT}}'} - task: :validate vars: {PROJECT: '{{.PROJECT}}'} - task: :zip vars: {PROJECT: '{{.PROJECT}}'} - task: :diff vars: {PROJECT: '{{.PROJECT}}'} harvest: dir: data/{{.PROJECT}}/harvest vars: URL: http://elpub.bib.uni-wuppertal.de/servlets/OAIDataProvider FORMAT: oai_dc PROJECT: wuppertal cmds: - METHA_DIR=$PWD metha-sync --format {{.FORMAT}} {{.URL}} - METHA_DIR=$PWD metha-cat --format {{.FORMAT}} {{.URL}} > {{.PROJECT}}.xml refine: dir: data/{{.PROJECT}}/refine ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 vars: PORT: 3335 RAM: 4G PROJECT: wuppertal cmds: - task: :openrefine-start vars: {PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}', RAM: '{{.RAM}}'} # Import (erfordert absoluten Pfad zur XML-Datei) - $OPENREFINE_CLIENT -P {{.PORT}} --create "$(readlink -e ../harvest/{{.PROJECT}}.xml)" --recordPath Records --recordPath Record --storeEmptyStrings false --trimStrings true --projectName {{.PROJECT}} # Vorverarbeitung: Identifier in erste Spalte; nicht benötigte Spalten (ohne differenzierende Merkmale) löschen; verbleibende Spalten umbenennen (Pfad entfernen) - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/vorverarbeitung.json {{.PROJECT}} # Entfernen von HTML-Tags und Transformation von subscript und superscript in Unicode (betrifft dc:description, dc:source und dc:title) - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/html.json {{.PROJECT}} # DDC einheitlich auf drei Ziffern vereinheitlichen (betrifft dc:subjects und oai:setSpec) - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/ddc.json {{.PROJECT}} # dc:publisher setzen - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/publisher.json {{.PROJECT}} # URNs, DOIs und PDF-Links aus dc:identifier extrahieren - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/identifier.json {{.PROJECT}} # Direktlinks generieren durch Abgleich der URNs mit nbn-resolving und Datensätze ohne Direktlink auf ein PDF löschen - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/nbn.json {{.PROJECT}} # Aufteilung dc:subject in ioo und topic - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/subjects.json {{.PROJECT}} # Standardisierte Rechteangaben Teil 1 (Links zu CC-Lizenzen) - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/rights.json {{.PROJECT}} # Datenstruktur für Templating vorbereiten: Pro Zeile ein Datensatz und leere Zeilen löschen - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/join.json {{.PROJECT}} # Zusammenführung gleichsprachiger Titelangaben zu Title/Subtitle - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/subtitle.json {{.PROJECT}} # Sprachangaben nach ISO-639-2b (betrifft dc:language sowie die xml:lang Attribute für dc:coverage, dc:description und dc:title) - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/language.json {{.PROJECT}} # Standardisierte Rechteangaben Teil 2 (Canonical Name für CC-Lizenzen) - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/rights-cc.json {{.PROJECT}} # Anreicherung HT-Nummer via lobid-resources - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/hbz.json {{.PROJECT}} # Sortierung mods:nonSort für das erste Element in dc:title - $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/nonsort.json {{.PROJECT}} # Export in METS:MODS mit Templating - | $OPENREFINE_CLIENT -P {{.PORT}} --export --template "$(< ../../../rules/{{.PROJECT}}/template.txt)" --rowSeparator " " --suffix " " --output {{.PROJECT}}.txt {{.PROJECT}} - task: :openrefine-stop vars: {PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}'} sources: - ../harvest/{{.PROJECT}}.xml - ../../../rules/{{.PROJECT}}/*.json - ../../../rules/{{.PROJECT}}/template.txt #TODO - ../../../rules/common/*.json generates: - openrefine.log - '{{.PROJECT}}.txt' - '{{.PROJECT}}.openrefine.tar.gz' linkcheck: desc: Elpub Wuppertal links überprüfen cmds: - task: :linkcheck vars: {PROJECT: "wuppertal"} delete: desc: Elpub Wuppertal cache löschen cmds: - task: :delete vars: {PROJECT: "wuppertal"}