Base di conoscenza
Una base di conoscenza è un database in cui sono archiviate e organizzate le conoscenze in un particolare ambito o generali. La base di conoscenza è spesso indicata anche con il termine inglese knowledge base o con l'acronimo KB. Le basi di conoscenza sono utilizzate nell'informatica, nello sviluppo dei sistemi esperti e degli algoritmi di intelligenza artificiale. È possibile distinguere le seguenti basi di conoscenza.
- Base di conoscenza di un sistema esperto. La base di conoscenza di un sistema esperto raccoglie e organizza le principali conoscenze in un determinato ambito del sapere. Ad esempio, una base di conoscenza medica, giuridica, tecnica, ecc. Al suo interno è organizzato il sapere dell'esperto umano o di un gruppo di esperti in materia. Le stesse informazioni sono fruibili dagli utenti del sistema esperto.
- Base di conoscenza di un agente logico. La base di conoscenza di un sistema logico raccoglie le principali formule e direttive per consentire all'agente logico di muoversi e prendere decisioni autonome in un ambiente esterno. È la rappresentazione della realtà dell'agente logico Nel corso del tempo l'agente assimila esperienza e, tramite un processo di inferenza, può modificare il contenuto stesso della base di conoscenza.
Rappresentazione della conoscenza. Nella base di conoscenza i fatti si presentano sotto la forma di formule. La conoscenza può essere introdotta nella base di conoscenza tramite diversi metodi ( metodo dichiarativo, metodo procedurale, rete neurale, ecc. ) ed è espressa mediante un apposito linguaggio composto da simboli, sintassi e semantica. Ad esempio, nelle basi di conoscenza degli anni '70-'80 la conoscenza viene introdotta da due istruzioni primitive: TELL ( inserimento conoscenza ) e ASK ( interrogazione conoscenza ).
La base di conoscenza è utilizzata dal motore inferenziale del sistema esperto o dell'agente razionale, per trovare la soluzione a un problema ( problem solving ) e per trovare nuova conoscenza a partire dalle formule già presenti nella base di conoscenza stessa ( inferenza / apprendimento ).
Tell ( asserzione )
Il comando Tell consente di aggiungere nuove informazioni, formule o fatti alla base di conoscenza. È sostanzialmente un'asserzione che l'utente "racconta" alla base di conoscenza. La base di conoscenza registra le informazioni provenienti dai comandi Tell. Un esempio di comando Tell è il seguente:
TELL ( KB, Persona(Andrea))
In questo esempio il comando TELL afferma che l'oggetto "Andrea" è una persona. L'informazione viene aggiunta alla base di conoscenza ( KB ).
ASK ( query )
Il comando ASK consente all'utente di interrogare la base di conoscenza ( KB ). Le interrogazioni ( domande ) della base di conoscenza sono dette query. Un esempio di comando Tell è il seguente:
ASK ( KB, Persona(Andrea))
In questo esempio il comando ASK chiede alla base di conoscenza ( KB ) se l'oggetto "Andrea" è una persona. La base di conoscenza verifica l'informazione in archivio, precedentemente aggiunta tramite un comando TELL, e restituisce all'utente il risultato True ( vero ).
Monotonicità della base di conoscenza
La base di conoscenza è un sistema logico ed è caratterizzato da monotonicità. Man mano che si inseriscono nella base di conoscenza delle nuove conoscenze ( formule, proposizioni logiche, asserzioni, ecc. ), l'insieme delle conseguenze logiche può soltanto aumentare. Questa caratteristica consente al sistema logico di mantenere immutate le precedenti conclusioni già dedotte, a parità di premesse, quando si aggiunge una nuova informazione nella base di conoscenza.
Ad esempio, se dalla base di conoscenza KB si deduce una conclusione A, l'aggiunta di nuove informazioni può far dedurre una nuova conclusione B ma non invalida la conclusione A. Le conclusioni ( conseguenze logiche ) ottenute applicando le regole di inferenza sono valide in base alle premesse che le generano e sono, pertanto, indipendenti da tutte le altre formule della base di conoscenza.