2021-01-25 18:08:44 +01:00
|
|
|
# https://taskfile.dev
|
|
|
|
|
|
|
|
version: '3'
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
default:
|
|
|
|
desc: miami ULB Münster
|
|
|
|
vars:
|
|
|
|
PROJECT: muenster
|
2021-02-06 02:51:16 +01:00
|
|
|
MINIMUM: 7695 # Mindestanzahl der zu erwartenden Datensätze
|
2021-01-25 18:08:44 +01:00
|
|
|
cmds:
|
|
|
|
- task: harvest
|
|
|
|
- task: refine
|
|
|
|
# Folgende Tasks beginnend mit ":" sind für alle Datenquellen gleich in Taskfile.yml definiert
|
2021-02-06 02:51:16 +01:00
|
|
|
- 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}}'}
|
2021-01-25 18:08:44 +01:00
|
|
|
|
|
|
|
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:
|
2021-02-10 11:14:27 +01:00
|
|
|
PORT: 3336
|
2021-01-25 18:08:44 +01:00
|
|
|
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}}
|
2021-02-06 02:51:16 +01:00
|
|
|
# Vorverarbeitung: Identifier in erste Spalte id
|
2021-01-25 18:08:44 +01:00
|
|
|
- $OPENREFINE_CLIENT -P {{.PORT}} --apply ../../../rules/{{.PROJECT}}/vorverarbeitung.json {{.PROJECT}}
|
2021-02-06 02:51:16 +01:00
|
|
|
# Ä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}}
|
2021-01-25 18:08:44 +01:00
|
|
|
- task: :openrefine-stop
|
|
|
|
vars: {PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}'}
|
|
|
|
sources:
|
|
|
|
- ../harvest/{{.PROJECT}}.xml
|
|
|
|
- ../../../rules/{{.PROJECT}}/*.json
|
2021-02-06 02:51:16 +01:00
|
|
|
- ../../../rules/{{.PROJECT}}/template.txt
|
2021-01-25 18:08:44 +01:00
|
|
|
#TODO - ../../../rules/common/*.json
|
|
|
|
generates:
|
|
|
|
- openrefine.log
|
2021-02-06 02:51:16 +01:00
|
|
|
- '{{.PROJECT}}.txt'
|
2021-01-25 18:08:44 +01:00
|
|
|
- '{{.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"}
|