------------------- DCG mit Baumausgabe ----- H.Leiss, CIS, 19.5.2009 1. Laden des Parsers (Übersetzt die DCG in Prolog mit Baumausgabe) ?- ['parser.pl']. bzw. ['DCGparser/parser.pl'] 2. Laden der Grammatik, z.B. ?- ['testgrammatik.pl'] 3. Beispielsitzung: (Prolog im Verzeichnis DCGparser gestartet): ?- [parser,testgrammatik]. % Dateien laden ?- parse. Beende die Eingabe mit |: der junge Mann fällt den alten Baum. Aufruf: s(praes, _, [der, junge, 'Mann', fällt, den, alten, 'Baum'], []). Baum: s(praes) np(nom) art(nom) der a(nom) junge n([mask], nom) 'Mann' tv([nom, akk], praes) fällt np(akk) art(akk) den a(akk) alten n([mask], akk) 'Baum' Für eine Ausgabe mit graphischer Baumdarstellung (mit /usr/bin/dot): ?- parsed. % für: 'parse with displaying of trees' Beende die Eingabe mit |: der junge Mann fällt den alten Baum. 4. Es gibt noch ein paar weitere Prädikate (aus tokenizer.mini.pl), z.B. ?- tokenize("Was sind, laut Programm von Dr. Analiese, Brehm's Tiere?", Token). Token = ['Was', sind, laut, 'Programm', von, 'Dr.', 'Analiese', 'Brehm\'s', 'Tiere?'] ?- satzende. Beende die Eingabe mit |: Ist am 31. 12. oder hier ein Satzende? Ach nein! Erst hier. Eingabe: 'Ist am 31. 12. oder hier ein Satzende? Ach nein! Erst hier' Atomliste: ['Ist', am, '31.', '12.', oder, hier, ein, 'Satzende?', 'Ach', 'nein!', 'Erst', hier] Sie werden benutzt, um die Zerlegung der Benutzereingabe im Echo anzuzeigen. 5. 11/2015: Damit eine Testdatei auch Zeilen wie das ist ein Satz. % Kommentar: aber ein kurzer haben kann, wird bei ". " jetzt -statt 4.- ein Satzende angenommen! 6. 11/2016: Mit parsed(+Datei) werden die Beispiele aus der Datei analysiert und alle Syntaxbäume in syntaxbaeume.tmp.dot|ps geschrieben und graphisch angezeigt. parse(+Datei) zeigt die Bäume als formatierten Text. ------------------------------- Ende -----------------------------------------