Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento Prof. M.T. PAZIENZA a.a. 2001-2002 Ingegneria della conoscenza Cosa rappresentare e come. • Analisi del problema • Individuazione dei fatti e degli eventi rilevanti del dominio applicativo • Definizione del modello di rappresentazione degli oggetti e delle relazioni esistenti Scienza empirica Ingegnere della conoscenza Non è un esperto di dominio Acquisisce conoscenza sul problema Definisce i limiti della conoscenza da rappresentare Definisce le metodologie di rappresentazione di fatti, grandezze, eventi e relazioni Realizza la base di conoscenza Base di conoscenza Una base di conoscenza deve essere chiara e concisa e rappresentare con completezza il contenuto della conoscenza stessa (sia per un utente umano che per un processo). La metodologia di rappresentazione della conoscenza deve essere: espressiva, concisa, non ambigua, insensibile al contesto, efficace, riutilizzabile (un fatto è vero o falso di per sé). Ragionamento • Le procedure di inferenza permettono di ragionare a partire dalla conoscenza codificata • Le procedura di inferenza devono essere efficienti (oltre ad efficaci) indipendentemente dalla tipologia di rappresentazione della conoscenza • Le procedure di inferenza trovano le soluzioni al problema Approccio dichiarativo Fatti e predicati I fatti devono rappresentare situazioni stabili nel tempo ed al variare delle situazioni, anche se esprimono istanze in un contesto specifico I predicati, al livello più generale possibile di codificazione ( in modo da esprimere un ragionamento valido in generale), devono esprimere relazioni tra oggetti della base di conoscenza Predicati Come si identifica il livello generale Concetti (classi) più che istanze Validità per le classi di più alto livello nella ontologia di dominio Composizionalità delle parti di un oggetto Composizionalità degli oggetti tra loro Ontologia di dominio (ereditarietà) Identificazione delle modalità di misura di grandezze usabili nel dominio Definizione rapporti (relazioni) tra valori diversi Validità al di fuori del dominio specifico (metaregole) Ingegnere della conoscenza (attività) Decide di cosa parlare (tutte le informazioni necessarie alla risoluzione del problema) Decide il vocabolario di predicati, funzioni e costanti (ontologia di dominio cosa esiste senza identificare proprietà specifiche ed interrelazioni; indipendente dall’obiettivo finale) Codifica la conoscenza generale di dominio (assiomi) Codifica una descrizione dell’istanza specifica del problema Fornisce interrogazioni alla procedura d’inferenza Ingegneria della conoscenza In sintesi: Stabilire proprietà fondamentali (=riutilizzabili) degli oggetti da rappresentare Stabilire una gerarchia tra gli oggetti Stabilire una scelta di valori su scale opportune Stabilire un vocabolario La conoscenza può essere di aiuto solo se permette all’agente di scegliere un’azione migliore di quella che avrebbe scelto altrimenti Ontologia Una ontologia esprime i legami tra oggetti/eventi del mondo, legati al loro essere Una ontologia di dominio esprime i legami tra oggetti/eventi specifici di quel dominio senza contraddire quanto abbia validità generale L’ontologia di una applicazione può limitarsi a considerare i legami tra oggetti/eventi necessari a ragionare all’interno dell’applicazione stessa. Ontologia Dovrebbe essere possibile unificare più ontologie di dominio nella ontologia generale che rappresenta la conoscenza del mondo. Viceversa, partendo da essa, si potrebbero ricavare ontologie più specifiche. Composizione versus potatura Ontologia Tipologie di conoscenza Al di là del dominio e dell’applicazione, in un’ontologia è necessario rappresentare conoscenza di natura generale (universalmente valida) che esprima peculiarità proprie sulle quali attivare differenti modalità di ragionamento. Tipologie di conoscenza Ragionare su: • Categorie, misure, oggetti fisici, oggetti composti, tempo, spazio, cambiamento, eventi, processi, sostanze, oggetti mentali, credenze Tipologie di conoscenza Nella realtà tutte le generalizzazioni presentano eccezioni; in alcuni casi è necessario definire valori di default. Non sempre sono totalmente condivisibili (validità limitata) Bisogna essere in grado di gestire tali anomalie per ottenere soluzioni corrette a problemi reali. Categorie/Classi/Insiemi/Concetti Esprimono le regolarità di un insieme di oggetti • Un ragionamento generale si basa su categorie • Un oggetto appartiene ad una categoria o ad un’altra a seconda delle sue proprietà. • Le categorie sono utili per effettuare predizioni e per applicare il principio di ereditarietà. CategorieInferenza Si riconosce un oggetto tramite le percezioni fisiche ad esso collegate (oggetto ovale, dim.7*3.5 cm, buccia sottile marrone scuro, su banco fruttivend.) Si inferisce l’appartenenza dello specifico oggetto ad una categoria dalle sue proprietà così come percepite (frutta di tipo kiwi) Si usa la conoscenza sulla categoria per predire ulteriori proprietà dello specifico oggetto (ricco di vitamina C, aiuta a prevenire l’influenza) CategorieInferenza Strutturazione delle categorie in sottoclassi (tassonomia) Le sottoclassi ereditano le proprietà delle superclassi. La tassonomia semplifica l’ontologia e facilita alcune modalità di ragionamento oltre che supportare un ragionamento di tipo generale. -Kiwi isa Frutta isa Cibo -Cibo è commestibile Kiwi è commestibile CategorieEreditarietà Un oggetto appartiene ad una categoria (kiwi isa Kiwi) Una categoria può essere sottoclasse di un’altra categoria (Kiwi isa Frutta) Ogni categoria ha proprietà distintive (Kiwi ha molti semi piccoli, Avocado ha 1 seme grande) Sottoclassi di una stessa categoria identificano insiemi disgiunti di elementi (Kiwi # Avocado) Gli elementi di una categoria condividono le sue proprietà e quelle degli antenati Reti semantiche • Gli oggetti del mondo sono nodi di un grafo • I nodi sono organizzati in una struttura tassonomica • Gli archi tra i nodi rappresentano relazioni binarie di diversa tipologia Forma di rappresentazione prossima alla modalità umana. Reti semantiche Imprecisa natura delle reti semantiche legata al fatto che non si distingue tra nodi che rappresentano classi e nodi che rappresentano oggetti individuali Distinguere le relazioni di appartenenza: • Is-a (elemento / istanza di una classe kiwi isa Kiwi) • a-kind-of (sottoclasse Kiwi a-kind-of Frutta) 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 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 ed Ereditarietà Nelle reti semantiche l’ereditarietà permette una forma particolare di inferenza 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 in cui i nodi rappresentino azioni individuali e gli archi rappresentino oggetti aventi ruoli diversi in tali azioni permette di costruire grafi complessi per rappresentare scenari completi Rappresentazione di frasi complesse ed articolate Reti semantiche • 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) Reti semantiche Fare inferenza da una rete semantica prevede la ricerca di cammini particolari (ogni arco attiva cammini soddisfacenti domande diverse) 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à 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 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 In caso di contraddittorietà, è necessario modificare gli algoritmi di ricerca 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 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