espèrto, sistèma
programma che si prefigge di ottenere risultati, a partire dai dati disponibili, seguendo procedimenti simili a quelli utilizzati da una persona esperta nello stesso campo. Gli esperti spesso utilizzano regole euristiche, suggerite dall'esperienza. Se si definiscono regole di diagnosi, quelle che consentono di analizzare e identificare una situazione, e regole d'azione, quelle che consentono di rispondere in modo efficace a tale situazione, un esperto utilizzerà prima le regole di diagnosi e poi applicherà quelle d'azione. Mentre in un programma classico per elaboratore esistono due livelli (le istruzioni e i dati), nei sistemi esperti si incontrano quattro componenti diversi: i dati relativi al problema concreto da affrontare, l'insieme delle regole euristiche (di diagnosi e d'azione), un sistema in grado di applicare le regole sui dati messi a disposizione, chiamato motore d'inferenze, e, infine, un'interfaccia utente in grado di consentire un uso corretto e semplice del sistema esperto anche da parte di una persona poco pratica di informatica. Il ruolo svolto dalle istruzioni nei programmi classici è qui suddiviso tra le regole e il motore di inferenze; questo è lo stesso quali che siano le informazioni e le regole di cui si dispone e può perciò servire per un numero illimitato di sistemi esperti differenti. Il complesso delle regole utilizzate dal sistema esperto e dei dati relativi al problema di cui si cerca la soluzione viene definito base delle conoscenze del sistema esperto e costituisce la parte che varia tra sistemi diversi che utilizzano lo stesso motore di inferenze. L'interfaccia utente non è essenziale per il funzionamento di un sistema esperto, ma ne facilita enormemente l'impiego; nel migliore dei casi dovrebbe consentire all'utente di comunicare con il sistema esperto nel modo più naturale possibile, cioè con frasi della sua lingua. L'elaborazione di testi in linguaggio umano è uno dei settori indagati dall'intelligenza artificiale, in cui rientrano ovviamente anche i sistemi esperti. L'insieme di interfaccia utente, motore di inferenze e sistema di supporto di una base di conoscenze vuota, ossia ancora priva di informazioni, non costituisce un sistema esperto, ma un ambiente di sviluppo di sistemi esperti; per avere un vero e proprio sistema esperto è necessario inserire informazioni idonee nella base delle conoscenze. Quando si costruisce un sistema esperto occorre la consulenza di un esperto del settore, per disporre delle informazioni indispensabili alla realizzazione dell'applicazione. Spesso accade che la persona esperta di quel dato settore non sia anche esperta in informatica; d'altra parte, un esperto in informatica può non avere le conoscenze necessarie per comprendere l'esperto di un dato settore, abituato a usare il gergo della propria professione. Sarà quindi difficile che i due si spieghino in modo che tutti li capiscano. Per ovviare a questo inconveniente è sorta una nuova professione, quella di ingegnere della conoscenza, destinata a una funzione di intermediazione tra l'informatico propriamente detto, che si limita a programmare, e l'esperto di settore, che può essere completamente ignorante in fatto di programmazione. La costruzione di un sistema esperto richiede solitamente le seguenti fasi: definizione del problema da risolvere; scelta della persona competente destinata a sovraintendere alla costruzione del sistema; definizione del linguaggio tra l'esperto e l'ingegnere della conoscenza; scelta dell'ambiente di sviluppo da utilizzare per costruire il sistema esperto; progettazione della prima versione del sistema esperto; realizzazione di tale versione nell'ambiente di sviluppo prescelto; verifica dei risultati ottenuti dal sistema esperto per alcuni problemi scelti dall'esperto e dall'ingegnere della conoscenza; messa a punto del sistema esperto; ripetizione delle ultime due fasi con diversi altri problemi di verifica, fino a ottenere che il funzionamento del sistema esperto sia, in tutti i casi, corretto e accettabile. Lo sviluppo dei sistemi esperti non deve far temere la scomparsa degli esperti umani, perché questi ultimi sono decisamente più flessibili, adattabili e aperti a nuovi insegnamenti rispetto a un programma e sono capaci di cambiare in modo quasi immediato le regole che utilizzano, in base ai risultati che fornisce loro l'esperienza. In generale, un sistema esperto verrà utilizzato dagli stessi esperti come un prontuario di conoscenze o per verificare la loro soluzione di un determinato problema. Potrà essere utilizzato per quelle discipline in cui scarseggino gli esperti o siano molto costosi o che vengano attuate in luoghi o condizioni in cui non è possibile l'intervento umano. I sistemi esperti sono ormai numerosissimi e riguardano applicazioni quanto mai varie. Qui di seguito se ne fornisce qualche esempio: diagnosi e monitoraggio in medicina; gestione delle prospezioni petrolifere e localizzazione dei giacimenti; controllo di processi chimici o industriali e automatizzazione della produzione; definizione dei piani di circolazione in società di trasporti e gestione dei biglietti; progettazione, configurazione o scelta degli elaboratori in campo informatico.