You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
5.0 KiB
103 lines
5.0 KiB
# 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"}
|
|
|