Hi David,
Ist es generell möglich mit Php eine Grammatikprüfung zu programmieren, die dann meine Seite auf Grammatikfehler überprüfen soll?
Dein Problem ist nicht von einer konkreten Programmiersprache abhängig (da ist alles mehr oder weniger Turing-berechenbar), sondern vielmehr von den Eigenschaften der zu prüfenden Sprache (in Deinem Fall Latein).
Um eine Grammatik-Prüfung zu realisieren, brauchst Du ein Konzept, was "legal" und was "illegal" sein soll - in Deinem Fall u. a. die Satzbauregeln.
Das bedeutet einerseits, daß Du ggf. damit leben mußt, daß Deine Ziel-Sprache überladene Token hat (Worte, die in bestimmten Kontexten unterschiedliche Funktionen haben - nicht nur unterschiedliche Bedeutungen! Du wirst im Allgemeinen nicht aus jedem Wort eindeutig die Wortklasse ableiten können, obwohl Latein vermutlich systematischer funktioniert als z. B. Deutsch) und andererseits, daß Du im Falle eines Fehlers "raten" mußt, gegen welche von mehreren alternativen Regeln der konkrete Satz gerate zu verstoßen "versucht".
Gerade letzteres ist ein Hauptproblem einer Grammatikprüfung von Übersetzern wie beispielsweise Perl oder PHP selbst - denn es sind ja nicht nur die "Worte", die dort verkehrt sein können, sondern insbesondere die "Sätze" (also beispielsweise eine falsche Klammer-Verschachtelung).
Und im Falle eines Fehlers merkst Du diesen Fehler zwar ziemlich präzise an genau einer Stelle - aber die Ursache kann sehr wohl an einer ganz anderen Stelle liegen. (Ich bewundere in dieser Hinsicht den Perl-Interpreter, der mir im Falle eines 20 Zeilen weiter oben vergessenen String-Begrenzers mit erstaunlicher Sicherheit den Tip gibt, wo ich als erstes nachsehen sollte.)
Bereite Dich seelisch darauf vor, mit diesem Problem die nächsten Jahre Deines Lebens zu verbringen.
Falls Du eine leichtere Aufgabe auf dem Weg zu Deinem Ziel "zur Übung" bearbeiten möchtest, empfehle ich Dir, zu versuchen, eine Grammatik-Prüfung für Esperanto zu bauen - mein laienhaftes Verständnis dieser Sprache geht in die Richtung, daß genau so etwas dort wesentlich einfacher lösbar sein sollte, weil diese Sprache mit dem Ziel entworfen wurde, systematisch zu funktionieren und nicht eine Ansammlung von historisch gewachsenen Sonderfällen zu sein wie alle "lebenden" Sprachen.
Viele Grüße
Michael
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.