Affix-Dateien bearbeiten, Erklärungen bezüglich ALLER Codes

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

PAX
*
Beiträge: 15
Registriert: Mo, 06.10.2008 11:35

Affix-Dateien bearbeiten, Erklärungen bezüglich ALLER Codes

Beitrag von PAX »

Grüßt euch, Freunde!

Ich muss eine Software schreiben, mit der man OOo's Affix-Dateien editieren/erstellen kann. Deshalb bin ich gerade dabei, ersteinmal zu verstehen, wie sie überhaupt aufgebaut sind und funktionieren.
Bekanntlich existiert ja eine Hilfedatei, in der "einiges" darüber erklärt wird (http://lingucomponent.openoffice.org/affix.readme). Das scheint allerdings nicht alles zu sein, was man an Möglichkeiten hat. Denn schaue ich mir zum Beispiel die de_DE.dic-Datei an, fallen Einträge auf, die zum Beispiel nicht die Affix-Referenz /S haben (was dies bedeutet, ist ja erklärt), sondern /ox (oder /pST etc.) (man beachte die Kleinbuchstaben). Auch ist mir noch unklar, was Einträge bedeuten, an denen (z.B.) /EPS angehängt ist (ich würde jetzt nur einmal vermuten, dass in diesem Fall bei diesem Wort die Affix-Regeln E, P und S aus der Affix-Datei anwendbar sind).

Es stellen sich mir also folgende Fragen:
  1. Gibt es eine Erklärung zu diesen vielen weiteren komplexer erscheinenden Anhänge an den Wörter in der Wortliste?
  2. Existieren bereits (Java-)Klassen/Bibliotheken, mit derren Hilfe ich Affix-Dateien editieren kann, ohne die ganzen Algorithmiken/Implementierungen dafür selbst programmieren zu müssen?
Beste Grüße


PAX
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner
PAX
*
Beiträge: 15
Registriert: Mo, 06.10.2008 11:35

Re: Affix-Dateien bearbeiten, Erklärungen bezüglich ALLER Codes

Beitrag von PAX »

Zu Frage 1:

Es ist nun geklärt, dass Kleinbuchstaben (/ox) bestimmte Steuercodes sind, die zum Beispiel festlegen, dass etwas der Anfang einer Komposition sein muss etc. und werden selber in der Affix-Datei definiert. Beispiel:

Code: Alles auswählen

COMPOUNDBEGIN x
COMPOUNDMIDDLE y
COMPOUNDEND z
FORBIDDENWORD d
Für ein vollständiges kleines Tutorial, wenn jemand weiß, wo es eines gibt, wäre ich trotzdem dankbar. Denn wenns keine bereits bestehenden Java-Klassen gibt, mit denen man Affix-Dateien erstellen/manipulieren kann, dann muss ich das anscheinend selbst programmieren, was bedeutet, dass ich alle möglichen Einträge in Affix-Dateien kennen und behandeln muss.

Gibts fertige Klassen?
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner
Joke
*****
Beiträge: 378
Registriert: Sa, 19.02.2005 20:23

Re: Affix-Dateien bearbeiten, Erklärungen bezüglich ALLER Codes

Beitrag von Joke »

Hallo PAX,

leider kann ich zusätzlich nur noch beitragen, dass deine Vermutung richtig ist: EPS bedeutet, dass E und P und S angewendet werden.
Ansonsten teile ich deine Hoffnung, dass es noch ein ausführlicheres Tutorial gibt, das mir bisher unbekannt ist!

Joke
keeskoung
Beiträge: 9
Registriert: Sa, 13.05.2006 12:37

Re: Affix-Dateien bearbeiten, Erklärungen bezüglich ALLER Codes

Beitrag von keeskoung »

Hallo PAX,
ich habe mir eigene Wörterbücher erstellt, und durfte mich eben auch mal mit dieser affix-Datei rumschlagen. ;-)

1. Zeile der Affix-Definition
Also in der 1. Spalte deiner affix-Datei gibst du an ob es sich um eine Suffix "SFX" (also um einen Wortanhang) oder um eine Praefix "PFX" (also um eine Worterweiterung vor dem Wort - keine Ahnung wie man das nun verdeutscht). Allerdings gibt es hier noch die Option "REP", aber da bin ich noch nicht drauf gekommen.
In der 2. Spalte gibst du den Definitionsbuchstaben an. Es ist egal ob du hierfür Groß- oder Kleinbuchstaben benutzt. Wobei du mit "A" und "a" zwei Unterschiedliche Definitionen festlegen kann.
Die 3. Spalte legt fest ob das Wort Suffixe und/oder Praefixe erhalten kann. "N" = nur Suffix , "Y" Suffix und Praefix.
Spalte 4 gibt die Anzahl der Affix-Definitionen an.

ab 2. Zeile der Affix-Definition
Spalte 1 und 2 entsprechend Zeile 1.
3. Spalte: zu ersetzende Wortendung. "0" (Null) = Keine Ersetzung der Buchstaben am Wortende. Wenn man dort z.B. "um" angibt wird diese Buchstabenfolge am Wortende mit der Angabe in Spalte 4 ersetzt.
4. Spalte: Entspricht der Affix (Suffix/Praefix). Z.B. "a" ersetzt die Buchstabenfolge die man in der 3. Spalte angegeben hat.
Die 5. Spalte definiert, wie ein Wort enden muß bevor die Suffix angefügt wird. Buchstaben in eckigen Klammern "[]" legen fest, daß das Wort nicht mit den Buchstaben enden darf. Wenn man die Buchstaben nicht einklammert muß das Wort so enden. Wobei das ^-Zeichen wohl einzelne Buchstaben festlegt. Ansonsten gilt die Buchstabenkombination.

Ein Beispiel:
SFX u Y 1
SFX u um a um

==> Es handelt sich um die Affix-Definition "u", die Suffixe und Affixe zuläßt und es gibt 1 Definitionszeile
==> 3. Spalte: die Wortendung "um" wird, durch den in Spalte 4 angegebenen Buchstaben "a" ersetzt.
==> Die Suffix wird aber nur angefügt, wenn das Wort mit "um" endet.

In der .dic-Datei steht z.B. Praktikum/u
==> Praktikum -> Praktika

Du kannst natürlich wie von Joke bereits erwähnt mehrere Affixe für ein Wort festlegen. "Wort/uABC" hier werden die Affix-Definitionen "u", "A", "B", "C" abgefragt.

Editieren tu' ich diese Dateien gewöhnlich mit einem ganz ordinären Texteditor. Und speichere die Dateien mit der ISO-8859-15 Kodierung und UNIX-Zeilenende.

So ich hoffe ich konnte ein wenig Dunkel ins Licht bringen ;-)

Viel Spaß
Antworten