# 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"}