Articolo pubblicato sulla Rivista "Intelligenza Artificiale"
Anno 1 - N. 3 - Settembre 2004
SOMMARIO/ ABSTRACT
In questo articolo viene presentata l’evoluzione dei Sistemi Esperti e vengono illustrati alcuni progetti recenti italiani il cui lato interessante è soprattutto la piattaforma applicativa. Si tratta infatti di applicazioni configurate come Web Services e come soluzioni Mobile. Vengono illustrate le problematiche architetturali dei Sistemi Basati sulla Conoscenza distribuiti nella rete. Viene infine presentato uno strumento di sviluppo italiano particolarmente conforme alle tecnologie più attuali.
This paper presents the evolution of Expert Systems and describes some recent Italian applications. The most interesting aspect of these projects is the application platform, which is Web Services and Mobile Solutions. Architectural issues are shown, focusing on network distributed Knowledge Based Systems. Finally an Italian development tool is described, whose interest is compliance with the most recent technologies.
Parole chiave: Sistemi Esperti, Regole, Ragionamento, Java, Web, Wireless, Mobile.
Forse può sembrare anacronistico parlare di Sistemi Esperti, considerando che questo termine è caduto in disuso da una decina di anni.
Vale comunque la pena di illustrare progetti e prodotti realizzati con questa tecnologia, soprattutto per evidenziare una tendenza: anche i Sistemi Esperti seguono l’evoluzione tecnologica e si adeguano alle piattaforme attuali. Li troviamo infatti inseriti in applicazioni web, nei dispositivi mobili (telefonini e palmari) e nei componenti embedded dotati di connettività.
L’esperienza di chi ha lavorato nel mondo applicativo (non accademico) ha confermato che in quest’ultima decina d’anni non ci sono state significative evoluzioni dei Motori Inferenziali né dei Linguaggi di Rappresentazione della Conoscenza. I limiti dei Sistemi Esperti non sono stati superati e questa tecnologia è oggi considerata di nicchia.
È invece cambiato l’aspetto applicativo: è finita l’era del Sistema Esperto inteso come "applicazione". Oggi il sistema esperto viene interpretato come la "ciliegina sulla torta", vale a dire un oggetto piccolo ma pregiato che viene istanziato da un’applicazione ospite per lo svolgimento di un’elaborazione di particolare complessità logica.
In questo contesto prevalgono le architetture in cui i Sistemi Esperti sono snelli, economici e soprattutto integrabili nelle tecnologie e piattaforme attuali. È quindi fondamentale che il linguaggio di rappresentazione della conoscenza sia il più possibile conforme al linguaggio dell’applicazione ospite, per consentire una agevole interazione fra gli oggetti (dati/metodi) applicativi e gli oggetti "esperti".
È altresì fondamentale che le competenze richieste per lo sviluppo di una "classe esperta" non siano troppo specialistiche e siano facilmente acquisibili da programmatori di esperienza medio/bassa.
Lo strumento Plexpert
Plexpert è uno strumento per la costruzione di "Classi di Ragionamento" basate su Regole. Plexpert consente la realizzazione rapida di Basi di Conoscenza efficienti, flessibili ed affidabili. È adatto per applicazioni di: supporto alle decisioni, diagnostica, configurazione, pianificazione, interfaccia utente, intrattenimento, altro...
Grazie alle sue doti di scalabilità è possibile realizzare applicazioni in diverse architetture:
Plexpert è realizzato in tecnologia Java ed è uno strumento a basso costo concepito per un utilizzo integrato all’interno di progetti di più ampie dimensioni. L'utente di Plexpert è il programmatore Java che deve realizzare una classe la cui logica sia complessa ed articolata.
Ottimizzazione dei fertilizzanti per Agronomi
Il sito
http://www.phytogate.it è un portale per gli agronomi, che offre vari servizi: bollettino agrario, database dei fertilizzanti, servizio di analisi del terreno,… Fra questi servizi sono presenti due Sistemi Esperti realizzati con Plexpert: "Sepic" per la pianificazione della concimazione e "Secan" per la diagnostica fogliare delle carenze nutrizionali.Durante la diagnosi il sistema conduce un dialogo interattivo con l’utente per la focalizzazione della problematica. Il risultato è una lista di possibili interventi di fertilizzazione con vari criteri di preferenza.

