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.
94 lines
4.4 KiB
94 lines
4.4 KiB
# https://taskfile.dev |
|
|
|
version: '3' |
|
|
|
tasks: |
|
default: |
|
desc: miami ULB Münster |
|
vars: |
|
PROJECT: muenster |
|
MINIMUM: 7695 # 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://repositorium.uni-muenster.de/oai/miami |
|
FORMAT: mets |
|
PROJECT: muenster |
|
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: 3336 |
|
RAM: 4G |
|
PROJECT: muenster |
|
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 --recordPath metadata --recordPath mets:mets --storeEmptyStrings false --trimStrings true --projectName {{.PROJECT}} |
|
# Vorverarbeitung: Identifier in erste Spalte id |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/vorverarbeitung.json {{.PROJECT}} |
|
# Ältere Einträge (nach mets:metsHdr - CREATEDATE) mit gleichem Identifier entfernen |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/duplicates.json {{.PROJECT}} |
|
# Aggregationen löschen (diese Datensätze werden von untergeordneten Werken über relatedItem referenziert) |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/ohne-aggregationen.json {{.PROJECT}} |
|
# Datensätze ohne Direktlink auf ein PDF löschen |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/nur-mit-pdf.json {{.PROJECT}} |
|
# Index: Spalte index mit row.record.index generieren |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/index.json {{.PROJECT}} |
|
# Sortierung mods:nonSort für das erste Element in mods:title |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/nonsort.json {{.PROJECT}} |
|
# Visual Library doctype aus mods:genre |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/doctype.json {{.PROJECT}} |
|
# HTML-Codes in Abstracts entfernen und Abstracts ohne Sprachangabe löschen |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/abstract.json {{.PROJECT}} |
|
# Separaten Download-Link entfernen, wenn nur eine Datei vorhanden ist |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/flocat.json {{.PROJECT}} |
|
# mets:file - ID eindeutig machen, um Validierungsfehler zu vermeiden |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/file-id.json {{.PROJECT}} |
|
# Anreicherung HT-Nummer via lobid-resources: Bei mehreren URNs ODER-Suche; bei mehreren Treffern wird nur der erste übernommen |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/hbz.json {{.PROJECT}} |
|
# Export in METS:MODS mit Templating |
|
- $OPENREFINE_CLIENT -P {{.PORT}} --export --template "$(< ../../../rules/{{.PROJECT}}/template.txt)" --rowSeparator "" --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: miami ULB Münster links überprüfen |
|
cmds: |
|
- task: :linkcheck |
|
vars: {PROJECT: "muenster"} |
|
|
|
delete: |
|
desc: miami ULB Münster cache löschen |
|
cmds: |
|
- task: :delete |
|
vars: {PROJECT: "muenster"}
|
|
|