Dokumentation optimieren und vereinheitlichen

This commit is contained in:
Felix Lohmeier 2021-01-19 10:50:55 +01:00
parent 24b142ae5a
commit 81e55bd784
4 changed files with 29 additions and 18 deletions

View File

@ -84,18 +84,24 @@ Harvesting von OAI-PMH-Schnittstellen und Transformation in METS/MODS für das P
## Nutzung ## Nutzung
* Alle Datenquellen harvesten und transformieren (parallelisiert) * Alle Datenquellen harvesten, transformieren und validieren (parallelisiert)
``` ```
task default task
``` ```
* Eine Datenquelle harvesten und transformieren * Eine Datenquelle harvesten, transformieren und validieren
``` ```
task siegen:default task siegen:default
``` ```
* Zwei Datenquellen harvesten, transformieren und validieren (parallelisiert)
```
task --parallel siegen:default wuppertal:default
```
* Links einer Datenquelle überprüfen * Links einer Datenquelle überprüfen
``` ```
@ -116,7 +122,6 @@ Harvesting von OAI-PMH-Schnittstellen und Transformation in METS/MODS für das P
## Konfiguration ## Konfiguration
* Umgebungsvariablen in [Taskfile.yml](Taskfile.yml)
* Workflow für die Datenquellen in [tasks](tasks) * Workflow für die Datenquellen in [tasks](tasks)
* Beispiel: [tasks/siegen.yml](tasks/siegen.yml) * Beispiel: [tasks/siegen.yml](tasks/siegen.yml)
* OpenRefine-Transformationsregeln in [rules](rules) * OpenRefine-Transformationsregeln in [rules](rules)

View File

@ -29,6 +29,10 @@ tasks:
msg: "requirement OpenRefine missing" msg: "requirement OpenRefine missing"
- sh: test -x "$OPENREFINE_CLIENT" - sh: test -x "$OPENREFINE_CLIENT"
msg: "requirement openrefine-client missing" msg: "requirement openrefine-client missing"
- sh: test -n "$(command -v curl)"
msg: "requirement curl missing"
- sh: test -n "$(command -v xmllint)"
msg: "requirement xmllint missing"
deps: deps:
- task: wuppertal:default - task: wuppertal:default
- task: siegen:default - task: siegen:default

View File

@ -4,7 +4,7 @@ version: '3'
tasks: tasks:
default: default:
desc: harvesten und transformieren desc: OPUS Siegen harvesten und transformieren
deps: [harvest] deps: [harvest]
cmds: cmds:
- task: refine - task: refine
@ -15,7 +15,6 @@ tasks:
- task: diff - task: diff
harvest: harvest:
desc: nur harvesten
dir: data/siegen/harvest dir: data/siegen/harvest
cmds: cmds:
- METHA_DIR=$PWD metha-sync --format xMetaDissPlus https://dspace.ub.uni-siegen.de/oai/request - METHA_DIR=$PWD metha-sync --format xMetaDissPlus https://dspace.ub.uni-siegen.de/oai/request
@ -23,10 +22,10 @@ tasks:
refine: refine:
dir: data/siegen/refine dir: data/siegen/refine
ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141
env: env:
PORT: 3334 PORT: 3334
RAM: 8G RAM: 4G
PROJECT: siegen PROJECT: siegen
cmds: cmds:
# OpenRefine starten # OpenRefine starten
@ -86,7 +85,7 @@ tasks:
# Logdatei von OpenRefine auf Warnungen und Fehlermeldungen prüfen # Logdatei von OpenRefine auf Warnungen und Fehlermeldungen prüfen
- if grep -i 'exception\|error' openrefine.log; then echo 1>&2 "Logdatei $PWD/openrefine.log enthält Warnungen!" && exit 1; fi - if grep -i 'exception\|error' openrefine.log; then echo 1>&2 "Logdatei $PWD/openrefine.log enthält Warnungen!" && exit 1; fi
# Prüfen, ob Mindestanzahl von 1250 Datensätzen generiert wurde # Prüfen, ob Mindestanzahl von 1250 Datensätzen generiert wurde
- if (( 1250 > $(grep -c recordIdentifier siegen.txt) )); then echo 1>&2 "Unerwartet geringe Anzahl an Datensätzen in $PWD/wuppertal.txt!" && exit 1; fi - if (( 1250 > $(grep -c recordIdentifier siegen.txt) )); then echo 1>&2 "Unerwartet geringe Anzahl an Datensätzen in $PWD/siegen.txt!" && exit 1; fi
split: split:
dir: data/siegen/split dir: data/siegen/split
@ -147,8 +146,9 @@ tasks:
cmds: cmds:
# Links extrahieren # Links extrahieren
- xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt - xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt
# http status code aller Links ermitteln # http status code aller Links ermitteln
- curl --silent --head --write-out "%{http_code} %{url_effective}\n" $(while read line; do echo "-o /dev/null $line"; done < links.txt) > linkcheck.log - curl --silent --head --write-out "%{http_code} %{url_effective}\n" $(while read line; do echo "-o /dev/null $line"; done < links.txt) > linkcheck.log
- rm -rf links.txt
# Logdatei auf status code != 2XX prüfen # Logdatei auf status code != 2XX prüfen
- if grep '^[^2]' linkcheck.log; then echo 1>&2 "Logdatei $PWD/linkcheck.log enthält problematische status codes!" && exit 1; fi - if grep '^[^2]' linkcheck.log; then echo 1>&2 "Logdatei $PWD/linkcheck.log enthält problematische status codes!" && exit 1; fi
sources: sources:
@ -157,6 +157,8 @@ tasks:
- linkcheck.log - linkcheck.log
delete: delete:
desc: harvesting cache löschen desc: cache löschen
cmds: cmds:
- rm -rf data/siegen/harvest - rm -rf data/siegen/harvest
- rm -rf data/siegen/refine
- rm -rf data/siegen/split

