CLIPS 

(C Language Integrated Production System)

Che cosa è Clips?

Clips è un expert system tool sviluppato dal Software Technology Branch (STB), NASA / Lyndon B. Johnson Space Center. Fin dalla sua prima release del 1986,Clips è stato sottoposto continuamente a raffinamenti e miglioramenti. Attualmente è usato da migliaia di utenti in tutto il mondo.

Caratteristiche principali

Rappresentazione della conoscenza

Clips fornisce un tool integrato per la gestione di un'ampia varietà di tipi di conoscenza mediante il supporto di tre differenti paradigmi di programmazione:

1.Programmazione basata su regole

La programmazione basata su regole consente di rappresentare la conoscenza in modo euristico (basata sull'esperienza). Le regole specificano un insieme di azioni da eseguire in una determinata situazione.

2.Programmazione orientata agli oggetti

La programmazione orientata agli oggetti permette di modellare sistemi complessi sotto forma di componenti modulari che possono essere facilmente riutilizzati in altre applicazioni o per creare ulteriori nuovi componenti. Sono supportate: classi, message handlers, astrazione, incapsulamento, eredità multipla, polimorfismo. Le regole possono fare pattern-matching sia su oggetti che su fatti.

3.Programmazione procedurale

Le possibilità di programmazione procedurale erogate da Clips sono simili a quelle fornite dal C, Pascal, Ada e Lisp.

E' possibile sviluppare software usando solo regole, solo oggetti od una miscela di entrambe le cose.In tal senso Clips è un ottimo tool per la programmazione dei metodi di ricerca classici dell'intelligenza artificiale (sistemi di produzione, alberi di decisione, grafi and/or).

Portabilità

Clips è scritto in C. Questo fatto consente portabilità ed efficienza. Clips è stato installato su molte differenti piattaforme senza che sia stato necessario intervenire sul codice!(PC,Mac,Sun...).Di Clips esistono i sorgenti, pubblici, che possono venire modificati e/o adattati per venire incontro a specifiche necessità.

Integrazione con altri ambienti ed Estensibilità

Clips può venire incorporato in altri programmi scritti in modo procedurale; può cioè venire invocato come se fosse una subroutine. Quindi, oltre ad essere usato come ambiente stand-alone, Clips può essere chiamato da un linguaggio procedurale, eseguire le sue funzioni, e poi ritornare il controllo al programma chiamante. Viceversa, codice procedurale può essere definito sotto forma di funzioni esterne chiamabili da Clips. Quando il codice esterno completa l'esecuzione, il controllo ritorna a Clips.

Sviluppo interattivo

La versione standard di Clips fornisce un ambiente di sviluppo interattivo, orientato al testo; sono inclusi:

In particolare è stato sviluppato un ambiente fornito di menu pull-down,editor integrato e supporto per le finestre multiple per i seguenti ambienti: Verifica e Validazione

Clips incorpora un certo numero di caratteristiche adatte a supportare la verifica e la validazione di sistemi esperti; in particolare:

Documentazione estesa

Clips è dotato di un tutorial (User's Guide), di un manuale di riferimento (Basic Prog. Vol.I),di un manuale per la programmazione avanzata (Advanced Prog. Vol.II), di un manuale all'uso delle interfacce utente per vari ambienti (Interfaces Vol.III). Tutti i manuali sono scritti in inglese.

Storia di Clips

Le origini di Clips risalgono al 1984 presso il centro spaziale statunitense Lyndon B. Johnson della NASA.In quel momento, la Sezione Intelligenza Artificiale AIS aveva sviluppato una dozzina di prototipi di applicazioni per la produzione di sistemi esperti, impiegando lo stato dell'arte sia hardware che software. Comunque, nonostante fosse ormai ampiamente stata dimostrata l'utilità dei sistemi esperti, poche di queste applicazioni furono impiegate in pratica. Questo fallimento nel produrre tecnologia basata su sistemi esperti compatibile con le specifiche della NASA fu attribuito all'uso del lisp come linguaggio base per quasi tutti i tools di sviluppo prodotti fino a quell'epoca.Tre problemi ostacolarono l'impiego di sistemi per la produzione di sistemi esperti basati sul lisp alla NASA:

L' AIS capì che l'uso di un linguaggio tradizionale come il C avrebbe eliminato o fortemente ridotto questi problemi. Peraltro in quell'epoca alcune software house stavano iniziando a convertire i propri tools di sviluppo in linguaggio C, ma il prezzo di tali strumenti era veramente alto. Così si decise di sviluppare in proprio un ambiente adatto.La versione prototipale di Clips è stata sviluppata nella primavera del 1985 in due mesi. Un anno di sviluppo e un sistematico uso all'interno del gruppo hanno portato alla prima versione rilasciata all'esterno della NASA, la versione 3.0, nell'estate del 1986. Originariamente, l'unico paradigma per la rappresentazione della conoscenza era basato su regole ed un motore di inferenza forward chainer. L'algoritmo centrale era ed è ancora il RETE .E' dalla versione 5.0 che disponiamo di due nuovi paradigmi aggiuntivi: L'estensione del linguaggio fornita per la programmazione orientata agli oggetti viene detta Clips Object Oriented Language (COOL).Clips (oggi alla versione 6.1) è attualmente impiegato con successo da molte organizzazioni, in particolare presso tutti i dipartimenti della NASA, in alcuni settori militari, in molti uffici federali, università, compagnie private. Ufficialmente rilasciato a più di 4.000 utenti al giugno del 1993, deve avere conosciuto una diffusione notevole in tempi recenti grazie ad Internet.

Torna al sommario Successiva