wiki:echo-schema

Version 19 (modified by Wolfgang Schmidle, 13 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>
  • <dcterms:title>, <dcterms:alternative>
    • <dcterms:alternative> refines <dcterms:title>
  • <dcterms:creator>, <dcterms:contributor>
    • <dcterms:contributor> refines <dcterms:creator>
  • <dcterms:publisher>
  • <dcterms:language>
  • <dcterms:date>
  • <dcterms:description>
  • <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>

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"

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.

3. Umsetzung der XML-tags

Wie die XML-tags und -Attribute umgesetzt werden sollen: PDF (Stand April 2010; TO DO: aus LaTeX in das Wiki übertragen, aktualisieren)

Regeln zur Umsetzung der div-Struktur in ein Inhaltsverzeichnis: PDF (Stand März 2010; immer noch aktuell; muss ich noch implementieren)

Offene Tickets für die Umsetzung: keyword XML