[Trennmuster] Dokumentation 5-Felder-Format
Guenter Milde
milde at users.sf.net
Fr Mär 16 14:11:40 CET 2018
Liebe Trennmustler,
der nächste Versuch einer verständlichen Beschreibung des neuen Formats:
(Auszug aus der Dokumentation in wortliste.py im reStructuredText Markup)
5-Felder-Format
---------------
Ein vollständiger Eintrag enthält fünf Felder, für die Sprachvarianten
`de`, `de-1901`, `de-CH`, `de-1901-x-versal` und `de-CH-1901`
(Tags nach [BCP47]_).
Die Felder sind durch Semikolon getrennt.
Felder können weggelassen werden, wenn sich der Inhalt aus einem
allgemeineren Feld gewinnen lässt (siehe `Ersatzregeln`_).
Feldinhalt ist ein Wort mit Kennzeichnung der Trennstellen nach den Regeln
der `Wortliste der deutschsprachigen Trennmustermannschaft`_, z.B.
``Pro<zent=zah-len``.
Ein Feld wird als leer markiert, wenn ein Wort in dieser Sprachvariante
nicht ausgegeben werden soll.
Beispiele: ``-1-;de<pla-ziert``, ``auf<wän-dig;-2-;``.
Feldbelegung
~~~~~~~~~~~~
Die Felder beschreiben die Schreibung und Trennung eines Wortes gemäß
der Sprachvarianten:
1. `de`: `aktuelle Rechtschreibung`_ wie sie in Deutschland und Österreich
angewendet wird.
Beispiele: ``Diens-te``, ``ba-cken``, ``Grü-ße``, ``Schluss=satz``
2. `de-1901`: `traditionelle Rechtschreibung`_ wie sie in Deutschland und
Österreich von 1901 bis 1996 gültig war.
Beispiele: ``Dien-ste``, ``ba{ck/k-k}en``, ``Grü-ße``, ``Schluß=satz``
3. `de-CH` oder `de-x-versal`: aktuelle Rechtschreibung wie sie in der
Schweiz und bei ß-Ersatzschreibung angewendet wird.
Beispiele: ``ba-cken``, ``Grüs-se``, ``Schluss=satz``
4. `de-1901-x-versal`: traditionelle Rechtschreibung mit
ß-Ersatzschreibung wie sie in Deutschland und Österreich
angewendet wurde (keine Trennung von „ss“ als Ersatz für „ß“).
Beispiele: ``ba{ck/k-k}en``, ``Grü-sse``, ``Schluss=satz``
5. `de-CH-1901`: traditionelle Rechtschreibung wie sie in der Schweiz
angewendet wurde (Trennung von „ss“ auch wenn es für „ß“ steht).
Beispiele: ``ba{ck/k-k}en``, ``Grüs-se``, ``Schlu{ss/ss=s}atz``
Ersatzregeln
~~~~~~~~~~~~
Feld 1 (`de`) ist ein Pflichtfeld, die anderen Felder können weggelassen
werden, wenn sich der Inhalt über regelmäßige Transformationen_ aus einem
generischeren Feld gewinnen lässt:
2. `de-1901` aus `de` mit `ableitung1901()`_
3. `de-CH` aus `de` mit `versalschreibung()`_
4. `de-1901-x-versal` aus `de-1901` mit `versalschreibung()`_
5. `de-CH-1901` aus `de-1901` mit `versalschreibung()`_
Die Ersetzung erfolgt rekursiv (siehe `getitem()`_).
Die Bildung ungültiger Wörter wird durch „Auskreuzen“ des entsprechenden
Feldes (z.B. ``auf<wän-dig;-2-;``) verhindert.
.. TODO: Auskreuzalternativen
* leer lassen: ``;Pro<zeß``, ``auf<wän-dig;;``
* Symbol (welches?) z.B.: ``%;Pro<zeß``, ``auf<wän-dig;%;``
* einheitliche Zeichenkette, z.B.: ``-x-;Pro<zeß``, ``auf<wän-dig;-x-;``
Beispiel
--------
Durch die Ersatzregeln reicht für 99,7% der Einträge die Angabe des ersten
Feldes, z.B.
>>> from wortliste import ShortEntry
>>> ssr = ShortEntry(u'süß=sau-er')
>>> ssr.complete()
>>> print unicode(ssr)
süß=sau-er;süß=sau-er;süss=sau-er;süss=sau-er;sü{ss/ss=s}au-er
>>> ssr.prune(); print unicode(ssr)
süß=sau-er
Ich hoffe, es hilft. Rückmeldungen willkommen.
Viele Grüße,
Günter
Mehr Informationen über die Mailingliste Trennmuster