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