MHDBDB-Schema

Welches TEI-Modell verwendet die MHDBDB? Diese Seite zeigt das normative Schema mit Pflicht-Elementen, neun validierten Beispieldateien zum Anschauen und einen Step-by-Step-Pfad von der reinen Textdatei zur MHDBDB-konformen TEI-XML.

1. Was ist das MHDBDB-Schema?

Das MHDBDB-Schema ist eine RELAX-NG-Definition, die festlegt, wie eine TEI-Datei aussehen muss, damit sie von den MHDBDB-Werkzeugen verarbeitet werden kann. Es gibt zwei Schemata: eines für die Korpustexte (schema/mhdbdb.rnc), eines für die acht Authority-Files (schema/mhdbdb-authority.rnc).

Jede Datei wird in zwei Stufen validiert:

  1. Stufe 1 – TEI P5 (tei_all.rng, gepinnt auf Version 4.11.0): Ist die Datei valides TEI?
  2. Stufe 2 – MHDBDB-Constraints (mhdbdb.rnc bzw. mhdbdb-authority.rnc): Folgt sie den MHDBDB-Konventionen?

Stufe 2 ist das maßgebliche Schema und wird hart in der CI geprüft; Stufe 1 sichert die Interoperabilität mit dem TEI-Ökosystem ab. Beide Schemata liegen im Schema-Verzeichnis auf GitHub.

Warum kein ODD? Die MHDBDB-Schemata sind direkt in RELAX NG geschrieben, nicht aus ODD generiert. Hintergrund: Die ODD-Toolchain (Roma, odd2relax) ist faktisch nicht mehr gepflegt; RELAX NG ist die eigentliche Validierungssprache. Details siehe schema/README.md.

2. Schema-Skelett und Pflicht-Elemente

Dokumentstruktur einer Korpusdatei

<TEI xml:id="SIGLE">
  <teiHeader>
    <fileDesc>
      <titleStmt>...</titleStmt>
      <publicationStmt>...</publicationStmt>
      <sourceDesc><msDesc>...</msDesc></sourceDesc>
    </fileDesc>
    <encodingDesc>
      <projectDesc>...</projectDesc>
      <editorialDecl>...</editorialDecl>
      <classDecl><taxonomy>...</taxonomy></classDecl>
    </encodingDesc>
    <profileDesc>
      <langUsage><language ident="gmh"/></langUsage>
      <particDesc><listPerson>...</listPerson></particDesc>
    </profileDesc>
    <revisionDesc><change when="..." who="...">...</change></revisionDesc>
  </teiHeader>
  <text><body>
    <div type="...">
      <p> oder <lg> oder <l> oder <ab>       <!-- Blockelemente -->
        <w xml:id="..." lemmaRef="..." pos="...">...</w>
        <pc join="left">,</pc>
      </p>
    </div>
  </body></text>
</TEI>

Pflicht-Attribute auf Kernelementen

Element Pflicht Empfohlen Funktion
<w> @xml:id @lemmaRef, @pos, @ana, @corresp Wort-Token mit semantischer Annotation
<pc> @join = left | right @xml:id Interpunktion (kein <seg type="pc">)
<div> @type, @n Textgliederung; Enum siehe TEI-MODEL §6
<lg> @type="stanza", @n Strophe (Vers)
<l> @n Verszeile
<lb/> @n Zeilenumbruch (Prosa); kein <l> für Prosa
<msIdentifier> @corresp = works.xml#work_N Werk-Anker in den Authority Files

Wort-Annotationsmuster

<w xml:id="ABG_101_0"
   lemmaRef="lexicon.xml#lemma_879"
   pos="NOM"
   ana="lexicon.xml#lemma_879_sense_1234"
   corresp="variants.xml#type_5678">brôt</w>
  • @lemmaRef – Pfad zum Lemma-Eintrag in lexicon.xml
  • @pos – POS-Tag aus dem 19-Tag-MHDBDB-Set (nicht STTS/UD)
  • @ana – Pfad zur Bedeutung/zum Konzept
  • @corresp – Pfad zum orthographischen Variantentyp

Wörter ohne @lemmaRef werden vom Korpus-Index übersprungen. Vollständige normative Spezifikation: docs/TEI-MODEL.md.

3. Neun Beispieldateien zum Anschauen

Das Repository enthält neun validierte Beispieldateien, eine pro Dokumenttyp. Jede ist eine minimale, aber vollständige Vorlage. Klicken Sie zum Aufklappen.

Quelle: schema/examples/ im Repository.

corpus.example.tei.xml – Alle Gattungsmuster (Vers, Prosa, Rezept, Lyrik, Predigt, Kolophon)
authority-lexicon.example.xml – Lemma-Einträge mit Bedeutungen
authority-persons.example.xml – Personeneinträge mit GND/Wikidata
authority-works.example.xml – Werkeinträge mit Bibliographie
authority-genres.example.xml – Hierarchische Gattungstaxonomie
authority-concepts.example.xml – Semantische Begriffsontologie
authority-variants.example.xml – Orthographische Variantenzuordnungen
authority-names.example.xml – Mittelalterliche Namensformen
authority-contributors.example.xml – Mitwirkenden-Register

4. Von der Textdatei zur MHDBDB-TEI

