2021-01-14 16:51:39 +01:00
# https://taskfile.dev
version : '3'
tasks :
default :
2021-01-19 12:30:46 +01:00
desc : OPUS Siegen
2021-01-20 15:35:02 +01:00
vars :
PROJECT : siegen
MINIMUM : 1250 # Mindestanzahl der zu erwartenden Datensätze
2021-01-14 16:51:39 +01:00
cmds :
2021-01-20 15:35:02 +01:00
- task : harvest
2021-01-14 16:51:39 +01:00
- task : refine
2021-01-20 15:35:02 +01:00
# Folgende Tasks beginnend mit ":" sind für alle Datenquellen gleich in Taskfile.yml definiert
2021-01-20 12:16:34 +01:00
- task : : check
2021-01-20 15:35:02 +01:00
vars : {PROJECT : '{{.PROJECT}}' , MINIMUM : '{{.MINIMUM}}' }
2021-01-20 12:16:34 +01:00
- task : : split
2021-01-20 15:35:02 +01:00
vars : {PROJECT : '{{.PROJECT}}' }
2021-01-20 12:16:34 +01:00
- task : : validate
2021-01-20 15:35:02 +01:00
vars : {PROJECT : '{{.PROJECT}}' }
2021-01-20 12:16:34 +01:00
- task : : zip
2021-01-20 15:35:02 +01:00
vars : {PROJECT : '{{.PROJECT}}' }
2021-01-20 12:16:34 +01:00
- task : : diff
2021-01-20 15:35:02 +01:00
vars : {PROJECT : '{{.PROJECT}}' }
2021-01-14 16:51:39 +01:00
harvest :
2021-01-20 15:35:02 +01:00
dir : data/{{.PROJECT}}/harvest
vars :
URL : https://dspace.ub.uni-siegen.de/oai/request
FORMAT : xMetaDissPlus
PROJECT : siegen
2021-01-14 16:51:39 +01:00
cmds :
2021-01-20 15:35:02 +01:00
- METHA_DIR=$PWD metha-sync --format {{.FORMAT}} {{.URL}}
- METHA_DIR=$PWD metha-cat --format {{.FORMAT}} {{.URL}} > {{.PROJECT}}.xml
2021-01-14 16:51:39 +01:00
refine :
2021-01-20 15:35:02 +01:00
dir : data/{{.PROJECT}}/refine
2021-01-19 10:50:55 +01:00
ignore_error : true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141
2021-01-20 15:35:02 +01:00
vars :
2021-01-14 16:51:39 +01:00
PORT : 3334
2021-01-19 10:50:55 +01:00
RAM : 4G
2021-01-14 16:51:39 +01:00
PROJECT : siegen
cmds :
2021-01-20 15:35:02 +01:00
- task : : openrefine-start
vars : {PROJECT : '{{.PROJECT}}' , PORT : '{{.PORT}}' , RAM : '{{.RAM}}' }
2021-01-14 16:51:39 +01:00
# Import (erfordert absoluten Pfad zur XML-Datei)
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --create "$(readlink -e ../harvest/{{.PROJECT}}.xml)" --recordPath Records --recordPath Record --storeEmptyStrings false --trimStrings true --projectName {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Vorverarbeitung: Identifier in erste Spalte; nicht benötigte Spalten (ohne differenzierende Merkmale) löschen; verbleibende Spalten umbenennen (Pfad entfernen)
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/vorverarbeitung.json {{.PROJECT}}
2021-01-14 16:51:39 +01:00
# URNs extrahieren: Dubletten entfernen und verschiedene URNs zusammenführen
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/urn.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Fehlende Direktlinks aus Format METS ergänzen: Wenn keine Angabe in ddb:transfer, dann zusätzlich METS Format abfragen und daraus METS Flocat extrahieren
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/direktlinks.json {{.PROJECT}}
2021-01-14 16:51:39 +01:00
# Datensätze ohne Direktlink auf ein PDF löschen
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/nur-mit-pdf.json {{.PROJECT}}
2021-01-14 16:51:39 +01:00
# Aufteilung dc:subject in ddc und topic
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/ddc-topic.json {{.PROJECT}}
2021-01-14 16:51:39 +01:00
# Standardisierte Rechteangaben (Canonical Name aus CC Links in dc:rights)
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/cc.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Internet Media Type aus ddb:transfer ableiten: Mapping manuell nach Apache http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types?view=markup
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/mime.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# DOIs aus Format OAI_DC ergänzen: Für alle Datensätze zusätzlich DC Format abfragen und daraus dc:identifier mit Typ doi extrahieren
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/doi.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Anreicherung HT-Nummer via lobid-resources: Bei mehreren URNs ODER-Suche; bei mehreren Treffern wird nur der erste übernommen
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/hbz.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Sortierung mods:nonSort für das erste Element in dc:title
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/nonsort.json {{.PROJECT}}
2021-01-14 16:51:39 +01:00
# DINI Publikationstypen aus dc:type extrahieren
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/dini.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Visual Library doctype aus dc:type: Wenn thesis:level == thesis.habilitation dann doctype oaHabil
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/doctype.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Datenstruktur für Templating vorbereiten: Pro Zeile ein Datensatz und leere Zeilen löschen
2021-01-20 15:35:02 +01:00
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/join.json {{.PROJECT}}
2021-01-15 14:04:04 +01:00
# Export in METS:MODS mit Templating
2021-01-14 16:51:39 +01:00
- |
2021-01-20 15:35:02 +01:00
$OPENREFINE_CLIENT -P {{.PORT}} --export --template "$(< ../../../rules/{{.PROJECT}}/template.txt)" --rowSeparator "
2021-01-19 19:41:36 +01:00
" --suffix "
2021-01-20 15:35:02 +01:00
" --output {{.PROJECT}}.txt {{.PROJECT}}
- task : : openrefine-stop
vars : {PROJECT : '{{.PROJECT}}' , PORT : '{{.PORT}}' }
2021-01-14 16:51:39 +01:00
sources :
2021-01-20 15:35:02 +01:00
- ../harvest/{{.PROJECT}}.xml
- ../../../rules/{{.PROJECT}}/*.json
- ../../../rules/{{.PROJECT}}/template.txt
2021-01-19 17:29:00 +01:00
#TODO - ../../../rules/common/*.json
2021-01-14 16:51:39 +01:00
generates :
2021-01-19 17:29:00 +01:00
- openrefine.log
2021-01-20 15:35:02 +01:00
- '{{.PROJECT}}.txt'
- '{{.PROJECT}}.openrefine.tar.gz'
2021-01-14 16:51:39 +01:00
2021-01-18 19:59:44 +01:00
linkcheck :
2021-01-19 12:30:46 +01:00
desc : OPUS Siegen links überprüfen
2021-01-18 19:59:44 +01:00
cmds :
2021-01-19 12:30:46 +01:00
- task : : linkcheck
vars : {PROJECT : "siegen" }
2021-01-18 19:59:44 +01:00
2021-01-14 16:51:39 +01:00
delete :
2021-01-19 12:30:46 +01:00
desc : OPUS Siegen cache löschen
2021-01-14 16:51:39 +01:00
cmds :
2021-01-19 12:30:46 +01:00
- task : : delete
vars : {PROJECT : "siegen" }