Changes between Version 16 and Version 17 of workflow


Ignore:
Timestamp:
May 25, 2010, 8:42:22 AM (14 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • workflow

    v16 v17  
    33[[PageOutline(2-4,,pullout)]]
    44
    5 Der automatische XML-Workflow besteht aus einer
    6 [source:trunk/schema/scripts/workflow Reihe von Skripten]. Einige dieser Skripte sind noch leere Platzhalter, aber die Workflow-Struktur stimmt bereits.
    75
    86Bisher sind 19 schema-konforme Texte bei ECHO, siehe
     
    1816== Die Arbeitsschritte ==
    1917
    20 Der XML-Workflow besteht aus mehreren Arbeitsschritten. Im [#a1.Vorbereitungen ersten Schritt] werden alle Vorbereitungen getroffen, um mit dem raw text arbeiten zu können. Im [#a2.rawtextbearbeiten zweiten Schritt] wird der raw text korrigiert und annotiert. Im [#a3.Schrittebiszuwohlgeformtemxml dritten Schritt] wird der annotierte raw text in wohlgeformtes XML verwandelt. Im [#a4.schema-konformmachen vierten Schritt] wird der XML-Text schemakonform gemacht. Der dritte und der vierte Schritt laufen wietgehend automatisch ab.
     18Der XML-Workflow besteht aus mehreren Arbeitsschritten. Im [#a1.Vorbereitungen ersten Schritt] werden alle Vorbereitungen getroffen, um mit dem raw text arbeiten zu können. Im [#a2.rawtextbearbeiten zweiten Schritt] wird der raw text korrigiert und annotiert. Im [#a3.Schrittebiszuwohlgeformtemxml dritten Schritt] wird der annotierte raw text in wohlgeformtes XML verwandelt. Im [#a4.schema-konformmachen vierten Schritt] wird der XML-Text schemakonform gemacht. Der dritte und der vierte Schritt laufen weitgehend automatisch ab.
     19
     20Die Arbeitsschritte bestehen jeweils aus einer
     21[source:trunk/schema/scripts/workflow Reihe von Skripten]. Einige dieser Skripte sind noch leere Platzhalter, aber die Workflow-Struktur stimmt bereits.
    2122
    2223  * Im Gegensatz zu den früheren Skripten dürfen die hier beschriebenen Bearbeitungsschritte die Zeilenstruktur verändern, zum Beispiel eine Zeile hinzufügen.
     
    4344  * Kopie erstellen und umbenennen (autor_jahr_identifier), Zeilenenden von CRLF zu LF. Entferne [http://de.wikipedia.org/wiki/Byte_Order_Mark BOM]-Fragmente (korrekte BOMs sind okay).
    4445
    45 (Skript von Klaus verwenden?)
     46(Shell-Skript von Klaus)
    4647
    4748
    4849==== 1.02 Kommunikation mit Foxridge ====
    4950
    50 Das Skript [source:trunk/schema/scripts/workflow/Filter_1_02_import_metadata.pl Filter_1_01_import_metadata] kommuniziert mit Foxridge. Das Skript setzt voraus, dass der Identifier im Dateinamen steht. (Das Skript wird daher nicht mit legacy-Verzeichnissen funktionieren.)
     51Das Skript [source:trunk/schema/scripts/workflow/Filter_1_02_import_metadata.pl Filter_1_01_import_metadata] kommuniziert mit Foxridge. Das Skript setzt voraus, dass der Identifier im Dateinamen steht. (Das Skript wird daher nicht mit Archimedes-legacy-Verzeichnissen funktionieren.)
    5152
    5253Erstelle eine lokale Kopie der entsprechenden index.meta-Datei (funktioniert nur innerhalb des Instituts):
     
    5657}}}
    5758
    58 Extrahiere daraus die Metadaten und schreibe sie in den {{{metadata}}}-Block in den raw text. Die Metadaten werden wörtlich übernommen, das Format wird erst in Schritt [#a2.01Metadaten 2.01] angepasst. Übernommen werden (jeweils in <resource>/<meta>):
     59Extrahiere daraus die Metadaten und schreibe sie unbearbeitet in den {{{metadata}}}-Block (siehe [#a2.rawtextbearbeiten Schritt 2]) in den raw text. Die Metadaten werden wörtlich übernommen, das Format wird erst in Schritt [#a2.01Metadaten 2.01] angepasst. Übernommen werden (jeweils in <resource>/<meta>):
    5960  * {{{<author>}}}
    6061  * {{{<title>}}}
     
    6364  * (bisher noch nicht: {{{<publisher>}}}, {{{<city>}}}, {{{<number_of_pages>}}}, {{{<translator>}}})
    6465
    65 Finde den pageimg-Unterordner (default ist {{{pageimg/}}}) und schreibe die JPG-Dateinamen in den {{{pageimg}}}-Block in den raw text.
     66Finde den pageimg-Unterordner (default ist {{{pageimg/}}}) und schreibe die JPG-Dateinamen unbearbeitet in den {{{pageimg}}}-Block (siehe [#a2.rawtextbearbeiten Schritt 2]) in den raw text.
    6667
    6768Änderungen in index.meta:
     
    7576  * Schreibe die neue index.meta
    7677 
    77 (Die Trennung der Schritte „Vorbereitung“ und „raw text bearbeiten“ wird nicht vollkommen eingehalten, denn dieses Skript schreibt bereits Daten in den raw text.)
     78(Die Trennung der Schritte „Vorbereitung“ und „raw text bearbeiten“ wird nicht vollkommen eingehalten, denn dieses Skript schreibt bereits Daten in den raw text. Man könnte die Metadaten und JPG-Dateinamen auch erst in getrennte Dateien schreiben, aber ich wüsste nicht, was dadurch gewonnen wäre.)
    7879
    7980
    8081=== 2. raw text bearbeiten ===
    8182
    82 In diesem Arbeitsschritt wird der raw text auf die Umwandlung in XML vorbereitet. Änderungen werden soweit möglich am Anfang der Datei gemacht. Nur wenn es nicht anders geht, wird der Text selbst geändert.
     83In diesem Arbeitsschritt wird der raw text auf die Umwandlung in XML vorbereitet. Die ersten beiden Skripte bearbeiten die Einträge, die [source:trunk/schema/scripts/workflow/Filter_1_02_import_metadata.pl Filter_1_01_import_metadata] im raw text gemacht hat. Alle weiteren Skripte ändern den raw text gar nicht, sondern finden Stellen, die per Hand geändert werden müssen. Diese Änderungen werden soweit möglich am Anfang der Datei gemacht. Nur wenn es nicht anders geht, wird der Text selbst geändert.
    8384
    8485Am Anfang der Datei sind folgende Gruppen erlaubt, in beliebiger Reihenfolge, jeweils durch eine Leerzeile getrennt, vor dem ersten {{{<pb>}}} (d.h. vor dem eigentlichen Text):
    8586
    86   * {{{metadata:}}}
    87   * {{{pageimg:}}} (wird aber gleich wieder verarbeitet)
    88   * {{{unknown:}}}
    89   * {{{replacements:}}} (per Hand; könnte man noch aufteilen in forbidden, escape sequences, special instructions; aber bringt das mehr Klarheit?)
    90   * {{{log:}}} (per Hand)
    91 
    92 (Alle in getrennte Dateien? Oder ist das dann auch wieder übertrieben? Getrennte Datei doof für Skripte, weil sie die Datei dann finden müssen? Also doch gleich in den raw text?)
     87  * {{{metadata:}}} (kopiert aus {{{index.meta}}} in Schritt 1.02, korrigiert in Schrtt 2.01, aufgelöst in Schritt 3.05)
     88  * {{{pageimg:}}} (kopiert aus {{{pageimg/}}} in Schritt 1.02, aufgelöst bereits in Schritt 2.02)
     89  * {{{unknown:}}} (angelegt in Schritt 2.04, aufgelöst in Schritt 3.01)
     90  * {{{replacements:}}} (angelegt per Hand; könnte man noch aufteilen in forbidden characters aus Schritt 2.03, escape sequences aus Schritt 2.05, special instructions aus Schritt 2.10; aber bringt das mehr Klarheit?)
     91  * {{{log:}}} (per Hand angelegt, immer wenn es nötig ist)
    9392
    9493Es muss möglich sein, bereits im raw text korrektes XML zu verwenden, ohne dass die Skripte darüber stolpern. Beispielsweise muss man <div type="body"> einfügen können. Ein anderes Beispiel: Während der Bearbeitung fällt auf, dass ein Abschnitt auf italienisch ist. Das muss mit <p xlm:lang="it"> markiert werden können.
     
    9796==== 2.01 Metadaten ====
    9897
    99 Skript zur Korrektur der Metadaten aus index.meta:
    100 [source:trunk/schema/scripts/workflow/Filter_2_01_additional_metadata.pl Filter_2_01_additional_metadata]
    101        
    102 „metadata:“
    103 
    104 ergänze dann den Rest per Hand
    105 
    106   * Metadaten: Können vollständig aus der index.meta gewonnen werden, in dem entsprechenden Verzeichnis. Da sollte auch die GND eingefügt werden (siehe mein Hashtable, vielleicht sollte man noch eine interaktive Abfrage einbauen, in der der Benutzer noch zu {{{http://d-nb.info/gnd/$GND}}} surfen kann, ob das auch der richtige Typ ist.).
    107 
    108 
    109 ⟶ am Anfang: dcterms:creator (GND:118859676) Aristoteles
    110 
    111 Klaus: Für Convenience einen Link zu ECHO am Anfang der Datei, beispielsweise
     98Das Skript [source:trunk/schema/scripts/workflow/Filter_2_01_additional_metadata.pl Filter_2_01_additional_metadata] bearbeitet die in Schritt 1.02 aus {{{index.meta}}} in den {{{metadata}}}-Block kopierten Metadaten.
     99
     100Ich verwende für die Metadaten eine Kurzschreibweise. Vielleicht ersetze ich die aber auch wieder durch korrektes XML, sodass die Metadaten in Schritt 3.05 nur noch an die richtige Stelle kopiert werden müssen. Das XML aus index.meta muss allerdings auf alle Fälle an das Schema angepasst werden.
     101
     102Bei Personen wird, falls bekannt, die GND eingefügt. Beispiel:
     103{{{
     104metadata:
     105dcterms:creator (GND:118859676) Benedetti, Giovanni Battista de
     106}}}
     107
     108Unbekannte Personen werden in die GND-Datei eingetragen. Diese Datei kann mehrere Einträge für dieselbe PErson haben, nämlich einen Eintrag für jede bei uns vorkommende Schreibweise. Eventuell wird auch ein link eingefügt, mit dem man die GND prüfen kann, zum Beispiel [http://d-nb.info/gnd/118859676] für Benedetti. (Irgendwann könnte das durch ein interaktives tool passieren.)
     109
     110Außerdem fügt das Skript links zu ECHO ein, beispielsweise
    112111{{{
    113112http://echo.mpiwg-berlin.mpg.de/ECHOdocuView/ECHOzogiLib?mode=imagepath&url=/mpiwg/online/permanent/library/163127KK/pageimg
     
    116115}}}
    117116
     117Der erste link ist für die weitere Bearbeitung besonders wichtig, denn die beiden anderen links funktionieren erst, wenn der Text nach der Bearbeitung als XML-Text hochgeladen wird.
     118
     119Am Ende müssen die Metadaten per Hand geprüft werden.
     120
     121
    118122
    119123==== 2.02 pb's synchronisieren ====
    120124
    121 [source:trunk/schema/scripts/workflow/Filter_2_02_sync_pb.pl Filter_2_02_sync_pb]
    122 
    123 „pageimg:“ (wird aber im Gegensatz zu den anderen „bla:“ sofort verwurstelt)
    124 
    125 ⟶ im ganzen Dokument (nicht zu vermeiden): <pb>![001]
    126 
    127 neu: das Skript kann sich darauf verlassen, dass die Dateinamen schon im raw text stehen.
    128 
    129 entferne zzzz.jpg
     125Das Skript [source:trunk/schema/scripts/workflow/Filter_2_02_sync_pb.pl Filter_2_02_sync_pb] schreibt die JPG-Dateinamen im {{{pageimg}}}-Block hinter die <pb> im Text. Die Zuordnung muss dann per Hand geprüft werden. Falls die Zuordnung nicht stimmt, muss das Skript rückgängig gemacht, die Dateinamen korrigiert und das Skript wiederholt werden.
     126
     127Das Skript macht also Änderungen im ganzen Dokument: {{{<pb>[001]}}} usw. Da die Zurdnung des Textes auf die Seiten Voraussetzung für das Arbeiten mit dem Text ist, wird der {{{pageimg}}}-Block im Gegensatz zu den anderen Blöcken bereits hier aufgelöst.
     128
     129entferne Dateinamen wie zzzz.jpg
    130130
    131131