Fig.1 – La consultazione diagnostica con l’agronomo
Il ragionamento è basato su circa 100 regole ed è di tipo "backward chaining", con un’interazione ad alto contenuto grafico e con forte dinamismo (muovendo il cursore si alternano le immagini). Questa fase della consultazione è interamente eseguita sulla piattaforma client, mediante la tecnologia Applet. Successivamente viene attivato un collegamento col server per l’interrogazione del database centrale dei fertilizzanti e per il confezionamento della pagina ASP di visualizzazione dei risultati. Questo è un tipico esempio di applicazione in cui convivono due mondi in apparente antitesi: Java e Microsoft.ASP.
Phytogate è on-line dall’inizio del 2001 e vanta a tutt’oggi svariate centinaia di abbonati (paganti) all’anno, che beneficiano dei vari servizi offerti, fra cui i Sistemi Esperti Sepic e Secan. La versione demo di Secan è disponibile su:
http://www.phytogate.it/demosecan/newcons.aspDiagnostica delle reti elettriche
È stata realizzata per CESI / ENEL-TERNA un’applicazione Plexpert di notevoli dimensioni per la manutenzione delle reti e stazioni elettriche ad alta tensione. L’applicazione si chiama MBI (Maintenance Business Intelligence) e dal 2002 è operativa su Intranet, sia in versione Servlet che Applet.
MBI è integrato col sistema informativo aziendale (SAP) per scambiare i dati sullo stato della rete elettrica utilizzando un database d’appoggio Oracle. Il modulo diagnostico è realizzato con Plexpert e consta di 2382 regole, distribuite su 25 basi di conoscenza.
L’approccio diagnostico è basato sul concetto di:
misura à anomalia à provvedimento
Un tipico esempio è:
SE rigidita_dielettrica_dell_olio < 24
ALLORA anomalia = basso_isolamento
SE anomalia = basso_isolamento
ALLORA provvedimento = fare_test_gascromatografico
Il ragionamento diagnostico prende in considerazione anche la relazione gerarchica fra provvedimenti (ad esempio, sostituire la pompa comprende anche cambiare l’olio) e la differibilità dei provvedimenti, mettendo in risalto quelli urgenti.

Fig.2 – L’architettura del sistema MBI (CESI/ENEL)
Il progetto MBI è iniziato nel 2000 ed è attualmente utilizzato nell’ambito delle procedure aziendali di manutenzione delle stazioni e reti elettriche. Gli utenti di MBI sono oggi oltre un centinaio, distribuiti nel territorio nazionale. Il Sistema Esperto diagnostico viene lanciato in modalità batch tutte le notti dal 2002 su migliaia di esemplari e viene utilizzato interattivamente dagli utenti con una frequenza media giornaliera: il numero di sessioni diagnostiche a tutt’oggi effettuate è dell’ordine di centomila.
I benefici misurati sono stati:
Ricette di cucina su telefonino
È stata realizzata per SIEMENS-Mobile un'applicazione di Plexpert in versione Midlet (vincitrice del primo premio "miglior applicazione" al concorso per telefonino Siemens M50). L'applicazione si chiama "Ricettexpert" ed è un "consulente culinario" su dispositivo mobile per cucinare con successo e agevolare la spesa al supermarket.
Svolge le seguenti funzioni:
L'applicazione contiene 125 piatti le cui ricette sono memorizzate su un server e sono caricate via GPRS (Http). Gli ingredienti occupano mediamente 300 caratteri, le ricette 800, quindi il costo di scaricamento è inferiore al mezzo centesimo di euro (10 lire). Le ricette scelte possono essere memorizzate localmente nel telefonino, per consentirne la visualizzazione anche in assenza di campo (e per risparmiare sulla connessione).
La costruzione del menù avviene attraverso un dialogo mirato a "capire" la situazione dell'utente (che deve organizzare una cena fra amici, oppure un pranzo domenicale, un pasto veloce,...). In questa fase il sistema effettua un ragionamento esperto basato su 465 regole frammentate in 25 Basi di Conoscenza, tutte residenti nel telefonino stesso.