Sie haben einen lemmatisierten oder unlemmatisierten mittelhochdeutschen Text, etwa als Plaintext oder als CSV mit Token-Spalten? So kommen Sie Schritt für Schritt zu einer MHDBDB-konformen TEI-Datei. Wenn Sie schon eine TEI-Datei haben, die in ein älteres MHD-Schema kodiert ist, ist der Konversionsleitfaden der bessere Einstieg.

  1. 1

    Skelett kopieren

    Starten Sie nicht von Null. Kopieren Sie corpus.example.tei.xml aus dem Repository. Diese Datei enthält bereits Header-Skelett, Schema-Verweis und Beispiel-Strukturen für Vers und Prosa.

  2. 2

    Sigle und Werk-Anker vergeben

    Vergeben Sie eine eindeutige Sigle (z. B. ABG für „Albrechts Gesta") und tragen Sie sie in <TEI xml:id="...">, <idno type="sigle"> und in alle <w xml:id="SIGLE_...">-Präfixe ein. Die Sigle wird mit dem MHDBDB-Team abgestimmt.

    Verlinken Sie das Werk per <msIdentifier corresp="works.xml#work_N"> zur works.xml. Existiert das Werk dort noch nicht, legen Sie es vorab gemeinsam mit dem Team an.

  3. 3

    Header füllen

    Titel, Autor*in, Publikation, Lizenz, sowie ein Eintrag in <revisionDesc> mit @when und @who. Beispiel-Skelett komplett: Abschnitt 2 oben.

    Für die Sprachstufe wird aktuell durchgängig <language ident="gmh"> (Mittelhochdeutsch) verwendet. Eine MHDBDB-Konvention für Frühneuhochdeutsch oder feinere Sprachstufen ist noch in Diskussion (siehe Issue #81); klären Sie den passenden Code vor der Einreichung mit dem Team.

  4. 4

    Body strukturieren

    Verspoesie: <lg type="stanza"><l>...</l></lg>. Prosa: <p>...<lb/>...</p>. Für die Gliederung verwenden Sie <div type="chapter|section|song|number|recipe|colophon|parallel">; das genaue Enum dokumentiert TEI-MODEL §6.

  5. 5

    Wörter und Interpunktion taggen

    Jedes Wort bekommt ein <w xml:id="..."> mit dateiweit eindeutiger ID. Interpunktion wird als <pc join="left"> (an das vorige Wort) oder join="right" (an das folgende) kodiert, nie als <seg type="pc">.

    Lemmatisierung (@lemmaRef) und POS-Tagging (@pos) sind in der Erstfassung nicht zwingend; das MHDBDB-Team führt sie nachträglich in einer halbautomatischen Pipeline durch (siehe Konversionsleitfaden, Abschnitt 6).

  6. 6

    Validieren

    Vor der Einreichung gegen beide Schemata prüfen. Anleitung im nächsten Abschnitt.

5. Validieren

Im Editor (oXygen, VS Code Scholarly XML)

Setzen Sie am Datei-Anfang eine <?xml-model?>-Processing-Instruction:

<?xml-model href="../schema/mhdbdb.rng"
            type="application/xml"
            schematypens="http://relaxng.org/ns/structure/1.0"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xml:id="SIGLE">
  ...

Damit prüft Ihr Editor live gegen das MHDBDB-Schema (Stufe 2). Die TEI-P5-Validation (Stufe 1) bleibt der CI vorbehalten, weil 30 Korpus-Files bewusst gegen TEI-Standard sind (GAPs 1–11 im Schema-Header).

Vor dem Einreichen (Python)

pip install lxml rnc2rng

# tei_all.rng einmalig herunterladen
curl -sL "https://tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" \
     -o schema/tei_all.rng

# Korpus-Datei validieren
python -c "
from lxml import etree
tree = etree.parse('tei/SIGLE.tei.xml')
tei_all = etree.RelaxNG(etree.parse('schema/tei_all.rng'))
mhdbdb  = etree.RelaxNG(etree.parse('schema/mhdbdb.rng'))
print('TEI P5:', 'VALID' if tei_all.validate(tree) else tei_all.error_log)
print('MHDBDB:', 'VALID' if mhdbdb.validate(tree)  else mhdbdb.error_log)
"

Beide Stufen müssen VALID ausgeben. Bei Stufe-2-Fehlern muss die Datei korrigiert werden, bei Stufe-1-Fehlern können Sie mit dem Team prüfen, ob ein GAP-Eintrag im Schema gerechtfertigt ist.

6. Einreichen

Wenn Ihre Datei beide Validierungsstufen besteht, gibt es zwei Wege:

  • Einreichung per E-Mailmhdbdb@plus.ac.at mit Sigle-Vorschlag, Werk-Metadaten (Titel, Autor, Edition, Lizenz) und der validierten TEI-Datei.
  • Pull Request auf GitHub – wenn Sie git-vertraut sind: Fork von DigitalHumanitiesCraft/mhdbdb-tei-only, TEI-Datei in tei/ plus Werk-Eintrag in authority-files/works.xml, PR eröffnen. Die CI prüft automatisch beide Validierungsstufen.

Was wir vom Beitrag wissen müssen

  • Sigle – ein 2–5 Buchstaben langer Werk-Identifier (z. B. ABG, ARI1)
  • Werk-Metadaten – Titel, Autor (mit GND/Wikidata wenn vorhanden), Entstehungszeit, Gattung
  • Quellangabe – Edition oder Handschrift, auf der die Auszeichnung basiert
  • Lizenz – idealerweise CC BY-NC-SA 4.0, kompatibel mit dem MHDBDB-Korpus
  • Kontakt – wer hat das transkribiert / annotiert, wer ist Ansprechperson

Für die Schema-Konversion bereits TEI-kodierter Daten siehe den Konversionsleitfaden; für den breiteren Kontext (Authority-Files, Pipeline, Wenzelsbibel als Worked Example) ebenfalls dort.

Stand: Mai 2026 · Änderungen auf GitHub