Changes between Version 41 and Version 42 of workflow


Ignore:
Timestamp:
Jun 1, 2010, 5:24:47 PM (14 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • workflow

    v41 v42  
    33[[PageOutline(2-4,,pullout)]]
    44
    5 Auf dieser Seite wird der XML-Workflow für die Umwandlung eines [wiki:despecs DESpecs]-konformen Rohtextes in einen [wiki:echo-schema Schema]-konformen XML-Text beschrieben.
     5Auf dieser Seite wird der XML-Workflow für die Umwandlung eines [wiki:despecs DESpecs]-konformen Rohtextes in einen [wiki:echo-schema Schema]-konformen XML-Text beschrieben. (Zusätzliche Notizen zum XML-Workflow sind jetzt testweise [wiki:workflow-notes hier].)
    66
    77Bisher sind 19 schemakonforme Texte bei ECHO, siehe
     
    3535Die Anwendung in !TextWrangler ist allerdings bequemer.
    3636
    37   * Die Namen der Arbeitschritte sind nur guidelines. Beispielsweise sind die Teilschritte 3.03 (ersetze escape sequences) und 3.04 (ersetze italics) technisch gesehen nicht nötig für einen wohlgeformten Text und 4.07 (füge <div> ein) nicht nötig für einen schemakonformen Text, aber sie sind an den jeweiligen Stellen sinnvoll.
    38   * Bei Skripten mit Parametern werden die Parameterwerte in den raw text eingetragen, und anpassbare Listen wie Wortabkürzungen werden aus Hilfsdateien eingelesen. Die Skripte selbst müssen daher nur selten angepasst werden.
    39   * Für einige Skripte wäre eine interaktive GUI sinnvoll. Wir prüfen zurzeit, ob es bereits geeignete tools gibt, die wir dafür verwenden können.
    40   * Im Gegensatz zu den früheren Skripten dürfen die hier beschriebenen Bearbeitungsschritte die Zeilenstruktur verändern, zum Beispiel eine Zeile hinzufügen.
    41   * Beachte, dass Work Orders 1 bis 5 mit den [http://pythia.mpiwg-berlin.mpg.de/department1/mpdl/despecs/DESpecs.pdf/DESpecs_V1.pdf DESpecs 1.1.2] und Work Orders 6 bis 9 mit den [http://pythia.mpiwg-berlin.mpg.de/department1/mpdl/despecs/DESpecs.pdf/DESpecs_V2.pdf DESpecs 2.0] geschickt wurden. Unterschiede sind zum Beispiel das Format von Figures und von Tabellen.
    42 
    4337
    4438=== 1. Vorbereitungen ===
    4539
    4640In diesem Schritt werden alle Vorbereitungen getroffen, um mit dem raw text arbeiten zu können. Insbesondere werden Verzeichnisse angelegt und Dateien kopiert.
    47 
    48   * 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.
    49   * 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`.
    5041
    5142
     
    5748  * Datei aus Pythia rüberkopieren
    5849  * 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).
    59 
    60 (Shell-Skript von Klaus)
    6150
    6251Im 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.
     
    8776  * text-url-path anlegen: Sprache aus z.B. `<lang>it</lang>`.
    8877 
    89 Das Skript meldet sich nicht bei Foxridge an. Die Änderungen in index.meta werden daher nur in der lokalen Kopie gemacht. Es fehlt also:
    90   * Sicherheitskopie von index.meta anlegen (auch lokal?): Umbenennen von index.meta in index.meta.old, eine ältere Sicherheitskopie mit demselben Namen wird ohne Nachfrage überschrieben.
    91   * Schreibe die neue index.meta
    92  
    93 (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. Die Idee ist, dass alle textspezifischen Informationen in den Text geschrieben werden und alle allgemeinen Informationen wie die GND-Liste in Schritt 2.01 in getrennte Dateien.)
    94 
    9578
    9679=== 2. raw text bearbeiten ===
     
    117100Das 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. Es verwendet die Hilfsdatei `metadata-GND.txt`.
    118101
    119 Für die Metadaten wird eine Kurzschreibweise verwendet, die nicht XML ist. Vielleicht ersetze ich diese Kurzschreibweise 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.
     102Für die Metadaten wird eine Kurzschreibweise verwendet, die nicht XML ist.
    120103
    121104Bei Personen wird, falls bekannt, die GND eingefügt. Beispiel:
     
    172155Soweit wie möglich sollten die Korrekturen im `replacements`-Block am Anfang des Textes stehen. Der `replacements`-Block wird in Schritt 3.02 aufgelöst. Einzelfälle können aber auch direkt im Text korrigiert werden. Beispiel: Ein einzelnes `Hinɔ` wird zu `Hinc`.
    173156
    174 Eventuell wird das Skript noch von einer Blacklist der verbotenenen Unicode-Blöcke auf eine Whitelist der erlaubten Unicode-Blöcke umgestellt. Vielleicht sollte man auch in den DESpecs eine Whitelist oder Blacklist vorgeben, um das zufällige Herauspicken von Unicode-Zeichen zu verhindern. Andererseits sind falsche Unicode-Zeichen leicht korrigierbar, solange sie konsistent verwendet werden.
    175 
    176157
    177158==== 2.04 prüfe unknown characters ====
     
    191172}}}
    192173
    193 Eventuell 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.
    194 
    195174
    196175==== 2.05 prüfe escape sequences ====
     
    212191
    213192Das 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.
    214 
    215 Die Korrekturen in diesem Schritt werden wohl immer im Text selbst und nicht in den Blöcken vor dem Text gemacht.
    216193
    217194
     
    240217Bei 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. Damit hier keine Information verschwindet, verändert das Skript den Text nicht selbst.
    241218
    242 Das Skript könnte allerdings zumindest regexes vorschlagen, die der User verwenden kann. Langfristig sollte es eine interaktive Version dieses Schrittes geben.
    243 
    244219Das Skript ignoriert alles vor dem ersten <pb>.
    245220
     
    257232}}}
    258233
    259 (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 Skripte gleich mit aufrufen. Ausgangspunkt ist jedenfalls das alte Skript `Filter_4_04a_test_s.pl`.)
    260 
    261234
    262235==== 2.09 prüfe tables ====
     
    273246[-- &gt;
    274247}}}
    275 (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. Alternative wäre wie bei Alchemie-Symbolen ein Bild; ist das bei Büchern mit vielen Formeln realistisch?)
    276248
    277249Zum Beispiel die Special Instructions für die Tabellen am Ende von [wiki:WO4_Berzelius_1819 Berzelius 1819] würden dagegen eher mit einem Skript weiterverarbeitet werden.
     
    281253
    282254Diese Skripte in diesem Arbeitsschritt sollten problemlos durchlaufen und können daher in einem Meta-Skript [source:trunk/schema/scripts/workflow/Filter_3_make_wellformed.pl Filter_3_make_wellformed] zusammengefasst werden. Das Skript [source:trunk/schema/scripts/workflow/Filter_3_test_wellformedness.pl Filter_3_test_wellformedness]
    283 prüft anschließend, ob das Ergebnis wohlgeformt ist. (Dieses Skript ist zurzeit ein Wrapper für xmllint. Ich werde es wahrscheinlich noch auf ein Perl-Modul statt xmllint umstellen.)
     255prüft anschließend, ob das Ergebnis wohlgeformt ist.
    284256
    285257Wenn der Text wohlgeformtes XML ist, sollte man ihn mit Dateiendung in `xml` (im Verzeichnis `xml/` statt `raw/`) abspeichern.
     
    299271}}}
    300272aus Schritt 2.07. Auch hier kann sich das Skript für die escape sequences drauf verlassen, dass diese Ersetzungen bereits durchgeführt wurden.
    301 
    302 Dieser Schritt könnte mit Schritt 3.01 fusioniert werden. Ich sehe allerdings keine unmittelbare Notwendigkeit dafür.
    303273
    304274
     
    318288  * `{ij}` wird zwar hier zu `ij`, aber in einem späteren Schritt wird `ij` stillschweigend wieder zu `ij` (ohne `{ }`).
    319289  * Für die Ligatur `{is}` in italics gibt es gar kein Ligatur-Zeichen in Unicode, sodass es gleich stillschweigend durch `is` ersetzt wird. Eine Lösung wie `i ZWJ j` mit dem Zero Width Joiner (U+200D) funktioniert leider nur in der [http://www.unicode.org/versions/Unicode5.2.0/ch16.pdf Theorie] (dort p.506).
    320  
    321 Beachte außerdem:
    322   * `\'` (U+0027) kann im Text auch als `\’` (U+2019) geschrieben sein (`\'` wurde in den DESpecs leider als `\’` geschrieben; Problem von `shortvrb`, mit dem beispielsweise `§\'§` im XeLaTeX-Quellcode der DESPecs im fertigen PDF zu `\’` wird, usw.)
    323290
    324291
     
    335302[source:trunk/schema/scripts/workflow/Filter_3_05_add_basic_xml.pl Filter_3_05_add_basic_xml]
    336303ergänzt die XML-Präambel `<?xml version="1.0" encoding="UTF-8"?>` und fügt das root element `<echo>` sowie `<metadata>` und `<text type="free">` ein. Der Text im `log`-Block wird zu `<dcterms:description>` (oder `<echo:log>`?). Genauso wird der Text im `parameters`-Block zu (einem einzigen) `<echo:parameters>`. Alle nachfolgenden Skript finden daher ihre Parameter nicht mehr im `parameters`-Block, sondern in `<echo:parameters>`.
    337 
    338   * Das Skript fügt auch ein DTD-Fragment ein, das den Text schemakonform macht, ohne dass man `xml:space="preserve"` in alle `<s>` schreiben muss. Auf die Skript hat dies keinen Einfluss, aber es erleichtert das Bearbeiten des Textes in einem XML-Editor. Das Skript in Schritt 6.01, und allgemein jedes beliebige XSLT-Skript, löst als Nebeneffekt das DTD-Fragment wieder auf. Ein weiteres Skript wird das DTD-Fragment wieder einfügen können.
    339304
    340305
     
    354319Wie in Schritt 3 sollten diese Skripte problemlos durchlaufen und können daher in einem Meta-Skript [source:trunk/schema/scripts/workflow/Filter_4_make_valid.pl Filter_4_make_valid] zusammengefasst werden. Das Skript  [source:trunk/schema/scripts/workflow/Filter_4_test_validity.pl Filter_4_test_validity] test dann, ob das Ergebnis schemakonform ist. (Dieses Skript ist ein Wrapper für Jing, das die eigentliche Validierung macht.)
    355320
    356 Eine Ausnahme für das problemlose Durchlaufen kann das Skript für <s> sein.
    357 
    358 Solange Tabellen noch nicht richtig verarbeitet werden (siehe Schritte 2.09 und 4.06), werden außerdem in [source:trunk/schema/scripts/workflow/Filter_4_00_Schummelskript.pl Filter_4_00_Schummelskript] Tabellen in <mgr> verwandelt, sodass sie korrekt aus dem Absatz herausgezogen werden.
    359 
    360321
    361322==== 4.01 <pb> ====
     
    370331Das Kriterium in den DESpecs, wo die Floats zu tippen sind, ist recht krude. Daher ist eine minimale Nachbereitung sinnvoll. Zum Beispiel wird ein Float stillschweigend aus dem Absatz geschoben, wenn nur eine einzige Textzeile davor oder danach ist. (Als Folge können allerdings Marginalien, die sich auf einen Absatz beziehen, im xml formal vor oder nach dem Absatz stehen.) Da dies automatisch geschehen kann, wird es nicht schon in Schritt 2 gemacht.
    371332
    372   * Vorsicht bei anchored marginal notes.
    373   * Prüfe bei anchors im Text, ob es eine zugehörige note auf der gleichen Seite gibt. Akzeptiere dabei kleine Abweichungen der Symbole voneinander, zum Beispiel `3)` im Text und `3` in der Fußnote. Gib ansonsten eine Warnung aus.
    374   * Was passiert bei Floats in <h>, wenn sie nicht stillschweigend herausgeschoben werden können? Oder ist es besser, einen Fehler zu provozieren, weil solche <h> manchmal in Wirklichkeit <p type="title"> sind?
    375   * Beachte Fußnoten auf zwei Seiten.
    376 
    377333
    378334==== 4.03 <lb> ====
    379335
    380 Das Skript [source:trunk/schema/scripts/workflow/Filter_4_03_insert_lb.pl Filter_4_03_insert_lb] verwandelt Zeilenumbrüche in <lb/>. Das ist normalerweise geradlinig. Beachte Ausnahmen bei <pb> und <anchor>. Als Effekt des Skriptes wird die Zeilenanzahl des Textes sehr viel kleiner.
     336Das Skript [source:trunk/schema/scripts/workflow/Filter_4_03_insert_lb.pl Filter_4_03_insert_lb] verwandelt Zeilenumbrüche in <lb/>. Als Effekt des Skriptes wird die Zeilenanzahl des Textes sehr viel kleiner.
    381337
    382338
    383339==== 4.04 <s> ====
    384340
    385 Das Skript [source:trunk/schema/scripts/workflow/Filter_4_04_insert_s.pl Filter_4_04_insert_s] fügt <s> ein. Bei diesem Skript kann man bestimmte Parameter wählen, um bessere <s> zu erhalten. Trotzdem kann es manchmal passieren, dass man zum raw text zurückkehren muss und dort bei manchen Punkten manuell markieren muss, ob es eine Satzende ist oder nicht. Das können einzelne Punkte sein, wo es sich wahrscheinlich nur in Ausnahmefällen lohnen wird, oder wiederkehrende Situationen wie eine nicht erkannte Abkürzung. Details und die Syntax dafür habe ich mir noch nicht überlegt.
    386 
    387 Beachte Fälle wie:
    388   * et.a.b.hoc est (hier normalisieren wir bisher die spaces, also „`et .a.b. hoc est`“)
    389   * .a.b:c.d:e.f.
    390   * .`<lb/>`a.b.
    391   * Wort-Abkürzungen
    392   * `&c.` etc.
    393 
    394 Das Skript kann sich darauf verlassen, dass die Floats bereits aus dem Absatz herausgezogen sind. Dadurch wird das Markieren von <s> in Floats erleichtert. Das Skript kann sich aber nicht darauf verlassen, dass Wortabkürzungen bereits in `<reg>` sind. Der Punkt am Ende von `<reg>` zum Beispiel in ex `.7. quinti <reg>Eucl.</reg>` wird außerdem oft noch als Satzendepunkt gebraucht.
     341Das Skript [source:trunk/schema/scripts/workflow/Filter_4_04_insert_s.pl Filter_4_04_insert_s] fügt <s> ein. Bei diesem Skript kann man bestimmte Parameter wählen, um bessere <s> zu erhalten. Trotzdem kann es manchmal passieren, dass man zum raw text zurückkehren muss und dort bei manchen Punkten manuell markieren muss, ob es eine Satzende ist oder nicht. Das können einzelne Punkte sein, wo es sich wahrscheinlich nur in Ausnahmefällen lohnen wird, oder wiederkehrende Situationen wie eine nicht erkannte Abkürzung.
    395342
    396343
     
    419366}}}
    420367
    421 Beachte:
    422   * `<_>` und `<^>` wurden in Schritt 3.06 in `<sub>` und `<super>` umbenannt.
    423   * <it> in einem Absatz in italics ergibt wieder upright.
    424   * Kombinationen wie `it bf`
    425 
    426368Für dieses Skript gibt es einen [source:trunk/schema/scripts/script-tests/emph-testparcours.txt testparcours].
    427369
     
    431373Das Skript [source:trunk/schema/scripts/workflow/Filter_4_06_tables.pl Filter_4_06_tables], das in Schritt 2.09 vorbereitet wurde, verwandelt die Tabellen-Syntax der DESpecs in gültiges xhtml. Wie schon in Schritt 2.09 wird auch hier nicht geprüft, ob die Tabelle tatsächlich dem Original nahekommt. Dies passiert erst im scholarly workflow.
    432374
    433 Beachte die unterschiedlichen Anweisungen in den DESpecs 1.1.2 und 2.0.
    434 
    435375
    436376==== 4.07 <div> ====
    437377
    438 Das Skript [source:trunk/schema/scripts/workflow/Filter_4_07_insert_div.pl Filter_4_07_insert_div] fügt eine simple <div>-Struktur in den Text ein, indem es bei jeder <head>-Gruppe ein <div> beginnen lässt. Dadurch bekommt der Text ein rudimentäres Inhaltsverzeichnis.
    439 
    440   * Automatisch erstellte `<div>` sind alle auf demselben level. Für eine hierarchische <div>-Struktur (z.B. mit front, body, back) muss die automatische <div>-Struktur per Hand nachbearbeitet werden.
    441   * `n` und `level` werden mit `n="0"` und `level="0"` gefüllt und erst im Schritt 6.01 korrekt durchnumeriert. Das Skript sollte die Skripte 6.01 und 6.02 intern aufrufen. (Problem, dass 4.07 bereits vom Schritt-4-Metafilter augerufen wird?)
    442   * Korrigiere <div> (automatisch?) bei den `<head>`, die eigentlich Footer sind.
    443 
    444 Man kann bereits im raw text zum Beispiel <div type="body"> einzufügen (beachte: dann sollte auch der type in <text> geändert werden). Braucht man dazu ein tool, oder geht das so? Was ist die Verbindung zum <div>-Skript? Braucht man ein tool zur manuellen Nachbearbeitung der automatisch erstellten <div>?
     378Das Skript [source:trunk/schema/scripts/workflow/Filter_4_07_insert_div.pl Filter_4_07_insert_div] fügt eine simple <div>-Struktur in den Text ein, indem es bei jeder <head>-Gruppe ein <div> beginnen lässt. Dadurch bekommt der Text ein rudimentäres Inhaltsverzeichnis.
    445379
    446380
     
    454388Hier gibt es einen Einschnitt im workflow: Der schemakonforme xml-Text wird bearbeitet. Es ist dann nicht mehr möglich, einfach zum raw text zurückzukehren und alle Bearbeitungsschritte noch einmal zu machen. Dies fällt, wie schon in Schritt 2 gesagt, idealerweise mit dem Beginn des (automatiserbaren Teils des) scholarly workflow zusammen.
    455389
    456 Die Nummern dieser Skripte in diesem Schritt können sich noch ändern. Die Hierarchie der inline-Elemente (z.B. <var> in plaintext, <ref> im inline model) legt vermutlich noch keine Verarbeitungsreihenfolge nahe.
     390Die Nummern dieser Skripte in diesem Schritt können sich noch ändern.
    457391
    458392
     
    472406  * Apostroph: in den Abschnitten in Benedetti mit `xml:lang="it"` bzw. `xml:lang="ita"` ist `'` dagegen erlaubt
    473407
    474 Beachte:
    475   * der modifier letter us ꝰ wird manchmal für `'` gehalten
    476   * Problem der Wort-Abkürzungen mit Kasus, zum Beispiel `ex .7. quinti Eucl.`. Verwende dort `<ref>`, falls möglich.
    477 
    478 Das Skript erwartet und hinterlässt den Text in NRC-Normalform. Escape sequences wie `&apos;`, die manche Text-Editoren für `'` substituieren, werden aufgelöst.
    479 
    480408Für dieses Skript gibt es einen [source:trunk/schema/scripts/script-tests/reg-testparcours.txt testparcours].
    481409
     
    493421
    494422Das Skript [source:trunk/schema/scripts/workflow/Filter_5_03_insert_num.pl Filter_5_03_insert_num] fügt <num> um Zahlen ein, die nicht in der in modernen westlichen Texten üblichen Weise geschrieben sind. Ein Ziel ist wieder, den Inhalt vor der morphologischen Analyse zu verbergen. Beispiel: `<num value="0.5">½</num>`.
    495 
    496 (Verwende das Skript `Filter_roman_numbers.pl`: <num value="..."> für römische Zahlen.)
    497423
    498424
     
    537463
    538464Das Skript [source:trunk/schema/scripts/workflow/Filter_5_06_number_divs.pl Filter_5_06_number_divs] numeriert die Attribute `<div level="." n=".">` korrekt durch. (Das Skript ist ein Wrapper für das XSLT-Skript `number-divs.xsl`, das die eigentliche Arbeit macht.)
    539 
    540 (Nummer anpassen)
    541465
    542466
     
    564488=== Anmerkungen ===
    565489
    566   * Das Grundgerüst für die Skripte ist [source:trunk/schema/scripts/workflow/Filter_template.pl dieses template].
    567 
    568   * Figures nachbearbeiten und ausschneiden: Sollte das ans Ende von Schritt 2? (und beachte DESpecs 1.1.2 versus 2.0)
    569  
    570   * Wo werden sich überschneidende Hierarchien aufgelöst? Zum Beispiel Fußnoten, die auf der nächsten Seite weitergehen; Text flows mit getrennten Seitennumerierungen wie im Eipo-Text und den Conimbricenses; Absätze, die in einer column anfangen und in der nächsten column aufhören
    571 
    572   * Das Skript zur Normalisierung der Interpunktion (Filter_punctuation.pl) 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.
    573 
    574   * Filter_Archimedes_to_ECHO.pl: Dieses Skript habe ich für die Umwandlung von Song Yingxing verwendet. Für europäische Texte müsste es überarbeitet werden.
     490(siehe [wiki:workflow-notes#Anmerkungen workflow-notes])
    575491
    576492