Fig.3 – L’applicazione "Ricettexpert" per SIEMENS
Il sistema presenta solo i piatti adatti alla situazione (esempio ostriche a Capodanno, carbonara fra amici,...) e tiene in considerazione la stagione, accedendo al calendario del telefonino (in estate vengono proposti piatti diversi da quelli invernali).
Il ragionamento è orientato alla ricerca euristica delle soluzioni ottimali, ad esempio, se l'utente ha meno di mezz'ora di tempo per cucinare, il sistema approfondisce l’analisi ed indaga sulla possibilità di cucinare il giorno prima, preparando piatti che si possono conservare come lasagne, torte,...
L'architettura software dell'applicazione è rigorosa:
L'applicazione presenta doti di scalabilità, infatti può essere configurata anche come Applet o Servlet.
La funzione "invia ordine al supermarket" consentirà all'utente di effettuare concretamente un'ordinazione, beneficiando di un duplice vantaggio: da un lato snellire la fase di spesa, dall'altro lato garantirsi gli ingredienti necessari.
È attualmente in fase di valutazione il deploy dell’applicazione sia sui portali dei gestori telefonici (settore consumer), sia sui siti di e-commerce delle catene di distribuzione alimentari (settore business).
Un emulatore di "Ricettexpert" in versione Applet è disponibile su:
http://www.planasia.it/Prototipi/Ricette/ProvaRicette2.htmlUn Sistema Esperto in un ambiente distribuito può essere configurato in due architetture possibili: server-centered e client-centered.
Sistema Esperto Server-centered
Nel caso di Sistema Esperto lato server, l'applicazione è una Servlet. Il motore inferenziale deve supportare il ragionamento multitask e l’interfaccia utente deve essere espressa in WML (o HTML). Il lato client non necessita di alcuno specifico software applicativo: è sufficiente un generico Browser (Web o Wap). La comunicazione fra server e client è effettuata (e pagata) ad ogni interazione.
I vantaggi di questo approccio sono:
Gli svantaggi sono:

Fig.4 – Un Sistema Esperto "server-centered"
Sistema Esperto Client-centered
Nel caso di Sistema Esperto lato client, l'applicazione è configurata come una Midlet (o Applet) e deve essere scaricata nel dispositivo per poter essere eseguita (nel caso delle Midlet lo scaricamento può essere via "OTA - Over The Air", non sempre agevole).

Fig.5 – Un Sistema Esperto "client-centered"
In questo caso l'aggiornamento della conoscenza può essere poco pratico, perché richiede un nuovo scaricamento esplicito. La comunicazione fra server e client è ridotta al minimo ed effettuata solo per il recupero di dati grezzi strettamente necessari. La maggior parte dell'interazione con l'utente può avvenire senza alcuna connettività.
Il motore inferenziale deve essere particolarmente snello ed efficiente e la conoscenza deve essere compilata e compressa. È necessario sfatare un mito: i motori inferenziali non sono affatto pesanti, se opportunamente ottimizzati, quindi possono tranquillamente essere installati anche su dispositivi di ridotte capacità (il motore inferenziale di Plexpert occupa 12 Kb)
I vantaggi di questo approccio sono:
Gli svantaggi sono:
L’ultima frontiera delle applicazioni informatiche è la tecnologia dei "Web Services", caratterizzati dal fatto che il server non interagisce con una persona (via Browser), ma è in contatto con un automatismo. In questo approccio viene meno la necessità di trasmettere immagini e di impaginare l’output, ma diventa necessario strutturare il dialogo fra server e client secondo protocolli formali (ad esempio Xml / Soap).

Fig.6 – Scenari per i Web Services
La tecnologia dei web services consente la realizzazione di applicazioni embedded con connettività; nel caso di Sistemi Esperti, parleremo di "Expert Web Services". Gli Expert Web Services trovano numerose applicazioni in questi campi:
Finanza
Diagnostica
Domotica
Ambiente
Telecomunicazioni
La caratteristica principale di un Expert Web Service è la facoltà di condurre un dialogo macchina-macchina, secondo uno schema che può essere così formalizzato:

