Rappresentazione della
conoscenza
Applicazioni Knowledge Intensive
• Applicazione che gestiscono conoscenza
Esempi:
– Sistemi di supporto alle decisioni
– Configurazione di prodotti per clienti
– Commercio elettronico
Obiettivo Prefissato
• Ottenere sistemi basati sulla conoscenza:
– Sistemi che sappiano
• gestire
• usare
la conoscenza
Metodi per immagazzinare la
conoscenza 1/3
1. Direttamente negli algoritmi/programmi
– Conoscenza cablata (hardwired knowledge)
– Esempio: Costruire l’albero delle decisioni
•
Problema:
Dover ricodificare il programma ogni volta che la
conoscenza viene è modificata
Metodi per immagazzinare la
conoscenza 2/3
2. Basi di dati
– Sono disponibili modelli e sistemi sofisticati per la
costruzione di basi di dati
Problemi
1. La conoscenza è nelle tuple, ma anche nelle
query e nei vincoli di integrità
2. Le basi di dati esigono formati standardizzati
che non essere previsti nelle informazioni
potrebbero che si vuole rappresentare
Esempio di problema che si può
verificare usando una base dati
• Informazioni sulle tendenze d’acquisto di
– minorenni ( non conosco l’età)
– adulti (conosco l’età)
– pensionati( so solo che sono over 65)
Problemi
• Se nella base di dati si inserisce l’età,
– è necessario inserire valori null per i minorenni e
pensionati
• Se non si inserisce l’età
– si perdono le informazioni riguardanti l’età degli adulti
– si perde la suddivisione in segmenti di mercato
Metodi per immagazzinare la
conoscenza 3/3
3. Rappresentazione della conoscenza
– Caratteristiche del sistema
1. Tesi di B. Smith: Sistema in grado di
cambiare il suo comportamento in funzione
del cambiamento della conoscenza.
Il sistema deve avere:
– Una parte che contiene tutta la conoscenza
(suddivisa in tuple, query, vincoli di integrità)
– Ruolo causale nel comportamento del
sistema
Metodi per immagazzinare la
conoscenza 3/3
2. Tesi di H.Levesque: Approccio funzionale
alla rappresentazione della conoscenza
Risposte
TELL
Controlli di consistenza
(Tell)
Modulo di rappresentazione
della conoscenza
ASK
Recupero di Informazioni
Individui, Classi (Ask)
TELL e ASK
• Funzioni TELL:
– Aggiungono , tolgono, cambiano la conoscenza
modificandone lo stato
– Come risposta da parte del sistema ci si aspetta che
controlli che sia verificata la consistenza
• Funzioni ASK:
– Richiedono lo stato senza modificarlo, come risposta
da parte del sistema ci si aspetta tuple (record), query
o classi:
– il sistema deve essere in grado di ragionare sulle
informazioni estraendo autonomamente delle
conoscenze che sono erano state individuate in
precedenza
Intelligenza Artificiale
Obiettivi
• Problema:
– Fare in modo che una macchina sia in grado
di decidere autonomamente
• Esempio:
“Non soltanto far muovere un robot, ma anche
fare in modo che sia in grado di decidere
autonomamente dove andare, quando e
perché”.
Strumenti necessari
• Inserire nel sistema la conoscenza
necessaria
• un programma che dica cosa fare in ogni
situazione
Reti Semantiche
• Soluzione che risale agli anni 70
• Consiste nell’utilizzare grafi etichettati
Esempio
parte
Sistema di
Accensione
di un’automobile
parte
Spinterogeno
Batteria
parte
Avvolgimento
Connesso a
Caratteristiche delle reti
semantiche
• Un sistema automatico deve avere la
conoscenza necessaria per poter riparare
automaticamente eventuali guasti
• Un approccio semantico consente di fare una
ricognizione diagnostica sui vari nodi attraverso
gli archi di connessione
• Se si individua il nodo da cui proviene il
problema basta oltrepassarlo e far funzionare la
riserva
• Se vi è un cambiamento basta sostituire il nodo
interessato al cambiamento, anziché l’intero
programma (grafo)
Inconvenienti delle reti semantiche
• Problema di natura concettuale sollevato
da W. Woods: “ cosa c’è in un arco?”
Telefono
colore
Nero
• Domande:
– L’etichette porta con sé informazione aggiuntiva?
– Il significato del grafo è: tutti i telefoni sono neri?
Oppure il grafo rappresenta soltanto la classe
dei telefoni neri?
Soluzione necessaria
Necessità di ragionare in maniera astratta,
attraverso simboli che consentano di
prescindere dai nomi assegnati
B
A
C
Frames
• In quest’ottica, per formalizzare la conoscenza
sono stati introdotti i Frames
– Minsky 1975
– Nati da spunti derivati da studi sul linguaggio naturale
attraverso l’uso di regole semantiche
• Consistono nell’introdurre informazioni e
conoscenze distinte e nel fornire collegamenti
espliciti tra di esse
• Il sistema deve essere in grado di usare le
informazioni fornite per estrarre altra
conoscenza
FRAME PERSON
NAME:
….
OWN PET: ANIMAL
FRAME ANIMAL
……
FRAME DOG OWNER
SPECIALIZATION OF:
PERSON
….
OWN PET: DOG
FRAME PETER
MEMBER OF:
PERSON
….
OWN PET: FLUFFY
FRAME DOG
SPECIALIZATION OF:
ANIMAL
Relation
FRAME FLUFFY
MEMBER OF:
DOG
Descrizione dei frames precedenti
• Ogni attributo è detto SLOT
• Di ogni attributo va eventualmente
specificata la classe di appartenenza
• Il frame Person contiene una serie di
informazioni sulla classe persona
• Il dog owner è un particolare tipo di
persona (specification)
• Il suo animale domestico è il cane
• Il cane fa parte della classe animal
Realization
• Il sistema deve essere in grado di
comprendere, poiché Peter ha un own pet
chiamato Fluffy che è un cane, che Peter
fa automaticamente parte del frame dog
owner
• Il sistema, a partire da una certa
conoscenza, è in grado di estrapolare
conoscenza implicita.
Sistemi esperti basati su Frames
Knowledge Engineered Environment KEE
• Nati negli anni 80
• Inizialmente hanno avuto sviluppo
commerciale
• Sistemi basati sull’uso di frames
– Basati su regole del tipo:
Antecedente
Conseguente
– Antecedente e conseguente sono basati su
frames
Esempio
FRAME SENIOR_CITIZEN
SPECIALIZATION OF:
CITIZEN
AGE: VALUE CLASS INTEGER;
RANGE 60-200;
FRAME FRED
MEMBER OF:
SENIOR_CITIZEN
• Regola:
• IF AGE(x) ≥18 THEN ELIGIBLE TO VOTE
• Al sistema è stata fornita l’informazione che Fred è un
SENIOR_CITIZEN, ma non è in grado di dedurre che
Fred è un votante, poiché non conosce l’età precisa
• Non èuò pertanto confrontare l’età di Fred con 18 (
dovrebbe confrontare uno per uno 60, 61, ecc.)
Svantaggi dei sistemi basati su
Frames
• La conoscenza è sparsa tra frames e
regole
• Non tutte le deduzioni possono essere
effettuate
Semantica di un sistema di
rappresentazione della conoscenza
Formalismo utilizzato
1. Logica del primo ordine
– Logica Proposizionale
•
Sintassi:
– Simboli di costante (a,b,c)
– Simboli di variabile (x,y,z)
– Simboli di predicati (P,Q)
Logica Proposizionale
– Termine
• una costante
oppure
• una variabile
– Atomo
• un simbolo di predicato a n posti seguito da n termini
– Esempio P(a,b,x) è un predicato a 3 posti
– Formula
• un atomo
oppure
– F
– F1  F2
– F1  F2
F1 , F2 , F
formule
Logica del Primo ordine
•
E’ ottenuta dalla logica proposizionale con
l’introduzione dei quantificatori sulle formule
–  x F(x)
–  x F(x)
•
F formula in cui appare x
Nata per scrivere in modo non ambiguo
qualunque frase del linguaggio naturale
1. “Everybody needs somebody”
2.  x  y Needs (x,y)
È diverso da:
1.  x  y Needs (x,y)
2. “Somebody needs everybody”
Interpretazione di formule del primo
ordine (Tarsky)
• Dominio di interpretazione
– insieme di elementi
• {a,b,c,…}
– costanti
• elementi dell’insieme
– Una formula del tipo  x F(x) è soddisfatta
nell’interpretazione se esiste un elemento a tale che
F(a) è soddisfatta.
–  x F(x) è soddisfatta nell’interpretazione se per tutti
gli elementi {a,b,c..}, F(a), F(b), F(c),.. sono
soddisfatte
–  negazione ,  congiunzione  disgiunzione
Definizioni
• Una formula si dice soddisfacibile se
esiste almeno un’interpretazione che la
soddisfa
• Una formula si dice valida se tutte le
interpretazioni la soddisfano
Obiettivi
• Costruire sistemi in cui tutte le regole (formule)
siano valide
Esempio:
– Il sistema è in grado di dedurre che Fred è un votante
se può eseguire il confronto tra 18 e tutti gli elementi
del range di variazione della sua età ( 60>18,61>18,
62>18,..)
– E’ possibile scrivere formule del tipo:
•  x  y Person (x)  Own Pet (x,y) → Animal(y)
• Se una persona (x) ha un own pet (y) allora è della classe
animal
Sistemi di rappresentazione della
conoscenza
E’ un sistema :
1. In cui è possibile usare una qualunque
rappresentazione delle conoscenza:
– Reti semantiche
– Frames, ecc.
Purchè siano ridotta o riducibile a elementi della
logica del primo ordine in modo che tutte le
formule siano valide
2. Deve derivare TUTTE ( COMPLETO) E
SOLE (CORRETTO) le conoscenza
implicite IN TEMPO FINITO
Modello
La logica del primo ordine consente di
definire un modello di un insieme di
formule, ossia una interpretazione che
soddisfi ogni formula
Indecidibilità
Un problema è indecidibile se un qualunque
algoritmo che tenti di risolverlo è
– incompleto (non considera tutti i casi)
oppure
– scorretto (sbaglia qualcosa)
oppure
– non termina
Esempio
 x DogOwner (x)  ( y OwnerPet (x,y))  Dog(y)
