8: param. DCGs
Erweiterung unserer DCG um Plurale
Bei der Erweiterung um Plurale
- steigt die Zahl der Regeln,
- werden Regeln schwerer lesbar,
- gehen Generalisierungen verloren.
DCG Regeln können mit zusätzlichen Parametern oder Merkmalen angereichert werden.
Ausweg: parametrisierte DCGs
- Zeile 2: NP und VP müssen im Numerus übereinstimmen.
- Zeile 3: der Numerus der NP wird bestimmt von dem Numerus von Det und N.
- Zeile 4: der Numerus der VP wird bestimmt vom Numerus des Verbs. Der Numerus der NP ist egal.
- Zeile 8: Synkretismus: Die Wortform „die“ wird im Singular und im Plural verwendet.
- Zeile 9: Im Plural kann der Artikel weggelassen werden.
Erweiterung unserer Grammatik um Genus
Kommen Maskuline und Neutra hinzu,
muss auf folgendes geachtet werden:
- die Genuskongruenz zwischen Artikel und Nomen („der Hund“ vs. „] das Hund“)
- die Wahl des korrekten Kasus für Subjekt und Objekt („der Hund jagt den Hund“ vs. „] der Hund jagt der Hund“)
Das Genus wird als zusätzlicher
Parameter modelliert:
parametrisierte DCGs: interne Repräsentation
wird zu:
wird zu:
Die Parameter werden intern als zusätzliche Argumente realisiert.
Prolog als Akzeptor, Generator, Parser
Ein Akzeptor ist eine Maschine, die entscheiden kann, ob ein String von einer Grammatik generiert wird.
Ein Generator ist eine Maschine, die zu einer gegebenen Grammatik, die von der Grammatik generierten Strings ausgeben kann.
Ein Parser ist eine Maschine, die zu einer gegebenen Grammatik und einem String angibt, ob der String von der Grammatik generiert wird und wenn ja, einen Ableitungsbaum zu dem String ausgibt.
Prolog ist ein Akzeptor und ein Generator, aber auch ein Parser?
Ableitungsbaum repräsentiert als komplexer Prologterm

Prolog als Parser
kontextsensitive Sprache a^n b^n c^n
Die kontextsensitive Sprache a^n b^n c^n wird von der Grammatik
S → , S → A B S C, B A → A B, A → a, B C → b C, B b → b b, C → c generiert.
Diese Sprache lässt sich nicht direkt als DCG schreiben. Wir können aber Parameter einsetzen, die das Zählen der a’s, b’s und c’s übernehmen.
Extraziele
Mithilfe von Extrazielen können wir auf die umständlichere successor-Notation für die Zähler verzichten (Nachteil: Generierung nicht mehr möglich).
Externe Repräsentation:
Interne Repräsentation:
Zusammenfassung
- Wir haben Parameter kennengelernt und diese eingesetzt,
- um grammatische Constraints wie z.B. Kongruenz zu erfassen,
- um mithilfe eines Zählers die kontextsensitive Sprache a^n b^n c^n modellieren.
- Wir haben gesehen, wie wir DCGs mit Extrazielen anreichern können. Dies ist möglich, da DCGs nur notational sugar sind.
- Mit Parametern und Extrazielen ist es möglich die Grenzen von kontextfreien Grammatiken zu verlassen.