# https://taskfile.dev version: '3' tasks: # Tasks mit ":" sind für alle Datenquellen gleich in Taskfile.yml definiert default: desc: Elpub Wuppertal deps: [harvest] cmds: - task: refine - task: :check vars: {PROJECT: "wuppertal", MINIMUM: "1300"} - task: :split vars: {PROJECT: "wuppertal"} - task: :validate vars: {PROJECT: "wuppertal"} - task: :zip vars: {PROJECT: "wuppertal"} - task: :diff vars: {PROJECT: "wuppertal"} harvest: dir: data/wuppertal/harvest cmds: - METHA_DIR=$PWD metha-sync --format oai_dc http://elpub.bib.uni-wuppertal.de/servlets/OAIDataProvider - METHA_DIR=$PWD metha-cat --format oai_dc http://elpub.bib.uni-wuppertal.de/servlets/OAIDataProvider > wuppertal.xml refine: dir: data/wuppertal/refine ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 env: PORT: 3335 RAM: 4G PROJECT: wuppertal cmds: # OpenRefine starten - $OPENREFINE -v warn -p $PORT -m $RAM -d $PWD > openrefine.log 2>&1 & - timeout 30s bash -c "until curl -s http://localhost:$PORT | cat | grep -q -o OpenRefine ; do sleep 1; done" # Import (erfordert absoluten Pfad zur XML-Datei) - $OPENREFINE_CLIENT -P $PORT --create "$(readlink -e ../harvest/wuppertal.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/wuppertal/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/wuppertal/html.json $PROJECT # DDC einheitlich auf drei Ziffern vereinheitlichen (betrifft dc:subjects und oai:setSpec) - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/ddc.json $PROJECT # dc:publisher setzen - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/publisher.json $PROJECT # URNs, DOIs und PDF-Links aus dc:identifier extrahieren - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/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/wuppertal/nbn.json $PROJECT # Aufteilung dc:subject in ioo und topic - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/subjects.json $PROJECT # Standardisierte Rechteangaben Teil 1 (Links zu CC-Lizenzen) - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/rights.json $PROJECT # Datenstruktur für Templating vorbereiten: Pro Zeile ein Datensatz und leere Zeilen löschen - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/join.json $PROJECT # Zusammenführung gleichsprachiger Titelangaben zu Title/Subtitle - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/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/wuppertal/language.json $PROJECT # Standardisierte Rechteangaben Teil 2 (Canonical Name für CC-Lizenzen) - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/rights-cc.json $PROJECT # Anreicherung HT-Nummer via lobid-resources - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/hbz.json $PROJECT # Sortierung mods:nonSort für das erste Element in dc:title - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/nonsort.json $PROJECT # Export in METS:MODS mit Templating - | $OPENREFINE_CLIENT -P $PORT --export --template "$(< ../../../rules/wuppertal/template.txt)" --rowSeparator " " --output wuppertal.txt $PROJECT # Export für Debugging - $OPENREFINE_CLIENT -P $PORT --export --output wuppertal-debug.tsv $PROJECT # OpenRefine beenden - ps -o start,etime,%mem,%cpu,rss -p $(lsof -t -i:$PORT) # Statistik - kill -9 $(lsof -t -i:$PORT) # SIGKILL (-9) verhindert unnötigen Speichervorgang - rm -rf ./*.project* && rm -f workspace.json # temporäre Dateien von OpenRefine löschen sources: - ../harvest/wuppertal.xml - ../../../rules/wuppertal/*.json - ../../../rules/wuppertal/template.txt # - ../../../rules/common/*.json generates: - wuppertal.txt - wuppertal-debug.tsv 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"}