wiki:echo-schema

Version 29 (modified by Wolfgang Schmidle, 14 years ago) (diff)

--

Das ECHO-Schema

Auf dieser Seite wird das ECHO-Schema beschrieben.

1. Übersicht

Übersichtsgrafik über die Schema-Module:

No image "schema_overview.gif" attached to echo-schema

Schema-Struktur

Das Schema besteht aus Gruppen von Modulen, die im Schaubild mit schwarzen Rahmen markiert sind:

  1. Standard-Module
  2. Module zur Grobstrukturierung des Textes
    • text structure: div, milestone. Diese Module sind optional, aber wird bekommen die entsprechende Information aus dem transkribierten Text, und unser Anzeigesystem benötigt diese Informationen.
  3. Module zur Feinstrukturierung des Textes
    • additional text blocks (floats): float, note, import-xhtml, figure, handwritten. Diese Module sind ebenfalls optional, aber wird bekommen die entsprechende Information aus dem transkribierten Text.
    • additional text blocks (non-floats): textflows, 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.
  4. Module für die Auszeichnung von Text:

Die Grund-Datei des Schemas ist echo.rnc im Verzeichnis 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 echo-automated-european.rnc die Module chinese-text für chinesischen Text und content-scholarly für nicht-automatisierbare Textverbesserungen auskommentiert.

Die Module sind alle im Unterverzeichnis modules, bis auf import-xhtml, das zusammen mit einigen unnverändert übernommenen xhtml-Modulen im Unterverzeichnis xhtml ist.

Beziehungen zwischen den Modulen

Die Beziehungen zwischen den Modulen sind im Schaubild durch Pfeile dargestellt. Dazu einige Erläuterungen:

  1. Pfeile
    • A → B: Modul A modifiziert Modul B, indem es in A definierte Klassen oder Elemente in in B definierten Klassen oder Elementen erlaubt
    • A --> B: Modul A weiß von Modul B, modifiziert es aber nicht

Die Pfeile geben also nicht die Hierarchie der Elemente im XML-Dokument wieder. Sondern: Wenn man B auskommentiert, wird A nicht mehr richtig funktionieren.

  1. Farben
    • grün: Module
      • dunkelgrün: Information in der Transkription enthalten
      • hellgrün: Information nicht in der Transkription enthalten
    • rot: Element/Klasse wird in diesem Modul definiert
    • gelb: entspricht einem Pfeil, also A modifies B; wird verwendet, wenn ein Pfeil das Schaubild verwirren würde
    • weiß: modifiziert Modul B, indem es Attribute ergänzt
    • blau: A verwendet ein in echo-content definiertes Textmodell (weggelassen, wenn A bereits einen Pfeil zu echo-content hat)

Die Definitionen in den Modulen echo-attribute und echo-datatype werden von allen anderen Modulen verwendet. Verbindungen zu diesen Modulen sind nicht eingezeichnet.

Das originale PDF ist hier: PDF; Legende zur Grafik: PDF (Beides Stand März 2010. Die Struktur des Schemas hat sich kaum geändert; trotzdem TO DO: aktualisieren)

2. Usage Guide

Eine erste Version des Usage Guide für das Schema: PDF (Stand April 2010; TO DO: aus LaTeX in das Wiki übertragen, aktualisieren)

General

Design decisions:

  • one schema for all texts
  • modules should be independent
  • tags in the DESpecs should have some counterpart in the Schema, if possible
  • however, do not mimic the DESpecs structure

Standard suffixes as in xhtml:

  • .attrib (defined in echo-attribute)
  • .datatype (defined in echo-datatype)
  • .model (defined in echo-content)
  • .class (defined in several modules)

IDs are expected, but XML texts should also validate without IDs

Informationsquellen und minimales Schema

Der Kern des Schemas: "(--)" bedeutet: nicht minimal, aber man bekommt etwas dafür, was über die optische Anzeige des Textes hinausgeht

Ebene minimal China Modul Element
Grobstruktur + -- echo-start <echo>
+ -- echo-metadata <metadata>
+/-- -- echo-metadata Metadaten
+ -- echo-div <text>
Mittelstruktur (--) + echo-div <div index>, <div toc>
(--) -- echo-div <div chapter> etc.
Feinstruktur + + echo-block <head>, <p>, <note>
+ -- echo-block <s>
-- + echo-block-scholarly <quote>
-- -- echo-block-scholarly <set-off>
Text -- + echo-content <emph>
(--) -- echo-content <reg>
(--) -- echo-content-scholarly <foreign>, <ref>
-- -- echo-content-scholarly <sic>, <set-off>, <q>
Hilfsmodule + n/a echo-attribute --
+ n/a echo-datatype --
F: Figures -- + echo-figure <figure>, <caption> etc.
F: Handwritten -- + echo-handwritten <handwritten>
F: Chinese text -- + echo-chinese-text <head ti>, <p @indent>, <p @ics>, <pb @ics>
F: Textflows -- + echo-textflows <head @flow>, <p @flow>, <div multiflow @flows>
F: Tables -- + echo-imp.-xhtml <xhtml:table>
F: Lists -- -- echo-imp.-xhtml <xhtml:ul> etc.
F: Floats -- -- echo-float <div float>
F: Images -- -- echo-figure <image>
T: Milestones (--) + echo-milestone <pb> (auch F), <lb>, <cb>
T: Corruptions -- + echo-gap <gap>, <unsure>
-- + echo-de <de:unknown>, <de:wrong>
T: Chinese notes -- + echo-chinese-text <lb halfline>
T: Floats -- + echo-float <anchor>
T: numbers etc. (--) -- echo-mathematics <num>, <var>
T: formulas (--) -- echo-imp.-mathml <mml:math>
T: Verse -- -- echo-textflows <lb @label>
T: Images -- -- echo-figure <image>
T: Gis -- -- echo-gis <place>, <time>
G: Gis -- -- echo-gis <dcterms:temporal>, <dcterms:spatial>

Übersicht über die Module

  • echo ist die Haupt-Datei des Schemas. Hier werden alle Module geladen.
  • echo-start, echo-metadata, echo-div, echo-block, echo-block-scholarly definieren die Struktur des XML-Dokuments bis vom root element <echo> bis zum Text-Level:
    <echo>               echo-start.rnc 
        <metadata>       echo-metadata.rnc 
        <text>           echo-div.rnc 
            <div>           - " - 
                <head>   echo-block.rnc 
                <p>         - " - 
                    <s>     - " - 
                <note>      - " -
    
    • echo-start: Zum root element <echo> gibt es kein Gegenstück in den DESpecs. Es muss in das Dokument eingefügt werden.
    • 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.
    • 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.
    • echo-block, 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.

echo-start

<text>: The default type is "free".

echo-metadata

echo-metadata: There is no counterpart of the metadata in the DESpecs.

dcterms

  • <dcterms:identifier>

Bibliographisch:

  • <dcterms:title> +, <dcterms:alternative> *
    • <dcterms:alternative> refines <dcterms:title>
  • <dcterms:creator> +, <dcterms:contributor> *
    • <dcterms:creator> refines <dcterms:contributor>
  • <dcterms:publisher> *
  • <dcterms:language>+
  • <dcterms:date> ?
  • <dcterms:description> *

Lizenz:

  • <dcterms:rights> *, <dcterms:license> *, <dcterms:accessRights>
    • <dcterms:license> may be text or a URI.
    • <dcterms:license> and <dcterms:accessRights> refine <dcterms:rights>
  • <dcterms:rightsHolder> *
  • <dcterms:provenance> *
  • <dcterms:dateCopyrighted> ?
    • <dcterms:dateCopyrighted> refines <dcterms:date>

Dabei meint + "mindestens einmal", * "beliebig oft", ? "höchstens einmal". Ohne Symbol heißt "genau einmal". Verpflichtend sind also:

  • <dcterms:identifier>
  • <dcterms:title>
  • <dcterms:creator>
  • <dcterms:language>
  • <dcterms:accessRights>

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.

other metadata

  • <font>, <font-family>
    • echo.font-families <-- "song style" in echo-chinese-text
  • <echolink>, <echodir>

In general, there is no counterpart for <text> or <div> in the DESpecs.

echo-div

DESpecs nach Schema:

  • <ind> --> <div type="index">
  • <toc> --> <div type="toc">
  • other types:
    • if the type is in the standard list: type="definition" type-free="界"
    • if it is not in the standard list: type="other" type-free="界/definition"

Liste aller div-Typen, die auf besondere Weise behandelt werden:

  • u.a. float
  • aber auch multiflow, parallel; chapter, section; ...

echo-block

  • Headings: <head>
    • <h> --> <head>
  • Semantic units: <s>
    • (<s> is not in the raw text)
  • 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>.
  • Notes: <note>
    • <mgl> --> <anchor type="note"/>, <note position="left">
    • <mgr> --> <anchor type="note"/>, <note position="right">
    • echo.note.content = echo.flexible.model to allow for different kinds of notes

echo-block-scholarly

  • <set-off>

echo-content

Most elements in this module have no counterpart in the Specs and will be added in the post-processing stage.

<emph>

<emph> for emphasis (should be used only when something is not tagged otherwise)

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).

<reg>

Only the original text is regularized using echo.reg; typing conventions and additional typos in the transcription are silently resolved.

list of typing conventions in the DESpecs which are silently resolved:

  • $ --> ſ
  • \'q --> q + combining diacritic (U+0300 etc.) and normalization form C, for example q̀
  • ...

examples:

<reg orig="ijs" type="lig">ijs</reg> 
<reg orig="sphęrae" type="simple">sphaerae</reg> 
<reg orig="sphęrae">sphaerae</reg> 
<reg orig="sphę­ rae" type="simple">sphae­<lb/>rae</reg> 
<reg orig="eiuſdẽ" type="context">eiuſdem</reg> 
<reg orig="eſsẽt" type="context">eſsent</reg> 
<reg orig="lib." type="context">liber</reg> 
in <reg orig="lib." type="context">libro</reg> 
<reg orig="qñ" type="wordlist">quando</reg> 
<reg orig="tm̃" type="wordlist/context">tamen</reg> 
<reg orig="tm̃" type="wordlist/context">tantum</reg> 
<reg orig="Arist." type="unresolved">Arist.</reg> 
<reg orig="inrerrogas" type="typo" resp="paul">interrogas</reg> 
<reg orig="quem" type="conjecture" resp="paul">quam</reg> 
<reg orig="re ferre" type="conjecture" resp="paul">re­<lb/>ferre</reg> 
<reg orig="ꝑꝑ" type="unknown">ꝑꝑ</reg> 
<reg orig="ꝑꝑ" type="conjecture" resp="paul">prope</reg>

note:

  • the default type is "simple", e.g. <reg orig="sphęrae">sphaerae</reg>
    • Beispiel veraltet!
    • Beachte: der type kann zurzeit nicht weggelassen werden, und das ist auch gut so, falls man nämlich die <reg> automatisiert nachbearbeiten muss.
  • the first exampe ijs applies only if ij is not silently resolved
  • missing hyphens are indicated by a soft hyphen "­" rather than <reg>; however, you may use "conjecture" in non-trivial cases
  • the generic "abbr" may be used for any abbreviation
  • abbreviations are not resolved within <ref>, e.g. ex <ref id="N400238">.19. lib. quinti Eu-<lb/>clid.</ref> (wirklich?)

Text-Modelle

Avoiding Recursions: Wie ist die Inline-model-Hierarchie?

  • inline anfangen können: s head caption description variables, evtl. note handwritten xhtml
  • in inline, und Inhalt inline (mit Rekursionsgefahr): s-set-off, ref, foreign, emph, q
  • in inline, und Inhalt plaintext: reg, sic, num, var, place, time
  • in inline, und inhalt es selbst: mml.math
  • in plaintext, und Inhalt plaintext: gibt es nicht
  • in plaintext, Inhalt text: unsure (Inhalt in plaintext ändern?)
  • in plaintext, leer: milestones, anchor, gap, unknown, wrong

Schematron-Regel, die Rekursionen aufspürt, d.h.

  • z.B. <ref> in <ref>
  • z.B. <ref> in <foreign> in ... in <ref>

also zusammen: kein Element aus dieser Gruppe darf sich sich selbst als ancestor haben.

echo-content-scholarly

  • <ref>
  • <sic> for mistakes in the original text:
    • o<!> --> o<de:wrong/> --> <sic comment="n missing">o</sic> (see the discussion in echo-de)
  • <foreign>: Foreign text is not marked in the transcription, i.e. <foreign> cannot be inserted automatedly without additional linguistic knowledge.
    • Exception: <rom>sentence</rom> --> <foreign xml:lang="la">sentence</foreign> with language "la" as a first guess, and similarly in Chinese text.
    • (echo.foreign has echo.core.attrib, but echo.language.attrib is obligatory)
  • Quotations:
    • <q> is for short inline quotes. Note that echo.delimiter-attrib is optional; however, please use it if possible
    • <quote> (echo.quote) for longer inline quotes (one-sentence quote are <quote><s>Sentence.</s></quote> and not <s><q>Sentence.</q></s>)
    • <quote> (echo.blockquote) for blockquotes
    • Es kann keine Rekursionen von quote-Elementen geben.

echo-gap

  • @@ --> <gap extent="2"/>
  • <gap> --> <gap/>
  • x< ? > --> x<unsure/> or <unsure>x</unsure> (this can not be fully automated)

echo-de

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:

  • <001> --> <de:unknown code="001"/> (bzw. wir haben eine Tabelle, was gemeint ist)
  • <!> --> <de:wrong/> --> remove or <sic>

echo-figure

  • <fig> --> <figure>, eventuell mit <anchor/>
  • <cap> --> <caption>
  • <desc> --> <description>
  • <var> --> <variables>

echo-handwritten

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

  • <hd> --> <handwritten/>, eventuell mit <anchor/>

echo-float

echo-milestone

line breaks

[Dieser Abschnitt ist sicher veraltet!]

<lb/> can be in plaintext (<s>, <head>, some <note>, all members of echo.inline.class) and <p>

in <p>: since a paragraph is split into <s>, most line breaks are actually in <s>. However:

  • <lb/></s><s> and </s><s><lb/> shouldn't occur (--> </s><lb/><s> [and space before </s>?])
  • <lb/></s></p> shouldn't occur at all

in <s> (and similarly for <head> and the members of echo.inline.class):

  • 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)

examples:

  • <s>亦<lb/>能使人無疑。</s>
  • <note>Plutar <lb/>chus in <lb/>commẽ <lb/>tario de <lb/>dæmo-<lb/>nio So-<lb/>cratis.</note>

We use the normal hyphen U+002D instead of the soft hyphen U+00AD because the soft hyphen is not displayed in the xhtml. --> ?

column breaks

  • <col 1>...</col><col 2>...</col> --> ...<cb/>...

page breaks

[Dieser Abschnitt ist sicher veraltet!]

<pb/> can occur wherever <lb/> occurs (although it will be rare in <head>), and <div>

  • <pb vii><rh>xyz</rh> --> <pb n="10" o="vii" o-norm="7" rhead="xyz" xlink:href="URI"/>
  • <pb 一六七a> --> <pb n="..." o="一六七a" o-norm="167a" xlink:href="URI"/>

echo-attribute

echo-datatype

echo-mathematics

  • number <num>:
    • "vii" --> <num value="7">vii</num>
    • "½" --> <num value="0.5">½</num>
  • variable <var>:
    • "AB" --> <var type="line">AB</var> (type ist optional)

Eine Funktion von <num> und <var> ist es, den Inhalt vor der morphologischen Analyse zu verstecken.

Note: The scope of echo.num and echo.var is very limited. More complex mathematics is expressed with MathML --> echo-import-mathml

echo-chinese-text

  • <ti> --> <head type="ti">
  • indentations in Chinese text:
    • <p ii> --> <p indent="2char"> oder nur "2"?
    • <p xx> --> <p indent="-2char">
    • (indent is deliberately not defined as style="valid css" because it may be semantically meaningful)
  • Linien:
    • <sl> --> <emph style="sl">
    • <dl> --> <emph style="dl">
    • <wl> --> <emph style="wl">
    • <cl> --> <emph style="cl">

Small text:

  • in <p>: <sm> --> <small>
  • everywhere else: <emph style="sm"> (<h>, rhead, <ti>, <toc>, etc.)
  • \\ --> <smlb/>

(plus some manual corrections where this simple distinction doesn't fit, e.g. <sm>chen</sm>)

echo-gis

Note: this module is still experimental.

Beachte in diesem Modul definierte Metadaten

echo-textflows

@flow is normally a number, or "footnote"

echo-import-xhtml

xhtml-basic-table

We ignore Block.class in xhtml-basic-table: The following lines replace

"Block.class |= table" in xhtml-basic-table

echo.float.class  |= xhtml.table 
echo.anchor.types |= "table" 

xhtml-list

We ignore Block.class in xhtml-list: The following lines replace

"List.class = ul | ol | dl",

"Block.class |= List.class"

echo.float.class  |= xhtml.ul | xhtml.ol | xhtml.dl 
echo.anchor.types |= "ul" | "ol" | "dl" 

Note that xhtml:ul, xhtml:ol, xhtml:dl do not correspond to <ul>, <ol>, <dl> in the DESpecs!

xhtml-attribs

We use the following xhtml elements: table, caption, tr, th, td; dl, dt, dd; ol, ul, li. All these elements have Common.attrib (th and td via Cell.attrib). xml:lang and class are already in Common.attrib, and we add xml:id { xsd:NCName } to it (however, Common.attrib already includes the attribute id { xsd:ID })

xhtml-datatypes

xhtml-text

Dieses Modul wird nicht importiert. Stattdessen werden Inline.model und Flow.model durch echo.flexible.content ersetzt:

  • Inline.model = echo.flexible.content
  • Flow.model = echo.flexible.content

ursprüngliche Definitionen:

  • Inline.model = (text | Inline.class)*
  • Block.mix = Block.class
  • Block.model = Block.mix+
  • Flow.model = (text | Inline.class | Block.class)*

echo-import-mathml

Note: Simple mathematical terms, i.e. numbers and variables, are marked using echo.num and echo.var (defined in echo-mathematics).

mml.math.content erlaubt beliebige Elemente <mml:*> innerhalb von <mml:math>.

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.

In addition, Oxygen seems to have a separate validation engine for MathML.

3. Umsetzung der XML-tags

Offene Tickets für die Umsetzung: keyword XML

TO DO: vergleiche "ist" mit "soll". Tickets für alles, was noch fehlt (vorher prüfen, ob es nicht veraltet ist!)

echo-start

  • <echo>: Es sollten die zu @version passenden XSLT-Skripte verwendet werden.

echo-metadata

  • 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.
  • <dcterms:creator>: @identifier: Die Einträge sollten in links umgewandelt werden. Wo? Auf der Startseite?
  • <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.
  • <dcterms:accessRights>: Texte mit <dcterms:accessRights>restricted</dcterms:accessRights> sollten wohl nicht in eXist aufgenommen werden.
    • --> Stimmt das??
  • <font>, <font-family>: Umsetzen als Anweisung für den Browser? Beispiel "Fraktur". Noch nicht ausgereift.

echo-text

  • <text>: @xml:lang siehe <dcterms:language>

echo-div

Erzeuge ein TOC aus den <div>. Regeln zur Umsetzung der div-Struktur in ein Inhaltsverzeichnis siehe hier: PDF (Stand März 2010; immer noch aktuell; muss ich noch implementieren)

TO DO: auch ins wiki?

echo-block

  • <head>: CSS fett (<pb> in <head> sollten nur innerhalb von Flows vorkommen; siehe echo-textflows)
  • <s>: Kann ignoriert werden. Die Attribute sollen natürlich beachtet werden. Aber: "sn=17" in der URL.
    • (Ausnahme sind eventuell <s> mit implizitem <lb/> in <div lines>) --> ist das noch aktuell?
  • <note> siehe echo-float

echo-block-scholarly

  • <set-off> sollte in eigenen Zeilen und eingerückt dargestellt werden

echo-content

echo-content-scholarly

  • <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
    ex <ref>.7. propoſitione lib. Archimedis de inſidentibus aquæ</ref>
    
    nicht analysiert.
  • <sic> kann hier ignoriert werden; wird in Arboreal gebraucht
  • foreign>
    • CSS: Der Übergang von Fraktur zu Antiqua oder oder von A. zu F. sollte durch einen passenden Font ausgedrückt werden.
    • @xml:lang sollte ausgewertet werden.
  • <emph>
    • @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?)
    • @class sollte nur in Ausnahmefällen vorkommen, z.B. in xhtml. Falls es im Text vorkommt, kann es direkt weitergegeben werden.
    • <q>
      • CSS: Sollte optisch erkennbar sein.
      • Für kurze quotes innerhalb eines <s>. Beachte @open und @close.
  • <quote> ähnlich wie <q>; als blockquote wie <set-off>

echo-gap

  • <gap>: Darstellung als [...] ?
  • <unsure>: Ignorieren?

echo-de

  • <unknown>: Ignorieren? (Sollte aber möglichst nicht mehr im Text enthalten sein.)
  • <wrong>: Ignorieren? (Sollte aber möglichst nicht mehr im Text enthalten sein.)

echo-figure

Figures, die nicht in <div float> sind, sollte auf alle Fälle an der richtigen Stelle angezeigt werden. Ansonsten siehe echo-float. Beispiel:

<figure>
    <image file="0005-01" xlink:href="..."/>
    <caption>Geometrische Formen</caption> 
    <description>Kreis</description> 
    <description>Dreieck</description> 
    <description>Viereck</description> 
    <variables>a, b, c</variables> 
</figure>

wird zu:

BILD
[Figure 156]: Geometrische Formen
Kreis
Dreieck
Viereck
a, b, c

echo-handwritten

  • <handwritten> gehört nicht zum Textflow und wird erst auf Anforderung gezeigt. Meistens ist <handwritten> leer.

echo-float

  • <anchor>:
    • 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: Anmerkung2 und anchor a eines anchored comment
    • Wenn es auch @xlink:href gibt, sollte das Symbol ein link zum zugehörigen Float sein.

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.

normaler Textflow:

  • <figure>
  • <xhtml:*> (Tabellen, Listen)
  • <mml:*> (MathML)
  • <note> mit @position=left/right: In einem getrennten Textflow (i.e. weitere Spalte), auf der richtigen Höhe

getrennt:

  • <note> mit @position=foot (zumindest sollten Fußnoten, die über mehr als eine Seite gehen, auf Wunsch vollständig angezeigt werden)
  • <handwritten>
  • <note> mit @position=end (sollten bei ihrem <div endnotes> angezeigt werden, d.h. auf der Seite, auf der sie sind)

echo-milestone

Zeilenumbruch: <lb/> ist so weit wie möglich/sinnvoll im XML-Baum verschwunden, also zum Beispiel:

<s>Bla Bla. <lb/><s>

statt

<s>Bla Bla. <s> 
<lb/>

Es gibt aber auch Ausnahmen, zum Beispiel vor und nach <small> in chinesischem Text.

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.

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.

Seitenumbruch:

  • CSS: Optisch klar vom "echten" Text abgrenzen: gesperrt?
  • Werden running heads dargestellt? Oder kann der User sie ein- und ausblenden?
  • Worttrennungen: Das System muss umgehen können mit Fällen wie
    eue-<lb/> 
    <anchor type="figure" xlink:href="..."/><lb/> 
    <anchor type="figure" xlink:href="..."/> 
    <pb ... /> 
    niet 
    

--> Will man da wirklich mehrere <lb/> haben, um auszudrücken, dass die Bilder nicht nebeneinander, sondern untereinander sind?

echo-attribute

  • @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?)
  • @style und @class siehe <emph>
  • @xml:id kann ignoriert werden, wird aber für die links im TOC gebraucht. Floats verwenden @xlink:label statt @xml:id.
  • @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.

echo-mathematics

Ob div-Typen wie "definition" im TOC angezeigt werden sollen, ist unklar.

  • <num>
    • Der Inhalt von <num> wird nicht morphologisch analysiert.
    • (Wird er in den Index aufgenommen?)
    • 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?)
  • <var>
    • Der Inhalt von <var> wird nicht morphologisch analysiert und nicht in den Index aufgenommen.
    • 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.
    • xml-Anzeige: auch <var> nicht in eigener Zeile anzeigen, sondern <s> in einer Zeile lassen, Fließtext, wird vom Browser umgebrochen

echo-chinese-text

Senkrechte Schrift im Original ist im XML bereits waagerecht und wird daher auch waagerecht angezeigt.

CSS kursiv geht bei chinesischem Text nicht.

  • <head> mit @ti: CSS: z.B. in größerer Schrift
  • <p> und <pb> mit @ics: CSS: wie darstellen?
  • <head> mit @indent: Chinesische Schrift ist monspaced (d.h. hat eine feste Laufweite). Rücke die Überschrift um entsprechen viele Zeichen ein.
  • <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:
    • rücke nur die erste Zeile ein
    • rücke alle Zeilen des Absatzes gleich weit ein
    • erste Zeile eingerückt, alle Zeilen rechtsbündig passend, letzte Zeile linksbündig mit der Zeile davor.

Beachte: Der Wert von @indent kann auch negativ sein. Die Grundlinie sollte auf allen Seiten gleich angezeigt werden.

Small text:

  • <small>: siehe die entsprechenden Tickets.
  • <smlb/>: setze die beiden Zeilen in einem der Anzeige-Modi für <small> untereinander. Beispiel:
    <head>鑄造大小守銃尺量法<emph style="sm">近者多<smlb/>遠者少</emph></head>
    

echo-gis

Dieses Modul ist noch experimentell.

  • <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?)
  • <time>: Sollte in irgendeiner Form an das GIS-System weitergereicht werden können.

echo-textflows

Wie die div-Typen "multiflow" und "parallel" angezeigt werden könnten: User kann wählen zwischen

  • Seitendarstellung mit allen Flows auf dieser Seite
  • Seitendarstellung mit einem bestimmten Flow
  • Darstellung in der Reihenfolge wie im XML, ohne auf die Seiteneinteilung Rücksicht zu nehmen

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.

(<pb> in Fußnoten sind mit flow="footnote" gekennzeichnet. <pb> in Endnoten haben kein @flow.)

echo-import-xhtml

<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.

echo-import-mathml

<mml:*> kann direkt und ohne Änderungen an den Browser weitergereicht werden. Zumindest Firefox kann Formeln annähernd korrekt darstellen.