Jess | |
Developer: | Sandia National Laboratories |
Latest Release Version: | 7.1p2 |
Programming Language: | Java |
Platform: | Java |
License: | Proprietary, public domain |
Jess is a rule engine for the Java computing platform, written in the Java programming language. It was developed by Ernest Friedman-Hill of Sandia National Laboratories.[1] It is a superset of the CLIPS language.[1] It was first written in late 1995.[1] The language provides rule-based programming for the automation of an expert system, and is often termed as an expert system shell.[1] In recent years, intelligent agent systems have also developed, which depend on a similar ability.
Rather than a procedural paradigm, where one program has a loop that is activated only one time, the declarative paradigm used by Jess applies a set of rules to a set of facts continuously by a process named pattern matching. Rules can modify the set of facts, or can execute any Java code. It uses the Rete algorithm[1] to execute rules.
The licensing for Jess is freeware for education and government use, and is proprietary software, needing a license, for commercial use. In contrast, CLIPS, which is the basis and starting code for Jess, is free and open-source software.
Code examples:
(bind ?x 100)
(deffunction max (?a ?b) (if (> ?a ?b) then ?a else ?b))
(deffacts myroom (furniture chair) (furniture table) (furniture bed))
(deftemplate car (slot color) (slot mileage) (slot value))
(assert (car (color red) (mileage 10000) (value 400)))Sample code: