Jess (informatica)
Jess (Java Expert System Shell) è un sistema a regole implementato in Java. Utilizzato principalmente a scopo didattico, è un semplice ed intuitivo sistema utilizzato principalmente nell'ambito dell'intelligenza artificiale. Fu realizzato da Ernest J. Friedman-Hill.
Linguaggio
I componenti principali sono:
- i fatti (facts);
- le regole (rules);
- il motore inferenziale (rules engine) o interprete.
I fatti rappresentano l'informazione: essi sono essenzialmente delle assegnazioni attraverso le quali introduciamo conoscenza nel sistema. Per la definizione di un fatto viene utilizzato il comando assert. Ecco un esempio:
(assert(temperatura piano 21.5))
L'elenco di tutti i fatti presenti nella base di conoscenza del sistema possono essere visualizzati attraverso il comando (watch facts).
Le regole sono componenti che possono produrre conoscenza a partire dai fatti. Esse sono composte da due parti, antecedente e conseguente (o LHS, Left Hand Side e RHS, Right Hand Side). L'antecedente è costituito da condizioni che devono essere soddisfatte affinché la regola venga attivata; il conseguente è composto da azioni che vengono svolte dalla regola. Per la definizione delle regole viene utilizzato il comando 'defrule' che ha la seguente struttura:
(defrule nome-regola "commento" <pattern1> ... <patternN> => <funzione1> ... <funzioneN> )
Il motore funziona in questo modo: confronta le condizioni di tutte le regole con tutti i fatti contenuti nella base dei fatti. Per ogni regola le cui condizioni sono soddisfatte, viene eseguita l'azione corrispondente.
Tutto il codice in Jess (strutture di controllo, assegnamenti, chiamate a procedure) prende la forma di una chiamata a funzione. In particolare una chiamata a funzione è una lista: se la testa della lista è il nome di una funzione esistente, la lista è una chiamata a funzione.
Collegamenti esterni
- Sito di Jess, su jessrules.com.