Hinweise zu Übung 13
Zur Übung 13 gibt es 5 Dateien:
- lexicon.lisp, ein Beispiel-ADT zum
Lexikon,
- lexicon.txt, ein Beispiellexikonfile,
(Achtung: Format beachten!)
- grammar.lisp, ein Beispiel-ADT zur Grammatik,
- grammar.txt, ein Beispielgrammatikfile, (Achtung:
Format beachten!)
- parser.lisp, Code zum Parser, bitte die
Kommentare am Anfang lesen!
;;; Der Aufruf des Parsers erfolgt mit:
;;;
;;; (is-sentece '("Das" "Boot" "sinkt") meine-grammatik mein-lexikon)
;;;
;;; Dabei m"ussen meine-grammatik und mein-lexikon an eine Grammatik, bzw. ein
;;; Lexikon gebunden sein, dass den ADTs aus "Ubung 11 und 12 entspricht:
;;;
;;; Die folgenden Funktionen werden als Interface zum Lexikon und zur Grammatik
;;; erwartet:
;;;
;;; (defun lhs (rule) ..) liefert ein Symobl: die linke Seite der Regel
;;; (defun rhs (rule) ..) liefert eine Liste von Symbolen: die rechte Seite der Regel
;;; (defun find-all-rules-with-first-rhs (grammatik kategorie) ..)
;;; liefert eine Liste von Regeln, die Kategorie als erstes auf
;;; der rechten Seite tragen
;;; (defun find-in-lexicon (lexikon wort-string) ..)
;;; liefert den Lexikoneintrag, der laut lexicon dem
;;; wort-string zugeordnet ist.
;;; (defun lex-entry-cat (lex-entry) ..) liefert zu einem Lexikoneintrag die Kategorie
;;;
;;; Beispiel:
;;;
;;; USER(354): (is-sentence '("Die" "alte" "Frau" "liest" "ein" "Buch" "in" "dem" "Bus") *grammatik* *lexikon*)
;;; ((S (NP (DET) (ADJ) (N))
;;; (VP (V) (NP (DET) (N (N) (PP (PREP) (NP (DET) (N)))))))
;;; (S (NP (DET) (ADJ) (N))
;;; (VP (V) (NP (DET) (N)) (PP (PREP) (NP (DET) (N))))))
;;;
;;; eine Liste mit zwei Ableitungsb"aumen.
Tilman Becker