Changes between Version 17 and Version 18 of workflow


Ignore:
Timestamp:
May 25, 2010, 9:44:11 AM (14 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • workflow

    v17 v18  
    1616== Die Arbeitsschritte ==
    1717
    18 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 weitgehend 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 annotiert und korrigiert. 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.
    1919
    2020Die Arbeitsschritte bestehen jeweils aus einer
     
    3333  * Im Gegensatz zu den weiteren Skripten ist zumindest das Skript in Schritt 1.01 kein Text-Filter, denn man arbeitet hier noch gar nicht mit einem Text-Editor.
    3434  * Wenn wir einen transkribierten Text aus China erhalten, muss zuerst geprüft werden, ob die Datei tatsächlich, wie in den DESpecs verlangt, reiner Text in [http://de.wikipedia.org/wiki/UTF-8 UTF-8] ist. Insbesondere akzeptieren wir keine doc-Dateien.
    35   * Es ist noch nicht ganz klar, wo neue Dateien in Zukunft abgelegt werden: Kommen sie wie bisher zuerst nach [http://pythia.mpiwg-berlin.mpg.de/department1/mpdl/raw-texts Pythia] oder gleich in das [source:trunk/texts wiki-repository]? Ich gehe vorläufig davon aus, dass Texte zuerst nach Pythia kommen. Die Namenskonvention auf Pythia ist bisher Workorder_Autor_Jahr.
     35  * Es ist noch nicht ganz klar, wo neue Dateien in Zukunft abgelegt werden: Kommen sie wie bisher zuerst nach [http://pythia.mpiwg-berlin.mpg.de/department1/mpdl/raw-texts Pythia] oder gleich in das [source:trunk/texts wiki-repository]? Ich gehe vorläufig davon aus, dass Texte weiterhin zuerst nach Pythia kommen. Die Namenskonvention auf Pythia ist bisher Workorder_Autor_Jahr.
    3636
    3737
     
    8888  * {{{pageimg:}}} (kopiert aus {{{pageimg/}}} in Schritt 1.02, aufgelöst bereits in Schritt 2.02)
    8989  * {{{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)
     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? Aufgelöst in Schritt 3.02)
     91  * {{{log:}}} (per Hand angelegt, immer wenn es nötig ist. Aufgelöst in Schritt 3.05, wo es in <dcterms:description> umgewandelt wird.)
     92
     93Jeden Block kann es höchstens einmal geben.
     94
     95Der Sinn der Aufteilung in Anlegen der Blöcke in Schritt 1 und 2 und Auflösen der Blöcke in Schritt 3 ist, dass man möglichst lange mit dem raw text arbeiten kann. Es soll außerdem möglichst lange nachvollziehbar bleiben, welche Änderungen an der aus China erhaltenen Version gemacht wurden. Erst in Schritt 5 wird die XML-Version des Textes ein Faktum an sich, das nicht mehr jederzeit neu aus dem raw text erzeugt werden kann.
    9296
    9397Es 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.
     
    120124
    121125
    122 
    123126==== 2.02 pb's synchronisieren ====
    124127
    125 Das 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 
    127 Das 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 
    129 entferne Dateinamen wie zzzz.jpg
     128Das 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, müssen die Dateinamen korrigiert und das Skript wiederholt werden.
     129
     130Das Skript macht also Änderungen im ganzen Dokument, zum Beispiel:
     131{{{
     132<pb 25>[0037]
     133}}}
     134Da 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.
     135
     136Entferne außerdem Dateinamen wie zzzz.jpg
    130137
    131138
     
    137144
    138145  * ɩ („latin small letter iota“) aus dem Unicode-Block „IPA Extension“ anstelle von „dotless i“. Der ganze Block „IPA Extension“ ist verboten, aber bei den anderen Zeichen gibt es keinen automatischen Korrketurvorschlag.
    139   * ÿ statt ij in kursivem Text
     146  * ÿ statt ij in kursivem Text (Beispiel für ein sprachabhängiges Zeichen: Zum Beispiel im Französischen kann ÿ [http://de.wikipedia.org/wiki/Ÿ vorkommen].)
    140147  * „substitute“ (U+001A)
    141148  * zwei spaces hintereinander
    142149  * Zeichen, die in den Skripten intern verwendet werden: ¤, ¥. (Diese Währungszeichen als reservierte Zeichen wurden ausgewählt, weil sie in alten Texte wahrscheinlich nicht vorkommen, aber in vielen modernen Fonts verfügbar sind.)
    143150
    144 Soweit wie möglich sollten die Korrekturen im {{{replacements:}}}-Block am Anfang des Textes stehen. Einzelfälle können aber auch direkt im Text korrigiert werden. Beispiel: {{{Hinɔ}}} wird {{{Hinc}}}
     151Soweit wie möglich sollten die Korrekturen im {{{replacements:}}}-Block am Anfang des Textes stehen. Einzelfälle können aber auch direkt im Text korrigiert werden. Beispiel: Ein einzelnes {{{Hinɔ}}} wird zu {{{Hinc}}}.
    145152
    146153Eventuell wird das Skript noch von einer Blacklist von Unicode-Blöcken auf eine Whitelist umgestellt.
    147154
     155Der {{{replacements:}}}-Block wird in Schritt 3.02 aufgelöst.
     156
    148157
    149158==== 2.04 prüfe unknown characters ====
    150159
    151 [source:trunk/schema/scripts/workflow/Filter_2_04_check_unknown_characters.pl Filter_2_04_check_unknown_characters]
    152 
    153 „unknown:“
    154 ⟶ am Anfang: {{{<002> ꝑ (p.28: ok)}}}
    155 
    156 sollte die codes auch schon in die Datei schreiben, damit man sie nicht rüberkopieren muss
     160Das Skript [source:trunk/schema/scripts/workflow/Filter_2_04_check_unknown_characters.pl Filter_2_04_check_unknown_characters]
     161sammelt die im Text verwendeten Codes der Form {{{<001>}}} und schlägt jeweils passende Ersetzungen vor. Diese Vorschläge müssen per Hand geprüft werden. Beispiel:
     162{{{
     163unknown:
     164<002> ꝑ
     165}}}
     166wird zu
     167{{{
     168unknown:
     169<002> ꝑ (p.28: ok)
     170}}}
     171
     172Eventuell sollte das Skript die codes auch schon in die Datei schreiben, damit man sie nicht rüberkopieren muss. Allerdings würde das Skript dann sowohl Textänderungen machen als auch eine Liste von Problemen anzeigen.
     173
    157174
    158175==== 2.05 prüfe escape sequences ====
     
    160177Das Skript [source:trunk/schema/scripts/workflow/Filter_2_05_check_escape_sequences.pl Filter_2_05_check_escape_sequences]
    161178ruft intern erst [source:trunk/schema/scripts/workflow/Filter_3_01_replace_unknown_characters.pl Filter_3_01_replace_unknown_characters]
    162 auf und prüft dann, wo danach noch folgende Zeichen im Text sind: { \
    163 
    164 Man muss dann jeweils entscheiden, ob diese geschweiften Klammern etc. in Ordnung sind oder nicht.
    165 
    166 Beispiel: Im Text wird die idiosynkratische Notation {ta} für eine Ligatur in kursiver Schrift verwendet. Im {{{replacements}}}-Block: {{{{ta} ta (vorläufig!)}}}
     179auf und prüft dann, ob danach noch folgende Zeichen im Text sind: { und \
     180
     181Man muss dann bei jeder Fundstelle entscheiden, ob diese geschweiften Klammern etc. legitimerweise noch im Text sind oder ob das Skript in Schritt 3.01 nicht korrekt arbeitet. Beispiel: Im Text wird die idiosynkratische Notation {ta} für eine Ligatur in kursiver Schrift verwendet.
     182{{{
     183replacements:
     184{ta} ta (vorläufig!)
     185}}}
     186
     187Einzelne Stellen können auch im Text selbst korrigiert werden.
    167188
    168189
    169190==== 2.06 prüfe italics ====
    170191
    171 [source:trunk/schema/scripts/workflow/Filter_2_06_check_underscores.pl Filter_2_06_check_underscores]
    172 
    173 {{{_ _}}} werden erst in Schritt 3.04 in <it> verwandelt, aber hier wird bereits geprüft, ob es Probleme geben wird (bzw. die Fehler werden per Hand korrigiert)
     192Das Skript [source:trunk/schema/scripts/workflow/Filter_2_06_check_underscores.pl Filter_2_06_check_underscores] prüft, ob es Schwierigkeiten bei der Umwandlung der Kurzschreibweise {{{_ _}}} für italics geben wird. Die Probleme werden dann von Hand korrigiert. In Schritt 3.04 werden die {{{_ _}}} dann in <it> verwandelt. Die Umwandlung erfolgt also, bevor die <s> in den Text eingefügt werden. Die Umwandlung von <it> in die endgültige Form <emph style="it"> findet dagegen erst nach dem Einfügen der <s> statt.
     193
     194Die Korrekturen in diesem Schritt werden wohl immer im Text selbst und nicht in den Blöcken vor dem Text gemacht.
    174195
    175196
     
    187208  * zusammengehörende Tags wie {{{<rh>}}} und {{{</rh>}}} sind nicht in der gleichen Zeile
    188209
    189 (noch nicht vollständig umgesetzt, funktioniert aber in der Praxis schon sehr gut)
    190 
    191 ⟶ replacements zum Beispiel: << « (lines 41 to 43)
    192 
    193 ⟶ oder zum Beispiel im ganzen Dokument: heads <⟶ running heads, etc.
    194 
    195 --> das Skript sollte alles vor dem ersten <pb> ignorieren
    196 
    197 mit [source:trunk/schema/scripts/script-tests/check_tags-testparcours.txt testparcours]
     210Die letzten Punkte sind noch nicht vollständig umgesetzt, aber das Skript funktioniert in der Praxis schon sehr gut.
     211
     212Wie bei Schritt 2.03 muss man jeweils entscheiden, ob eine Korrektur im Text selbst gemacht wird oder in den {{{replacements}}}-Block geschrieben wird. Beispiel:
     213{{{
     214replacements:
     215<< « (lines 41 to 43)
     216}}}
     217
     218Bei den Dingen, die in diesem Schritt geprüft werden, kann man unterscheiden in echte Fehler, die das Skript nicht korrigieren kann, und falsche Formatierungen, die das Skript selbst korrigieren könnte. Beispielsweise könnte das Skript selbst ein return einfügen, wenn <tb> nicht auf einer eigenen Zeile steht. Aber zum Beispiel gibt es in den DESpecs die Regel, dass eine heading <h> auf eigener Zeile stehen muss, ein running head <rh> dagegen auf der gleichen Zeile wie das zugehörige <pb>. Wenn dies nicht beachtet wurde, ist meistens nicht klar gewesen, ob eine Textzeile eine Überschrift oder ein running head ist. Aufgrund von solchen Fällen verändert das Skript den Text nicht selbst. (Es könnte allerdings regexes vorschlagen, die der User verwenden kann.)
     219
     220Das Skript ignoriert alles vor dem ersten <pb>.
     221
     222Für dieses Skript gibt es einen [source:trunk/schema/scripts/script-tests/check_tags-testparcours.txt testparcours].
    198223
    199224
    200225==== 2.08 prüfe <s> ====
    201226
    202 [source:trunk/schema/scripts/workflow/Filter_2_08_check_s.pl Filter_2_08_check_s]
    203 
    204 kann man hier das s-Skript aufrufen, oder kommt man dann durcheinander?
     227Das Skript [source:trunk/schema/scripts/workflow/Filter_2_08_check_s.pl Filter_2_08_check_s] soll prüfen, ob beim Einfügen von <s> etwas schiefgehen wird. Wie das genau funktionieren soll, ist noch nicht klar. Kann man hier das s-Skript aufrufen, oder kommt man dann durcheinander, weil so viele Skripte dazwischen den Text verändern? Eventuell kann man hier diese Skript gleich mit aufrufen.
    205228
    206229
    207230==== 2.09 prüfe tables ====
    208231
    209 [source:trunk/schema/scripts/workflow/Filter_2_09_check_tables.pl Filter_2_09_check_tables]
    210 
    211 was immer das genau machen wird: prüfe die "syntaktische Korrektheit" der tables
    212 
    213 wie wird das in den raw text geschrieben? schon mit korrektem xhtml ist vielleicht etwas viel Aufwand. noch eine Zwischensprache, oder was ist da überhaupt zu tun?
     232Das Skript [source:trunk/schema/scripts/workflow/Filter_2_09_check_tables.pl Filter_2_09_check_tables] prüft die "syntaktische Korrektheit" und die Plausibilität der tables. Was das genau bedeutet, ist noch nicht ganz klar. (Es wird jedenfalls nicht geprüft, ob die Tabelle das Original korrekt wiedergibt.) Es ist auch noch nicht ganz klar, wie eventuelle Korrekturen in den raw text geschrieben werden, d.h. ob sie in der Syntax der DESpecs hineingeschrieben werden oder schon als xhtml. Wenn als xhtml, muss es von den folgenden Skripten ignoriert werden. In beiden Formen muss es in Schritt 4.02 aus dem Absatz herausgezogen werden.
    214233
    215234
    216235==== 2.10 Special Instructions ====
    217236
    218 [source:trunk/schema/scripts/workflow/Filter_2_10_special_instructions_for_xxxxxxxx Filter_2_10_special_instructions_for_xxxxxxxx]
    219 
    220 (bei manchen Texten wird es einfacher sein, es statt mit einem Skript per Hand zu machen)
    221 
    222 ⟶ am Anfang: {{{--] &lt; (i.e. "--]" becomes "<"; see p.0018 and "DESpecs_special_batch3.pdf")}}}
    223 
    224 ⟶ auch im ganzen Dokument?
     237Für einzelne Texte oder Work Orders kann es Skripte der Form [source:trunk/schema/scripts/workflow/Filter_2_10_special_instructions_for_xxxxxxxx Filter_2_10_special_instructions_for_xxxxxxxx] geben. Bei manchen Texten mit Special Instructions wird es einfacher sein, die nötigen Anpassungen statt mit einem Skript per Hand zu machen. Beispiel Barrow 1674:
     238{{{
     239replacements:
     240--] &lt; (i.e. "--]" becomes "<"; see p.0018 and "DESpecs_special_batch3.pdf"
     241[-- &gt;
     242}}}
     243(Schöner wäre es, wenn die entsprechende Zeichen durch Unicode-Mathematik-Zeichen angenähert werden könnten und die modernen Zeichen erst in der MathML-Formel verwendet werden. Leider gibt es diese Zeichen so nicht in Unicode. Der Umgang mit veralteter mathematischer Notation ist noch nicht vollständig geklärt.)
     244
     245Aber zum Beispiel die Special Instructions für die Tabellen am Ende von Berzelius 1819 könnten mit einem Skript weiterverarbeitet werden.
    225246
    226247