Logica e Linguaggio Naturale Definite Clause Grammar

Transcript

Logica e Linguaggio Naturale Definite Clause Grammar
Logica e Linguaggio Naturale
L’uso della logica nel trattamento del linguaggio naturale si articola in tre punti fondamentali:
- il linguaggio Prolog è stato utilizzato nella costruzione di analizzatori sintattici dando luogo alla
definizione di una classe specifica di grammatiche, detta Definite Clause Grammars (DCG)
- tra i diversi modi di rappresentare il significato di una frase, la logica costituisce il più
importante e, in ultima analisi, quello che sussume tutti gli altri
- gran parte della “pragmatica computazionale” si fonda sulla pianificazione, un metodo di
rappresentazione delle azioni che si può descrivere in termine di logiche del secondo ordine
(epistemica, temporale).
Definite Clause Grammar
Il linguaggio Prolog è un linguaggio tipicamente dichiarativo, fondato su una versione ridotta di
logica del primo ordine, detta, appunto, definite clauses (), Il principio fondamentale è che i dati ed
il programma hanno lo stesso formato e lo stesso funzionamento. La base del Prolog è costituito da
un data-base di dichiarazioni (fatti) come, ad es.:
madre(Giovanna,Piero).
madre(Giovanna,Luigi).
madre(Giulia,Giovanna).
madre(Anna, Luciano).
madre(Lucia,Giuseppe).
Questi fatti possono essere immessi come asserzioni (modalità consult). Se, poi, si formula
un’interrogazione come
?-madre(Giovanna,x).
il motore inferenziale del Prolog ricerca nel data-base la sequenza indicata. I termini che iniziano
con maiuscola indicano delle costanti, mentre quelli che iniziano con minuscola sono variabili, che
possono essere istanziate (unificate) con qualunque termine costante. Così la ricerca unifica madre
con madre, Giovanna con Giovanna, mentre la x funziona come una ricerca delle costanti che
possono istanziare lavariabile. Nel nostro caso avremo, quindi, x=Piero, x=Luigi.
Se, invece, richiederò
?-madre(x,Luciano).
avrò x = Anna.
La regola, espressa come un’implicazione,
nonna(x,y):-mamma(x,z),mamma(z,y).
significa che il predicato “x è nonna di y” se è vero che “x è mamma di z” e “z è mamma di y”.
L’interrogazione
?-nonna(Giulia,x).
attiva per prima cosa la ricerca del predicato specifico nel data-base. Poiché non è presente
esplicitamente, il motore inferenziale passa alla parte destra della regola e ricerca tutte le istanze di
mamma(x,z). Questo provoca l’attivazione di tutte le asserzioni del nostro data-base, per cui avremo
z = Piero (x = Giovanna), z = Luigi (x = Giovanna), z = Giovanna (x = Giulia), z = Luciano (x =
Anna), z = Giuseppe (x = Lucia). Si passa, poi, alla seconda parte della regola; la ricerca mostra che
l’unico predicato che si realizza è madre(Giovanna,y), per x = Giulia , y = Piero e y=Luigi;
possiamo, quindi, presentare la tabella di istanziazioni, e cioè
x = Giulia
y = Piero
y = Luigi
Le regole del Prolog possono essere utilizzate al posto di ordinarie regole Context Free, a patto che
se ne dia una lettura non generativa, ma dichiarativa. Diremo, quindi, non più
“Sintagma nominale si riscrive articolo nome”, ma “ è vero il predicato sintagma nominale di una
certa stringa, se è vero il predicato articolo della prima sottostringa e nome della seconda
sottostringa”. In termini Prolog diremo
sn(s0,s):-art(s0,s1),nome(s1,s).
dove s0, s1 ed s sono gli indicatori delle sottostringhe. Questo tipo di grammatiche, dovute a
Colmerauer e Pereira, sono dette Definite Clause Grammars, ed hanno avuto un notevole successo
negli anni 80 e 90, soprattutto in Europa.
--------------------------------------Bibliografia di riferimento:
F.C.N.Pereira & D.H.D.Warren, Definite clause grammars for language analysis - A survey of the
formalism and a comparison with augmented transition networks., in Artificial Intelligence, 13, 3
1980, pp. 231-278.
--------------------------------------
Forma logica della frase
Il primo obiettivo che l’interpretazione semantica mira a soddisfare è il reperimento
dell'informazione testuale o documentaria seguendo le parole che la portano; a questo scopo occorre
assegnare ad ogni parola isolata una rappresentazione del suo significato e istituire relazioni tra le
parole stesse (sinonimia, iperonimia, meronimia, ecc.). Le relazioni lessicali tra le singole parole
sono, tradizionalmente, espresse secondo i formalismi proposti dagli psicologi cognitivi, come le
reti semantiche i frames o le semplici relazioni lessicali.
Per fornire l’interpretazione semantica di una frase, invece, occorre disporre di una descrizione del
significato delle singole parole tale che si possa combinare con le parole circonvicine in un
significato composito, secondo la gerarchia dei sintagmi.
La logica e' la disciplina che fornisce la base piu' credibile alla rappresentazione del significato di
una frase, soprattutto considerando che ci fornisce lo strumento automatico per ragionare sul
contenuto delle frasi prima di avviarle ad una qualche forma di esecuzione. Inoltre, la logica
costituisce uno strumento adeguato anche per la rappresentazione delle relazioni tra parole.
La logica in quanto tale ha per obiettivo la trasduzione delle frasi del linguaggio in formule che
possono essere trattate da un sistema di ragionamento e per le quali è possibile calcolare una
semantica, in termini di un valore di verità (vero/falso). Nel campo della linguistica
computazionale, la verita' o falsita' della formula non e' rilevante; acquisisce maggiore rilievo la
rappresentazione in termini logici solo per lo schema formale.
Una frase introduce un certo numero di oggetti, tra i quali stabilisce una relazione o dei quali
predica qualcosa. In termini di rappresentazione, il verbo funge da predicato e i suoi complementi
sono gli argomenti. Dunque, un prerequisito essenziale per la costruzione della struttura predicativa
di una frase e' la definizione della cosiddetta reggenza stretta del verbo, cioè quanti e quali elementi
sono suoi argomenti obbligatori o inerenti (agente, oggetto, ricevente ecc.). La frase
Giovanni regala a Maria una penna
può essere tradotta come
regala (Giovanni, penna, Maria)
che corrisponde alla struttura astratta
regala (x, y, z) con x = sogg., y = ogg., z = ogg. indiretto
I tipi di oggetti che entrano a far parte di questa rappresentazione sono due costanti, cioè elementi
unici e non generici, (Giovanni e Maria) ed un elemento generico, cioè un’istanza dell’insieme delle
"penne". In termini di relazioni lessicali, questo significa che le costanti possono essere connesse
solo con se stesse, mentre la variabile riferita a "penna" è in relazione di dipendenza gerarchica
rispetto al concetto generico "penna". Questa relazione, espressa anche in termini di strutture di
conoscenza equivale , a sua volta, ad una predicazione del tipo
penna (y)
che si interpreta "quell’oggetto x di cui si può predicare che è una penna". Un modo alternativo di
rappresentazione è
y:penna
che si interpreta "quell’oggetto y di tipo penna". La rappresentazione della frase può divenire, così
regala (Giovanni, y, Maria)
penna (y)
Un certo ordine in questo tipo di rappresentazione è introdotto dalla Discourse Representation
Theory di H.Kamp. In DRT, l’esempio apparirebbe
Naturalmente il nostro esempio non esaurisce tutte le possibilità di espressione. Se, ad esempio, si
volesse rappresentare la frase:
Tutti gli amici regalarono una penna a Maria
secondo i criteri introdotti precedentemente, avremmo
regala (x, y, Maria)
amico (x)
penna (y)
dove, però, si perde l'informazione che gli amici è plurale. Assegnando ad amico la variabile x, la
corretta interpretazione è che tutti i valori di x rispondenti alla caratteristica di essere amici di Maria
soddisfano al predicato "regalare una penna a Maria". Ci troviamo di fronte ad un’espressione che
enumera le istanze di una variabile, cioè le quantifica. Il linguaggio naturale conosce molte
sfumature (un po', pochi, qualche, ecc.), mentre la logica conosce solamente "tutti" (∀ per ogni) e
"uno" ∃ (esiste almeno uno).
Alla luce di questo, la frase precedente diventa:
x: amico (x)
regala (x, y, Maria)
penna (y)
da intendersi "per tutte le istanze x essere amico implica che regala a Maria un oggetto di cui posso
predicare che è una penna".
Una frase che, come quella introdotta sopra, sia riducibile ad una variabile quantificata associata ad
una predicazione, si dice che è nella "portata" del quantificatore. Se una frase contiene più di un
quantificatore, si producono dei fenomeni di ambiguità di "portata". Ad esempio, la frase
Ogni uomo ama una donna
può le seguenti due rappresentazioni
∀x | uomo(x)⊃ ∃y | donna(y); ama(x,y)
che formalizza la lettura per cui "ad ogni uomo corrisponde una donna che lui ama", oppure
∃y | donna(y)⊃ ∀x | uomo(x); ama(x, y)
Con questo si esaurisce la struttura principale della frase. Il linguaggio naturale, però, dispone di
una maggior ricchezza di espressione, che pone dei problemi di rappresentazione logica, talora non
facilmente risolvibili. Se, ad esempio, si ha la frase
Giovanni regala a Maria una penna rossa
dovremo completare la rappresentazione data sopra con un riferimento al colore della penna, ciò
che può essere ottenuto in due modi, o considerando "rosso" un attributo qualunque di penna, per
cui avrò
..... penna(y)
rosso(y)
considerando "rosso" come il valore di proprietà definita "colore" dell’oggetto penna, come segue
..... penna(y)
colore(y, rosso)
I sintagmi preposizionali costituiscono, anch’essi, un problema, quando oppure non sono retti
direttamente dal verbo. Una soluzione piuttosto frequente consiste nel considerare la preposizione
come un predicato i cui argomenti sono il sintagma nominale dominante e quello che costituisce il
PP stesso, come segue
la penna di Maria --> penna(y)
di (y, Maria)
Se, poi, la frase includesse un riferimento temporale, come in
Ieri Giovanni regalò una penna a Maria
la rappresentazione sarebbe complicata dal fatto che l’indice temporale debba essere indicato in
qualche modo. La soluzione più spesso praticata è quella di considerare anche il verbo, cioè il
predicato, come un’istanza di una qualche azione o evento, cui riferire il tempo o qualunque altra
determinazione riferita nella frase ad esso, ottenendo, così
regala (Giovanni, y, Maria, e)
penna (y)
ieri (e)
Altri tipi di elementi sarebbero trattabili solo con la logica del secondo ordine, impossibile pero' da
manipolare in computazione.
-----------------------------------------------------------------------Un trattato completo di logica è
D.Gabbay, F.Guenther(eds.), Handbook of Philosophical Logic, Reidel, 1983 mentre per quanto concerne l'applicazione della logica al trattamento del linguaggio naturale sono
rilevanti i due volumi
L.T.F.Gamut, Logic, Language, and Meaning, Chicago University Press, 1991 –
H.Kamp & U. Reyle, From Discourse to Logic, Kluwer, 1993.
------------------------------------------------------------------------
Logica e rappresentazione della conoscenza
La rappresentazione della conoscenza è una disciplina che trae origine da alcuni problemi emersi
nell’ambito della linguistica computazionale e ben evidenziati da T.Winograd. Successivamente è
divenuta una tematica fondamentale connessa con l’adeguatezza espressiva dei linguaggi necessari
a rappresentare una qualunque forma di conoscenza nell’ambito di sistemi informatici come i
sistemi esperti e i sistemi di supporto alla decisione.
L’interpretazione semantica di una frase può assumere due forme:
- trasduzione diretta dal linguaggio naturale ad un’espressione di un qualunque linguaggio
formale che ne permetta l’esecuzione immediata o mediata
- integrazione del contenuto della frase, espresso in un linguaggio formale, nelle conoscenze
generali dell’interlocutore/sistema informatico, espresse nello stesso linguaggio.
Questo secondo approccio ha radici psicologiche e cognitive e ha dato luogo a diverse forme di
rappresentazione.
RETI SEMANTICHE
Le reti semantiche sono state introdotte da Ross Quillian nel …..con l’intento di rappresentare
gerarchie concettuali. Termini come “casa, catapecchia, palazzo, villa…” possono essere ricondotte
tutte ad un iperonimo “edificio abitativo”, in forma grafica
Edificio
abitativo
IS_A
IS_A
casa
palazzo
catapecchia
villa
Il connettore IS_A significa “is a (kind of)” ed indica che il concetto sottostante indica un
sottoinsieme del concetto sovrastante. Secondo le teorie cognitive, questo modello realizza il
modello di economia della memoria (semantica) umana, per cui le proprietà comuni a tutti gli
iponimi vengono memorizzate in corrispondenza dall’iperonimo. I connettori IS_A veicolano una
relazione di eredità, per cui gli iponimi ereditano le proprietà dell’iperonimo.
Se si introduce, a questo punto, il sintagma
la mia casa
la casa
questo identificherà un’istanza del concetto casa, per cui potrò rappresentarlo modificando il
diagramma come segue
Edificio
abitativo
IS_A
IS_A
casa
catapecchia
palazzo
villa
istanza
X1
che indica che si è introdotta un’istanza x1 del concetto di “casa”.
FRAME
Il frame è un linguaggio di rappresentazione ideato da Minsky …. per render conto dei processi di
apprendimento e per ovviare a certi inconvenienti delle reti semantiche. Il principale problema delle
reti semantiche è la linea di eredità delle proprietà IS_A non può, così come è definita, render conto
di eventuali deviazioni di certi oggetti dalle loro tipicità. Il caso più rappresentativo è quello del
“pinguino” che, pur essendo un uccello, non vola. Se abbiamo definito il volo come proprietà
principale dell’”essere uccello”, il pinguino dovrebbe ereditarla, cessando quindi di essere
caratterizzato dal non volare; in alternativa non definiremo il volo come caratteristica degli uccelli,
mancando così di compiere un’importante generalizzazione.
I frame rappresentano concetti in termini di loro proprietà, espresse come liste associate al singolo
nome di concetto. Ogni elemento della lista è detto slot e può contenere:
- il nome del concetto che soddisfa quella proprietà; ad esempio, la “locomozione” tipica degli
uccelli è il “volo”
- l’iperonimo del concetto stesso; ad esempio, l’iperonimo di “uccello” è “animale”
- una procedura di soddisfazione; ad esempio, “se non è il concetto default (volo), adotta il
concetto specifico della categoria (nuoto per il pinguino)”
- una procedura di apprendimento; se non c’è specificazione di proprietà, adotta quella delle
istanze.
Il nostro esempio risulterebbe descritto come segue:
CONCEPT_NAME: edificio_abitativo
HAS_PART: pareti, tetto
HAS_GOAL: abitare (if_added: new)
………
che significa che un edificio abitativo ha delle pareti ed un tetto, serve per abitarci, ma se emerge
qualche destinazione nuova (if_added), accettarla tra le proprietà come nuova. Quindi avremo
CONCEPT_NAME: casa
SUPERSET: edificio_abitativo
che basta per poter asserire che una casa ha un tetto, delle pareti e serve per abitarci.
Il processo di comprensione della frase come istanziazione non cambia rispetto alle reti semantiche.
Avremo quindi “la casa……”
INSTANCE_NAME : x1
ELEMENT_OF: casa
L’interpretazione di una frase in termini di frame è facilitata dal fatto che il quadro della reggenza
verbale (vedi Sintassi nel corso di Fondamenti di Linguistica) si rappresenta quasi direttamente in
termini di frame.
LINGUAGGI DI RAPPRESENTAZIONE DELLA CONOSCENZA
Le capacità espressive acquisite con l’uso delle reti semantiche e con i frame hanno trovato una loro
sistemazione organica nelle teorie della rappresentazione della conoscenza e, in particolare, nei
linguaggi cosiddetti “ibridi”. Il principio basilare è che la nostra conoscenza si articola in due grandi
categorie, conoscenze terminologiche e conoscenze asserzionali. Le prime si riferiscono alle
conoscenze generiche sul mondo, mentre le seconde si riferiscono all’interpretazione delle singole
asserzioni (frasi). Sono conoscenze generiche, o terminologiche, l’affermazione del fatto che gli
uccelli hanno penne, due zampe, ali, che in genere volano, a meno che non si tratti di pinguini, che,
invece, camminano e nuotano. Sono conoscenze asserzionali l’affermazione del fatto che Twitty è
un uccellino, che sa volare ma è spesso insidiato da gatto Silvestro.
La base di rappresentazione di tutti questi fatti è dato dalla logica del primo ordine, mentre i
meccanismi di ragionamento sono diversi per la conoscenza terminologica e quella asserzionale.
Così possiamo rappresentare il grafo del nostro esempio come
isa(casa,edifico_abitativo)
isa(villa,edificio_abiativo)
….
e inoltre
has_part(uccello, ali)
has_part(uccello,zampe)
has_part(X,ali) vola(X) “avere le ali implica volare” (il che non sempre è vero)
Il fatto “Twitty è un uccellino che viene sempre inseguito da un gatto che si chiama Silvestro”, si
può tradurre come
instance (uccello, Twitty)
insegue(twitty, silvestro)
gatto(silvestro)
comporta da un lato l’acquisizione di due fatti asserzionali, ma anche la capacità di derivare
terminologicamente che Twitty ha ali e zampe.
Dunque un sistema di questo tipo richiede due diversi motori inferenziali, uno di tipo terminologico,
capace di derivare fatti ignoti per istanze che vengono introdotte asserzionalmente, ed uno di tipo
asserzionale.
L’inferenza di tipo asserzionale permette di rispondere a domande del tipo “chi insegue Twitty?”. In
questo caso si procede all’incirca come nel caso del Prolog. Infatti la domanda posta può essere
tradotta in una forma Prolog
?-insegue(twitty,X).
Che provoca una ricerca nel data-base di una formula che corrisponda. Nel nostro caso la formula è
insegue(twitty,silvestro), che assegna ad X il valore =silvestro.
Se però chiedo “Può volare via Twitty?”, la domanda può essere resa come
?- vola(twitty).
La cui ricerca nel data-base provoca un fallimento (il predicato non è presente) e un passaggio alla
parte terminologica, sapendo che Twitty è un uccellino (instance(uccello, twitty)). A questo punto si
ricercano le proprietà di uccello, cioè che ha ali e zampe. Posso quindi costruire l’asserzione
has_part(twitty, ali) (X=Twitty), da cui si deriva, per l’implicazione terminologica, vola(twitty)
(sempre X = Twitty).
I linguaggi di rappresentazione della conoscenza sono stati utilizzati all’inizio per rappresentare la
semantica del linguaggio naturale, ma oggi hanno una più vasta utilizzazione nei sistemi di
ragionamento automatico e supporto alle decisioni.