– Dog Owner (Fred)
È soddisfatta dalla costante Fred
– Own Pet (Fluffy)
È soddisfatta dalla costante Fluffy
Ogni modello che soddisfi le 3 formule deve dedurre che
Fluffy è un cane, altrimenti non è un modello
Osservazioni
Fred è un DogOwner, ma se ha anche un gatto cosa succede?
Si ha una contraddizione poiché non è stato definito
nulla riguardo il gatto ed il suo possesso.
DogOwner(Fred)
OwnPet(Fred,Tom)
Cat(Tom)
Una volta detto che Tom è un gatto è necessario
indicare al sistema che Cat e Dog sono due
cosa differenti
 z Cat (z)  (Dog(z))
Inconsistenza
La base di conoscenza è ancora
inconsistente infatti da
 x DogOwner (x)  ( y OwnerPet (x,y))  Dog(y)
si deduce che, in quanto posseduto da Fred,
Tom è Dog
Da
 z Cat (z)  (Dog(z))
si deduce che essendo Cat, Tom non è Dog
Problema
– Una base di conoscenza deve essere in
grado di dedurre la conoscenza implicita e di
individuare eventuali errori logici connessi
– La logica del primo ordine è uno strumento
semanticamente accettabile
Il problema diventa
– Tradurre la logica del primo ordine in un
programma eseguibile da una macchina
Indecidibilità nei KBMS
• Per un Knowledge Based Management System
(KBMS) calcolare tutte le formule valide di un
insieme di formule è un problema indecidibile
• Non esiste un algoritmo in grado di risolvere il
problema
• Nessun linguaggio di programmazione esistente
è in grado di risolvere il problema
Semantica
Modello
Concettuale
Modello
Logico
Basi di Dati
Linguaggi di
programmazione
Logica del
primo ordine
Semantica
operazionale,
denotazionale, ecc.
Logica del Primo
Ordine
Unified
Modeling
Language
Sistemi di
rappresentazione
della conoscenza e
loro linguaggi
Diagramma
Entità/Relazioni
•Reticolare
•Gerarchico
•Relazionale
•A Oggetti
•Record
•Grafi
Rappresentazione della
conoscenza
•Frames
•Reti semantiche
Sistemi di rappresentazione
della conoscenza
• (Knowledge Language) KL – ONE (1980)
• LOOM (1985)
• Classic ( primi anni 90)
Classic
Poiché rappresentare tutta la conoscenza è un
problema indecidibile si è pensato di adottare
una
– Espressività limitata
Pertanto Classic comprende
– costanti
– predicati unari (classi)
– predicati binari (legami tra classi)
Il problema resta comunque indecidibile
Soluzione adottata da Classic
– Costanti
– Concetti (Predicati unari)
– Ruoli (Predicati binari)
• Sintassi
– Formule
• Asserzioni su individui (concetti, ruoli)
Esempio
1.
Asserzione su individui:
Primitivo di Manduria  Vino Rosso
Individuo
Concetto
in una base di dati sarebbe l’aggiunta di una tupla alla relazione Vino
Rosso
2.
Asserzione binaria:
Primitivo di Manduria Produttore Cantina Sociale
Pliniana
Ruolo
Definizione di Concetti
Vino Rosso = Vino And (Fills Colore Rosso)
ruolo individuo
In una base di dati sarebbe una query
Chianti = Vino And (Fills Colore Rosso)
And (Fills Provenienza Toscana)
La base di conoscenza è in grado di fare
deduzioni:
Esempio
Primitivo  Vino Rosso