Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento (2 - Reti semantiche, Frames) Prof. M.T. PAZIENZA a.a. 2006-2007 Reti semantiche “Scoprire le relazioni di un concetto equivale a scoprire la natura di quel concetto… I concetti sono come dei punti, assumono una identità quando li si posiziona nello spazio definendo la loro posizione relativa rispetto ad altri … Un concetto è ciò che è logicamente collegato ad altri concetti, così come un punto è ciò che è quando viene spazialmente collegato ad altri punti” (White, 1975) Per rappresentare il significato di concetti (anche non collegabili ad entità reali) basta identificare le tipologie di collegamenti con altri concetti Conoscenza e Reti semantiche Assunzione di base: rappresentare la conoscenza comune in un grafo con i nodi ad indicare concetti/oggetti, e gli archi che esprimono le relazioni tra questi concetti/oggetti Reti semantiche Le reti semantiche costituiscono un formalismo per la rappresentazione della conoscenza Gli oggetti, i concetti possono essere nodi di un grafo Gli archi tra i nodi rappresentano relazioni binarie di diversa tipologia Nodi ed archi possono avere delle etichette Reti semantiche tutti i pettirossi sono degli uccelli is-a is-a clyde robin bird has-part wings Reti semantiche La facilità con cui è possibile fare inferenza gerarchica nelle reti semantiche è una ragione del loro successo. Inoltre è possibile rappresentare anche conoscenza sulle proprietà degli oggetti. In domini in cui la maggior parte del ragionamento è basato su una tassonomia (anche complessa), le reti semantiche costituiscono uno schema di rappresentazione naturale. Reti semantiche Si può facilmente disegnare una procedura per fare deduzioni; basta definire una gerarchia is-a assumendo che ogni asserzione fatta per un nodo più alto può essere considerata valida per nodi più bassi, senza dover essere costretti a rappresentare esplicitamente tali asserzioni lungo tutta la rete. Questo tipo di ragionamento si chiama property inheritance Reti semantiche e Prolog is-a di un elemento m con la classe c è rappresentato dal fatto c(m) a-kind-of di una sottoclasse c con una superclasse s è rappresentato da s(X):-c(X) Reti semantiche ed Ereditarietà Nelle reti semantiche è possibile effettuare una forma particolare di inferenza, detta “ereditarietà” Se un oggetto appartiene ad una classe, esso eredita tutte le proprietà di quella classe L’ereditarietà si applica anche ai link di tipo a-kind-of Una sottoclasse eredita (per ciascun suo elemento) tutte le proprietà della superclasse Reti semantiche L’uso delle reti semantiche permette di costruire grafi complessi per rappresentare scenari completi Rappresentazione di frasi complesse ed articolate. Necessità di etichettare e direzionare gli archi per identificare univocamente la relazione Mario compra una barca versus Una barca è comprata da Mario Reti semantiche Permettono di gestire la semantica di una frase del linguaggio naturale distinguendo nel discorso Struttura superficiale da Struttura profonda Reti semantiche e sintassi Tutte le frasi possono essere analizzate come se fossero un’azione con un certo numero di oggetti che assumono ruoli specifici (archi) a seconda della posizione nella frase. Una volta definiti, i grafi di una frase assumono, però, valore generale e quindi indipendentemente dalla lingua a partire dalla quale sono stati generati. Reti semantiche e sintassi dei casi Esempio: dare Atto del dare qualcosa a qualcuno: prevede • un nodo che esprime l’atto del dare, • un nodo che esprime la specifica azione del dare , • un nodo che esprime lo specifico donatore, • un nodo che esprime lo specifico ricevente, • un nodo che esprime lo specifico oggetto dato. Ogni arco esprime una relazione specifica dell’atto Sintassi dei casi Rete semantica – es. dare Dare is-a Libro Dare 1 Donatore Mario Ricevente Maria Dono is-a Libro 1 Ragionamento con le reti semantiche Nelle rappresentazioni basate su reti semantiche non c’è alcuna semantica formale, nessuna accordo a priori su ciò che una data struttura rappresentazionale significhi (come invece è per la logica); è la natura delle procedure che manipolano la struttura di rete che assegna significato alla rete stessa. Fare inferenza da una rete semantica prevede la ricerca di cammini particolari (ogni arco attiva cammini soddisfacenti domande diverse). Ragionamento con le reti semantiche Il meccanismo di reasoning più comunemente utilizzato si basa sul matching di strutture di rete. Si costruisce un frammento di rete (rappresentante un aspetto di un oggetto, oppure una query); quindi si verifica che esista nel database (matching con le strutture preesistenti). I nodi variabile del frammento vengono legati-bound, nel matching, ai valori che devono assumere per rendere il match perfetto. Reti semantiche Problemi ancora aperti: • Problemi computazionali nel gestire grandi database di reti per rappresentare la conoscenza • Ambiguità nella semantica delle strutture di rete • Quale significato in realtà assume un nodo? Non esiste alcuna distinzione formale tra un individuo ed una classe di individui. • Esiste un unico modo per rappresentare un concetto, fatto, evento,…? • Come si può rappresentare il tempo e l’influenza delle relazioni temporali sugli eventi? • Come si possono rappresentare credenze sul mondo, piuttosto che fatti? • Esistono regole complete per la property inheritance nelle reti? Reti semantiche e Tempo Talvolta le relazioni binarie non sono sufficienti a rappresentare situazioni; si considerano più archi uscenti da un nodo situazione (o azione) che specificano i vari argomenti del predicato situazione. Si possono avere anche archi che rappresentano relazioni temporali Se due azioni diverse puntano allo stesso nodo tempo, il tempo delle due azioni può essere considerato contemporaneo (si ipotizza che le azioni accadono istantaneamente) Frames Descrizioni di situazioni Nella vita quotidiana, per interpretare nuove situazioni, l’approccio più comune è quello di rifarsi/attingere ad esperienze precedenti la cui rappresentazione in memoria è stata già strutturata ed organizzata collegandola con il resto della propria conoscenza. Ci si comporta in base ad aspettative di un certo tipo, basate su conoscenza pregressa (es. entrando in un nuovo ristorante, ci si aspettano tavoli imbanditi, camerieri, menù, altri commensali, ma anche una particolare sequenza di eventi, etc.) Frames Dall’inglese (frame= cornice, quadro) deriva il modo d’uso: nei frame si rappresenta la conoscenza relativa ad oggetti ed eventi tipici di una specifica situazione. I frame, quindi, forniscono la struttura al cui interno è possibile interpretare nuovi dati in funzione dei concetti precedentemente acquisiti. Viene facilitata l’attività di elaborazione guidata dalle aspettative. Mettendo insieme fatti riguardo a particolari tipi di oggetti ed eventi, quindi ordinandoli in una grande gerarchia tassonomica, si ottiene un approccio molto più strutturato delle reti semantiche Frames Si definisce un numero prefissato di slot per rappresentare gli attributi di un oggetto (invece di avere un numero imprecisato di archi uscenti da un nodo) Ogni oggetto è un membro / istanza di una classe cui è collegato da un link is-a La classe indica il numero di slot validi a livello di classe ed il nome di ciascuno slot Frames ed Ereditarietà Quando uno slot assume un valore a livello di classe, esso rappresenta un attributo comune a tutti i membri di quella classe Quando uno slot assume un valore a livello di istanza, esso rappresenta un valore proprio dell’istanza che può assumere valori diversi per altre istanze Frames Frames ed Ereditarietà Definendo un “luogo” (frame) per rappresentare la conoscenza in cui, eventualmente, ci può essere conoscenza parzialmente specificata od omessa, il meccanismo degli slot permette di attivare un ragionamento che si aspetti la conferma alle aspettative (filling in slots). Frames ed Ereditarietà Regole: Un oggetto è un’istanza di una classe se è membro di una classe che è sottoclasse della prima classe Una classe è sottoclasse di un’altra classe se è un tipo di quella classe o se è un tipo di un’altra classe che è sottoclasse della prima Un oggetto ha un attributo particolare se ha quell’attributo di per sé o se è un’istanza di una classe che ha quell’attributo Frames e Deafault reasoning L’attributo di una classe viene ereditato solo se esso non è cancellato o superato (overriden) dallo stesso slot attributo che occorre in una sottoclasse, oppure in una istanza individuale, con un valore diverso Frames ed Ereditarietà multipla Un oggetto può essere istanza di più di una classe, così come una classe può essere sottoclasse di più di una superclasse L’ereditarietà multipla permette di ereditare le caratteristiche di tutte le superclassi di appartenenza (anche in contraddizione tra loro) In caso di contraddittorietà, è necessario modificare gli algoritmi di ricerca Frames ed ereditarietà multipla Large tree A B C D E p v Frames ed ereditarietà multipla Supponiamo che p sia una proprietà solo della classe E. L’algoritmo di ricerca (della proprietà p per la classe D) più appropriato sarà quello in ampiezza invece di quello in profondità. Script Gli script implementano l’idea di: rappresentare azioni ed eventi usando una rete semantica Ovvero l’intero insieme di azioni coincide con la descrizione di cammini stereotipali Gli script sono strutture del tipo frame che permettono di rappresentare sequenze di eventi considerate standard Gli script fanno uso dell’idea di default dove alla classe sono associate le regole di una qualche azione ed all’istanza di una classe corrispondono le istanze delle azioni Script / storie Analogo alla descrizione di storie L’idea è che l’informazione è fornita per punti generali ed associata alla classe Sarà possibile rispondere ad una molteplicità di domande correlando i punti generali ad un unico tema condiviso per quella specifica domanda Interazioni con una base di conoscenza Aggiunta di un fatto nuovo alla base di conoscenza Derivare le implicazioni conseguenti l’inserimento (aggiunta) di un fatto nuovo in una base di conoscenza Verifica che una interrogazione sia implicata da una base di conoscenza Decidere se una interrogazione è contenuta esplicitamente nella base di conoscenza Rimozione di un fatto da una base di conoscenza