Changes between Version 34 and Version 35 of echo-schema


Ignore:
Timestamp:
Jul 19, 2011, 3:02:15 PM (13 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • echo-schema

    v34 v35  
    11= Das ECHO-Schema =
    2 
    3 [[PageOutline(2-4,,pullout)]]
    42
    53Auf dieser Seite wird das ECHO-Schema beschrieben.
    64
    7 == 1. Übersicht
    8 
    9 Übersichtsgrafik über die Schema-Module:
    10 
    11 [[Image(schema_overview.gif, 70%)]]
    12 
    13 
    14 === Schema-Struktur
    15 
    16 Das Schema besteht aus Gruppen von Modulen, die im Schaubild mit schwarzen Rahmen markiert sind:
    17 
    18  1. Standard-Module
    19   * core modules: [source:trunk/schema/schema/echo/modules/echo-start.rnc start], [source:trunk/schema/schema/echo/modules/echo-metadata.rnc metadata], [source:trunk/schema/schema/echo/modules/echo-text.rnc text], [source:trunk/schema/schema/echo/modules/echo-block.rnc block], [source:trunk/schema/schema/echo/modules/echo-content.rnc content], [source:trunk/schema/schema/echo/modules/echo-attribute.rnc attribute], [source:trunk/schema/schema/echo/modules/echo-datatype.rnc datatype]. Diese Module müssen auf alle Fälle vorhanden sein.
    20  2. Module zur Grobstrukturierung des Textes
    21   * text structure: [source:trunk/schema/schema/echo/modules/echo-div.rnc div], [source:trunk/schema/schema/echo/modules/echo-milestone.rnc milestone]. Diese Module sind optional, aber wird bekommen die entsprechende Information aus dem transkribierten Text, und unser Anzeigesystem benötigt diese Informationen.
    22  3. Module zur Feinstrukturierung des Textes
    23   * additional text blocks (floats): [source:trunk/schema/schema/echo/modules/echo-float.rnc float], [source:trunk/schema/schema/echo/modules/echo-note.rnc note], [source:trunk/schema/schema/echo/xhtml/echo-import-xhtml.rnc import-xhtml], [source:trunk/schema/schema/echo/modules/echo-figure.rnc figure], [source:trunk/schema/schema/echo/modules/echo-handwritten.rnc handwritten]. Diese Module sind ebenfalls optional, aber wird bekommen die entsprechende Information aus dem transkribierten Text.
    24   * additional text blocks (non-floats): [source:trunk/schema/schema/echo/modules/echo-textflows.rnc textflows], [source:trunk/schema/schema/echo/modules/echo-block-scholarly.rnc block-scholarly]. Diese optionalen Module werden bei Texten mit mehreren Textflows (z.B die "Conimbricenses") sowie bei der Erstellung von Editionen mit wissenschaftlichem Anspruch benötigt.
    25  4. Module für die Auszeichnung von Text:
    26   * additions to the inline model: [source:trunk/schema/schema/echo/modules/echo-gap.rnc gap], [source:trunk/schema/schema/echo/modules/echo-de.rnc de], [source:trunk/schema/schema/echo/modules/echo-mathematics.rnc mathematics], [source:trunk/schema/schema/echo/modules/echo-import-mathml.rnc import-mathml], [source:trunk/schema/schema/echo/modules/echo-gis.rnc gis], [source:trunk/schema/schema/echo/modules/echo-content-scholarly.rnc content-scholarly]. Diese optionalen Module sind (bis auf gap) Teil der wissenschaftlichen Bearbeitung der Texte
    27   * additional attributes for Chinese text: [source:trunk/schema/schema/echo/modules/echo-chinese-text.rnc chinese-text]. Dieses Modul wird für chinesischen Text benötigt. Die entsprechenden Informationen sind in der Transkription bereits enthalten.
    28 
    29 Die Grund-Datei des Schemas ist [source:trunk/schema/schema/echo/echo.rnc echo.rnc] im Verzeichnis [source:trunk/schema/schema/echo], in der die Version des Schemas (z.B. 1.0) sowie die verwendeten namespaces definiert werden. In der Grund-Datei werden außerdem die Module eingebunden. Wenn man für einen bestimmten Text nicht alle Module benötigt, kann man die entsprechenden Zeilen einfach auskommentieren. Zum Beispiel sind in [source:trunk/schema/schema/echo/echo-automated-european.rnc echo-automated-european.rnc] die Module [source:trunk/schema/schema/echo/modules/echo-chinese-text.rnc chinese-text] für chinesischen Text und [source:trunk/schema/schema/echo/modules/echo-content-scholarly.rnc content-scholarly] für nicht-automatisierbare Textverbesserungen auskommentiert.
    30 
    31 Die Module sind alle im Unterverzeichnis [source:trunk/schema/schema/echo/modules modules], bis auf [source:trunk/schema/schema/echo/xhtml/echo-import-xhtml.rnc import-xhtml], das zusammen mit einigen unnverändert übernommenen xhtml-Modulen im Unterverzeichnis [source:trunk/schema/schema/echo/xhtml xhtml] ist. 
    32 
    33 === Beziehungen zwischen den Modulen
    34 
    35 Die Beziehungen zwischen den Modulen sind im Schaubild durch Pfeile dargestellt. Dazu einige Erläuterungen:
    36 
    37  1. Pfeile
    38   * A → B:  Modul A modifiziert Modul B, indem es in A definierte Klassen oder Elemente in in B definierten Klassen oder Elementen erlaubt
    39   * A --> B:  Modul A weiß von Modul B, modifiziert es aber nicht
    40 
    41  Die Pfeile geben also nicht die Hierarchie der Elemente im XML-Dokument wieder. Sondern: Wenn man B auskommentiert, wird A nicht mehr richtig funktionieren.
    42  2. Farben
    43   * grün: Module
    44    * dunkelgrün: Information in der Transkription enthalten
    45    * hellgrün: Information nicht in der Transkription enthalten
    46   * rot: !Element/Klasse wird in diesem Modul definiert
    47   * gelb: entspricht einem Pfeil, also A modifies B; wird verwendet, wenn ein Pfeil das Schaubild verwirren würde
    48   *  weiß: modifiziert Modul B, indem es Attribute ergänzt
    49   * blau: A verwendet ein in [source:trunk/schema/schema/echo/modules/echo-echo-content.rnc echo-content] definiertes Textmodell (weggelassen, wenn A bereits einen Pfeil zu echo-content hat)
    50 
    51 Die Definitionen in den Modulen [source:trunk/schema/schema/echo/modules/echo-echo-attribute.rnc echo-attribute] und [source:trunk/schema/schema/echo/modules/echo-echo-datatype.rnc echo-datatype] werden von allen anderen Modulen verwendet. Verbindungen zu diesen Modulen sind nicht eingezeichnet.
    52 
    53 Das originale PDF ist hier: [source:trunk/papers/documentation/schema_overview/schema_overview.pdf PDF]; Legende zur Grafik: [source:trunk/papers/documentation/schema_overview/Legende.pdf PDF] (Beides Stand März 2010. Die Struktur des Schemas hat sich kaum geändert; trotzdem TO DO: aktualisieren)
    54 
    55 == 2. Usage Guide
    56 
    57 Eine erste Version des Usage Guide für das Schema: [source:trunk/papers/documentation/usage_guide.pdf PDF]
    58 (Stand April 2010; TO DO: aus LaTeX in das Wiki übertragen, aktualisieren)
    59 
    60 === General
    61 
    62 Design decisions:
    63   *  one schema for all texts
    64   * modules should be independent
    65   * tags in the DESpecs should have some counterpart in the Schema, if possible
    66   * however, do not mimic the DESpecs structure
    67 
    68 Standard suffixes as in xhtml:
    69   * .attrib (defined in echo-attribute)
    70   * .datatype (defined in echo-datatype)
    71   * .model (defined in echo-content)
    72   * .class (defined in several modules)
    73 
    74 IDs are expected, but XML texts should also validate without IDs
    75 
    76 === Informationsquellen und minimales Schema
    77 
    78 Der Kern des Schemas:
    79 "(--)" bedeutet: nicht minimal, aber man bekommt etwas dafür, was über die optische Anzeige des Textes hinausgeht
    80  
    81 || Ebene || minimal || China || Modul || Element  ||
    82 || || || || || ||
    83 || Grobstruktur || + || -- || echo-start || <echo>  ||
    84 || || + || -- || echo-metadata || <metadata>  ||
    85 || || +/-- || -- || echo-metadata || Metadaten  ||
    86 || || + || -- || echo-div || <text> ||
    87 || || || || || ||
    88 || Mittelstruktur || (--) || + || echo-div || <div index>, <div toc>  ||
    89 ||  || (--) || -- || echo-div || <div chapter> etc. ||
    90 || || || || || ||
    91 || Feinstruktur || + || + || echo-block || <head>, <p>, <note>  ||
    92 || || + || -- || echo-block || <s>  ||
    93 || || -- || + || echo-block-scholarly || <quote>  ||
    94 || || -- || -- || echo-block-scholarly || <set-off> ||
    95 || || || || || ||
    96 || Text || -- || + || echo-content || <emph>  ||
    97 || || (--) || -- || echo-content || <reg> ||
    98 || || (--) || -- || echo-content-scholarly || <foreign>, <ref> ||
    99 || || -- || -- || echo-content-scholarly || <sic>, <set-off>, <q> ||
    100 || || || || || ||
    101 || Hilfsmodule || + || n/a || echo-attribute || --  ||
    102 ||  || + || n/a || echo-datatype || -- ||
    103 || || || || || ||
    104 || F: Figures || -- || + || echo-figure || <figure>, <caption> etc. ||
    105 || F: Handwritten || -- || + || echo-handwritten || <handwritten> ||
    106 || F: Chinese text || -- || + || echo-chinese-text || <head ti>, <p @indent>, <p @ics>, <pb @ics>  ||
    107 || F: Textflows || -- || + || echo-textflows || <head @flow>, <p @flow>, <div multiflow @flows>  ||
    108 || F: Tables || -- || + || echo-import-xhtml || <xhtml:table>  ||
    109 || F: Lists || -- || -- || echo-import-xhtml || <xhtml:ul> etc. ||
    110 || F: Floats || -- || -- || echo-float || <div float> ||
    111 || F: Images || -- || -- || echo-figure || <image> ||
    112 || || || || || ||
    113 || T: Milestones || (--) || + || echo-milestone || <pb> (auch F), <lb>, <cb> ||
    114 || T: Corruptions || -- || + || echo-gap || <gap>, <unsure>  ||
    115 || || -- || + || echo-de || <de:unknown>, <de:wrong> ||
    116 || T: Chinese notes || -- || + || echo-chinese-text || <lb halfline> ||
    117 || T: Floats || -- || + || echo-float || <anchor> ||
    118 || T: numbers etc. || (--) || -- || echo-mathematics || <num>, <var> ||
    119 || T: formulas || (--) || -- || echo-import-mathml || <mml:math> ||
    120 || T: Verse || -- || -- || echo-textflows || <lb @label> ||
    121 || T: Images || -- || -- || echo-figure || <image> ||
    122 || T: Gis || -- || -- || echo-gis || <place>, <time> ||
    123 || || || || || ||
    124 || G: Gis || -- || -- || echo-gis || <dcterms:temporal>, <dcterms:spatial> ||
    125 
    126 
    127 === Übersicht über die Module
    128 
    129  * [source:trunk/schema/schema/echo/echo-echo.rnc echo] ist die Haupt-Datei des Schemas. Hier werden alle Module geladen.
    130 
    131  * [source:trunk/schema/schema/echo/modules/echo-echo-start.rnc echo-start], [source:trunk/schema/schema/echo/modules/echo-echo-metadata.rnc echo-metadata], [source:trunk/schema/schema/echo/modules/echo-echo-div.rnc echo-div], [source:trunk/schema/schema/echo/modules/echo-echo-block.rnc echo-block], [source:trunk/schema/schema/echo/modules/echo-echo-block-scholarly.rnc echo-block-scholarly] definieren die Struktur des XML-Dokuments bis vom root element `<echo>` bis zum Text-Level:
    132 {{{
    133 <echo>               echo-start.rnc
    134     <metadata>       echo-metadata.rnc
    135     <text>           echo-div.rnc
    136         <div>           - " -
    137             <head>   echo-block.rnc
    138             <p>         - " -
    139                 <s>     - " -
    140             <note>      - " -
    141 }}}
    142   * [source:trunk/schema/schema/echo/modules/echo-echo-start.rnc echo-start]: Zum root element <echo> gibt es kein Gegenstück in den DESpecs. Es muss in das Dokument eingefügt werden.
    143   * [source:trunk/schema/schema/echo/modules/echo-echo-metadata.rnc echo-metadata]: Zu <metadata> und allen darin enthaltenen Metadaten gibt es kein Gegenstück in den DESpecs. <metadata> und einige Metadaten sind notwendig und müssen in das Dokument eingefügt werden. Andere Metadaten sind optional.
    144   * [source:trunk/schema/schema/echo/modules/echo-echo-div.rnc echo-div]: Zu <text> und <div> gibt es ebenfalls kein Gegenstück in den DESpecs. <text> ist notwendig und muss in das Dokument eingefügt werden. <div> kann weggelassen werden.
    145   * [source:trunk/schema/schema/echo/modules/echo-echo-block.rnc echo-block], [source:trunk/schema/schema/echo/modules/echo-echo-block-scholarly.rnc echo-block-scholarly]: <head> und <p> haben direkte Gegenstücke in den DESpecs. <note> hat die Gegenstücke <mgl>, <mgr> und <fn>. Das Element <s> hat kein Gegenstück in den DESpecs. Es muss aber in das Dokument eingefügt werden, um das Dokument valide zu machen.
    146 
    147  * [source:trunk/schema/schema/echo/modules/echo-echo-content.rnc echo-content],  [source:trunk/schema/schema/echo/modules/echo-echo-content-scholarly.rnc echo-content-scholarly] definieren das Inline-Modell für Text. Der Text muss nicht weiter ausgezeichnet werden, um ein valides Dokument zu haben.
    148  
    149  * [source:trunk/schema/schema/echo/modules/echo-echo-attribute.rnc echo-attribute], [source:trunk/schema/schema/echo/modules/echo-echo-datatype.rnc echo-datatype] definieren Standard-Attribute und -Datentypen. Sie werden von allen Modulen verwendet.
    150 
    151  * [source:trunk/schema/schema/echo/modules/echo-echo-gap.rnc echo-gap], [source:trunk/schema/schema/echo/modules/echo-echo-de.rnc echo-de]
    152  * [source:trunk/schema/schema/echo/modules/echo-echo-figure.rnc echo-figure]
    153  * [source:trunk/schema/schema/echo/modules/echo-echo-handwritten.rnc echo-handwritten]
    154  * [source:trunk/schema/schema/echo/modules/echo-echo-milestone.rnc echo-milestone]
    155  * [source:trunk/schema/schema/echo/modules/echo-echo-float.rnc echo-float]
    156  * [source:trunk/schema/schema/echo/modules/echo-echo-mathematics.rnc echo-mathematics]
    157  * [source:trunk/schema/schema/echo/modules/echo-echo-chinese-text.rnc echo-chinese-text]
    158  * [source:trunk/schema/schema/echo/modules/echo-echo-gis.rnc echo-gis]
    159  * [source:trunk/schema/schema/echo/modules/echo-echo-textflows.rnc echo-textflows]
    160  * [source:trunk/schema/schema/echo/xhtml/echo-echo-import-xhtml.rnc echo-import-xhtml]
    161  * [source:trunk/schema/schema/echo/modules/echo-echo-import-mathml.rnc echo-import-mathml]
    162 
    163 === echo-start
    164 
    165 <text>: The default type is "free".
    166 
    167 === echo-metadata
    168 
    169 [source:trunk/schema/schema/echo/modules/echo-echo-metadata.rnc echo-metadata]: There is no counterpart of the metadata in the DESpecs.
    170 
    171 ==== dcterms
    172 
    173  * <dcterms:identifier>
    174 
    175 Bibliographisch:
    176  * <dcterms:title> +, <dcterms:alternative> *
    177    * <dcterms:alternative> refines <dcterms:title>
    178  * <dcterms:creator> +, <dcterms:contributor> *
    179   * <dcterms:creator> refines <dcterms:contributor>
    180  * <dcterms:publisher> *
    181  * <dcterms:language>+
    182  * <dcterms:date> ?
    183  * <dcterms:description> *
    184 
    185 Lizenz:
    186  * <dcterms:rights> *, <dcterms:license> *, <dcterms:accessRights>
    187   * <dcterms:license> may be text or a URI.
    188   * <dcterms:license> and <dcterms:accessRights> refine <dcterms:rights>
    189  * <dcterms:rightsHolder> *
    190  * <dcterms:provenance> *
    191  * <dcterms:dateCopyrighted> ?
    192   * <dcterms:dateCopyrighted> refines <dcterms:date>
    193 
    194 Dabei meint + "mindestens einmal", * "beliebig oft", ? "höchstens einmal". Ohne Symbol heißt "genau einmal". Verpflichtend sind also:
    195  * <dcterms:identifier>
    196  * <dcterms:title>
    197  * <dcterms:creator>
    198  * <dcterms:language>
    199  * <dcterms:accessRights>
    200  
    201 Zu "refines": creator refines contributor, d.h. ein creator ist automatisch auch ein contributor; aber ein contributor ist nicht unbedingt ein creator. Anders gesagt: A refines B heißt, A ist eine Teilmenge von B. Anderes Beispiel: Eiche refines Baum.
    202  
    203 ==== other metadata
    204 
    205  * <font>, <font-family>
    206   * echo.font-families <-- "song style" in echo-chinese-text
    207  * <echolink>, <echodir>
    208 
    209 In general, there is no counterpart for <text> or <div> in the DESpecs.
    210 
    211 === echo-div
    212 
    213 DESpecs nach Schema:
    214  * <ind> --> <div type="index">
    215  * <toc> --> <div type="toc">
    216  * other types:
    217   * if the type is in the standard list: type="definition" type-free="界"
    218   * if it is not in the standard list:   type="other" type-free="界/definition"
    219 
    220 Liste aller div-Typen, die auf besondere Weise behandelt werden:
    221  * u.a. float
    222  * aber auch multiflow, parallel; chapter, section; ...
    223 
    224 === echo-block
    225 
    226  * Headings: <head>
    227   * <h> --> <head>
    228  * Semantic units: <s>
    229   * (<s> is not in the raw text)
    230  * Floating objects in <s> (all <note>, <handwritten>, <table>; most <figure>; some <math>) are replaced by <anchor> and moved to a <div type="float"> directly behind the <p>. The new <div type="float"> contains all <note>, <handwritten>, <figure>, <table>, <math> that have been moved in this <div>.
    231  * Notes: <note>
    232   * <mgl> --> <anchor type="note"/>, <note position="left">
    233   * <mgr> --> <anchor type="note"/>, <note position="right">
    234   * echo.note.content = echo.flexible.model to allow for different kinds of notes
    235 
    236 === echo-block-scholarly
    237 
    238  * <set-off>
    239 
    240 === echo-content
    241 
    242 Most elements in this module have no counterpart in the Specs and will be added in the post-processing stage.
    243 
    244 ==== <emph>
    245 
    246 <emph> for emphasis (should be used only when something is not tagged otherwise)
    247 
    248 The tags `_ _` (for italics), `<bf>`, `<sc>`, `<_>`, `<^>`, `<ul>`, `<ol>`, `<st>`, `<red>`, `<sp>` in the Specs are normally represented by <emph style="...">. The tags can be combined, e.g. <emph style="it bf"> for bold italics. For a whole <s> or <p>, the style attribute is there (or even higher in the hierarchy).
    249 
    250 ==== <reg>
    251 
    252 Only the original text is regularized using echo.reg; typing conventions and additional typos in the transcription are silently resolved.
    253 
    254 list of typing conventions in the DESpecs which are silently resolved:
    255  * `$` --> ſ
    256  * `\'q`  --> q + combining diacritic (U+0300 etc.) and normalization form C, for example q̀
    257  * ...
    258 
    259 examples:
    260 {{{
    261 <reg orig="ijs" type="lig">ijs</reg>
    262 <reg orig="sphęrae" type="simple">sphaerae</reg>
    263 <reg orig="sphęrae">sphaerae</reg>
    264 <reg orig="sphę­ rae" type="simple">sphae­<lb/>rae</reg>
    265 <reg orig="eiuſdẽ" type="context">eiuſdem</reg>
    266 <reg orig="eſsẽt" type="context">eſsent</reg>
    267 <reg orig="lib." type="context">liber</reg>
    268 in <reg orig="lib." type="context">libro</reg>
    269 <reg orig="qñ" type="wordlist">quando</reg>
    270 <reg orig="tm̃" type="wordlist/context">tamen</reg>
    271 <reg orig="tm̃" type="wordlist/context">tantum</reg>
    272 <reg orig="Arist." type="unresolved">Arist.</reg>
    273 <reg orig="inrerrogas" type="typo" resp="paul">interrogas</reg>
    274 <reg orig="quem" type="conjecture" resp="paul">quam</reg>
    275 <reg orig="re ferre" type="conjecture" resp="paul">re­<lb/>ferre</reg>
    276 <reg orig="ꝑꝑ" type="unknown">ꝑꝑ</reg>
    277 <reg orig="ꝑꝑ" type="conjecture" resp="paul">prope</reg>
    278 }}}
    279 note:
    280   * the default type is "simple", e.g. <reg orig="sphęrae">sphaerae</reg>
    281    * Beispiel veraltet!
    282    * Beachte: der type kann zurzeit nicht weggelassen werden, und das ist auch gut so, falls man nämlich die <reg> automatisiert nachbearbeiten muss.
    283   * the first exampe ijs applies only if `ij` is not silently resolved
    284   * missing hyphens are indicated by a soft hyphen "­" rather than <reg>; however, you may use "conjecture" in non-trivial cases
    285   * the generic "abbr" may be used for any abbreviation
    286   * abbreviations are not resolved within <ref>, e.g.  ex <ref id="N400238">.19. lib. quinti Eu-<lb/>clid.</ref> (wirklich?)
    287 
    288 ==== Text-Modelle
    289 
    290 Avoiding Recursions: Wie ist die Inline-model-Hierarchie?
    291   * inline anfangen können:  s head caption description variables, evtl. note handwritten xhtml
    292   * in inline, und Inhalt inline (mit Rekursionsgefahr): s-set-off, ref, foreign, emph, q
    293   * in inline, und Inhalt plaintext: reg, sic, num, var, place, time
    294   * in inline, und inhalt es selbst: mml.math
    295   * in plaintext, und Inhalt plaintext: gibt es nicht
    296   * in plaintext, Inhalt text: unsure (Inhalt in plaintext ändern?)
    297   * in plaintext, leer: milestones, anchor, gap, unknown, wrong
    298 
    299 Schematron-Regel, die Rekursionen aufspürt, d.h.
    300  * z.B. <ref> in <ref>
    301  * z.B.  <ref> in <foreign> in  ... in <ref>
    302 also zusammen: kein Element aus dieser Gruppe darf sich sich selbst als ancestor haben.
    303 
    304 
    305 === echo-content-scholarly
    306 
    307  * <ref>
    308  * <sic> for mistakes in the original text:
    309   * o<!>  -->  o<de:wrong/>  -->  <sic comment="n missing">o</sic> (see the discussion in echo-de)
    310  * <foreign>: Foreign text is not marked in the transcription, i.e. <foreign> cannot be inserted automatedly without additional linguistic knowledge.
    311   * Exception: <rom>sentence</rom> --> <foreign xml:lang="la">sentence</foreign> with language "la" as a first guess, and similarly in Chinese text.
    312   * (echo.foreign has echo.core.attrib, but echo.language.attrib is obligatory)
    313  * Quotations:
    314   * <q> is for short inline quotes. Note that echo.delimiter-attrib is optional; however, please use it if possible
    315   * <quote> (echo.quote) for longer inline quotes (one-sentence quote are <quote><s>Sentence.</s></quote> and not <s><q>Sentence.</q></s>)
    316   *  <quote> (echo.blockquote) for blockquotes
    317   * Es kann keine Rekursionen von quote-Elementen geben.
    318 
    319 === echo-gap
    320 
    321  * @@    --> <gap extent="2"/>
    322  * <gap> --> <gap/>
    323  * x< ? > --> x<unsure/> or <unsure>x</unsure> (this can not be fully automated)
    324 
    325 === echo-de
    326 
    327 This module contains tags from the DESpecs that will be removed in the course of processing. We use the namespace "de" for the corresponding elements in the xml:
    328  * <001> --> <de:unknown code="001"/> (bzw. wir haben eine Tabelle, was gemeint ist)
    329  * <!>   --> <de:wrong/> --> remove or <sic>
    330 
    331 === echo-figure
    332 
    333  * <fig> --> <figure>, eventuell mit <anchor/>
    334  * <cap> --> <caption>
    335  * <desc> --> <description>
    336  * <var> --> <variables>
    337 
    338 === echo-handwritten
    339 
    340 In its simplest form, <handwritten> is just an empty tag. Nonetheless, within <s> it is replaced by <anchor> and moved to <div type="float"> to cater for scholarly additions, i.e. it is part of echo.float.class and not of echo.inline.class
    341 
    342  * <hd> --> <handwritten/>, eventuell mit <anchor/>
    343 
    344 === echo-float
    345 
    346 === echo-milestone
    347 
    348 ==== line breaks
    349 
    350 [Dieser Abschnitt ist sicher veraltet!]
    351 
    352 <lb/> can be in plaintext (<s>, <head>, some <note>, all members of echo.inline.class) and <p>
    353 
    354 in <p>: since a paragraph is split into <s>, most line breaks are actually in <s>. However:
    355  * <lb/></s><s> and </s><s><lb/> shouldn't occur (--> </s><lb/><s> [and space before </s>?])
    356  * <lb/></s></p> shouldn't occur at all
    357 
    358 in <s> (and similarly for <head> and the members of echo.inline.class):
    359  * line break --> <lb/>; no space before <lb/>; no line break after <lb/>; space after <lb/> if there is a hyphen before <lb/> (no automated space if the hyphen is missing)
    360 
    361 examples:
    362  * <s>亦<lb/>能使人無疑。</s>
    363  * <note>Plutar <lb/>chus in <lb/>commẽ <lb/>tario de <lb/>dæmo-<lb/>nio So-<lb/>cratis.</note>
    364 
    365 We use the normal hyphen U+002D instead of the soft hyphen U+00AD because the soft hyphen is not displayed in the xhtml. --> ?
    366 
    367 ==== column breaks
    368 
    369  * <col 1>...</col><col 2>...</col>  -->  ...<cb/>...
    370 
    371 ==== page breaks
    372 
    373 [Dieser Abschnitt ist sicher veraltet!]
    374 
    375 <pb/> can occur wherever <lb/> occurs (although it will be rare in <head>), and <div>
    376  * <pb vii><rh>xyz</rh> --> <pb n="10" o="vii" o-norm="7" rhead="xyz" xlink:href="URI"/>
    377  * <pb 一六七a>  --> <pb n="..." o="一六七a" o-norm="167a" xlink:href="URI"/>
    378 
    379 === echo-attribute
    380 
    381 In echo-attribute werden Standard-Attribute definiert.
    382 
    383 Text-Eigenschaften:
    384  * echo.language.attrib (@xml:lang)
    385  * echo.style.attrib (@style):
    386    * direkt in: <text>; <emph>, <num>, <var>, <w>, <place>, <time>, <person>
    387    * via echo.core.attrib in: <div>, <p>, <quote>, <note>, <handwritten>, <entry>; <reg>, <foreign>, <ref>, <q>
    388    * via echo.inline.attrib in: <head>, <s>, <caption>, <description>, <variables>, <form>, <translation>, <pronunciation>
    389    * in xhtml:* als @class
    390  * echo.id.attrib (@xml:id)
    391  * echo.core.attrib fasst echo.language.attrib, echo.style.attrib und echo.id.attrib zusammen
    392  * echo.space.attrib (@xml:space="preserve")
    393  * echo.inline.attrib ist echo.core.attrib plus echo.space.attrib
    394 
    395 Div-Attribute:
    396  * echo.n.attrib (@n)
    397  * echo.level.attrib (@level)
    398 Notes:
    399  * echo.symbol.attrib (@symbol)
    400 Links:
    401  * echo.file.attrib (@file)
    402  * echo.internal-link.attrib (@xlink:href, @xlink:label, @xlink:type)
    403  * echo.external-link.attrib (@xlink:href)
    404 Zitate:
    405  * echo.delimiter.attrib (@open, @close)
    406  
    407 === echo-datatype
    408 
    409 === echo-mathematics
    410 
    411  * number <num>:
    412   * "vii" --> <num value="7">vii</num>
    413   * "½"   --> <num value="0.5">½</num>
    414  * variable <var>:
    415   * "AB" --> <var type="line">AB</var> (type ist optional)
    416 
    417 Eine Funktion von <num> und <var> ist es, den Inhalt vor der morphologischen Analyse zu verstecken.
    418 
    419 Note: The scope of echo.num and echo.var is very limited. More complex mathematics is expressed with MathML --> echo-import-mathml
    420 
    421 === echo-chinese-text
    422 
    423  * <ti> --> <head type="ti">
    424  * indentations in Chinese text:
    425   * <p ii> --> <p indent="2char"> oder nur "2"?
    426   * <p xx> --> <p indent="-2char">
    427   * (indent is deliberately not defined as style="valid css" because it may be semantically meaningful)
    428  * Linien:
    429   * <sl> --> <emph style="sl">
    430   * <dl> --> <emph style="dl">
    431   * <wl> --> <emph style="wl">
    432   * <cl> --> <emph style="cl">
    433 
    434 Small text:
    435  * in <p>:  <sm>  --> <small>
    436  * everywhere else: <emph style="sm"> (<h>, rhead, <ti>, <toc>, etc.)
    437  * `\\` --> <smlb/>
    438 
    439 (plus some manual corrections where this simple distinction doesn't fit, e.g. <sm>chen</sm>)
    440 
    441 === echo-gis
    442 
    443 Note: this module is still experimental.
    444 
    445 Beachte in diesem Modul definierte Metadaten
    446 
    447 === echo-textflows
    448 
    449 @flow is normally a number, or "footnote"
    450 
    451 === echo-import-xhtml
    452 
    453 The xhtml modules are part of the Jing distribution:
    454  * [http://relaxng.org/ Relax NG Homepage]
    455  * Thai Open Source: [http://www.thaiopensource.com/relaxng/ Relax NG], [http://www.thaiopensource.com/relaxng/xhtml/ xhtml modules]
    456  * Jing and Trang at [http://code.google.com/p/jing-trang/ Google Code]
    457  * xhtml modules in our local copy of the Jing distribution: [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/basic-table.rng basic-table.rng],
    458  [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/list.rng list.rng],
    459  [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/attribs.rng attribs.rng],
    460  [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/datatypes.rng datatypes.rng]
    461 
    462 The original rng files can be converted into the Relax NG compact syntax using [http://www.thaiopensource.com/relaxng/trang-manual.html Trang]. Oxygen offers a GUI for this conversion.
    463 
    464 Diese Module übernehmen wir dann ohne weitere Änderungen. Alle Anpassungen werden in echo-import-xhtml gemacht.
    465 
    466 ==== xhtml-basic-table
    467 
    468 We ignore Block.class in xhtml-basic-table: The following lines replace
    469 
    470 "Block.class |= table"  in xhtml-basic-table
    471 
    472 {{{
    473 echo.float.class  |= xhtml.table
    474 echo.anchor.types |= "table"
    475 }}}
    476 
    477 ==== xhtml-list
    478 
    479 We ignore Block.class in xhtml-list: The following lines replace
    480 
    481 "List.class = ul | ol | dl",
    482 
    483 "Block.class |= List.class"
    484 
    485 {{{
    486 echo.float.class  |= xhtml.ul | xhtml.ol | xhtml.dl
    487 echo.anchor.types |= "ul" | "ol" | "dl"
    488 }}}
    489 
    490 Note that xhtml:ul, xhtml:ol, xhtml:dl do not correspond to <ul>, <ol>, <dl> in the DESpecs!
    491 
    492 ==== xhtml-attribs
    493 
    494 We use the following xhtml elements: table, caption, tr, th, td;  dl, dt, dd; ol, ul, li.
    495 All these elements have Common.attrib (th and td via Cell.attrib).
    496 xml:lang and class are already in Common.attrib, and we add xml:id { xsd:NCName } to it
    497 (however, Common.attrib already includes the attribute id { xsd:ID })
    498 
    499 ==== xhtml-datatypes ====
    500 
    501 ==== xhtml-text ====
    502 
    503 Dieses Modul wird nicht importiert. Stattdessen werden Inline.model und Flow.model durch echo.flexible.content ersetzt:
    504  * Inline.model = echo.flexible.content
    505  * Flow.model   = echo.flexible.content
    506 ursprüngliche Definitionen:
    507  * Inline.model = (text | Inline.class)*
    508  * Block.mix = Block.class
    509  * Block.model = Block.mix+
    510  * Flow.model = (text | Inline.class | Block.class)*
    511 
    512 === echo-import-mathml
    513 
    514 Note: Simple mathematical terms, i.e. numbers and variables, are marked using echo.num and echo.var (defined in echo-mathematics).
    515 
    516 mml.math.content erlaubt beliebige Elemente <mml:*> innerhalb von <mml:math>.
    517 
    518 This placeholder code above is good enough for the moment. We simply assume that the MathML parts are well-formed. This is plausible since the MathML code is created from a LaTeX formula by a MathML-converter.
    519 
    520 In addition, Oxygen seems to have a separate validation engine for MathML.
    521 
    522 
    523 == 3. Umsetzung der XML-tags
    524 
    525 Offene Tickets für die Umsetzung: keyword [https://it-dev.mpiwg-berlin.mpg.de/tracs/mpdl-project-software/query?keywords=~XML XML]
    526 
    527 TO DO: vergleiche "ist" mit "soll". Tickets für alles, was noch fehlt (vorher prüfen, ob es nicht veraltet ist!)
    528 
    529 === echo-start
    530 
    531  * <echo>: Es sollten die zu @version passenden XSLT-Skripte verwendet werden.
    532 
    533 === echo-metadata
    534 
    535  * Die Metadaten-Suche sollte die hierarchische Struktur der dcterms-Metadaten berücksichtigen: Wenn "A refines B", dann soll eine Suche nach einem Inhalt von B auch Einträge in A finden, aber nicht umgekehrt. Beispiel: Eiche refines Baum, also soll eine Suche nach Bäumen auch die als Eichen markierten Bäume finden, aber eine Suche nach Eichen findet nicht alle Bäume.
    536  * <dcterms:creator>: @identifier: Die Einträge sollten in links umgewandelt werden. Wo? Auf der Startseite?
    537  * <dcterms:language>: Alle angegebenen Sprachen sind Haupt-Sprachen des Textes. Text in einer der Haupt-Sprachen sollte korrekt mit !Donatus/Pollux analysiert und indiziert werden. Textabschnitte in anderen Sprachen müssen nicht unbedingt morphologisch analysiert werden.
    538  * <dcterms:accessRights>: Texte mit <dcterms:accessRights>restricted</dcterms:accessRights> sollten wohl nicht in eXist aufgenommen werden.
    539   * --> Stimmt das??
    540  * <font>, <font-family>: Umsetzen als Anweisung für den Browser? Beispiel "Fraktur". Noch nicht ausgereift.
    541  
    542  === echo-text
    543  
    544   * <text>: @xml:lang siehe <dcterms:language>
    545 
    546 === echo-div
    547 
    548 Erzeuge ein TOC aus den `<div>`. Regeln zur Umsetzung der div-Struktur in ein Inhaltsverzeichnis siehe hier: [source:"trunk/papers/discussion_papers/Regeln zum Erstellen eines Inhaltsverzeichnisses.pdf" PDF] (Stand März 2010; immer noch aktuell; muss ich noch implementieren)
    549 
    550 TO DO: auch ins wiki?
    551 
    552 === echo-block
    553 
    554  * <head>: CSS fett (<pb> in <head> sollten nur innerhalb von Flows vorkommen; siehe echo-textflows)
    555  * <s>: Kann ignoriert werden. Die Attribute sollen natürlich beachtet werden. Aber: "sn=17" in der URL.
    556   * (Ausnahme sind eventuell `<s>` mit implizitem `<lb/>` in `<div lines>`) --> ist das noch aktuell?
    557  * <note> siehe echo-float
    558 
    559 === echo-block-scholarly
    560 
    561  * <set-off> sollte in eigenen Zeilen und eingerückt dargestellt werden
    562 
    563 === echo-content
    564 
    565  * <reg> siehe [wiki:normalization]
    566 
    567 === echo-content-scholarly
    568 
    569  * <ref>: noch unklar. Idee war mal: Innerhalb von `<ref>` werden Abkürzungen nicht aufgelöst. Innerhalb von `<ref>` werden daher normale Wörter morphologisch analysiert (d.h. an !Donatus/Pollux weitergeleitet), aber Wörter mit Punkt nicht. Zum Beispiel wird "lib." in
    570 {{{
    571 ex <ref>.7. propoſitione lib. Archimedis de inſidentibus aquæ</ref>
    572 }}}
    573  nicht analysiert.
    574  * <sic> kann hier ignoriert werden; wird in Arboreal gebraucht
    575  * foreign>
    576   * CSS: Der Übergang von Fraktur zu Antiqua oder oder von A. zu F. sollte durch einen passenden Font ausgedrückt werden.
    577   * @xml:lang sollte ausgewertet werden.
    578  * <emph>
    579   * @style sollte als @class und ein CSS-Stylesheet an den Browser weitergegeben werden. (wie wird es denn jetzt gmeacht? Muss man es überhaupt in class ändern?)
    580   * @class sollte nur in Ausnahmefällen vorkommen, z.B. in xhtml. Falls es im Text vorkommt, kann es direkt weitergegeben werden.
    581   * <q>
    582    * CSS: Sollte optisch erkennbar sein.
    583    * Für kurze quotes innerhalb eines `<s>`. Beachte `@open` und `@close`.
    584  * <quote> ähnlich wie <q>; als blockquote wie <set-off>
    585 
    586 === echo-gap
    587 
    588  * <gap>: Darstellung als [...] ?
    589  * <unsure>: Ignorieren?
    590  
    591 === echo-de
    592  
    593  * <unknown>: Ignorieren? (Sollte aber möglichst nicht mehr im Text enthalten sein.)
    594  * <wrong>: Ignorieren? (Sollte aber möglichst nicht mehr im Text enthalten sein.)
    595 
    596 === echo-figure
    597 
    598 Figures, die nicht in <div float> sind, sollten auf alle Fälle an der richtigen Stelle angezeigt werden. Ansonsten siehe echo-float.
    599 
    600 Vorschlag, wie eine Figure dargestellt werden kann:
    601 {{{
    602 <figure>
    603     <image file="0005-01" xlink:href="..."/>
    604     <caption>Geometrische Formen</caption>
    605     <description>Kreis</description>
    606     <description>Dreieck</description>
    607     <description>Viereck</description>
    608     <variables>a, b, c</variables>
    609 </figure>
    610 }}}
    611 
    612 wird zu:
    613 
    614 BILD [[BR]]
    615 [Figure 156]: Geometrische Formen [[BR]]
    616  * Kreis
    617  * Dreieck
    618  * Viereck
    619  * [Variables]: a, b, c
    620 
    621 === echo-handwritten
    622 
    623  * <handwritten> gehört nicht zum Textflow und wird erst auf Anforderung gezeigt. Meistens ist `<handwritten>` leer.
    624  
    625  === echo-float
    626  
    627   * <anchor>:
    628    * Wenn es `@symbol` gibt, sollte das Symbol angezeigt werden, denn es steht ja im Text. Hochgestellt, wenn kein space davor ist, sonst nicht hochgestellt, aber kursiv. Beispiel: Anmerkung^2^ und anchor ''a'' eines anchored comment
    629    * Wenn es auch `@xlink:href` gibt, sollte das Symbol ein link zum zugehörigen Float sein.
    630 
    631 Floats sind entweder als Teil des normalen Textflows, oder sie sind getrennt. Floats als Teil des normales Textflows sollten, wie Bilder auf einer Webseite, an der richtigen Stelle angezeigt werden, d.h dort, wo ihr `<anchor>` ist. Getrennte Floats sollten erst angezeigt werden, wenn der User sie anfordert.
    632 
    633 normaler Textflow:
    634   * `<figure>`
    635   * `<xhtml:*>` (Tabellen, Listen)
    636   * `<mml:*>` (MathML)
    637   * `<note>` mit `@position=left/right`: In einem getrennten Textflow (i.e. weitere Spalte), auf der richtigen Höhe
    638 
    639 getrennt:
    640   * `<note>` mit `@position=foot` (zumindest sollten Fußnoten, die über mehr als eine Seite gehen, auf Wunsch vollständig angezeigt werden)
    641   * `<handwritten>`
    642   * `<note>` mit `@position=end` (sollten bei ihrem `<div endnotes>` angezeigt werden, d.h. auf der Seite, auf der sie sind)
    643 
    644 === echo-milestone
    645 
    646 Zeilenumbruch: `<lb/>` ist so weit wie möglich/sinnvoll im XML-Baum verschwunden, also zum Beispiel:
    647 {{{
    648 <s>Bla Bla. <lb/><s>
    649 }}}
    650 statt
    651 {{{
    652 <s>Bla Bla. <s>
    653 <lb/>
    654 }}}
    655 
    656 Es gibt aber auch Ausnahmen, zum Beispiel vor und nach <small> in chinesischem Text.
    657 
    658 Bei der Anzeige des XML-Textes für eine Seite sollte `<lb/>` innerhalb von `<s>` nicht in einer eigenen Zeile stehen. In anderen Worten: `<lb>` sollte nur dann in eigener Zeile stehen, wenn es auch im XML-Text in eigener Zeile steht.
    659 
    660 Spaltenumbruch: Im Prinzip wie `<lb>`. Aus dem `<cb>` ist nicht mehr automatisch renkonstuierbar, wo die erste Spalte anfängt und die letzte Spalte aufhört. Daher kann man es wie `<lb>` behandeln. Allerdings kann eine Spalte einen "running head" haben, der dargestellt wird wie ein running head einer Seite.
    661 
    662 Seitenumbruch:
    663  * CSS: Optisch klar vom "echten" Text abgrenzen: gesperrt?
    664  * Werden running heads dargestellt? Oder kann der User sie ein- und ausblenden?
    665  * Worttrennungen: Das System muss umgehen können mit Fällen wie
    666 {{{
    667 eue-<lb/>
    668 <anchor type="figure" xlink:href="..."/><lb/>
    669 <anchor type="figure" xlink:href="..."/>
    670 <pb ... />
    671 niet
    672 }}}
    673 
    674 --> Will man da wirklich mehrere <lb/> haben, um auszudrücken, dass die Bilder nicht nebeneinander, sondern untereinander sind?
    675 
    676 
    677 === echo-attribute
    678 
    679  * `@xml:lang` siehe `<dcterms:language>` und `<foreign>`. Durch `@xml:lang` ist im Prinzip für jeden Textabschnitt  klar, welche Sprache es ist. (Insbesondere welche Schreibrichtung es ist. Zeigt der Browser zum Beispiel Arabisch problemlos korrekt an, oder muss man dem Browser auf der Grundlage von `@xml:lang` explizit sagen, was er tun soll?)
    680  * `@style` und `@class` siehe `<emph>`
    681  *  `@xml:id` kann ignoriert werden, wird aber für die links im TOC gebraucht. Floats verwenden `@xlink:label` statt `@xml:id`.
    682  * `@xml:space` sollte für die Ausgabe des XML-Textes beachtet werden. Allerdings kann es durch <anchor> etxc. auf eigenen Zeilen unnötigen whitespace geben.
    683 
    684 === echo-mathematics
    685 
    686 Ob div-Typen wie "definition" im TOC angezeigt werden sollen, ist unklar.
    687 
    688  * <num>
    689   * Der Inhalt von `<num>` wird nicht morphologisch analysiert.
    690   * (Wird er in den Index aufgenommen?)
    691   * Falls es `@value` gibt, könnte man dem User anbieten, `@value` statt dem Inhalt anzuzeigen, also zum Beispiel "0.5" statt "½". Teil der Regularisierungsschicht? (Was passiert, wenn in dem <num> ein Zeilenumbruch ist?)
    692  * <var>
    693   * Der Inhalt von `<var>` wird nicht morphologisch analysiert und nicht in den Index aufgenommen.
    694   * Außerdem sollte @type berücksichtigt werden, wenn vorhanden. Beispielsweise könnte `<type="segment">.A.B.</var>` mit einer Linie über dem Namen dargestellt werden. Aber das ist noch eher experimentell.
    695   * xml-Anzeige: auch <var> nicht in eigener Zeile anzeigen, sondern <s> in einer Zeile lassen, Fließtext, wird vom Browser umgebrochen
    696 
    697 === echo-chinese-text
    698 
    699 Senkrechte Schrift im Original ist im XML bereits waagerecht und wird daher auch waagerecht angezeigt.
    700 
    701 CSS kursiv geht bei chinesischem Text nicht.
    702 
    703  * `<head>` mit `@ti:` CSS: z.B. in größerer Schrift
    704  * `<p>` und `<pb>` mit `@ics:` CSS: wie darstellen?
    705  * `<head>` mit `@indent:` Chinesische Schrift ist monspaced (d.h. hat eine feste Laufweite). Rücke die Überschrift um entsprechen viele Zeichen ein.
    706  * `<p>` mit `@indent:` Rücke die erste Zeile um entsprechen viele Zeichen ein. Wie stark die weiteren Zeilen eingerückt werden, ist unklar. Die wichtige Information war die Einrückung der ersten Zeile, und `@indent` bezieht sich deshalb auf die erste Zeile eines Absatzes. Die restlichen Zeilen können im Original entweder genauso eingerückt sein oder auch nicht. Möglichkeiten:
    707   * rücke nur die erste Zeile ein
    708   * rücke alle Zeilen des Absatzes gleich weit ein
    709   * erste Zeile eingerückt, alle Zeilen rechtsbündig passend, letzte Zeile linksbündig mit der Zeile davor.
    710  Beachte: Der Wert von `@indent` kann auch negativ sein. Die Grundlinie sollte auf allen Seiten gleich angezeigt werden.
    711 
    712 Small text:
    713  * <small>: siehe die entsprechenden Tickets.
    714  * <smlb/>: setze die beiden Zeilen in einem der Anzeige-Modi für <small> untereinander. Beispiel:
    715 {{{
    716 <head>鑄造大小守銃尺量法<emph style="sm">近者多<smlb/>遠者少</emph></head>
    717 }}}
    718 
    719 === echo-gis
    720 
    721 Dieses Modul ist noch experimentell.
    722 
    723  * <place>: Wie bei `<num>` könnte der User wählen, den standardisierten Namen angezeigt zu bekommen. Regularisierungsschicht? Dann muss das GIS eine entsprechende API haben: übergebe Tabellen-Name und ID, bekomme standardisierten Namen zurück. (Das Anzeigesystem kennt den Tableennamen. Woher eigentlich?)
    724  * <time>: Sollte in irgendeiner Form an das GIS-System weitergereicht werden können.
    725 
    726 === echo-textflows
    727 
    728 Wie die div-Typen "multiflow" und "parallel" angezeigt werden könnten: User kann wählen zwischen
    729   * Seitendarstellung mit allen Flows auf dieser Seite
    730   * Seitendarstellung mit einem bestimmten Flow
    731   * Darstellung in der Reihenfolge wie im XML, ohne auf die Seiteneinteilung Rücksicht zu nehmen
    732 
    733 Wenn es `@flow` in `<pb>` gibt, gilt `<pb>` nur für diesen Flow. Beispiele sind Eipo, Conimbricenses, Fußnoten. Wie mehrere Flows, insbesondere der Haupttext und die Fußnoten, gleichzeitig angezeigt werden können, müssen wir uns noch überlegen.
    734 
    735 (`<pb>` in Fußnoten sind mit flow="footnote" gekennzeichnet. `<pb>` in Endnoten haben kein `@flow`.)
    736 
    737 === echo-import-xhtml
    738 
    739 `<xhtml:*>` kann direkt an den Browser weitergereicht werden. Beachte allerdings, dass wir nicht das content model von xhtml verwenden; man kann also nicht einfach die ganze Tabelle ohne Änderungen übergeben, sondern nur die Elemente mit dem Namespace `xhtml`.
    740 
    741 === echo-import-mathml
    742 
    743 `<mml:*>` kann direkt und ohne Änderungen an den Browser weitergereicht werden. Zumindest Firefox kann Formeln annähernd korrekt darstellen.
     5 1. [wiki:echo-schema/overview Überblick]
     6 2. [wiki:echo-schema/usage-guide Usage Guide]
     7 3. [wiki:echo-schema/implementation Umsetzung]