Changes between Version 12 and Version 13 of workflow


Ignore:
Timestamp:
May 24, 2010, 10:52:28 AM (14 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • workflow

    v12 v13  
    9292(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?)
    9393
    94 Das 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.
     94Es 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.
    9595
    9696
     
    168168[source:trunk/schema/scripts/workflow/Filter_2_06_check_underscores.pl Filter_2_06_check_underscores]
    169169
    170 {{{_ _}}} 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)
     170{{{_ _}}} 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)
    171171
    172172
    173173==== 2.07 prüfe tags ====
    174174
     175Das Skript
    175176[source:trunk/schema/scripts/workflow/Filter_2_07_check_tags.pl Filter_2_07_check_tags]
     177prüft ein paar Fälle, die nicht vorkommen sollten und auf Fehler bei der Transkription hindeuten. Der Sinn dieser Prüfung ist auch, dass sich die weiteren Skripte auf die Einhaltung dieser formalen Dinge verlassen können.
     178
     179  * {{{<h>}}}, {{{<mgl>}}}, {{{<mgr>}}}, {{{<fig>}}} jeweils nicht in allein in einer Zeile, bei {{{<pb>}}} nur noch {{{<rh>}}} erlaubt
     180  * nicht-existente Elemente, wie z.B. in {{{<scG</sc>}}}, oder auch {{{<sup>9</sup>}}} statt {{{<^>9</^>}}} (aber siehe unten)
     181  * verschachtelte {{{<p>}}} (vermutlich ein {{{<p>}}} zuviel), und entsprechend für {{{<h>}}} etc.
     182  * {{{</p>}}} ohne vorhergehendes {{{<p>}}}, und entsprechend für {{{<h>}}} etc.
     183  * zusammengehörende Tags wie {{{<p>}}} und {{{</p>}}} liegen sehr weit auseinander
     184  * zusammengehörende Tags wie {{{<rh>}}} und {{{</rh>}}} sind nicht in der gleichen Zeile
     185
     186(noch nicht vollständig umgesetzt, funktioniert aber in der Praxis schon sehr gut)
    176187
    177188⟶ replacements zum Beispiel: << « (lines 41 to 43)
     
    180191
    181192--> das Skript sollte alles vor dem ersten <pb> ignorieren
     193
     194mit [source:trunk/schema/scripts/script-tests/check_tags-testparcours.txt testparcours]
    182195
    183196
     
    214227[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]
    215228prüft anschließend, ob das Ergebnis wohlgeformt ist.
     229
     230Wenn der Text wohlgeformtes XML ist, sollte man ihn mit Dateiendung in {{{xml}}} im Verzeichnis {{{xml/}}} statt {{{raw/}}} abspeichern.
    216231
    217232
     
    248263[source:trunk/schema/scripts/workflow/Filter_3_04_replace_underscores.pl Filter_3_04_replace_underscores]
    249264
     265Ersetze {{{_ _}}} für {{{style="it"}}}. Diese Ersetzung ist nicht Teil des emph-Skriptes, weil sie vor <s> passieren sollte und in Schritt 1 bereits vorbereitet wurde.
     266
    250267
    251268==== 3.05 Metadaten, root element ====
    252269
     270Das Skript
    253271[source:trunk/schema/scripts/workflow/Filter_3_05_add_basic_xml.pl Filter_3_05_add_basic_xml]
    254 
    255 auch: log !
     272ergänzt {{{<?xml version="1.0" encoding="UTF-8"?>}}}, und fügt das root element {{{<echo>}}} sowie {{{<metadata>}}} und {{{<text type="free">}}} ein.
     273
     274auch: log wird zu {{{<dcterms:description>}}}
    256275
    257276
     
    260279[source:trunk/schema/scripts/workflow/Filter_3_06_make_tags_wellformed.pl Filter_3_06_make_tags_wellformed]
    261280
    262 
     281  * reservierte Zeichen in XML: {{{&}}} wird zu {{{&amp;}}}. Das Skript kann mehrere Male aufgerufen werden, es wird also aus {{{&amp;}}} nicht {{{&amp;amp;}}}.
     282  * Attribute: {{{<... it>}}} wird zu {{{<... style="it">}}}, genauso für {{{fr}}}
     283  * ändere die Element-Namen der DESpecs in ihre Gegenstücke im ECHO Schema. Konzeptionell gibt es mehrere Teile: 1. ergänze „{{{/}}}“ in den ungeschlossenen Elementen wie {{{<pb>}}} und {{{<hd>}}}, 2. korrigiere verbotene Element-Namen wie {{{<^>}}}, 3. benenne die Elemente so, wie sie im Schema heißen.
     284 
    263285
    264286=== 4. schema-konform machen ===
     
    278300[source:trunk/schema/scripts/workflow/Filter_4_01_pb.pl Filter_4_01_pb]
    279301
     302verwandle {{{<rh>}}} in ein Attribut {{{rhead}}} in {{{<pb>}}}, ignoriere dabei alle Formatierungen wie kursiv, gesperrt, etc.
    280303
    281304==== 4.02 floats herausziehen ====
     
    287310auch aus <h>, oder lieber Fehler provozieren?
    288311
     312Floats aus Absätzen herausziehen (vor "{{{<s>}}} bestimmen" !):{{{<anchor>}}}, {{{<div type="float">}}} nach dem Absatz.
     313
     314Vorsicht bei anchored marginal notes. Prüfe bei anchors im Text, ob es eine zugehörige note gibt. Akzeptiere kleine Abweichungen der Symbole voneinander, zum Beispiel {{{3)}}} im Text und {{{3}}} in der Fußnote
     315
    289316
    290317==== 4.03 <lb> ====
    291318
    292 [source:trunk/schema/scripts/workflow/Filter_4_03_insert_lb.pl Filter_4_03_insert_lb]
     319Das Skript [source:trunk/schema/scripts/workflow/Filter_4_03_insert_lb.pl Filter_4_03_insert_lb] verwandelt Zeilenumbrüche in <lb/>.
    293320
    294321
    295322==== 4.04 <s> ====
    296323
    297 [source:trunk/schema/scripts/workflow/Filter_4_04_insert_s.pl Filter_4_04_insert_s] (eventuell mit Parameter-Wahl; eventuelle manuelle Korrekturen im raw text!)
     324Das Skript [source:trunk/schema/scripts/workflow/Filter_4_04_insert_s.pl Filter_4_04_insert_s] fügt <s> ein. Beachte Fälle wie:
     325
     326  * et.a.b.hoc est
     327  * .a.b:c.d:e.f.
     328  * .{{{<lb/>}}}a.b.
     329  * Wort-Abkürzungen (hier wäre es einerseits hilfreich, wenn Wortabkürzungen bereits in {{{<reg>}}} wären; andererseits wird der Punkt am Ende von {{{<reg>}}} zum Beispiel in {{{ex .7. quinti <reg>Eucl.</reg>}}} oft noch als Satzendepunkt gebraucht)
     330  * {{{&c.}}} etc.
     331
     332(eventuell mit Parameter-Wahl; eventuelle manuelle Korrekturen im raw text!)
     333
     334
     335==== 4.05 <emph> ====
     336
     337[source:trunk/schema/scripts/workflow/Filter_4_05_emph.pl Filter_4_05_emph]
     338
     339Ersetze Fomatierungs-Elemente durch {{{<emph style="...">}}}. Denke an {{{<sub>}}} und {{{<super>}}}. Verschiebe style-Informationen so wie wie möglich nach oben im xml, zum Beispiel \\ {{{<p><emph style="it">text</emph>.</p>}}} wird zu \\ {{{<p style="it">text.</p>}}}. Anderes Beispiel: \\ {{{<mgl>_eine kur-_<lb/>_ze Notiz._</mgl>}}}
     340
     341mit [source:trunk/schema/scripts/script-tests/emph-testparcours.txt testparcours]
     342
     343
     344==== 4.06 tables ====
     345
     346[source:trunk/schema/scripts/workflow/Filter_4_06_tables.pl Filter_4_06_tables]
     347
     348wann werden die tables bearbeitet? zwei Schritte: überhaupt syntaktisch korrekt, und dann größtmögliche Annäherung an das Original (erst im scholarly workflow).
     349
     350beachte DESpecs 1.1.2 versus 2.0
     351
     352
     353==== 4.07 <div> ====
     354
     355[source:trunk/schema/scripts/workflow/Filter_4_07_insert_div.pl Filter_4_07_insert_div]
     356
     357{{{<div>}}}-Struktur für das Inhaltsverzeichnis erstellen: Erstmal {{{<div>}}} von einer {{{<head>}}}-Gruppe bis zum nächsten. Automatisch erstellte {{{<div>}}} sind alle auf demselben level. {{{n}}} und {{{level}}} werden mit {{{n="0"}}} und {{{level="0"}}} gefüllt. Korrigiere anschließend (automatisch?) bei den {{{<head>}}}, die eigentlich Footer sind.
     358
     359(Dieser Schritt ist nicht wirklich nötig für einen schemakonformen, aber man bekommt es quasi geschenkt.)
     360
     361
     362==== 4.08 Formatieren ====
     363
     364Wenn der Text schemakonform ist, kann man ihn neu formatieren. Es müssen keine Zeilen umgebrochen werden, sondern nur die Anzahl der Leerzeichen am Anfang normalisiert werden.
     365
     366
     367
     368=== 5. weitere Schritte ===
     369
     370Hier 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.
     371
     372Die Nummern dieser Skripte können sich noch ändern. Legt die Hierarchie der inline-Elemente (z.B. <var> in plaintext, <ref> im inline model) eine Verarbeitungsreihenfolge nahe?
     373
     374
     375==== 5.01 <reg> ====
     376
     377[source:trunk/schema/scripts/workflow/Filter_5_01_insert_reg.pl Filter_5_01_insert_reg] (mit Parametern)
     378
     379Problem der Wort-Abkürzungen mit Kasus. Verwende dort {{{<ref>}}}, falls möglich.
     380
     381Test: Kein Zeichen, das normalisiert werden soll, darf hinterher noch im Text (außerhalb von {{{<reg>}}}) sein, zum Beispiel kein Zeichen mit Tilde (mit Ausnahmen in manchen Sprachen). Für !Latein/Benedetti:
     382
     383  * Zeichen mit Tilde (ã ẽ ĩ õ ũ ñ)
     384  * combining tilde (insbesondere p̃ t̃ q̃ r̃)
     385  * combining acute (insbesondere q́)
     386  * medievalist characters: ꝑ ꝓ ꝗ ꝗ̃ ꝙ ꝰ  ́ ꝯ
     387  * weitere: ę ĺ
     388  * Apostroph: insbesondere wird ꝰ manchmal für {{{'}}} gehalten (in den Abschnitten in Benedetti mit {{{xml:lang="it"}}} bzw. {{{xml:lang="ita"}}} ist {{{'}}} dagegen erlaubt)
     389
     390mit [source:trunk/schema/scripts/script-tests/reg-testparcours.txt testparcours]
     391
     392
     393==== 5.02 <var> ====
     394
     395[source:trunk/schema/scripts/workflow/Filter_5_02_insert_var.pl Filter_5_02_insert_var] (mit Parametern)
     396
     397Ziel: verberge den Inhalt vor der morphologischen Analyse
     398
     399Entferne {{{<emph>}}} in Variablen.
     400
     401mit [source:trunk/schema/scripts/script-tests/var-testparcours.txt testparcours]
     402
     403
     404==== 5.03 <num> ====
     405
     406[source:trunk/schema/scripts/workflow/Filter_5_03_insert_num.pl Filter_5_03_insert_num]
     407
     408Ziel wieder: verberge den Inhalt vor der morphologischen Analyse
     409
     410[source:trunk/schema/scripts/workflow/Filter_roman_numbers.pl Filter_roman_numbers] (nicht im repository): <num value="..."> für römische Zahlen, wird eventuell Teil des num-Skriptes.
     411
     412
     413==== 5.04 Formeln ====
     414
     415[source:trunk/schema/scripts/workflow/Filter_5_04_formulae.pl Filter_5_04_formulae]
     416
     417?
     418
     419==== 5.05 <foreign> ====
     420
     421[source:trunk/schema/scripts/workflow/Filter_5_05_insert_foreign.pl Filter_5_05_insert_foreign]
     422
     423Füge {{{<foreign>}}} zumindest für griechischen Text (erkennbar an den verwendeten Zeichen) ein, und {{{xml:lang}}}.
     424
     425
     426==== 5.06 div-Attribute ====
     427
     428[source:trunk/schema/scripts/workflow/Filter_5_06_number_divs.pl Filter_5_06_number_divs]
     429
     430Es 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 (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>?
     431
     432==== Abgleich mit Donatus ====
     433
     434  * Einfügen fehlender Bindestriche
     435  * Korrektur von fehlenden/überflüssigen Spaces
     436  * korrigiere Standardfehler wie fumptis, fint, bumanitate in kursiv
     437
     438
     439==== allgemeines Test-Skript ====
     440
     441Allgemeines Test-Skript? z.B. gibt es nach Anwenden des Skript zwei Spaces hintereinander? Das muss kein Fehler des Skriptes sein, aber es deutet auf ein Problem hin.
     442
     443Gesamt-Test: Keine Punkte mehr im Text, die nicht
     444  * Satzende-Punkte sind ({{{<s>Bla bla bla. </s>}}})
     445  * in einem Tag verschwinden ({{{<ref>ex .7. quinti Eucl.</ref>}}})
     446  * zu einer Zahl gehören ({{{.11.}}})
     447
     448
     449
     450=== scholarly workflow ===
     451
     452  * ersetze {{{<wrong/>}}} durch {{{<sic/>}}} oder entferne es; löse {{{<unsure/>}}} auf
     453  * weitere {{{<reg>}}}, Korrekturen von bestehenden {{{<reg>}}}
     454  * {{{<ref>}}}
     455  * weitere {{{<foreign>}}}
     456  * entferne library stamps
     457  * „old-style numerals typed as letters“, zum Beispiel {{{ex .II.}}} statt {{{ex .11.}}}, aber auch andersherum: {{{10. BENEDETTI}}} statt {{{IO. BENEDETTI}}}
     458  * Wörter mit einzelne griechischen oder einzelnen lateinischen Buchstaben (automatisierbar?)
     459  * Wörter mit einzelnen Großbuchstaben mitten im Wort ({{{ClaZomenius}}}). Häufig ist die Ursache ein fehlendes Space vor dem Großbuchstaben.
     460
     461
     462=== Reste ===
     463
     464[source:trunk/schema/scripts/workflow/Filter_template.pl Filter_template]
     465
     466Figures nachbearbeiten; beachte DESpecs 1.1.2 versus 2.0
     467
     468IDs einfügen (es könnte ein Modul geben, in dem das {{{id}}}-Attribut gefordet wird, und das mit der Zwiebelstruktur in diesem Stadium in Aktion tritt. Dann müssen wir nicht in den usage guide schreiben: Es ist zwar formal optional, aber es sollte verwendet werden.)
     469
     470GIS: {{{<person>}}}, {{{<place>}}}, {{{<time>}}}, {{{<event>}}}
     471
     472[source:trunk/schema/scripts/workflow/Filter_punctuation.pl Filter_punctuation] (nicht im repository): Das 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.
     473
     474[source:trunk/schema/scripts/workflow/Filter_Archimedes_to_ECHO.pl Filter_Archimedes_to_ECHO] (nicht im repository): Dieses Skript habe ich für die Umwandlung von Song Yingxing verwendet. Für europäische Texte müsste es überarbeitet werden.
    298475
    299476[source:trunk/schema/scripts/workflow/Filter_4_04a_test_s.pl Filter_4_04a_test_s] ??
    300477
    301478
    302 ==== 4.05 <emph> ====
    303 
    304 [source:trunk/schema/scripts/workflow/Filter_4_05_emph.pl Filter_4_05_emph]
    305 
    306 
    307 ==== 4.06 tables ====
    308 
    309 [source:trunk/schema/scripts/workflow/Filter_4_06_tables.pl Filter_4_06_tables]
    310 
    311 wann werden die tables bearbeitet? zwei Schritte: überhaupt syntaktisch korrekt, und dann größtmögliche Annäherung an das Original (erst im scholarly workflow).
    312 
    313 
    314 ==== 4.07 <div> ====
    315 
    316 [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)
    317 
    318 
    319 === 5. weitere Schritte ===
    320 
    321 Legt die Hierarchie der inline-Elemente (z.B. <var> in plaintext, <ref> im inline model) eine Verarbeitungsreihenfolge nahe?
    322 
    323 
    324 ==== 5.01 <reg> ====
    325 
    326 [source:trunk/schema/scripts/workflow/Filter_5_01_insert_reg.pl Filter_5_01_insert_reg] (mit Parametern)
    327 
    328 
    329 ==== 5.02 <var> ====
    330 
    331 [source:trunk/schema/scripts/workflow/Filter_5_02_insert_var.pl Filter_5_02_insert_var] (mit Parametern)
    332 
    333 
    334 ==== 5.03 Formeln ====
    335 
    336 [source:trunk/schema/scripts/workflow/Filter_5_03_formulae.pl Filter_5_03_formulae]
    337 
    338 ?
    339 
    340 
    341 ==== 5.04 div-Attribute ====
    342 
    343 [source:trunk/schema/scripts/workflow/Filter_5_04_number_divs.pl Filter_5_04_number_divs]
    344 
    345 
    346 
    347 === Reste ===
    348 
    349 [source:trunk/schema/scripts/workflow/Filter_template.pl Filter_template]
    350 
    351 [source:trunk/schema/scripts/workflow/Filter_1_6_punctuation.pl Filter_1_6_punctuation]
    352 
    353 [source:trunk/schema/scripts/workflow/Filter_Archimedes_to_ECHO.pl Filter_Archimedes_to_ECHO]
    354 
    355 [source:trunk/schema/scripts/workflow/Filter_roman_numbers.pl Filter_roman_numbers]
    356 
    357 
    358 
    359479== Besonderheiten bei chinesischen Texten ==
     480
     481  * beachte die in {{{echo-chinese-text}}} definierten Attribute
     482  * lateinische Zeichen können durch ihre full-width-Version ersetzt sein, zum Beispiel „?“ durch „?“
     483  * verarbeite character variants automatisiert
     484  * verarbeite character variants im scholarly workflow so gut wie möglich. Beispielsweise würde \国 durch die Unicode-Zeichenfolge ⿴口玉 angenähert werden.
     485  * Wort- und Satzgrenzen markieren (bzw. andersrum: invisible spaces innerhalb von Wörtern entfernen)
    360486
    361487Wie der automatisierte Workflow für chinesische Texte aussehen wird, ist noch nicht völlig klar. Wenn zum Beispiel im Text <獘V> getippt wurde, kann man das automatisiert nur zu <reg norm="獘" type="V">獘</reg> mit vorläufigem Typ "V" machen, wo also das getippte Zeichen einfach wiederholt wird. Die Variante im Text kann dann nur eine studentische Hilfskraft anhand der von !ZhongYi erstellten Excel-Tabellen "herstellen". Ziel ist eine Zeichenfolge, die das Zeichen im Text beschreibt. Hier: ⿱敝大. Und dann: