wiki:echo-schema/implementation

Version 4 (modified by Wolfgang Schmidle, 13 years ago) (diff)

--

ECHO-Schema: 1. Übersicht, 2. Usage Guide, 3. Umsetzung

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

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 gemacht? 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, sollten auf alle Fälle an der richtigen Stelle angezeigt werden. Ansonsten siehe echo-float.

Vorschlag, wie eine Figure dargestellt werden kann:

<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
  • [Variables]: 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.