Computerlinguistik II: DCG (definite clause grammars)
Differenzlistengrammatik mit syntaktischen Merkmalen
In einer DCG ist es möglich, zusätzlich Argumente in die Aufrufe einzufügen. Die Regeln:
- np(Kasus) --> art(Kasus,Genus), n(Kasus,Genus).
- n(nom,mask) --> [astronom].
werden in folgende Prologregel (mit Differenzlisten) übersetzt:
- np(Kasus,L1,L3) :- art(Kasus,Genus,L1,L2), n(Kasus,Genus,L2,L3).
- n(nom,mask,[herschel|R],R).
Nun können wir folgende neue Prologgrammatik schreiben, um Kasus und Genus der NPn korrekt zu analysieren:
%Regeln
s --> np(nom), vp.
np(Kasus) --> art(Kasus,Genus), n(Kasus,Genus).
np(Kasus) --> en(Kasus).
vp --> vt, np(akk).
%lexikonregeln
vt --> [entdeckt].
art(nom,mask) --> [der].
art(akk,mask) --> [den].
art(nom,fem) --> [die].
art(akk,fem) --> [die].
art(nom,neut) --> [das].
art(akk,neut) --> [das].
n(nom,mask) --> [astronom].
n(akk,mask) --> [astronomen].
n(nom,mask) --> [planet].
n(akk,mask) --> [planeten].
n(nom,neut) --> [gestirn].
n(akk,neut) --> [gestirn].
n(nom,fem) --> [sonne].
n(akk,fem) --> [sonne].
en(_) --> [uranus]. %Alle Kasusformen gleich: anonyme Variable
en(nom) --> [herschel].
en(akk) --> [herschel].
en(gen) --> [herschels]. %wird noch nicht gebraucht
Kurs-Startseite
Übersicht Begleitmaterial