Corso di Laurea in
INFORMATICA
INTELLIGENZA
ARTIFICIALE
(CdL di II Livello)
MODULO
Unificazione e Pattern Matching
Dipartimento di Informatica - Università di Bari
UNIFICAZIONE E PATTERN
MATCHING
In Intelligenza Artificiale (A.I.), la maggior
parte dei sistemi basati su conoscenza
supporta un’operazione di base:
Il confronto di descrizioni (simboliche)
(Unificazione o Matching)
“ L’unificazione è per l’A.I. (e per il calcolo
simbolico) quello che l’addizione e la
moltiplicazione rappresentano per il calcolo
numerico” (Siekmann, 1990)
UNIFICAZIONE E PATTERN
MATCHING
Ad esempio, è stato valutato che in molti sistemi di
produzione il 90% del tempo di calcolo complessivo
è dedicato ad operazioni di Matching.
L’unificazione è parte essenziale di operazioni più
complesse, quali la risoluzione, la ricerca, il
controllo e costituisce il problema fondamentale per
i sistemi che effettuano inferenze (sistemi esperti,
dimostratori automatici di teoremi, risolutori di
problemi, sistemi di apprendimento, sistemi di
produzioni, … ).
UNIFICAZIONE E PATTERN
MATCHING
Il matching è un problema trasversale,
comune a molte branche dell’A.I.:
programmazione logica, database intelligenti,
elaborazione del linguaggio naturale,
apprendimento automatico, …
Di conseguenza, la ricerca di tecniche
efficienti di matching riveste tuttora
un’importanza fondamentale per tutti coloro
che operano nel campo dell’A.I.
UNIFICAZIONE E PATTERN
MATCHING
Il problema è stato formulato, affrontato e
studiato da diversi ricercatori in modi
differenti.
Oggi sulla maggior parte delle macchine
dedicate all’A.I., l’unificazione è realizzata da
hardware specializzato o per mezzo di un set
di istruzioni veloci (CPU nei computer della V
generazione; macchina astratta di Warren: le
descrizioni da confrontare sono compilate
nel set di istruzioni della macchina).
UNIFICAZIONE E PATTERN
MATCHING
TEORIA DELL’UNIFICAZIONE
L’unificazione è il procedimento attraverso
cui si confrontano 2 o più strutture per
scoprire le loro somiglianze o differenze. Le
strutture possono essere espresse in diversi
formalismi: logica proposizionale, vettori di
caratteristiche, regole, strutture frame-like,
FOPL, grafi, reti semantiche, …
Focalizzeremo la nostra attenzione su:
formule ben formate (fbf) in FOL
UNIFICAZIONE E PATTERN
MATCHING
Breve richiamo di Logica (di ordine 1)
Def. 1 TERMINE
<termine> ::= <costante> | <variabile>|
<funzione n-aria>
( <termine>,…,<termine> )
n
UNIFICAZIONE E PATTERN
MATCHING
Def. 2 Formula Atomica (o Atomo)
<formula atomica> ::= <predicato n-ario>
( <termine>,…,<termine> )
n
Unificazione
• La risoluzione si applica a clausole di base
(ground)
– Problema: applicare la risoluzione a clausole
contenenti variabili
• Non è sempre facile determinare se due atomi non possono
essere veri contemporaneamente
Esempio: P(x,f(a)) v P(x, f(y)) v Q(y) e ¬P(z, f(a)) v ¬Q(z)
– Soluzione: Bisogna cercare delle sostituzioni di
termini alle variabili presenti nelle clausole genitore in
modo tale che queste contengano atomi
complementari
UNIFICAZIONE E PATTERN
MATCHING
Il problema dell’unificazione:
“dati 2 termini, s e t, esistono dei termini
che possono essere sostituiti alle variabili
che compaiono in s ed in t, in modo che i
termini così ottenuti siano identici?”
UNIFICAZIONE E PATTERN
MATCHING
IN MODO PIU’ RIGOROSO:
Siano:
FUØ = { a,b,c, … }
un insieme di costanti;
VAR = { x1,x2,x3,…}
un insieme di variabili;
n
FU = { f,g,h,…}, n=1,2,… un insieme di funzioni ad n-posti
Indichiamo con t1,t2,t3,… i termini costruiti a
partire dai precedenti insiemi, secondo la def. di
termine data in precedenza.
TERM={ t1,t2,t3,…}
UNIFICAZIONE E PATTERN
MATCHING
Def.3 SOSTITUZIONE
Una sostituzione σ è una funzione che ad ogni
variabile associa un termine.
σ : VAR → TERM
Si indica anche come:
σ= { (tj/xi) | xi ∈ VAR, tj ∈ TERM }
o ancora:
σ= { xi ← tj | xi ∈ VAR, tj ∈ TERM }
UNIFICAZIONE E PATTERN
MATCHING
Per comodità, si definiscono anche i
prolungamenti di σ su TERM e
sull’insieme delle formule ben formate
del linguaggio (che, d’ora in poi,
indicheremo con FBF).
Continueremo ad indicare queste
funzioni con σ.
UNIFICAZIONE E PATTERN
MATCHING
Quando, ad esempio, σ viene applicata ad
un termine t, in cui compaiono le variabili
xi, essa produce un nuovo termine, σ(t),
ottenuto sostituendo tutte le occorrenze
delle variabili xi con i termini tj
corrispondenti. Oltre che con σ(t),
un’istanza di una sostituzione viene
indicata con: tσ.
UNIFICAZIONE E PATTERN
MATCHING
ATTENZIONE
Non è lecito sostituire una variabile con
un termine in cui compare quella
stessa variabile! (a meno che
permettiamo TERMINI INFINITI)
UNIFICAZIONE E PATTERN
MATCHING
ESEMPIO di Sostituzione (lecita)
Sia t = f (g(a,b), x, y) un termine del
linguaggio e σ={ g(a)/x, c/y, y/z } una
sostituzione.
Dalle definizioni date, si ha:
σ(t) = f(g(a,b),g(a),c).
UNIFICAZIONE E PATTERN
MATCHING
DEF.4 Sostituzione Composta
Date due sostituzioni, δ e σ, si chiama
sostituzione composta da δ e σ, e si denota
con (σ ° δ), la sostituzione ottenuta da δ e σ
come segue:
• Modificando δ in modo che ai suoi termini
sia applicata la sostituzione σ;
• Aggiungendo a δ le coppie
(termine/variabile) in σ che hanno le
variabili non presenti tra le variabili in δ.
UNIFICAZIONE E PATTERN
MATCHING
TEOREMA1
Fissato arbitrariamente un termine t e due
sostituzioni σ e δ, risulta:
(σ ° δ) (t) = σ(δ(t))
Dimostrazione
Per esercizio.
UNIFICAZIONE E PATTERN
MATCHING
ESEMPIO Sia
t = f(x,y)
δ = {g(y,z)/x, a/y}
σ={b/y, c/z}
Dalle regole (1) e (2) di formulazione di una sostituzione
composta, si ha:
( σ ° δ ) = { g(b,c)/x, a/y, c/z }
È facile verificare che:
( σ ° δ ) (t) = σ(δ(t))
Si ha infatti :
(σ ° δ ) (t) = f(g(b,c),a)
σ(δ(t)) = σ( f(g(y,z),a) ) = f(g(b,c),a)
Mentre:
δ(σ(t)) = δ(f(x,b)) = f(g(y,z),b) ≠ f(g(b,c),a) = σ(δ(t))
UNIFICAZIONE E PATTERN
MATCHING
TEOREMA 2 L’operazione di
composizione delle sostituzioni è
associativa, ma non è commutativa,
ossia fissate tre sostituzioni,
τ , δ , σ , risulta :
(( σ ° δ ) ° τ ) = ( σ ° ( δ ° τ ))
(σ ° δ ) ≠ (δ ° σ )
UNIFICAZIONE E PATTERN
MATCHING
DEF.5 TERMINI UNIFICABILI –
UNIFICATORE – UNIFICAZIONE
Due termini, s e t, si dicono unificabili se
esiste una sostituzione σ tale che :
σ(s) = σ(t)
In tal caso, si dice che σ è un unificatore
di s e t e σ(s) (o σ(t)) è un’unificazione
di s e t.
UNIFICAZIONE E PATTERN
MATCHING
ESEMPIO 2 Dati: s = f (g(y,b), x)
t = f(x, g(a,b))
ci chiediamo se s e t sono unificabili.
σ ={ g(a,b)/x, a/y } è un unificatore di s e t;
si ha infatti:
σ(s) = f( g(a,b), g(a,b) ) = σ(t)
E dunque s e t sono unificabili.
UNIFICAZIONE E PATTERN
MATCHING
ESEMPIO 3 Dati: s = f(x,g(y))
t = f(x,g(b))
s e t sono unificabili e σ = { b/y } è un unificatore.
Ma è l’unico unificatore di s e t ?
Anche δ={ a/x, b/y } è un unificatore di s e t e, inoltre,
è facile verificare che esistono molti altri unificatori
di s e t.
Tuttavia, comunque scegliamo un unificatore per s e t,
ci accorgiamo che σ risulta essere il più semplice. Si
ha, infatti: δ = { τ ° σ } ove τ = { a/x }.
UNIFICAZIONE E PATTERN
MATCHING
Inoltre, si può dimostrare che, se θ è
un unificatore di s e t, esiste una
sostituzione ψ tale che:
θ = ( ψ ° σ )
(θ è un’istanza di σ)
UNIFICAZIONE E PATTERN
MATCHING
DEF 6 UNIFICATORE PIU’ GENERALE ( MGU = Most
General Unifier ) o UNIFICATORE PIU’ SEMPLICE
Dati due termini, s e t, e un unificatore σ di s e t, si dice
che σ è l’unificatore più generale di s e t se, per ogni
altro unificatore δ di s e t, esiste una sostituzione τ tale
che :
δ=(τ ° σ)
(Chang and Lee, 73; Lloyd, 84)
UNIFICAZIONE E PATTERN
MATCHING
Intuitivamente, possiamo pensare al
MGU come al “più semplice” tra tutti gli
unificatori di due termini dati.
Il problema dell’unificazione consiste
nel trovare (se esiste) l’MGU di due
termini.
UNIFICAZIONE
MATCHING
E
PATTERN
UNIFICAZIONE E TEORIA DELLA COMPUTABILITA’
TEOREMA 3 (senza dimostrazione)
Il problema dell’unificazione è decidibile nelle Teorie del I
ordine.
TEOREMA 4 (Goldfarb, 1981)
Il problema dell’unificazione è indecidibile nelle Teorie di
ordine ω , ω ≥ 2 (Riduzione al X problema di Hilbert)
(Nel 1972, C.L. Lucchesi e nel 1973 G.P. Huet avevano già
scoperto indipendentemente l’indecidibilità del problema per
ω ≥ 3)
UNIFICAZIONE E PATTERN
MATCHING
TEOREMA 5 L’MGU di due termini del linguaggio di una
Teoria del I ordine, se esiste, è unico. (Teoria unitaria)
DIMOSTRAZIONE
Per esercizio.
NOTA: Il Teorema 5 cessa di valere se i simboli di
funzione che compaiono all’interno dei termini godono
di una delle seguenti proprietà (o di entrambe):
• f (x,y) = f ( y,x )
Commutatività
• f (f(x,y),z) = f(x,f(y,z)) Associatività
UNIFICAZIONE E PATTERN
MATCHING
In altre parole, in una teoria di
equazioni (equational theory), in cui
agli assiomi di una teoria del I ordine
(algebra libera dei termini = absolutely
free term algebra) si aggiunge almeno
una delle equazioni (C) ed (A), possono
esistere diversi MGUs di 2 termini.
UNIFICAZIONE E PATTERN
MATCHING
UNIFICAZIONE DI FBF
DEF. PERMUTAZIONE
Sia A = { k ∈ℕ | ≤ k ≤ n }. Una permutazione p di A
è una qualsiasi funzione biunivoca
p: A → A.
DEF. LETTERALE
<letterale>::= <formula atomica> | ¬<formula atomica>
UNIFICAZIONE E PATTERN
MATCHING
DEF. FORMULE ATOMICHE UNIFICABILI
Siano a ed a’ due atomi:
a = P (t1,t2,…,tn)
a’= Q (t1’,t2’,…,t’m)
a e a’ si unificano se esiste una sostituzione σ tale
che: σ(a)=σ(a’).
Questa condizione è equivalente al seguente
insieme di condizioni:
1) P = Q 2) n = m3) esiste una sostituzione σ
tale che ∀i ∈ {1,2,…,n} : σ (ti) = σ(t’i)
UNIFICAZIONE E PATTERN
MATCHING
OSSERVAZIONE
Nel caso in cui l’ordine tra i termini del predicato P
non abbia importanza, ossia P è commutativo
(es. “equal”), si modifica la definizione di
unificazione tra atomi come segue:
a ed a’ si unificano se:
• P = Q 2) n = m3) esistono una permutazione p
dei primi n numeri naturali positivi ed una
sostituzione
σ tale che ∀ i ∈ {1,2,…,n} : σ (ti) = σ(t’p(i)).
UNIFICAZIONE E PATTERN
MATCHING
DEF. LETTERALI UNIFICABILI
Siano l ed l’ due letterali. l ed l’ si unificano se
esiste una sostituzione σ tale che:
σ(l) = σ (l’).
Esempio
l1 = ¬went ( John, south(x))
l2 = ¬went ( y, south (America))
si unificano ed il loro unificatore (che è anche
l’MGU) è: σ = { America/x, John/y }
UNIFICAZIONE E PATTERN
MATCHING
DEF. UNIFICABILITA’ DI CONGIUNTI DI LETTERALI
Siano c e c’ due congiunti di letterali:
c = l1 ∧ l2 ∧ … lk
c’= l’1 ∧ l’2 ∧ … l’h
c e c’ si unificano se esiste una sostituzione σ tale che:
σ(c)=σ(c’).
Le condizioni scritta sopra è equivalente al seguente
insieme di condizioni:
• k = h ed esistono una permutazione p sui primi k
numeri naturali positivi ed una sostituzione
σ tale che ∀ i ∈ {1,2,…,k} : σ (li) = σ(l’p(i)).
UNIFICAZIONE E PATTERN
MATCHING
ESEMPIO
c1 = P (f(x1), h(x2,f(x1)) ∧ Q(h(x2),x3)
c2 = Q (h(g(x4)),g(x4)) ∧ P(x5,h(g(x4),x5))
si unificano e il loro MGU è:
σ={g(x4)/x2, g(x4)/x3, f(x1)/x5}
OSSERVAZIONE
Le condizioni perché due congiunti di letterali
siano unificabili non sono equivalenti a quelle
richieste per l’unificazione di due insiemi di
letterali.
UNIFICAZIONE E PATTERN
MATCHING
L={ l1,l2,…,lk } ed L’={ l’1,l’2,…,l’h }
Insieme di letterali, L ed L’ sono unificabili se esiste una
sostituzione σ tale che:
σ( L ) = σ ( L’ )
Infatti, consideriamo il seguente esempio:
c= P(f(x), y) ∧ P (f(a),b)L={P(f(x),y),P(f(a),b}
c'= P(f(z), w) L={P(f(z),w)}
Si vede chiaramente che esiste:
σ= {a/x, b/y, a/z, b/w } tale che:
σ(L) = σ (L’) = { P (f(a),b) }
mentre c e c’ non sono unificabili poiché k ≠ h, secondo la
def. di unificabilità di congiunti di letterali.
UNIFICAZIONE E PATTERN
MATCHING
DEF. UNIFICABILITA’ DI FBF IN FORMA NORMALE
DISGIUNTIVA
Siano d e d’ due fbf in forma normale disgiunta:
d = c1 v c2 v … cm
d’= c’1 v c’2 v … c’n
d e d’ si unificano se esiste una sostituzione σ tale
che:
σ ( d ) = σ ( d’ )
Analogamente a quanto detto in precedenza, la
condizione sopra equivale a richiedere che:
1) m = n 2) esistono una permutazione p dei primi m
numeri naturali positivi ed una sostituzione σ ∋′ ∀ i
∈ {1,2,…,m} : σ (ci) = σ(c’p(i)).
UNIFICAZIONE E PATTERN
MATCHING
ESEMPIO
d = red ( x1 ) v ontop ( x2, x3 )
d’ = ontop (head(x4), neck) v red (car(John))
Si unificano ed il loro MGU è :
σ = { head ( x4) / x2, neck / x3, car (John) /x1}
UNIFICAZIONE E PATTERN
MATCHING
ESERCIZIO
Stabilire se le seguenti coppie di fbf si unificano. Se sì,
fornire l’MGU, altrimenti spiegare brevemente perché
non si unificano.
•
Color (Tweety, Yellow) Color(x,y)
•
Color (Tweety, Yellow) Color(x,x)
•
Color(Hat(Postman),Blue) Color(Hat(y),x)
•
R(F(x),b)
R(y,z)
•
R(F(y),x)
R(x,F(B))
•
R(F(y),y,x)
R(x,F(A),F(v))
•
Loves(x,y)
Loves(y,x)
L’ALGORITMO DI UNIFICAZIONE
La scoperta della stretta relazione tra deduzione logica e
computazione dà nuovo impulso alla ricerca: la logica
gioca un ruolo nell’informatica analogo a quello della
analisi in fisica. La logica dei predicati è un linguaggio di
programmazione (Kowalski, 1979).
Computer della V generazione
(velocità in KLIPS: Logical Inference Per Second)
• Macchine per eseguire Linguaggi per la
Programmazione Logica
• La CPU è un Algoritmo di Unificazione (in HW o in SW)
LA RAPPRESENTAZIONE DI
TERMINI (STRUTTURE DI DATI)
RAPPRESENTAZIONE A STRINGA
(Robinson, 1965)
•
Un termine viene rappresentato come un array lineare,
i cui elementi sono: simboli di funzione, variabili,
costanti, virgole e parentesi.
ESEMPIO
s= p(g(f(x)), h(f(x)))
p (
g (
f
(
x )
)
,
h (
f
(
x )
)
)
LA RAPPRESENTAZIONE DI
TERMINI (STRUTTURE DI DATI)
RAPPRESENTAZIONE AD ALBERO
Un termine viene rappresentato da un albero in cui ogni simbolo di
funzione rappresenta la radice di un sottoalbero i cui figli sono gli
argomenti di quella funzione.
Le variabili e le costanti presenti nel termine costituiscono le foglie
dell’albero.
ESEMPIO
p
g
h
f
f
x
x
LA RAPPRESENTAZIONE DI
TERMINI (STRUTTURE DI DATI)
Le rappresentazioni a stringa e ad albero sono
utilizzate per quelle applicazioni dell’unificazione che
gestiscono termini non troppo complicati, ossia brevi e
poco annidati.
SVANTAGGIO
Ignorano le strutture ( i sottotermini ) comuni.
ESEMPIO
Cosa accade quando si cerca di unificare:
s=p(g(f(x)), h(f(x)) e t=p(g(f(a)),h(f(a)))
Non c’è alcun bisogno di elaborare la seconda occorrenza
di f(x) e di f(a), una volta fissata la sostituzione {a/x}.
Dunque, abbiamo bisogno di una rappresentazione più
concisa.
LA RAPPRESENTAZIONE DI
TERMINI (STRUTTURE DI DATI)
RAPPRESENTAZIONE A GRAFO
DAG = Directed Acyclic Graph. Se permettiamo che
i nostri grafi contengano cicli, possiamo gestire
termini infinitamente lunghi e l’unificazione può
produrre sostituzioni che coinvolgono tali termini
( unificazione infinita)
p
g
h
f
f(x) è condiviso; lo sforzo per unificarlo con un altro
sottotermine va fatto una sola volta!
x
Se i sottotermini non vengono condivisi può essere
necessario generare strutture di ampiezza
esponenziale durante l’unificazione.
Unificazione
• Processo di unificazione usato per scoprire se
una formula atomica presa negata oppure no
può corrispondere ad un’altra
– Sostituzione di variabili in entrambe le formule
atomiche con dei termini che renderebbero identiche
le due formule atomiche
• Esistono diversi algoritmi per unificare un
insieme finito di espressioni
– Falliscono quando l'insieme non può essere unificato
Unificazione
UNIFICA(L1,L2: espressioni in forma di lista) → SOST: sostituzioni usate per unificare L1
ed L2
se L1 o L2 è un atomo allora
se L1 = L2 allora ritorna NIL
se L1 è una variabile allora
se L1 compare in L2 allora ritorna Fallimento
altrimenti ritorna { L1 ← L2 }
se L2 è una variabile allora
se L2 compare in L1 allora ritorna Fallimento
altrimenti ritorna { L2 ← L1 }
Se lunghezza(L1) ≠ lunghezza(L2) allora ritorna Fallimento
SOST ← NIL
Per i = 1 fino al numero di elementi di L1 esegui
S ← UNIFICA(i-esimo elemento di L1, i-esimo elemento di L2)
se S = Fallimento allora ritorna Fallimento
se S ≠ NIL allora
applica S a ciò che rimane sia di L1 che di L2
SOST = concatena (S, SOST )
PATTERN MATCHING
Per molte applicazioni pratiche l’unificazione è un
concetto troppo generale.
Una importante variante è rappresentata dal pattern
matching o semplicemente matching.
DEF. Termini per cui esiste un Matching
( “confrontabili” ) MATCHER – MATCHING
Dati due termini, s e t, si dice che esiste un matching
tra essi se esiste una sostituzione µ tale che :
µ(s) = t ( opp. µ(t) = s )
In tal caso, si dice che µ è un matcher di s e t e µ(s)
( risp. µ(t) ) è un matching di s e t
PATTERN MATCHING
In altre parole, un problema di matching è un problema di
unificazione in cui è lecito effettuare sostituzioni solo in uno
dei due termini. ( continuano a valere i teoremi? )
Il matching è genericamente inteso come il processo attraverso
cui si confrontano o più strutture per scoprire le loro
somiglianze o differenze.
Nella sua forma più semplice, le strutture, anche dette forme
( patterns ), vengono confrontate per stabilire se sono uguali
( e il matching è visto come funzione booleana ).
Nei sistemi intelligenti, il matching è utilizzato per diversi scopi:
classificazione, correzione, ritrovamento, decomposizione.
OSSERVAZIONE ( SUSSUNZIONE E MATCHING )
Il matching è un caso particolare della sussunzione. Siano s e t termini
per cui esiste il matching µ
µ (s) = t ⇒ µ (s) ⊆ t ≝ s sussume t
µ (s) = t ⇒ t ⊆ µ (s)
≝
t sussume s
“Condizione necessaria e sufficiente affinché esista un matching tra termini s e t è
che s “sussuma t” e t “sussuma” s.
Pattern Matching
• Importante variante dell’unificazione
– Mira a porre in corrispondenza un’espressione con
un’altra espressione modello (template)
Definizione
Dato un insieme di espressioni {Ei} ed una
espressione E, esiste un matching fra {Ei} ed E
se esiste una sostituzione σ tale che
σ({Ei}) = E
– Tipicamente non si consente che le variabili
occorrano in entrambe le espressioni poste in
corrispondenza
Pattern Matching
• Le nostre operazioni di matching non sono di
solito simmetriche
– Modello da porre in corrispondenza con un fatto
• Definizione più debole di matching
• L’oggetto modello corrisponde (matches) ad un
oggetto fatto se la formula che descrive il
modello si unifica con qualche
sottocongiunzione delle formule del fatto oggetto
– Si ha “matching” solo se la formula che descrive il
modello è derivabile da quella che descrive il fatto
– t → σ(s)
Pattern Matching
Esempio
C1
• OSSERVAZIONE:
C2
C3
– forma(c1,rettangolo)∧forma(c2,cerchio) ∧
forma(c3,cerchio) ∧ grandezza(c1,media) ∧
grandezza(c2,piccola) ∧ grandezza(c3,piccola)
• MODELLO:
∃x ∃y ∃z forma (x, rettangolo ) ∧ forma (y, cerchio ) ∧
forma (z, cerchio)
Proprietà dell’unificazione e del Matching.
Per l’unificazione del ordine valgono le seguenti proprietà:
1) L’unificazione è monotona.
L’unificazione aggiunge proprietà, non le sottrae. E’ impossibile
rimuovere informazione da una struttura unificandola con un’altra.
Non vale per la generalizzazione
1) L’unificazione è commutativa ed associativa.
•
•
L’ordine delle unificazioni è irrilevante per il risultato finale.
L’unificazione non è distributiva rispetto alla generalizzazione
(e viceversa).
L’unificazione è un processo di fusione dei vincoli.
Se le strutture sono viste come una codifica di informazioni
sui vincoli, l’unificazione dovrebbe essere considerata un
processo di fusione dei vincoli. L’unificazione individua anche
i casi in cui determinati insiemi di vincoli sono inconsistenti.
L’unificazione è bidirezionale; il matching è unidirezionale.
Il processo di “binding” delle variabili può avvenire in entrambe le
strutture di unificazione e compare anche nella invocazione delle
funzioni dei linguaggi di programmazione imperativi.
l’unificazione gestisce strutture definite parzialmente.
L’unificazione accetta input che contengono variabili non istanziate
ed i suoi output possono contenere variabili non istanziate.