Fig.7 – Dialogo fra macchina-esperta e
macchina-utente
La comunicazione fra un client ed un Expert Web Service si basa dunque sui seguenti costrutti:
Plexpert è nato dal principio ispiratore del Sistema Esperto "non invasivo", in altre parole non pretende di fare in modo diverso le cose tradizionali. La filosofia base di Plexpert è:
Plexpert supporta regole in sintassi pseudo naturale (esempio: "SE_ESISTE un_automobile rossa ALLORA comprala") senza limiti di numero, dimensione e complessità. Il ragionamento è sia in avanti che all'indietro (forward + backward chaining), con capacità evocative, cioè con gestione di un’agenda delle regole parzialmente verificate da valutare a bassa priorità. La strategia di ragionamento è mista: oltre alle regole, vengono considerati metodi procedurali ed interazioni con l'utente con spiegazione e giustificazione del ragionamento fatto a vari livelli di dettaglio.
Il Motore Inferenziale effettua un ragionamento euristico in cui i dati mancanti vengono cercati solo al momento del bisogno, con possibilità di ragionamento non-monotono (esempio: se X allora ricalcola Y). È supportata sia la logica proposizionale (se-allora) che la logica dei predicati (esempio: per ogni X che vale Y il corrispondente Z vale K), mettendo a disposizione i Quantificatori Esistenziali (esempio: se esiste almeno un X allora Y) ed i Quantificatori Universali (esempio: se tutti gli X soddisfano Y allora Z).
Plexpert supporta la piena integrazione bidirezionale fra regole e metodi-Java (esempio: se X vale funzione_Y allora Z uguale metodo_K con parametro P). Le variabili di Plexpert sono tipizzate con severo controllo di consistenza (interi, reali, booleani e simbolici) e sono disponibili strutture dati complesse, con gerarchia di Classi.
L'architettura di un'applicazione Plexpert è modulare e scalabile: motore inferenziale, base di conoscenza, interfaccia utente, applicazione ospite. La dimensione del codice è estremamente ridotta: 12 Kb di motore inferenziale, 6 Kb di interfaccia utente, poche decine di Kb per la base di conoscenza. Un'applicazione con circa 500 regole e 200 variabili occupa mediamente 40 Kb.
La Base di Conoscenza subisce due passaggi: una precompilazione, in cui viene trasformata in codice Java sorgente e successivamente una compilazione col compilatore Java standard. La Conoscenza risulta quindi codificata e questo consente un’elevata efficienza di esecuzione (il benchmark in versione Applet esegue 10000 regole in 0,2 secondi).
Un'applicazione Plexpert non richiede librerie di Runtime nè licenze di deployment. È utilizzabile su qualsiasi piattaforma che supporti la Java Virtual Machine (J2SE, J2EE, J2ME, JWSDP).
Nella versione Expert-Web-Services, Plexpert supporta il formato XML ed il protocollo SOAP basandosi sul framework SAAJ della piattaforma JWSDP. I costrutti più significativi del protocollo di comunicazione di Plexpert sono:
<SOAP-ENV:…>
<SOAP-ENV:…>
I prodotti maggiormente concorrenti di Plexpert sono Jess e BlazeAdvisor
Le principali differenze fra Plexpert e Jess sono:
Le differenze fra Plexpert e BlazeAdvisor sono:
Il demo di Plexpert è disponibile su:
http://www.planasia.it/DemoPlex.html
La tecnologia dei Sistemi Esperti, sebbene datata, può essere vantaggiosa a patto di interpretarla con la giusta filosofia:
Ringraziamenti
Si ringrazia Massimo Gallanti (CESI) per averci permesso di descrivere l’applicazione Mbi. Si ringrazia anche Luca Bonini (Phytoline) per la disponibilità data nella descrizione del sito phytogate.
BIBLIOGRAFIA
CONTATTI
Alessandro Mazzetti
Planasia
Via Brin 124
16039, Sestri Levante (GE)
|
|
Alessandro Mazzetti è un professionista di informatica dal 1982. Laureato in Fisica, attualmente è titolare di Planasia dove svolge attività di consulenza per la progettazione di software innovativo. Professore di "Sistemi Intelligenti II" all'Università dell'Insubria (Varese) e autore di 5 libri (fra cui: "Intelligenza e Vita", Apogeo). E’ vincitore del primo premio al Concorso Java per telefonino Siemens M50 |