Grammatica a clausole definite

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)

 

 
Estensioni : Aumenti : posso aggiungere degli argomenti ai non terminali, che mi aiutino in una futura analisi semantica Es : NP diventa NP (S) (S è la stringa)

NP (sem) diventa NP (sem, S) (S è la stringa di semantica sem)
 

Variabili : posso introdurre delle variabili al lato destro di una regola per rappresentare un simbolo della stringa di input senza specificare quale.   Test logici : posso introdurre un test al lato destro della regola (racchiuso tra parentesi graffe).  

 

Ulteriori problemi nell'uso di una grammatica sono i diversi casi che possono assumere alcune parti del discorso e le concordanze soggetto - verbo. Per non parlare dei particolari costrutti che possono essere o non essere retti dai singoli verbi.

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)

Torna a Analisi sintattica