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.

  1. Introduzione
  2. 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à.

  3. L'evoluzione dei Sistemi Esperti
  4. 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.

  5. Progetti realizzati in Italia recentemente
  6. 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:

    • Enterprise (su Server)

    • Consumer (su Client)

    • Wireless (su Telefonini)

    • Embedded (Web Services).

    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.asp

    Diagnostica 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:

    • Riduzione della frequenza delle manutenzioni periodiche, mantenendo l'affidabilità dell'esercizio.
    • Riduzione del numero di guasti accidentali critici.
    • Ottimizzazione della frequenza delle revisioni tecniche e miglioramento dell'efficacia.
    • Maggiore consapevolezza sulla qualità degli equipaggiamenti.

     

    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:

    • suggerisce menù adatti a varie situazioni

    • automatizza la "lista della spesa"

    • offre le ricette di cucina

    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:

    • Motore Inferenziale (Plexpert)
    • Basi di Conoscenza (contenenti esperienza in campo culinario)
    • Interfaccia Utente (specifica per dispositivi mobili: MIDP 1.0 - LCDUI)
    • Accesso a Database (remoto via Http, locale via Rms).

    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.html

  7. Architetture
  8. Un 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:

    • Base di Conoscenza di dimensioni illimitate

    • Facile manutenzione della Conoscenza

    • Sicurezza (base di conoscenza non scaricata)

    Gli svantaggi sono:

    • Consultazioni dispendiose

    • Lentezza (trasmissione dati ad ogni interazione)

    • Connettività richiesta

    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:

    • Velocità di interazione con l'utente

    • Connettività non richiesta

    • Economicità di trasmissione dati

    Gli svantaggi sono:

    • Limitate dimensioni della base di conoscenza

    • Difficile manutenzione della conoscenza

    • Divulgazione della conoscenza

  9. Gli Expert Web Services
  10. 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

    • valutazione del rischio

    • gestione automatizzata del portafoglio

    Diagnostica

    • macchinari industriali

    • distributori di benzina

    • elettrodomestici

    • registratori di cassa

    Domotica

    • ottimizzazione consumi elettrici

    • programmazione lavatrici/forni

    Ambiente

    • interpretazione dati meteorologici

    • analisi dati geologici

    Telecomunicazioni

    • instradamento telefonate

    • ottimizzazione della trasmissione wireless

    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:

    • Avvio della consultazione
    • Fornitura di dati noti a priori (dal Client al WebService)

    • Domanda (dal WebService al Client)

    • Risposta (dal Client al WebService)

    • Risultato (dal WebService al Client)

    • Termine consultazione (dal WebService al Client)

     

  11. Plexpert: uno strumento competitivo
  12. 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 è:

    • Fai in Java ciò che si può fare in Java
    • Usa Plexpert solo per aggiungere elaborazione basata su regole
    • Sfruttiamo il più possibile il compilatore Java standard

    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:

    • Domanda (dal WebService al Client)

    <SOAP-ENV:…>

    <PlxQuestion> <type>…….</type>
    <text>…….</text>
    <cod>…….</cod>
    <options>…….</options>
    </PlxQuestion>
    </SOAP-ENV:Envelope>

    <SOAP-ENV:…>

    <PlxReply> <type>…….</type>
    <val>…….</val>
    </PlxReply>
    </SOAP-ENV:Envelope>

    I prodotti maggiormente concorrenti di Plexpert sono Jess e BlazeAdvisor

    Le principali differenze fra Plexpert e Jess sono:

    • Il motore inferenziale di Jess 6.1 occupa 483 Kb, quello di Plexpert 12 Kb (40 volte meno)

    • La Base di Conoscenza di Jess è interpretata, quella di Plexpert è tradotta in sorgente Java ed eseguita direttamente dalla Java Virtual Machine

    • Il linguaggio di rappresentazione della conoscenza di Jess include molti costrutti già presenti in altri paradigmi (ad esempio il pattern matching); Plexpert si limita ad offrire i costrutti non disponibili nelle librerie standard di Java (regole)

    • Jess ha un interprete interattivo, Plexpert è totalmente compilato

    • Jess non ha Interfacce Utente predefinite, Plexpert ne ha svariate (applet, servlet, midlet,…)

    • Jess non è disponibile in versione J2ME, né in versione Web-Service, Plexpert è predisposto per un utilizzo scalabile su molteplici dispositivi (Client, Server, Mobile, Embedded).

    Le differenze fra Plexpert e BlazeAdvisor sono:

    • BlazeAdvisor ha un ambiente di sviluppo interattivo (IDE), Plexpert è un puro compilatore

    • BlazeAdvisor ha un costo molto superiore a Plexpert

    • BlazeAdvisor non è disponibile in versione J2ME, né in versione Applet.

    Il demo di Plexpert è disponibile su:

    http://www.planasia.it/DemoPlex.html

     

  13. Conclusioni
  14. La tecnologia dei Sistemi Esperti, sebbene datata, può essere vantaggiosa a patto di interpretarla con la giusta filosofia:

    • Un Sistema Esperto non è voluminoso (un Motore Inferenziale può occupare pochissima memoria e consumare minime risorse di calcolo)

    • Un Sistema Esperto non è costoso (strumenti di sviluppo affidabili costano meno di 1000 euro o sono addirittura gratuiti)

    • Un Sistema Esperto è al passo coi tempi (Basi di Conoscenza possono avere architettura Wireless o Web Services)

    • Un Sistema Esperto non è difficile (i linguaggi di rappresentazione della conoscenza hanno complessità analoga ad Sql o a Java)

    • Un Sistema Esperto è poco impegnativo (nella maggior parte dei progetti applicativi, la componente "esperta" ha richiesto il 10-20% dell’impegno, il resto è assorbito dallo sviluppo di Database, Interfaccia Utente, Trasmissione Dati,…)

     

    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

  1. Ryan Albuquerque, Paulo Guedes, Carlos Figueira Filho, Jacques Robin, Geber Ramalho "Embedding J2ME-based Inference Engine in Handheld Devices: the KEOPS Case Study". Workshop on Ubiquitous Agents on embedded, wearable, and mobile devices, Bologna, Italy July 16, 2002
  2. A. Mazzetti. "Rule Based Reasoning for Heuristic Dialogue with Small Screen Mobile Devices". AIMS 2003, Artificial Intelligence in Mobile Systems - Ubicomp 2003 - fifth Conference on Ubiquitous Computing, Seattle, USA, October ,2003.
  3. K. Yang, A. Galis, X. Guo, D. Liu "Rule-driven Mobile Intelligent Agents for Real-time Configuration of IP networks". KES2003, Int. conf. on Knowledge-Based Intelligent & Engineering Systems, Oxford, Sept 2003.
  4. A. Mazzetti, L. Bonini "A Knowledge-Based Web Site for Agriculture". KES2002, International. conf. on Knowledge-Based Intelligent & Engineering Systems, Crema, Sept 2002.
  5. S D. Bisci, M. Gallanti, A. Mazzetti "e-Maintenance and Business Intelligence for High Voltage Power Network Componnets". KES2002, International. conf. on Knowledge-Based Intelligent & Engineering Systems, Crema, Sept 2002.
  6. S. Ebeid, R. Fahmy, S. Habib "An Operating and Diagnostic Knowledge-Based System for Wire EDM". KES2003, International. conf. on Knowledge-Based Intelligent & Engineering Systems, Oxford, Sept 2003.
  7. Friedman-Hill, E (2000) JESS, the Java Expert System Shell. http://herzberg.ca.sandia.gov/jess.

CONTATTI

Alessandro Mazzetti Planasia
Via Brin 124
16039, Sestri Levante (GE)
www.planasia.it
mazzetti@planasia.it

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