Changes between Version 41 and Version 42 of workflow
- Timestamp:
- Jun 1, 2010, 5:24:47 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
workflow
v41 v42 3 3 [[PageOutline(2-4,,pullout)]] 4 4 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. 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. (Zusätzliche Notizen zum XML-Workflow sind jetzt testweise [wiki:workflow-notes hier].) 6 6 7 7 Bisher sind 19 schemakonforme Texte bei ECHO, siehe … … 35 35 Die Anwendung in !TextWrangler ist allerdings bequemer. 36 36 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 43 37 44 38 === 1. Vorbereitungen === 45 39 46 40 In 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`.50 41 51 42 … … 57 48 * Datei aus Pythia rüberkopieren 58 49 * 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)61 50 62 51 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. … … 87 76 * text-url-path anlegen: Sprache aus z.B. `<lang>it</lang>`. 88 77 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.meta92 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 95 78 96 79 === 2. raw text bearbeiten === … … 117 100 Das 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`. 118 101 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.102 Für die Metadaten wird eine Kurzschreibweise verwendet, die nicht XML ist. 120 103 121 104 Bei Personen wird, falls bekannt, die GND eingefügt. Beispiel: … … 172 155 Soweit 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`. 173 156 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 176 157 177 158 ==== 2.04 prüfe unknown characters ==== … … 191 172 }}} 192 173 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 195 174 196 175 ==== 2.05 prüfe escape sequences ==== … … 212 191 213 192 Das 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.216 193 217 194 … … 240 217 Bei 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. 241 218 242 Das Skript könnte allerdings zumindest regexes vorschlagen, die der User verwenden kann. Langfristig sollte es eine interaktive Version dieses Schrittes geben.243 244 219 Das Skript ignoriert alles vor dem ersten <pb>. 245 220 … … 257 232 }}} 258 233 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 261 234 262 235 ==== 2.09 prüfe tables ==== … … 273 246 [-- > 274 247 }}} 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?)276 248 277 249 Zum 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. … … 281 253 282 254 Diese 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.)255 prüft anschließend, ob das Ergebnis wohlgeformt ist. 284 256 285 257 Wenn der Text wohlgeformtes XML ist, sollte man ihn mit Dateiendung in `xml` (im Verzeichnis `xml/` statt `raw/`) abspeichern. … … 299 271 }}} 300 272 aus 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.303 273 304 274 … … 318 288 * `{ij}` wird zwar hier zu `ij`, aber in einem späteren Schritt wird `ij` stillschweigend wieder zu `ij` (ohne `{ }`). 319 289 * 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.)323 290 324 291 … … 335 302 [source:trunk/schema/scripts/workflow/Filter_3_05_add_basic_xml.pl Filter_3_05_add_basic_xml] 336 303 ergä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.339 304 340 305 … … 354 319 Wie 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.) 355 320 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 360 321 361 322 ==== 4.01 <pb> ==== … … 370 331 Das 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. 371 332 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 377 333 378 334 ==== 4.03 <lb> ==== 379 335 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.336 Das 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. 381 337 382 338 383 339 ==== 4.04 <s> ==== 384 340 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. 341 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. 395 342 396 343 … … 419 366 }}} 420 367 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 426 368 Für dieses Skript gibt es einen [source:trunk/schema/scripts/script-tests/emph-testparcours.txt testparcours]. 427 369 … … 431 373 Das 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. 432 374 433 Beachte die unterschiedlichen Anweisungen in den DESpecs 1.1.2 und 2.0.434 435 375 436 376 ==== 4.07 <div> ==== 437 377 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>? 378 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. 445 379 446 380 … … 454 388 Hier 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. 455 389 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.390 Die Nummern dieser Skripte in diesem Schritt können sich noch ändern. 457 391 458 392 … … 472 406 * Apostroph: in den Abschnitten in Benedetti mit `xml:lang="it"` bzw. `xml:lang="ita"` ist `'` dagegen erlaubt 473 407 474 Beachte:475 * der modifier letter us ꝰ wird manchmal für `'` gehalten476 * 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 `'`, die manche Text-Editoren für `'` substituieren, werden aufgelöst.479 480 408 Für dieses Skript gibt es einen [source:trunk/schema/scripts/script-tests/reg-testparcours.txt testparcours]. 481 409 … … 493 421 494 422 Das 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.)497 423 498 424 … … 537 463 538 464 Das 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)541 465 542 466 … … 564 488 === Anmerkungen === 565 489 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]) 575 491 576 492