16. Problemi di rappresentazione della conoscenza
Federico CalòLa conoscenza di base di una KB consente all'agente di agire in maniera utile attraverso le osservazioni. Quest'ultime sono costituite da informazioni ricevute online dagli utenti, da sensori o da altre risorse di conoscenza. Vi sono casi in cui le osservazioni sono incluse nella base di conoscenza, mentre in altri casi sono separate.
Non sempre gli utenti dicono ciò che è vero e ciò che non lo è. Vi sono diversi motivi, tra i quali non sanno ciò che è rilevante e non conoscono il vocabolario da usare. Questi problemi possono però essere risolti attraverso un'ontologia che specifica il significato dei simboli e un'interfaccia utente grafica per facilitare l'utente. Anche i sensori passivi sono in grado di fornire osservazioni dirette, mentre i sensori attivi necessitano di essere interrogati per un compito.
Un modo semplice per acquisire informazioni da un utente consiste nell'incorporare le sue informazioni attraverso un meccanismo denominato ask-to-user nella fase di prova top-down. Un atomo è definito askable se in fase di esecuzione l'utente può conoscere il valore di verità. La procedura di dimostrazione top down, quando seleziona un atomo da dimostrare, può utilizzare una clausola nella base di conoscenza per dimostrarlo oppure, se l'atomo è interrogabile, può chiedere all'utente se esso è vero o meno.
L'utente viene quindi interrogato su atomi rilevanti attraverso le query. Ci sono due classi di atomi che possono essere selezionati:
- atomi per i quali non ci si aspetta che l'utente conosca la risposta
- atomi askable per i quali l'utente non ha già fornito una risposta, in questo caso la risposta dovrebbe essere chiesta all'utente e registrata
Invece di rispondere alle domande, a volte è preferibile che un utente sia in grado di specificare che sta accadendo qualcosa di strano o insolito. Dato che un utente ha specificato tutto ciò che è eccezionale, un agente può spesso dedurre qualcosa dalla mancanza di conoscenza. La normalità sarà un valore predefinito che può essere sovrascritto con informazioni eccezionali.
L'uso esplicito della semantica consente di spiegare e di effettuare il debugging della base di conoscenza. Per rendere un sistema utilizzabile dalle persone, il sistema non può limitarsi a dare una risposta e aspettarsi che l'utente ci creda. Vi sono tre tipi di domande per interrogare la base di conoscenza e ottenere una spiegazione:
- How: viene utilizzata per spiegare come è stata dimostrata una risposta
- Why: viene utilizzata per chiedere al sistema perchè sta ponendo una domanda all'utente
- whynot: viene utilizzata per chiedere perché un atomo non è stato dimostrato
La domanda how può essere posta dall'utente al sistema per chiedere spiegazioni di come è stata dimostrata una risposta. In questo caso il sistema fornisce la clausola definita utilizzata per dedurre la risposta. Per ogni atomo nel corpo della proposizione definita, l'utente può chiedere come il sistema ha dimostrato quell'atomo. Inoltre l'utente può rispondere a una domanda del sistema tramite la domanda why per conoscere la regola che ha prodotto la domanda.
La spiegazione del sistema dimostra come un atomo è stato dimostrato. Se c'è una prova per g, allora g è una clausola atomica o una regola tale che ogni è stata provata. Se il sistema ha provato g e l'utente chiede come, il sistema può visualizzare la clausola che è stata usata per provare g. Se la clausola è una regola, l'utente può chiedere how i per ricevere la regola usata per provare . Utilizzando questa tecnica ricorsivamente, l'utente può esplorare g come è stato dimostrato.
Debug della conoscenza
Le basi di conoscenza possono contenere errori e omissioni. Gli esperti di dominio e gli ingegneri della conoscenza devono essere in grado di eseguire il debug di una base di conoscenza e aggiungere conoscenza. Nei sistemi basati sulla conoscenza, il debugging è difficile perché gli esperti del dominio e gli utenti che hanno la conoscenza del dominio necessaria per rilevare un bug non necessariamente sanno nulla del funzionamento interno del sistema, né lo desiderano. Gli strumenti di debug standard, come fornire tracce dell'esecuzione, sono inappropriati perché richiedono una conoscenza del meccanismo con cui è stata prodotta la risposta.
Il debugging a livello di conoscenza è il processo di ricerca di errori nelle basi di conoscenza con riferimento solo al significato dei simboli e a ciò che è vero nel mondo. Uno degli obiettivi della costruzione di sistemi basati sulla conoscenza utilizzabili da una serie di esperti di dominio è che una discussione sulla correttezza di una base di conoscenza dovrebbe essere una discussione sul dominio della conoscenza. Si possono individuare 4 tipi di errori non sintattici che possono sorgere nei sistemi basati su regole:
- Viene prodotta una risposta errata in seguito a una derivazione errata su un atomo falso nell'interpretazione
- Una risposta che non è stata prodotta a causa di una dimostrazione fallimentare su un atomo che avrebbe dovuto aver successo
- Il programma entra in un ciclo infinito
- Il sistema pone domande irrilevanti
Quando si verifica una risposta errata da parte del sistema, si dice che si è verificato l'errore falso-positivo. Questo si verifica quando nella dimostrazione è stata utilizzata una clausola definita errata. Supponiamo che ci sia un atomo g che era previsto falso nell'interpretazione. Ci sarà quindi una regola nella base di conoscenza che verrà utilizzata per provare g. Ciò porta a pensare a due sole possibilità:
- una delle è falsa all'interno dell'implementazione
- tutte le sono vere all'interno dell'interpretazione e quindi la clausola è incorretta
Quando non riceviamo una risposta appropriata, ci troviamo difronte a un errore falso negativo e si verifica quando un atomo g è vero nel dominio, ma non è una conseguenza logica della base di conoscenza. Una risposta appropriata non viene prodotta solo se dalla base di conoscenza mancano una o più clausole definite. Conoscendo l'interpretazione prevista dei simboli e conoscendo quali interrogazioni dovrebbero avere successo un esperto di dominio può eseguire il debug di una risposta mancante.