Changes between Version 10 and Version 11 of workflow


Ignore:
Timestamp:
May 23, 2010, 10:43:31 AM (14 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • workflow

    v10 v11  
    77und
    88[http://echotest.mpiwg-berlin.mpg.de/content/historymechanics/Echo echotest].
    9 Der automatische XML-Workflow besteht aus einer Reihe von [source:trunk/schema/scripts/workflow Skripten]. Einige dieser Skripte sind noch reine Platzhalter, aber die Struktur stimmt bereits.
     9Der automatische XML-Workflow besteht aus einer Reihe von [source:trunk/schema/scripts/workflow Skripten]. Einige dieser Skripte sind noch leere Platzhalter, aber die Struktur stimmt bereits.
    1010
    1111
    1212== Die Arbeitsschritte ==
    1313
    14 ein Stern * bei einem Filter bedeutet: Wenn man zum raw text zurückkehrt, muss dieses Skript anschließend noch einmal angewendet werden. Alle Skripte mit * laufen automatisch ab; Ausnahme könnte später das {{{<s>}}}-Skript sein. Die automatischen Skripte sollten soweit wie möglich in Skript-Ketten abrufbar sein.
     14Im ersten Arbeitsschritt werden alle Vorbereitungen getroffen, um mit dem raw text zu arbeiten. Im zweiten Schritt wird der raw text korrigiert und annotiert. Im dritten Schritt wird der annotierte raw text in wohlgeformtes XML verwandelt. Im vierten Schritt wird der XML-Text schemakonform gemacht.
     15
     16Im Gegensatz zu den früheren Skripten dürfen die hier beschriebenen Bearbeitungsschritte die Zeilenstruktur verändern, zum Beispiel eine Zeile hinzufügen.
     17
     18Beachte, dass Work Orders 1 bis 5 mit den DESpecs 1.1.2 und Work Orders 6 bis 9 mit den DESpecs 2.0 geschickt wurden. Unterschiede sind zum Beispiel das Format von Figures und von Tabellen.
     19
     20Ein Stern * bei einem Filter bedeutet: Wenn man zum raw text zurückkehrt, muss dieses Skript anschließend noch einmal angewendet werden. Alle Skripte mit * laufen automatisch ab; Ausnahme könnte später das {{{<s>}}}-Skript sein. Die automatischen Skripte sollten soweit wie möglich in Meta-Skripten abrufbar sein.
    1521
    1622Namenskonvention bei den Skripten: {{{check}}} als Vorbereitung, {{{test}}} als Nachbereitung. Alle anderen Skripte müssen wiederholt werden, wenn man wieder mit dem raw text anfängt.
     
    2228
    2329==== Von Pythia ins svn-repository ====
     30
     31Es ist noch nicht ganz klar, wie neue Dateien in Zukunft verarbeitet werden: Kommen sie zuerst nach Pythia oder gleich in das wiki-repository? Jedenfalls muss geprüft werden, dass es die Datei reiner Text in utf-8 ist.
    2432
    2533im [source:trunk/texts Texte-Verzeichnis] im repository:
     
    2735  * Verzeichnisse anlegen (allerdings nerven die raw/xml-Verzeichnisse in der Praxis)
    2836  * Datei aus Pythia rüberkopieren
    29   * Kopie erstellen und umbenennen, mit identifier, neue line ends
     37  * Kopie erstellen und umbenennen (autor_jahr_identifier), Zeilenenden von CRLF zu LF. Entferne BOM-Fragmente (korrekte BMs sind okay).
    3038
    3139Skript: Datei umbenennen? oder ist das jetzt wirklich etwas, was einfacher per Hand geht?
    32 
    33 Skript von Klaus?
     40(Skript von Klaus?)
    3441
    3542
     
    70772. Umbenennen der alten index.meta (eventuell wird eine ältere Sicherheitskopie ohne Nachfrage überschrieben), Schreiben der neuen.
    7178
     79(Die Trennung von Vorbereitung und raw text bearbeiten kann man eventuell nicht klar aufrechterhalten, weil es wohl nur ein Skript gibt, das mit dem Server kommuniziert und dort gleichzeitig <texttool> einträgt, Metadaten abgreift, die pageimg importiert. Andererseits können das genausogut drei getrennte Skripte sein. Dann kommuniziert man halt dreimal mit dem Server. Oder einfacher: ein Skript holt sich eine lokale Kopie von index.meta und legt eine getrennte Datei der pageimg an, und die nächsten Skripte müssen dann gar nicht mehr auf dem Server anfragen.)
     80
    7281
    7382=== raw text bearbeiten ===
    7483
    75 Die Trennung von Vorbereitung und raw text bearbeiten kann man eventuell nicht klar aufrechterhalten, weil es wohl nur ein Skript gibt, das mit dem Server kommuniziert und dort gleichzeitig <texttool> einträgt, Metadaten abgreift, die pageimg importiert. Andererseits können das genausogut drei getrennte Skripte sein. Dann kommuniziert man halt dreimal mit dem Server. ODer einfacher: ein Skript holt sich eine lokale Kopie von index.meta und legt eine getrennte Datei der pageimg an, und die nächsten Skripte müssen dann gar nicht mehr auf dem Server anfragen.
    76 
    77 Folgende Gruppen sind erlaubt, in beliebiger Reihenfolge, jeweils durch eine Leerzeile getrennt, vor dem ersten {{{<pb>}}}:
     84In 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.
     85
     86Am 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):
    7887
    7988  * {{{metadata:}}}
    80   * {{{pageimg:}}} (wird aber gleich wieder verarbeitet) bzw. getrennte Datei, siehe oben
     89  * {{{pageimg:}}} (wird aber gleich wieder verarbeitet)
    8190  * {{{unknown:}}}
    8291  * {{{replacements:}}} (per Hand; könnte man noch aufteilen in forbidden, escape sequences, special instructions; aber bringt das mehr Klarheit?)
    8392  * {{{log:}}} (per Hand)
    8493
    85 Alle in getrennte Dateien? Oder ist das dann auch wieder übertrieben?
    86 
    87 Getrennte Datei doof für Skripte, weil sie die Datei dann finden müssen? Also doch gleich in den raw text?
     94(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?)
     95
     96Das Skript zur Normalisierung der Interpunktion habe ich vorläufig weggelassen, weil es vermutlich merkwürdige Nebenwirkungen hat. Zum Beispiel spaces vor „:“ weg. (Hier ist die Frage, ob wir Information verlieren, die wir gerne konservieren würden. Beispiel „EPISTOL AE“). Ziel ist wieder, dass sich die folgenden Skripte auf ein einheitliches Format verlassen können. Beispielsweise müsste das reg-Skript, das unter anderem {{{q;}}} durch {{{que}}} ersetzt, nicht noch prüfen, ob es {{{q ;}}} gibt.
     97
    8898
    8999==== Metadaten ====
    90100
     101Skript zur Korrektur der Metadaten aus index.meta:
    91102[source:trunk/schema/scripts/workflow/Filter_2_01_additional_metadata.pl Filter_2_01_additional_metadata]
    92103       
    93104„metadata:“
    94 Skript zur Korrektur der Metadaten aus index.meta
    95105
    96106ergänze dann den Rest per Hand
     
    121131==== ersetze verbotene Zeichen im Text ====
    122132
     133Das Skript
    123134[source:trunk/schema/scripts/workflow/Filter_2_03_find_forbidden_characters.pl Filter_2_03_find_forbidden_characters]
    124 
    125 ⟶ im ganzen Dokument: {{{Hinɔ wird Hinc}}} (Einzelfälle)
    126 
    127 entweder direkt im Text, oder mit Zwischenstuf als replacements am Anfang
     135erstellt eine Liste verbotener Zeichen und Uncode-Blöcke im Text, bei einzelnen Zeichen mit Korrekturvorschlag. Beispiele:
     136
     137  * ɩ („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.
     138  * ÿ statt ij in kursivem Text
     139  * „substitute“ (U+001A)
     140  * zwei spaces hintereinander
     141  * 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.)
     142
     143Soweit 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}}}
     144
     145Eventuell wird das Skript noch von einer Blacklist von Unicode-Blöcken auf eine Whitelist umgestellt.
    128146
    129147
     
    139157==== prüfe escape sequences ====
    140158
    141 [source:trunk/schema/scripts/workflow/Filter_2_05_check_escape_sequences.pl Filter_2_05_check_escape_sequences]
    142 
    143 
    144 bei replacements: zum Beispiel {{{{ta} ta (vorläufig!)}}}
    145        
     159Das Skript [source:trunk/schema/scripts/workflow/Filter_2_05_check_escape_sequences.pl Filter_2_05_check_escape_sequences]
     160ruft intern erst [source:trunk/schema/scripts/workflow/Filter_3_01_replace_unknown_characters.pl Filter_3_01_replace_unknown_characters]
     161auf und prüft dann, wo danach noch folgende Zeichen im Text sind: { \
     162
     163Man muss dann jeweils entscheiden, ob diese geschweiften Klammern etc. in Ordnung sind oder nicht.
     164
     165Beispiel: Im Text wird die idiosynkratische Notation {ta} für eine Ligatur in kursiver Schrift verwendet. Im {{{replacements}}}-Block: {{{{ta} ta (vorläufig!)}}}
     166
     167
    146168==== prüfe italics ====
    147169
     
    150172{{{_ _}}} werden erst später in <it> verwandelt, aber hier wird bereits geprüft, ob es Probleme geben wird (bzw. die Fehler werden per Hand korrigiert)
    151173
    152        
    153174
    154175==== prüfe tags ====
     
    177198wie 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?
    178199
     200
    179201==== Special Instructions ====
    180202
    181 [source:trunk/schema/scripts/workflow/Filter_2_10_special_instructions_for_... .pl Filter_2_10_special_instructions_for_... ]
     203[source:trunk/schema/scripts/workflow/Filter_2_10_special_instructions_for_xxxxxxxx Filter_2_10_special_instructions_for_xxxxxxxx]
    182204
    183205(bei manchen Texten wird es einfacher sein, es statt mit einem Skript per Hand zu machen)
     
    190212=== Schritte bis zu wohlgeformtem xml ===
    191213
    192 Diese Skripte sollten problemlos durchlaufen und können in einem Meta-Skript zusammengefasst werden:
    193 [source:trunk/schema/scripts/workflow/Filter_3_make_wellformed.pl Filter_3_make_wellformed]
    194 
    195 Außerdem: [source:trunk/schema/scripts/workflow/Filter_3_test_wellformedness.pl Filter_3_test_wellformedness]
    196 
    197 
     214Diese Skripte in diesem Arbeitsschritt sollten problemlos durchlaufen und können in einem Meta-Skript zusammengefasst werden:
     215[source:trunk/schema/scripts/workflow/Filter_3_make_wellformed.pl Filter_3_make_wellformed]. Das Skript [source:trunk/schema/scripts/workflow/Filter_3_test_wellformedness.pl Filter_3_test_wellformedness]
     216prüft anschließend, ob das Ergebnis wohlgeformt ist.
    198217
    199218
     
    202221[source:trunk/schema/scripts/workflow/Filter_3_01_replace_unknown_characters.pl Filter_3_01_replace_unknown_characters]
    203222
    204 
    205223(vor escape sequences als garantierte Reihenfolge, bevor die escape sequences umgewandelt werden)
    206224
     
    216234==== ersetze escape sequences ====
    217235
    218 [source:trunk/schema/scripts/workflow/Filter_3_03_replace_escape_sequences.pl Filter_3_03_replace_escape_sequences]
     236Das Skript [source:trunk/schema/scripts/workflow/Filter_3_03_replace_escape_sequences.pl Filter_3_03_replace_escape_sequences]
     237löst alle escape sequences auf, sowie einige weitere Schreibweisen aus den DESpecs.
     238
     239  * escape sequences: Beachte, dass {{{\'}}} (U+0027) im Text auch als {{{\’}}} (U+2019) geschrieben sein kann.
     240  * Beachte auch: {{{\-}}} wird hier zu einem combining macron, weil es so im transkribierten Text steht. Später wird das in den meisten Fällen zu einer Tilde korrigiert, weil das Makron normalerweise eine falsche Transkription einer Tilde ist. Genauso ist {{{\,e}}} in den meisten Fällen in Wirklichkeit {{{ę}}}, wird aber hier zu {{{ȩ}}}.
     241  * Löse {{{$}}} auf
     242  * Zeichen, die wir absichtlich nicht in die Specs aufgenommen haben, zum Beispiel {{{<^>9</^>}}} für ꝰ (modifier letter us, U+A770)
     243  * löse {{{{ }}}} auf: {{{{ij}}}} auf zu {{{ij}}} (später stillschweigend zu {{{ij}}}), {{{{ae}}}} zu {{{ę}}}
     244  * zum Schluss: Unicode-Normalform [http://unicode.org/reports/tr15/ NRC]
    219245
    220246
     
    223249[source:trunk/schema/scripts/workflow/Filter_3_04_replace_underscores.pl Filter_3_04_replace_underscores]
    224250
     251
    225252==== Metadaten, root element ====
    226253
     
    228255
    229256auch: log !
     257
    230258
    231259==== wohlgeformtes xml ====
     
    246274[source:trunk/schema/scripts/workflow/Filter_4_00_Schummelskript.pl Filter_4_00_Schummelskript] (solange die Tabellen noch nicht richtig verarbeitet werden)
    247275
     276
    248277==== <pb> ====
    249278
    250279[source:trunk/schema/scripts/workflow/Filter_4_01_pb.pl Filter_4_01_pb]
    251280
     281
    252282==== floats herausziehen ====
    253283
     
    258288auch aus <h>, oder lieber Fehler provozieren?
    259289
     290
    260291==== <lb> ====
    261292
    262293[source:trunk/schema/scripts/workflow/Filter_4_03_insert_lb.pl Filter_4_03_insert_lb]
    263294
     295
    264296==== <s> ====
    265297
     
    268300[source:trunk/schema/scripts/workflow/Filter_4_04a_test_s.pl Filter_4_04a_test_s] ??
    269301
     302
    270303==== <emph> ====
    271304
    272305[source:trunk/schema/scripts/workflow/Filter_4_05_emph.pl Filter_4_05_emph]
    273306
     307
    274308==== tables ====
    275309
     
    277311
    278312wann werden die tables bearbeitet? zwei Schritte: überhaupt syntaktisch korrekt, und dann größtmögliche Annäherung an das Original (erst im scholarly workflow).
     313
     314
    279315==== <div> ====
    280316
    281317[source:trunk/schema/scripts/workflow/Filter_4_07_insert_div.pl Filter_4_07_insert_div] (nicht wirklich nötig für Schema-konform, aber bekommt man quasi geschenkt)
    282318
     319
    283320=== weitere Schritte ===
    284321
     322Legt die Hierarchie der inline-Elemente (z.B. <var> in plaintext, <ref> im inline model) eine Verarbeitungsreihenfolge nahe?
     323
     324
    285325==== <reg> ====
    286326
    287327[source:trunk/schema/scripts/workflow/Filter_5_01_insert_reg.pl Filter_5_01_insert_reg] (mit Parametern)
    288328
     329
    289330==== <var> ====
    290331
    291332[source:trunk/schema/scripts/workflow/Filter_5_02_insert_var.pl Filter_5_02_insert_var] (mit Parametern)
    292333
     334
    293335==== Formeln ====
    294336
     
    297339?
    298340
     341
    299342==== div-Attribute ====
    300343
     
    312355
    313356[source:trunk/schema/scripts/workflow/Filter_roman_numbers.pl Filter_roman_numbers]
     357
    314358
    315359