Jess (informatica)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]