Grundbegriffe
Wie in dem Kapitel über den Begriff der Sprache geklärt wird, sind formale Sprachen eine Art von künstlichen Sprachen und als solche den natürlichen Sprachen entgegengesetzt. Eine formale Sprache ist eine Sprache, deren Zeichen die Dimensionen der Semantik und Pragmatik fehlen, so daß ihre Grammatik vollkommen regelmäßig sein kann. Dies ist also keine Grammatik im Sinne der Grammatik natürlicher Sprachen, denn diese ist, wie im Kapitel über den Aufbau des Sprachsystems ausgeführt, ein signifikatives Subsystem. Eine formale Sprache kann jedoch, wie wir später sehen werden, zur Repräsentation der rein strukturellen Seite der Grammatik einer natürlichen Sprache dienen.
Formale Sprachen unterliegen normalerweise den Gesetzen der Mathematik; alternative Standards für formale Sprachen sind jedenfalls nicht etabliert. Ihre Regeln definieren daher mathematische Operationen über den Ausdrücken der beschriebenen Sprache. Eine solche formale Sprache heißt auch Kalkül, weil die Struktur der Ausdrücke und das Resultat von Operationen berechenbar ist. Beispiele für formale Sprachen, die in diesem Sinne Kalküle sind, sind Mengentheorie, Aussagenlogik, Prädikatenlogik, Boolesche Algebra sowie alle Programmiersprachen.
Programmiersprachen (wie Java, Prolog, C++ und Hunderte andere) sind eine anwendungsorientierte Art von formalen Sprachen. Nicht nur eignen sie sich, wenn auf Ausdrücke natürlicher Sprachen angewandt, zur Darstellung und Lösung linguistischer Probleme; sondern sie sind auch selbst ein Produkt angewandter Linguistik (und natürlich der Informatik [engl. computer science]). Der Einsatz einer Programmiersprache setzt voraus, daß es einen Algorithmus zur Lösung des betreffenden Problems gibt. Ein Algorithmus ist eine Verfahrensvorschrift, die aus einer endlichen Zahl von Anweisungen besteht und ein beliebiges Problem der relevanten Art mechanisch (normalerweise in einer endlichen Anzahl von Schritten) zu lösen erlaubt. Eine Programmiersprache ist eine formale Sprache, deren Ausdrücke in Operationen eines Computers umsetzbar sind. Das impliziert, daß sie auf elementare boolesche Operationen zurückführbar sind. Sonach ist ein Programm ein Algorithmus, der in einer Programmiersprache formuliert ist.
Grammatik als Algorithmus
Ein zentrales Gebiet der mathematischen Linguistik ist die Entwicklung formaler Grammatikmodelle. Deren Idee ist, daß eine Grammatik ein Algorithmus zur Erzeugung und/oder Analyse sprachlicher Ausdrücke ist. Die Hauptanwendungsgebiete dieses Forschungszweigs sind die folgenden:
- Präzise grammatische Beschreibung: Wie im Kapitel über Wissenschaft gesehen, strebt diese nach objektiver Erkenntnis. Dazu muß sie in expliziter Weise formuliert sein. Dieses Erfordernis kann man auch verstehen als das Erfordernis, daß ein Algorithmus die Konsistenz der Theorien muß überprüfen können. Die Formalisierung linguistischer Theorien ist also eine methodische Voraussetzung dafür, daß sie ihren Zweck erfüllen können.
- Automatische Verarbeitung natürlicher Sprache: In der Mensch-Maschine-Kommunikation muß der Computer sprachliche Äußerungen erzeugen und interpretieren können. Automatische Übersetzung ist eine Kombination der Interpretation eines Textes einer Sprache mit der Erzeugung eines Textes in einer anderen Sprache.
- Informationsverarbeitung: Information, die in irgendeiner Form repräsentiert ist, soll von Computern aufgefunden, ausgewertet, weiterverarbeitet und in aufbereiteter Form abgespeichert werden. Hierzu wird Künstliche Intelligenz benötigt. Datenbanken, in denen die Information auf strukturierte Weise abgespeichert wird, spielen eine wesentliche Rolle.
Aus der Verfolgung solcher Ziele resultiert eine enge Beziehung der mathematischen Linguistik mit linguistischer Datenverarbeitung und Sprachtechnologie.
Im folgenden werden einige Grundbegriffe formaler Grammatiken eingeführt. Ihnen allen ist die Voraussetzung gemeinsam, daß die Einheiten einer Sprache diskrete Symbole sind. Dann kann man nämlich die Algebra statt der Differentialrechnung anwenden. Ein Inventar von Symbolen nennt sich Vokabular (engl. alphabet). Die Symbole können für objektsprachliche Ausdrücke, z.B. Morpheme oder Wortformen, aber auch für Kategorien und Merkmalen von solchen stehen. Eine Kette (engl. string) ist eine geordnete Menge von Symbolen aus einem Vokabular. Eine elementare Operation über Symbolen ist die Konkatenation (Verkettung), die (syntagmatische) Verbindung von Symbolen zu einer Kette. Konkatenation ist (im Sinne der Algebra) assoziativ (ab + c = a + bc
) und nicht kommutativ (ab ≠ ba
).
In einem solchen Modell ist ein Ausdruck eine Kette, die bestimmten algebraischen Bedingungen genügt. Die wichtigste Art von Ausdruck ist der Satz. Eine Sprache läßt sich dann auffassen als eine unendliche Menge von Sätzen; das ist i.a. eine Teilmenge der logisch möglichen Ausdrücke. Eine Grammatik ist nunmehr ein Algorithmus, der eine Unterscheidung der Sätze, die zu einer Sprache gehören, von denen, die nicht dazugehören, erlaubt. Eine Grammatiktheorie ist – immer in der Welt der formalen Linguistik! – eine Algebra, in welcher Grammatiken formuliert werden.
Wie schon gesagt, braucht man Verfahren, welche sprachliche Äußerungen erzeugen, und solche, die sprachliche Äußerungen interpretieren. Da das zwei verschiedene Vorgänge sind, gibt es zwei Typen formaler Grammatiken:
- Eine Erzeugungsgrammatik ist eine Grammatik, die die Sätze einer Sprache “aufzählt”. Ihre Regeln sind “generativ” eben dadurch, daß sie sprachliche Ausdrücke erzeugen.
- Eine Erkennungsgrammatik ist eine Grammatik, die gegebene Ketten als Sätze einer bestimmten Sprache erkennt und interpretiert.
Letztere ist Gegenstand der nächsten beiden Abschnitte.