Ingegneria della Conoscenza Alessandro Mazzetti Definizioni • Informazione – dal latino in-forma = dare forma modellare • Dato – participio passato del verbo dare: stabilito • Conoscenza – dal latino cum-gnoscere = prendere possesso intellettualmente • Esperienza – dal greco peira = prova non teoria Acquisizione della conoscenza: • Elicitazione della Conoscenza – dal latino elicere = tirare fuori, far uscire, cavare, estorcere, riuscire ad ottenere • • • • • Interviste / dialoghi /questionari / osservazioni Modellazione / formalizzazione Verifica di consistenza e significatività Rappresentazione /implementazione prototipo Completamento / manutenzione Ingegnere della Conoscenza (simile all’analista) Tipologie di conoscenza: • • • • • Teorica / empirica Certa / incerta Pubblica / privata Statica /dinamica Profonda /superficiale Tipologie di conoscenza • • • • Implicita / esplicita Procedurale / dichiarativa Globale / locale Ingegnerizzata / prototipizzata Sistema basato sulla Conoscenza • netta separazione fra conoscenza ed algoritmi • conoscenza esplicita • possibilità di utilizzare gli stessi algoritmi di ragionamento su diverse basi di conoscenza • prevale il punto di vista strutturale (achitettura software) Sistema Esperto • risolve un problema che non tutti sanno risolvere • adotta strategie tipiche degli esperti umani (euristica) • emula il ragionamento umano • prevale il punto di vista funzionale Quando adottare Sistemi Basati sulla Conoscenza ? • • • • • • Problema non computazionale Algoritmo non noto Problema non del tutto definito e chiaro Esistono esperti umani L’utenza richiede interfaccia flessibile Problema sufficientemente ampio Domini applicativi • • • • • • • • Diagnostica Configurazione Pianificazione Interfaccia a database Supporto alle decisioni Supporto alle vendite Valutazione di rischio Intrattenimento Demo • Agenzia di viaggi • Guidare la scelta di un pacchetto-vacanze • Accesso intelligente a DB Architettura di un Sistema Basato sulla Conoscenza • • • • Base di Conoscenza Motore Inferenziale Interfaccia Utente Ambito operativo (main) Architettura Base di Conoscenza Motore Inferenziale SE dove VALE mare E come VALE sport E sportMare VALE vela E haiBambini E etaBimbi < 8 anni ALLORA proposta=SailFamily Considera solo le regole che contengono “proposta” nella parte “ALLORA”. SE dove VALE mare E come VALE sport E sportMare VALE vela E haiBambini E etaBimbi > 8 anni ALLORA proposta=LunaRosa Considera le relative condizioni (parte “SE”). Se sono tutte verificate, termina ragionamento. Alla prima non verificata, tronca e passa alla prossima regola. ... Interfaccia Utente Domanda Si No Risultato disegno Tecniche di inferenza • Concatenamento in avanti (forward chaining) se A allora H • Concatenamento all’indietro (backward chaining) se A allora H • Concatenamento misto se A allora H1 se A allora H2 Tipi di legame se A allora H1 se B allora H1 se A allora H1 se H1 allora H2 se A allora H1 se A allora H2 se A allora A Quantificatori • Esistenziale se esiste A allora H A H A • Universale per ogni A il corrispondente H H Strutture in classi CLASSE(potenza, consumo, azione){ autoradio ,ventola ,CLASSE(luci){ CLASSE(anteriori){ abbaglianti ,anabbaglianti ,frecce } ,CLASSE(posteriori){ posizione ,freni ,frecce } ,interne } } SE potenza.luci.posteriori.freni > 25 ALLORA azione.ventola VALE spegnere Interfaccia utente Console Interfaccia utente Applet/Servlet Interfaccia utente Grafica Interfaccia utente Midlet Sistema privo di interfaccia utente Esercitazione pratica • Costruire un piccolo Sistema Esperto • Utilizzare il prodotto Plexpert • Formare gruppi con – un esperto di un dominio – un ingegnere della conoscenza • Installare il sistema – su un sito Internet – su un telefonino Idee per l’esercitazione • • • • • • • • Consigliare un ristorante Consigliare un vino/piatto Prescrivere una medicina Aggiustare la lavatrice/bicicletta/… Indirizzare un corso di vela/snowboard/… Decidere il trucco per una festa Consigliare un’amica/o in crisi sentimentale … (qualsiasi dominio in cui siete esperti)