View File

@ -4,7 +4,7 @@ version: '3'
tasks: tasks:
default: default:
desc: harvesten und transformieren desc: Elpub Wuppertal harvesten und transformieren
deps: [harvest] deps: [harvest]
cmds: cmds:
- task: refine - task: refine
@ -15,7 +15,6 @@ tasks:
- task: diff - task: diff
harvest: harvest:
desc: nur harvesten
dir: data/wuppertal/harvest dir: data/wuppertal/harvest
cmds: cmds:
- METHA_DIR=$PWD metha-sync --format oai_dc http://elpub.bib.uni-wuppertal.de/servlets/OAIDataProvider - METHA_DIR=$PWD metha-sync --format oai_dc http://elpub.bib.uni-wuppertal.de/servlets/OAIDataProvider
@ -23,10 +22,10 @@ tasks:
refine: refine:
dir: data/wuppertal/refine dir: data/wuppertal/refine
ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141
env: env:
PORT: 3335 PORT: 3335
RAM: 8G RAM: 4G
PROJECT: wuppertal PROJECT: wuppertal
cmds: cmds:
# OpenRefine starten # OpenRefine starten
@ -62,8 +61,6 @@ tasks:
- $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/hbz.json $PROJECT - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/hbz.json $PROJECT
# Sortierung mods:nonSort für das erste Element in dc:title # Sortierung mods:nonSort für das erste Element in dc:title
- $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/nonsort.json $PROJECT - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/nonsort.json $PROJECT
#TODO # Links prüfen: HTTP status code ermitteln (z.B. 200)
#TODO - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/linkcheck.json $PROJECT
# Export in METS:MODS mit Templating # Export in METS:MODS mit Templating
- | - |
$OPENREFINE_CLIENT -P $PORT --export --template "$(< ../../../rules/wuppertal/template.txt)" --rowSeparator " $OPENREFINE_CLIENT -P $PORT --export --template "$(< ../../../rules/wuppertal/template.txt)" --rowSeparator "
@ -153,6 +150,7 @@ tasks:
- xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt - xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt
# http status code aller Links ermitteln # http status code aller Links ermitteln
- curl --silent --head --write-out "%{http_code} %{url_effective}\n" $(while read line; do echo "-o /dev/null $line"; done < links.txt) > linkcheck.log - curl --silent --head --write-out "%{http_code} %{url_effective}\n" $(while read line; do echo "-o /dev/null $line"; done < links.txt) > linkcheck.log
- rm -rf links.txt
# Logdatei auf status code != 2XX prüfen # Logdatei auf status code != 2XX prüfen
- if grep '^[^2]' linkcheck.log; then echo 1>&2 "Logdatei $PWD/linkcheck.log enthält problematische status codes!" && exit 1; fi - if grep '^[^2]' linkcheck.log; then echo 1>&2 "Logdatei $PWD/linkcheck.log enthält problematische status codes!" && exit 1; fi
sources: sources:
@ -161,6 +159,8 @@ tasks:
- linkcheck.log - linkcheck.log
delete: delete:
desc: harvesting cache löschen desc: cache löschen
cmds: cmds:
- rm -rf data/wuppertal/harvest - rm -rf data/wuppertal/harvest
- rm -rf data/wuppertal/refine
- rm -rf data/wuppertal/split