Metodo migliore del precedente poiché permette di affrontare in qualche modo il problema di ricavare il significato di una stringa e la sua dipendenza dal contesto.
Idea di base:
Tresformo i non terminali in predicati veri per stringhe che sono sintagmi di quella categoria cioè scrivo la grammatica in formule logiche. Poiché l'inferenza logica è computazionalmente costosa limito questo grammatica e ottengo la cosiddetta DCG (Definite Clause Grammar). La limitazione consiste nel fatto che ogni formula deve essere del tipo A1^...^An ® C1 qualora sia espressa come implicazione
Vantaggi : So trattare bene la logica del 1° ordine
Svantaggi : Prolissità
Soluzioni : Cerco un'integrazione tra BNF e DCG
Regole di integrazione:
X ® YZ Æ
Y(s1) Ù Z (s2)
Þ X (concatena (s1,s2))
X ® parola Æ X (["parola"]) X ® Y½ Z½ … Æ Y' (s) Ú Z' (s) Ú … Þ X (s) |
NP (sem) diventa NP (sem, S) (S è la stringa di semantica
sem)
Soluzione : Si possono aumentare le regole esistenti nella grammatica introducendo i casi (es: nominativo ed accusativo), che specificano il ruolo svolto da un sostantivo o pronome, e introducendo variabili dove il sostantivo o pronome può assumere un ruolo qualsiasi. Per i costrutti dei verbi si introducono liste di sottocategorizzazione ovvero liste di categorie di complementi accettati dal verbo. Le liste di sottocategorizzazione sono introdotte nella grammatica come i casi, cioè introducendo argomenti che rappresentano la lista di sottocategorizzazione, e regole ad hoc.
Es: VP (sottoc.) ® VP (NP/sottoc) NP (Accusativo)
Significa : un VP può essere costruito come come VP più NP in caso accusativo ammesso che la lista si sottocategorizzazione inizi con un NP
Da notare che devo modificare la regola iniziale, se voglio usare le liste di sottocategorizzazione:
S ® NP (Nomin) VP ([])
cioè la frase ha senso se ciò che c'è nella struttura della frase, oltre la parte NP (che può essere definita anche in altri modi), è un VP che ha senso così com'è e racchiude tutti gli eventuali complementi interni ed esterni ( che specificherò poi introducendo liste di sottocategorizzazione o complementi esterni)