Changes between Version 21 and Version 22 of workflow


Ignore:
Timestamp:
May 25, 2010, 2:02:26 PM (14 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • workflow

    v21 v22  
    9999
    100100
    101 
    102101==== 2.01 Metadaten ====
    103102
     
    227226==== 2.08 prüfe <s> ====
    228227
    229 Das 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.
     228Das 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> in Schritt 4.04 etwas schiefgehen wird. Zum Beispiel:
     229  * verdächtig kurze <s>
     230  * Zeichen, die normalerweise nicht am Anfang von <s> stehen sollten:
     231{{{
     232Drei Punkte ... sind keine Satzpunkte.
     233<s>Drei Punkte .</s><s>.. sind keine Satzpunkte. </s>
     234}}}
     235
     236(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}}}.)
    230237
    231238
     
    250257=== 3. Schritte bis zu wohlgeformtem xml ===
    251258
    252 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]
    253 prüft anschließend, ob das Ergebnis wohlgeformt ist. Wenn der Text wohlgeformtes XML ist, sollte man ihn mit Dateiendung in {{{xml}}} (im Verzeichnis {{{xml/}}} statt {{{raw/}}}) abspeichern.
     259Diese 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.
     260
     261Das Skript [source:trunk/schema/scripts/workflow/Filter_3_test_wellformedness.pl Filter_3_test_wellformedness]
     262prü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.)
     263
     264Wenn der Text wohlgeformtes XML ist, sollte man ihn mit Dateiendung in {{{xml}}} (im Verzeichnis {{{xml/}}} statt {{{raw/}}}) abspeichern.
    254265
    255266
     
    317328=== 4. schema-konform machen ===
    318329
    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.
     330Wie 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.
     331
     332Das 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.)
    320333
    321334Eine Ausnahme für das problemlose Durchlaufen kann das Skript für <s> sein.
     
    399412==== 4.06 tables ====
    400413
    401 [source:trunk/schema/scripts/workflow/Filter_4_06_tables.pl Filter_4_06_tables]
    402 
    403 wann werden die tables bearbeitet? zwei Schritte: überhaupt syntaktisch korrekt, und dann größtmögliche Annäherung an das Original (erst im scholarly workflow).
    404 
    405 beachte DESpecs 1.1.2 versus 2.0
     414Das 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.
     415
     416Wie schon in Schritt 2.09 wird hier nicht geprüft, ob die Tabelle tatsächlich dem Original nahekommt. Dies passiert erst im scholarly workflow.
     417
     418Beachte die unterschiedlichen Anweisungen in den DESpecs 1.1.2 und 2.0.
    406419
    407420
    408421==== 4.07 <div> ====
    409422
    410 [source:trunk/schema/scripts/workflow/Filter_4_07_insert_div.pl Filter_4_07_insert_div]
    411 
    412 {{{<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.
    413 
    414 (Dieser Schritt ist nicht wirklich nötig für einen schemakonformen, aber man bekommt es quasi geschenkt.)
     423Das 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. (Dieser Schritt ist nicht wirklich nötig für einen schemakonformen, aber man bekommt es quasi geschenkt.)
     424
     425  * Automatisch erstellte {{{<div>}}} sind alle auf demselben level. Für eine hierarchische <div>-Struktur muss die automatische <div>-Struktur per Hand nachbearbeitet werden.
     426  * {{{n}}} und {{{level}}} werden mit {{{n="0"}}} und {{{level="0"}}} gefüllt und erst im Schritt 5.06 korrekt durchnumeriert.
     427  * Korrigiere <div> (automatisch?) bei den {{{<head>}}}, die eigentlich Footer sind.
    415428
    416429
     
    420433
    421434
    422 
    423 === 5. weitere Schritte ===
    424 
    425 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.
    426 
    427 Die 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?
     435=== 5. weitere Schritte und scholarly workflow ===
     436
     437Hier 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 scholarly workflow zusammen.
     438
     439Die Nummern dieser Skripte in diesem Schritt skönnen sich noch ändern. Legt die Hierarchie der inline-Elemente (z.B. <var> in plaintext, <ref> im inline model) eine Verarbeitungsreihenfolge nahe?
    428440
    429441
    430442==== 5.01 <reg> ====
    431443
    432 [source:trunk/schema/scripts/workflow/Filter_5_01_insert_reg.pl Filter_5_01_insert_reg] (mit Parametern)
    433 
    434 Problem der Wort-Abkürzungen mit Kasus. Verwende dort {{{<ref>}}}, falls möglich.
    435 
    436 Test: 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:
    437 
    438   * Zeichen mit Tilde (ã ẽ ĩ õ ũ ñ)
    439   * combining tilde (insbesondere p̃ t̃ q̃ r̃)
    440   * combining acute (insbesondere q́)
    441   * medievalist characters: ꝑ ꝓ ꝗ ꝗ̃ ꝙ ꝰ  ́ ꝯ
     444Das Skript [source:trunk/schema/scripts/workflow/Filter_5_01_insert_reg.pl Filter_5_01_insert_reg] regularisiert den Text. Für eine ausführlichere Diskussion von <reg> siehe [wiki:regularisierung hier].
     445
     446Wie beim <s>-Skript kann man hier einige Parameter wählen. Details stehen noch nicht fest.
     447
     448Kein 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:
     449
     450  * Zeichen mit Tilde: ã ẽ ĩ õ ũ ñ
     451  * combining tilde, insbesondere p̃ t̃ q̃ r̃ (viele Fonts zeigen solche combining characters nicht über, sondern neben dem Zeichen an; dann muss der User einen Font wähen, der sich besser an die Unicode-Vorgaben hält)
     452  * combining acute, insbesondere q́
     453  * medievalist characters: ꝑ ꝓ ꝗ ꝗ̃ ꝙ ꝰ  ́ ꝯ (geeignete Fonts sind Andron, Junicode und Palemonas, die man [http://www.mufi.info/fonts/ hier] bekommt)
    442454  * weitere: ę ĺ
    443   * Apostroph: insbesondere wird ꝰ manchmal für {{{'}}} gehalten (in den Abschnitten in Benedetti mit {{{xml:lang="it"}}} bzw. {{{xml:lang="ita"}}} ist {{{'}}} dagegen erlaubt)
    444 
    445 mit [source:trunk/schema/scripts/script-tests/reg-testparcours.txt testparcours]
     455  * Apostroph: in den Abschnitten in Benedetti mit {{{xml:lang="it"}}} bzw. {{{xml:lang="ita"}}} ist {{{'}}} dagegen erlaubt
     456
     457Beachte:
     458  * der modifier letter us ꝰ wird manchmal für {{{'}}} gehalten
     459  * Problem der Wort-Abkürzungen mit Kasus, zum Beispiel {{{ex .7. quinti Eucl.}}}. Verwende dort {{{<ref>}}}, falls möglich.
     460
     461Für dieses Skript gibt es einen [source:trunk/schema/scripts/script-tests/reg-testparcours.txt testparcours].
    446462
    447463
    448464==== 5.02 <var> ====
    449465
    450 [source:trunk/schema/scripts/workflow/Filter_5_02_insert_var.pl Filter_5_02_insert_var] (mit Parametern)
    451 
    452 Ziel: verberge den Inhalt vor der morphologischen Analyse
    453 
    454 Entferne {{{<emph>}}} in Variablen. 
    455 
    456 mit [source:trunk/schema/scripts/script-tests/var-testparcours.txt testparcours]
     466Das Skript [source:trunk/schema/scripts/workflow/Filter_5_02_insert_var.pl Filter_5_02_insert_var] fügt <var> um Variablen ein. Ein Ziel ist, den Inhalt vor der morphologischen Analyse zu verbergen.
     467
     468Eventuell hat dieses Skript ebenfalls Parameter, nämlich wie Variablen im Text aussehen.
     469
     470Entferne {{{<emph>}}} in Variablen.
     471
     472Für das Skript gibt es einen [source:trunk/schema/scripts/script-tests/var-testparcours.txt testparcours].
    457473
    458474
    459475==== 5.03 <num> ====
    460476
    461 [source:trunk/schema/scripts/workflow/Filter_5_03_insert_num.pl Filter_5_03_insert_num]
    462 
    463 Ziel wieder: verberge den Inhalt vor der morphologischen Analyse
    464 
    465 [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.
     477Das 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. Deshalb werden zum Beispiel wohl auch chinesische Zahlen in chinesischen Texten markiert. Ein Ziel ist wieder, den Inhalt vor der morphologischen Analyse zu verbergen.
     478
     479(Verwende das Skript {{{Filter_roman_numbers.pl}}}: <num value="..."> für römische Zahlen. Es gibt auch ein Skript, um chinesische Seitenzahlen in westliche Zahlen umzuwandeln.)
    466480
    467481
    468482==== 5.04 Formeln ====
    469483
    470 [source:trunk/schema/scripts/workflow/Filter_5_04_formulae.pl Filter_5_04_formulae]
    471 
    472 ?
     484Das Skript [source:trunk/schema/scripts/workflow/Filter_5_04_formulae.pl Filter_5_04_formulae] soll korrektes MathML (oder zumindest korrektes TeX) erzeugen. Inwieweit das realistisch ist, weiß ich noch nicht.
     485
    473486
    474487==== 5.05 <foreign> ====
    475488
    476 [source:trunk/schema/scripts/workflow/Filter_5_05_insert_foreign.pl Filter_5_05_insert_foreign]
    477 
    478 Füge {{{<foreign>}}} zumindest für griechischen Text (erkennbar an den verwendeten Zeichen) ein, und {{{xml:lang}}}.
     489Das Skript [source:trunk/schema/scripts/workflow/Filter_5_05_insert_foreign.pl Filter_5_05_insert_foreign] soll fremdsprachliche Textstellen markieren.
     490
     491Füge {{{<foreign xml:lang="el">}}} zumindest für griechischen Text (erkennbar an den verwendeten Zeichen) ein. Durch eine minimale linguistische Analyse des Textes kann man sicher auch weitere fremdsprachliche Textstücke korrekt erkennen.
    479492
    480493
    481494==== 5.06 div-Attribute ====
    482495
    483 [source:trunk/schema/scripts/workflow/Filter_5_06_number_divs.pl Filter_5_06_number_divs]
     496Das 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.)
    484497
    485498Es 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>?
    486499
    487 ==== Abgleich mit Donatus ====
    488 
     500
     501==== 5.07 GIS ====
     502
     503Füge GIS-Elemente in ausgewählte Texte ein: {{{<person>}}}, {{{<place>}}}, {{{<time>}}}, {{{<event>}}}. Für eine ausführlichere Diskussion siehe [wiki:"2010-04-15 GIS meeting" hier].
     504
     505
     506==== 5.08 Abgleich mit Donatus ====
     507
     508In Zukunft soll die Textqualität durch linguistische Analysewerkzeuge verbessert werden (siehe auch Schritt 5.05). Einige Verbesserungen sind mit Hilfe von Donatus zumindest teilweise automatisierbar:
    489509  * Einfügen fehlender Bindestriche
    490510  * Korrektur von fehlenden/überflüssigen Spaces
     
    492512
    493513
    494 ==== allgemeines Test-Skript ====
    495 
    496 Allgemeines 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.
    497 
    498 Gesamt-Test: Keine Punkte mehr im Text, die nicht
     514==== 5.09 allgemeines Test-Skript ====
     515
     516Brauchen wir ein allgemeines Test-Skript? Zum Beispiel kann es nach Anwenden eines Skriptes zwei Spaces hintereinander geben. Das muss kein Fehler des Skriptes sein, aber es deutet auf ein Problem hin.
     517
     518Ein möglicher Gesamt-Test für einen sorgfältig annotierten Text: Keine Punkte mehr im Text, die nicht
    499519  * Satzende-Punkte sind ({{{<s>Bla bla bla. </s>}}})
    500520  * in einem Tag verschwinden ({{{<ref>ex .7. quinti Eucl.</ref>}}})
     
    502522
    503523
    504 
    505 === scholarly workflow ===
    506 
     524==== 5.10 scholarly workflow ====
     525
     526Einige Standard-Aufgaben des scholarly workflow, die teilweise bereits im Schema angelegt sind:
     527  * IDs 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.)
    507528  * ersetze {{{<wrong/>}}} durch {{{<sic/>}}} oder entferne es; löse {{{<unsure/>}}} auf
    508529  * weitere {{{<reg>}}}, Korrekturen von bestehenden {{{<reg>}}}
     
    514535  * Wörter mit einzelnen Großbuchstaben mitten im Wort ({{{ClaZomenius}}}). Häufig ist die Ursache ein fehlendes Space vor dem Großbuchstaben.
    515536
     537Diese Aufgaben sollten durch interaktive tools unterstützt werden.
     538
    516539
    517540=== Reste ===
    518541
    519 [source:trunk/schema/scripts/workflow/Filter_template.pl Filter_template]
     542Das Grundgerüst für alle Filter ist
     543[source:trunk/schema/scripts/workflow/Filter_template.pl dieses template].
    520544
    521545Figures nachbearbeiten; beachte DESpecs 1.1.2 versus 2.0
    522546
    523 IDs 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.)
    524 
    525 GIS: {{{<person>}}}, {{{<place>}}}, {{{<time>}}}, {{{<event>}}}
    526 
    527 [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.
    528 
    529 [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.
    530 
    531 [source:trunk/schema/scripts/workflow/Filter_4_04a_test_s.pl Filter_4_04a_test_s] ??
     547Filter_punctuation.pl: 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.
     548
     549Filter_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.
    532550
    533551