Michael Neuhold Homepage
Startseite >
Altgriechisch und Latein auf dem Computer >
Überlegungen zu einer Vokabeldatenbank Latein
Im folgenden werden Überlegungen dazu angestellt, wie eine Vokabeldatenbank in einem relationalen Datenbanksystem realisiert werden kann, mit besonderem Schwerpunkt auf den Bedürfnissen der Sprachen Latein und Altgriechisch. In diesen Sprachen werden Vokabel fast ausschließlich Fremdsprachlich-Deutsch gelernt. Es wird zwar auch kurz die Frage erörtert, wie man auch in umgekehrter Richtung lernen kann, aber grundsätzlich wird von der herkömmlichen Richtung ausgegangen.
Im Sinne der Verhältnismäßigkeit der Mittel sollte klar sein, daß man zum Lernen simpler Wortgleichungen keine Datenbank braucht. Einer der gängigen Grundwortschätze aus dem Klett- oder Langenscheidtverlag leistet hier mehr als gute Dienste. Die Datenbank kommt ins Spiel, wenn die Möglichkeit bestehen soll, die Vokabel nach unterschiedlichsten Kriterien auszusuchen und darzubieten.
Unsere Datenbank soll die Möglichkeit bieten, mehrere Sprachen abzudecken. Um nicht alle Tabellen für jede Fremdsprache kopieren zu müssen, sehen wir eine Tabelle SPRACHE vor:
SPRACHE |
---|
>SPRACHE_ID |
BESCHREIBUNG |
KUERZEL |
Mögliche Tupel sind (1, 'Englisch', 'E'), (2, 'Latein', 'L') usw.
Soll auch die Möglichkeit bestehen, eine andere Zielsprache als Deutsch vorzusehen (z.B. Deutsch für englischsprechende Ausländer), kann man entweder die Tabelle so ändern, daß ein Tupel Fremd- und Zielsprache bezeichnet (also (1, 'Englisch-Deutsch'). (2, 'Deutsch-Englisch') usw.), oder man sieht zwei Sprachtabellen und eine Cross-Reference-Tabelle vor.
Ein Vokabel besteht in seiner einfachsten Form aus dem fremdsprachlichen Wort und der zielsprachlichen Wiedergabe (vulgo Übersetzung). Dazu kommen noch die Stammformen, die im Englischen nur einen geringen Umfang haben, im Lateinischen und erst recht im Altgriechischen aber umfangreich sein können. Die Vokabeltabelle sieht zunächst so aus:
VOKABEL |
---|
>VOKABEL_ID |
GRUNDFORM |
STAMMFORMEN |
BEDEUTUNG |
SPRACHE_ID |
Eine Entscheidung ist zu treffen, wie bei Vokabeln vorzugehen ist, die bei gleicher Grundform unterschiedlichen Wortarten oder verschiedenen Wortwurzeln angehören. Beispiele:
Die Wörterbücher gehen meist so vor, daß sie etwa measure nur einen Eintrag gönnen, unter dem sowohl die substantivische als auch die verbale Verwendung verzeichnet sind, für mean jedoch drei Einträge vorhanden sind. Das Prinzip dahinter ist, daß für unterschiedliche Wortwurzeln je ein eigener Eintrag gemacht wird, bei lediglich unterschiedlicher Wortart nicht. Um diese Vorgehensweise prinzipiell zu ermöglichen, darf die Grundform nicht unique sein.
Die Felder STAMMFORMEN und BEDEUTUNG sind zusammengesetzt und verstoßen somit gegen die 1. Normalform. Hierüber wird im folgenden zu sprechen sein.
Das Lernen in "umgekehrter" Richtung (deutsch-fremdsprachlich) ist leichter möglich, wenn die deutsche Wortbedeutung nicht ein Attribut der Vokabeltabelle ist, sondern pro Bedeutung ein eigener Datensatz in einer Bedeutungstabelle eingetragen wird:
VOKABEL_BEDEUTUNG |
---|
>VOKABEL_ID |
>BEDEUTUNG |
Mögliche Tupel wären ({pereo}, 'umkommen'), ({pereo}, 'untergehen'), ({occido}, 'untergehen'), ({occido}, 'umkommen'). Wenn man die lateinischen Entsprechungen zu deutsch umkommen lernen will, dann kann das Programm die Vokabel pereo und occido leicht finden, ohne daß eine Suche nach Teilstrings notwendig ist.
Über die Synonymbeziehung können dabei auch Vokabel ähnlicher Bedeutung gefunden und dargeboten werden: Wenn man z.B. nach reden suchen läßt und die Tupel ({loquor}, 'reden'), ({loquor}, 'sprechen'), ({dico}, 'sagen), ({dico}, 'nennen') lauten, dann wird dico nicht unmittelbar gefunden, obwohl es vielleicht genannt werden sollte. Wenn eine Synonymbeziehung aufgesetzt ist, kann man das Programm anweisen, auch nach Synonymen zu suchen.
Da im Lateinischen die Bedeutung manchmal von der Konstruktion (z.B. +ACI vs. +ut/ne) abhängt, muß ein eigenes Attribut dafür eingeführt werden: Tupel könnten dann so aussehen: ({contendo}, 'eilen', 'ad/Inf'), ({contendo}, 'kämpfen', 'cum/de'), ({contendo}, 'behaupten', 'AcI'). Evt. wäre zu überlegen, ob man für die Konstruktion nicht eine eigene Tabelle anlegen will.
Soll es möglich sein, nach grammatikalischen Kategorien zu lernen (z.B. Verba der a-Konjugation), dann müssen auch die Stammformen in eine eigene Tabelle ausgelagert werden. Dafür wird eine Stammdatentabelle benötigt:
STAMMFORM |
---|
>STAMMFORM_ID |
BESCHREIBUNG |
SORT_NO |
Mögliche Tupel für das Lateinische wären: (1, 'Gen. Sg.', 1), (2, 'Geschlecht', 2), (3, 'Konjugation', 1), (4, 'Infinitiv', 2). Die SORT_NO gibt dabei an, in welcher Reihenfolge die Formen dargeboten werden sollen.
VOKABEL_STAMMFORM |
---|
>VOKABEL_ID |
>STAMMFORM_ID |
FORM |
Mögliche Tupel sind ({mons}, 1, 'montis'), ({mons}, 2, 'm'), ({laudo}, 3, '1'), ({laudo}, 4, 'laudare'). Die Darbietung im Programm sieht dann etwa so aus: mons: montis, m, laudo: 1, laudare.
Auch die Rektion kann, soweit sie für alle Bedeutungen gilt, als eine Stammform aufgefaßt werden. Wir brauchen dazu ein weiteres Tupel in der Stammformentabelle (15, 'Rektion', 99). Das Vokabel persuadeo hat dann die Tupel ({persuadeo}, 3, '2'), ({persuadeo}, 4, 'persuadere') usw. und endlich ({persuadeo}, 15, '+Dat.'). In der Bedeutungstabelle dagegen (({persuadeo}, 'überreden', 'AcI'), ({persuadeo}, 'überzeugen', 'ut/ne').
Moderne Computersysteme bieten die Möglichkeit, korrekte Aussprache nicht nur durch Lautschrift, sondern auch durch Audiodateien darzubieten, antike Gegenstände durch Abbildungen von Exponaten oder Rekonstruktionszeichnungen zu illustrieren u.ä.m. Technisch kann man dies durch ein BLOB oder eine Referenz auf eine externe Datei realisieren. Da zu einem Vokabel mehrere multimediale Darbietungen gehören können, braucht man eine eigene Tabelle:
VOKABEL_MEDIA |
---|
>VOKABEL_ID |
KURZBESCHREIBUNG |
INHALT |
Die KURZBESCHREIBUNG enthält einen kurzen beschreibenden Text zur Anzeige, der INHALT die eigentlichen Daten.
Das Lernen von Vokabeln nach sachlichen Kategorien ist heute in der Sprachdidaktik ein durchgängiges Prinzip. Vokabel sollen Sachgruppen zugeordnet werden können, um so ein Lernen von Sachgruppen zu ermöglichen. Es gibt Wortschätze mit einer hierarchischen Anordnung von Sachgruppen und solcher mit einer flachen Anordnung.
Hierarchisch ist z.B. Langenscheidts Grundwortschatz Latein:
Flach ist z.B. Grundwortschatz Latein nach Sachgruppen, Klett-Verlag:
Für welche Vorgangsweise man sich entscheidet, ist vermutlich eine Geschmacksfrage. Für hierarchische Daten benötigt man zu jedem Datensatz eine PARENT_ID.
SACHGRUPPE |
---|
>SACHGRUPPE_ID |
SACHGRUPPE_PARENTID |
BESCHREIBUNG |
Ein Wort kann auf Grund seiner Bedeutungsbreite mehreren Sachgruppen angehören. Lat. colere etwa gehört in der Bedeutung "bebauen" (agros colere, daher agricultura) in den Bereich Landwirtschaft, in der Bedeutung "verehren" (deos colere) in den Bereich Religion. Die Sachgruppe ist somit eine Funktion der Bedeutung. Theoretisch kann eine Bedeutung auch mehreren Sachgruppen zugeordnet werden, doch in der Praxis wird das kaum so gemacht.
VOKABEL_BEDEUTUNG |
---|
>VOKABEL_ID |
... |
SACHGRUPPE_ID |
Aus der Sachgruppenzuordnung ergibt sich die Gliederung der Bedeutungen in Bedeutungsgruppen, die in Lernwortschätzen oft durch Strichpunkt ausgedrückt wird (z.B. opinio "Meinung; guter Ruf"). Bedeutungen derselben Sachgruppe können durch Beistrich, solche unterschiedlicher Sachgruppen durch Bindestrich getrennt werden: ({comprehendo}, 'begreifen', {Wahrnehmung und Erkenntnis}), ({comprehendo}, 'ergreifen', {Geben und Nehmen}) und ({comprehendo}, 'festnehmen', {Geben und Nehmen}) läßt sich so darstellen: comprehendo: begreifen; ergreifen, festnehmen.
Soll eine Darbietung der Vokabel nach Wortarten möglich sein, braucht man zunächst eine Wortartentabelle:
WORTART |
---|
>WORTART_ID |
BESCHREIBUNG |
Darüberhinaus ist folgendes zu bedenken: Will man erzwingen, daß pro Wortart ein Vokabeldatensatz angelegt werden muß, also z.B. ({measure}, 'Maß'), ({measure}, 'messen'), dann muß die Wortart ein Attribut der Vokabeltabelle werden:
VOKABEL |
---|
>VOKABEL_ID |
... |
WORTART_ID |
Will man der Vorgehensweise der Wörterbücher folgen, dann kann man entweder Vokabel, die unterschiedliche Wortart, aber gleiche Wortwurzel haben, über die Wortwurzelbeziehung zusammenführen; oder man legt eine Cross-Reference-Tabelle an:
VOKABEL_WORTART |
---|
>VOKABEL_ID |
>WORTART_ID |
Manchmal ist auch die Darbietung von Vokabeln nach Wortwurzeln (sog. Wortfamilien) nützlich, für das Lernen semitischer Sprachen (Hebräisch, Arabisch) ist es sogar unerläßlich. Wir benötigen eine Wortwurzeltabelle.
WORTWURZEL |
---|
>WURZEL_ID |
WURZEL |
Da es in vielen Sprachen zusammengesetzten Wörter gibt, deren Bestandteile zu unterschiedlichen Wurzeln gehören (z.B. lat. iudex von ius und dico), kann man die WURZEL_ID nicht zu einem Attribut der Vokabeltabelle machen, sondern man braucht eine Cross-Reference-Tabelle):
VOKABEL_WURZEL |
---|
>VOKABEL_ID |
>WURZEL_ID |
Redewendungen müssen wie Vokabel gelernt werden. Doch wie gehen wir in der Datenbank vor? Iuxtapositionen wie agricultura (eigentlich Gen. von ager + cultura = des Ackers Bebauung) oder res publica (wörtlich: öffentliche Sache = Staat) werden naheliegenderweise als eigene Vokabel dargeboten werden. Schwieriger liegt der Fall schon bei Doppelungen wie griech. kai - kai, lat. neque - neque, modo - modo, engl. as - as. Der nächste Schritt sind korrelative Wendungen wie lat. quo - eo, tantum - quantum, engl. neither - nor. Und schließlich sind die vielen Redewendungen, die aus Wörten unterschiedlicher Wortart (im Lateinischen häfig Verbum + Substantiv) bestehen, wie lat. bellum ducere (nicht: Krieg führen, sondern: den Krieg in die Länge ziehen), crimini dare (zum Vorwurf machen). Oft wünscht man sich solche Redewendungen nur zum besseren Behalten der Vokabel, obwohl sich der Sinn der Wendung aus der Bedeutung der Vokabel zwanglos ergibt, z.B. lat. hieme ineunte, paulo post oder ähnlich. Dies haben manche Wortschätze zum Prinzip erhoben und bieten für jedes Vokabel einen Beispielsatz.
Man kann Redewendungen als eigene Vokabel führen. Bei crimini dare wäre dann die Frage nach der Wortart zu klären. Am besten wäre es wohl, eine eigene Wortart "Redewendung" einzuführen. Sinnvollerweise wird man diese Vorgangsweise nur bei Iuxtaposita und korrelativen Wendungen anwenden.
Für alle anderen Redewendungen ist wohl eine eigene Tabelle samt einer Cross-Reference-Tabelle das Mittel der Wahl:
REDEWENDUNG |
---|
>REDEWENDUNG_ID |
WENDUNG |
BEDEUTUNG |
VOKABEL_REDEWENDUNG |
---|
>VOKABEL_ID |
>REDEWENDUNG_ID |
Gelegentlich erleichtert es das Behalten, wenn zu einem Vokabel auch Wörter ähnlicher oder gegenteiliger Bedeutung (Synonyme, Antonyme) bzw. Wörter, mit denen ein Vokabel u.U. verwechselt werden kann, dargeboten werden.
Im Prinzip werden hier zwei Vokabel zueinander in Beziehung gesetzt. Eine Tabelle mit den mögliche Beziehungen und eine Cross-Reference-Tabelle, die die Vokabelbeziehungen darstellt, wäre eine Möglichkeit:
BEZIEHUNG |
---|
>BEZIEHUNG_ID |
BESCHREIBUNG |
SYMBOL |
Mögliche Tupel für diese Tabelle sind (1, 'Synonym', '~'), (2, 'Antonym', '<->'), (3, 'Verwechslungsgefahr', '!').
VOKABEL_BEZIEHUNG |
---|
>VOKABEL1_ID |
>VOKABEL2_ID |
>BEZIEHUNG_ID |
Um Verdoppelungen wie (pax, bellum, 2) vs. (bellum, pax, 2) zu vermeiden, ist eine geeignete Maßnahme (Trigger?) vorzusehen.
Sehr häufig bieten Wortschätze Lernhilfen in Form von stammverwandten deutschen, englischen oder französischen Wörtern, z.B. dubito - engl. doubt, populus - dt. Pöbel - engl. people usw.
Der Einfachheit halber kann man für solche Angaben eine eigenes Attribut in der Vokabeltabelle vorsehen. Wenn die entsprechenden Vokabeln aber ohnehin vorhanden sind (Englischvokabel, Französischvokabel), kann man die Beziehung auch über obige Vokabelbeziehungentabelle herstellen. Die Tabelle BEZIEHUNGEN muß dann um ein Tupel (4, 'Stammverwandtschaft', '=>') erweitert werden.
Soll es möglich sein, auch die vorhandenen Stammverwandtschaften nach Sprachen geordnet aufzulisten, brauchen wir eine eigene Tabelle:
VOKABEL_STAMMVERWANDTSCHAFT |
---|
>VOKABEL_ID |
>SPRACHE_ID |
GRUNDFORM |
BEDEUTUNG |
Grammatikalische und sachliche Erklärungen zu einzelnen Vokabeln (z.B. unterschiedliche Verwendungsweisen von contendo), einer Wortgruppe (z.B. Unterschied zwischen res publica - civitas - populus oder die Rektion der verba dicendi) oder einem Sachgebiet (z.B. die Struktur des römischen Heeres) wird man am einfachsten den betroffenen Vokabeln zuordnen:
VOKABEL_ERKLAERUNG |
---|
>VOKABEL_ID |
ERKLAERUNG |
Erklärungen, die ein Sachgebiet betreffen, könnte man in einer eigenen Tabelle darbieten:
SACHGRUPPE_ERKLAERUNG |
---|
>SACHGRUPPE_ID |
ERKLAERUNG |
Ein Problem, das sich vor allem in den Fächern Latein und Altgriechisch stellt, ist das der Lektürerelevanz. Vor einer Übersetzungsarbeit an Ovid soll es möglich sein, das Lernen auf Vokabel einzuschränken, die bei Ovid mit einer bestimmten Mindesthäufigkeit vorkommen.
Klarerweise ist zunächst eine Tabelle der gewünschten Autoren zu erstellen:
AUTOR |
---|
>AUTOR_ID |
NAME |
Die Beziehung Vokabel - Autor, für den das Vokabel wichtig ist, wird über eine Cross-Reference-Tabelle hergestellt, die auch noch eine prozentuelle Häufigkeitsangabe enthalten kann:
VOKABEL_AUTOR |
---|
>VOKABEL_ID |
>AUTOR_ID |
HAEUFIGKEIT |
Eine andere Vorgehensweise legt sich durch die Lateinische Wortkunde von Rüdiger Vischer nahe: ein Bitfeld als Attribut in der Vokabeltabelle. Die AUTOR_ID muß dann eine Potenz von zwei sein. Die Id eines Autors, für den ein Vokabel mit einer vorher festzulegenden Häufigkeit relevant ist wird einfach zu diesem Bitfeld hinzuaddiert. Angenommen, die Autorentabelle enthält u.a. die Tupel (4, 'Caesar'), (8, 'Sallust'), (16, 'Livius'), (32, 'Tacitus'), dann muß bei einem Vokabel, das für alle diese vier Autoren wichtig ist, 4+8+16+32 = 60 eingetragen werden, binär ist das: 111100. Der Nachteil dieses Verfahrens, ist, daß keine prozentuelle Häufigkeit angegeben werden kann, sondern nur die (u.U. problematische Entscheidung) wichtig vs. nicht wichtig möglich ist. Außerdem wird dieses Datenfeld für lebende Fremdsprachen nicht gebraucht.
Ein leidiges Problem bei Daten, die mit künstlichen numerischen Schlüsseln arbeiten, sind Dubletten. (3456, 'bellum', 'Krieg') und (8765, 'bellum', 'Krieg') bezeichnen dasselbe Vokabel. Die Grundform zu einem unique key zu machen, ist nicht möglich (s.o.). Die Datenbank selbst kann also Dubletten nicht verhindern. Vielmehr muß die Clientanwendung, mit der die Vokabel erfaßt werden, eine gleichlautende Grundform finden und den Benutzer fragen, ob dies nicht bereits das Vokabel ist, das einzugeben er gerade im Begriff ist.
Hier ein zusammenfassender Vorschlag für das Datenmodell.
|
|
||||||||||||
|
|
||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
Der Lernerfolg sollte in geeigneter Weise in der Datenbank protokolliert werden. Dazu wird eine Tabelle, die die Lernenden (ab jetzt Studenten genannt) enthält, benötigt:
STUDENT |
---|
>STUDENT_ID |
SPITZNAME |
E_MAIL_ADRESSE |
Zur Protokollierung wird eine von Sebastian Leitner (So lernt man lernen) dargestellte Methode verwendet. Jedes Vokabel enthält ein Statusfeld, das jedesmal, wenn der Student das Vokabel gewußt hat, inkrementiert wird, wenn er es nicht gewußt hat, wieder auf 0 gesetzt wird. Vokabel werden solange immer wieder dargeboten, bis das Statusfeld einen bestimmten Wert (z.B. 5) erreicht hat.
LERNERFOLG |
---|
>STUDENT_ID |
>VOKABEL_ID |
STATUS |
Wie kann festgestellt werden, ob ein Student ein Vokabel gewußt hat oder nicht? Der einzige vernünftige Weg, den ich sehe, ist, daß das der Student selbst beurteilen soll.
Autor: E-Mail-Kontakt)
Letzte Aktualisierung: 24. März 2017