skip to main content
Skip header Section
Jess in Action: Java Rule-Based SystemsJuly 2003
Publisher:
  • Manning Publications Co.
  • 3 Lewis Street Greenwich, CT
  • United States
ISBN:978-1-930110-89-2
Published:01 July 2003
Pages:
480
Skip Bibliometrics Section
Reflects downloads up to 31 Jan 2025Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

A practical handbook for anyone interested in programming rule-based systems and written by the creator of the popular Java rule engine, Jess, this book is structured around a series of large, fully developed practical examples of rule-based programming in Java. After the topic of rule-based systems is introduced, software developers and architects are shown the Jess rule programming language in an accessible, tutorial style. Demonstrated is how to quickly progress from building freestanding interactive applications to rule-based Web and Enterprise software. Specific issues covered in this process include designing the application, embedding Jess in Java applications, and using a rule engine in the J2EE environment.

Author Biography: Ernest Friedman Hill is a principal member of the technical staff at Sandia National Laboratories. He lives in Gaithersburg,

Cited By

  1. Arshad H, Johansen C and Owe O (2022). Semantic Attribute-Based Access Control, Journal of Systems Architecture: the EUROMICRO Journal, 129:C, Online publication date: 1-Aug-2022.
  2. ACM
    Mokaddem C, Sahraoui H and Syriani E Recommending Model Refactoring Rules from Refactoring Examples Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, (257-266)
  3. Mohammadi Motlagh H, Minaei Bidgoli B and Parvizi Fard A (2018). Design and implementation of a web-based fuzzy expert system for diagnosing depressive disorder, Applied Intelligence, 48:5, (1302-1313), Online publication date: 1-May-2018.
  4. Wu S, Zhang Y and Cao W (2017). Network security assessment using a semantic reasoning and graph based approach, Computers and Electrical Engineering, 64:C, (96-109), Online publication date: 1-Nov-2017.
  5. Thiemjarus S and Pannurat N Accelerometer-based Bed Exit Alarm for Patient Monitoring Proceedings of the 11th International Convention on Rehabilitation Engineering and Assistive Technology, (1-4)
  6. Berri J (2017). Constraint-based context modeling and management for personalized mobile systems, Journal of Web Engineering, 16:1-2, (103-125), Online publication date: 1-Mar-2017.
  7. ACM
    Baki I and Sahraoui H (2016). Multi-Step Learning and Adaptive Search for Learning Complex Model Transformations from Examples, ACM Transactions on Software Engineering and Methodology, 25:3, (1-37), Online publication date: 22-Aug-2016.
  8. Lu W, Qin Y, Qi Q, Zeng W, Zhong Y, Liu X and Jiang X (2016). Selecting a semantic similarity measure for concepts in two different CAD model data ontologies, Advanced Engineering Informatics, 30:3, (449-466), Online publication date: 1-Aug-2016.
  9. Tolosana-Calasanz R, Bañares J, Pham C and Rana O (2016). Resource management for bursty streams on multi-tenancy cloud environments, Future Generation Computer Systems, 55:C, (444-459), Online publication date: 1-Feb-2016.
  10. ACM
    Kambona K, Boix E and De Meuter W Serena Proceedings of the 30th Annual ACM Symposium on Applied Computing, (802-805)
  11. ACM
    Grechanik M and Hossain B Enhancing Performance And Reliability of Rule Management Platforms Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering, (187-198)
  12. Reformat M, Ly C and Musilek P Fuzziness and Ontology in Personalization of Selection Processes in the Semantic Web Proceedings of the 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT) - Volume 01, (237-244)
  13. ACM
    Hamed A, Wu X and Fingar J A Twitter-based smoking cessation recruitment system Proceedings of the 2013 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining, (854-861)
  14. Šerić L, Štula M and Stipaničev D (2013). Engineering of holonic multi agent intelligent forest fire monitoring system, AI Communications, 26:3, (303-316), Online publication date: 1-Jul-2013.
  15. Castro S, Mens K and Moura P LogicObjects Proceedings of the 15th International Symposium on Practical Aspects of Declarative Languages - Volume 7752, (26-42)
  16. Ciobanica C, Tudic F and Slavescu R Designing an Information Gathering Application for a Personalized Travel Recommender System Proceedings of the The 2012 IEEE/WIC/ACM International Joint Conferences on Web Intelligence and Intelligent Agent Technology - Volume 03, (102-106)
  17. Tolosana-Calasanz R, Bañares J, Pham C and Rana O Revenue-Based resource management on shared clouds for heterogenous bursty data streams Proceedings of the 9th international conference on Economics of Grids, Clouds, Systems, and Services, (61-75)
  18. ACM
    Faunes M, Sahraoui H and Boukadoum M Generating model transformation rules from examples using an evolutionary algorithm Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, (250-253)
  19. Rahmani K and Thomson V (2012). Ontology based interface design and control methodology for collaborative product development, Computer-Aided Design, 44:5, (432-444), Online publication date: 1-May-2012.
  20. Podgorelec V and Gradišnik M Combining semantic web technologies and rule-based systems for building advanced medical applications Proceedings of the Second international conference on Advances in New Technologies, Interactive Interfaces and Communicability, (219-229)
  21. Rajcsányi V and Németh Z The chemical machine Proceedings of the 2011 international conference on Parallel Processing, (181-190)
  22. Bădică C, Braubach L and Paschke A Rule-based distributed and agent systems Proceedings of the 5th international conference on Rule-based reasoning, programming, and applications, (3-28)
  23. Zanni-Merk C, Almiron S and Renaud D A multi-agents system for analysis and diagnosis of SMEs Proceedings of the 5th KES international conference on Agent and multi-agent systems: technologies and applications, (103-112)
  24. ACM
    Şensoy M, de Mel G, Vasconcelos W and Norman T Ontological logic programming Proceedings of the International Conference on Web Intelligence, Mining and Semantics, (1-9)
  25. ACM
    Wlodarczyk T, Rong C, O'Connor M and Musen M SWRL-F Proceedings of the International Conference on Web Intelligence, Mining and Semantics, (1-9)
  26. Şensoy M, Vasconcelos W and Norman T Combining semantic web and logic programming for agent reasoning Proceedings of the 10th international conference on Advanced Agent Technology, (428-441)
  27. ACM
    Scholliers C, Hoste L, Signer B and De Meuter W Midas Proceedings of the fifth international conference on Tangible, embedded, and embodied interaction, (49-56)
  28. Wang F, Kurc T, Widener P, Pan T, Kong J, Cooper L, Gutman D, Sharma A, Cholleti S, Kumar V and Saltz J High-performance systems for in silico microscopy imaging studies Proceedings of the 7th international conference on Data integration in the life sciences, (3-18)
  29. Gatt A, Portet F, Reiter E, Hunter J, Mahamood S, Moncur W and Sripada S (2009). From data to text in the Neonatal Intensive Care Unit: Using NLG technology for decision support and information management, AI Communications, 22:3, (153-186), Online publication date: 1-Aug-2009.
  30. Kurc T, Hastings S, Kumar V, Langella S, Sharma A, Pan T, Oster S, Ervin D, Permar J, Narayanan S, Gil Y, Deelman E, Hall M and Saltz J (2009). HPC and Grid Computing for Integrative Biomedical Research, International Journal of High Performance Computing Applications, 23:3, (252-264), Online publication date: 1-Aug-2009.
  31. Varges S, Weng F and Pon-Barry H Interactive question answering and constraint relaxation in spoken dialogue systems Proceedings of the 7th SIGdial Workshop on Discourse and Dialogue, (28-35)
  32. ACM
    Jih W, Huang C and Hsu J Context life cycle management in smart space environments Proceedings of the 3rd workshop on Agent-oriented software engineering challenges for ubiquitous and pervasive computing, (9-14)
  33. Portet F, Reiter E, Gatt A, Hunter J, Sripada S, Freer Y and Sykes C (2009). Automatic generation of textual summaries from neonatal intensive care data, Artificial Intelligence, 173:7-8, (789-816), Online publication date: 1-May-2009.
  34. ACM
    Sneyers J, Schrijvers T and Demoen B (2009). The computational power and complexity of constraint handling rules, ACM Transactions on Programming Languages and Systems, 31:2, (1-42), Online publication date: 1-Feb-2009.
  35. Bobillo F, Delgado M, Gómez-Romero J and López E (2009). A semantic fuzzy expert system for a fuzzy balanced scorecard, Expert Systems with Applications: An International Journal, 36:1, (423-433), Online publication date: 1-Jan-2009.
  36. ACM
    Bardram J and Nørskov N A context-aware patient safety system for the operating room Proceedings of the 10th international conference on Ubiquitous computing, (272-281)
  37. Ahmad R and Rahimi S (2008). ACVisualizer: A visualization tool for APi-calculus, Multiagent and Grid Systems, 4:3, (271-291), Online publication date: 1-Aug-2008.
  38. ACM
    Xu J Rule-based automatic software performance diagnosis and improvement Proceedings of the 7th international workshop on Software and performance, (1-12)
  39. Strauss M and Kipp M ERIC Proceedings of the 7th international joint conference on Autonomous agents and multiagent systems - Volume 1, (97-104)
  40. ACM
    Georgas J and Taylor R Policy-based self-adaptive architectures Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems, (105-112)
  41. Yang S, Zhang J and Chen I (2008). A JESS-enabled context elicitation system for providing context-aware Web services, Expert Systems with Applications: An International Journal, 34:4, (2254-2266), Online publication date: 1-May-2008.
  42. ACM
    Pal P, Webber F, Atighetchi M, Rubel P and Benjamin P Automating cyber-defense management Proceedings of the 2nd workshop on Recent advances on intrusiton-tolerant systems, (1-6)
  43. Belmonte M, Pérez-de-la-Cruz J and Triguero F (2008). Ontologies and agents for a bus fleet management system, Expert Systems with Applications: An International Journal, 34:2, (1351-1365), Online publication date: 1-Feb-2008.
  44. López-Ortega O (2008). Java Fuzzy Kit (JFK), Expert Systems with Applications: An International Journal, 34:1, (796-804), Online publication date: 1-Jan-2008.
  45. Melia M and Pahl C Pedagogical validation of courseware Proceedings of the Second European conference on Technology Enhanced Learning: creating new learning experiences on a global scale, (499-504)
  46. Balachandran B and Enkhsaikhan M Developing multi-agent e-commerce applications with JADE Proceedings of the 11th international conference, KES 2007 and XVII Italian workshop on neural networks conference on Knowledge-based intelligent information and engineering systems: Part III, (941-949)
  47. Matsuda N, Cohen W, Sewall J, Lacerda G and Koedinger K Evaluating a Simulated Student Using Real Students Data for Training and Testing$^{\thanks{The research presented in this paper is supported by National Science Foundation Award No. REC-0537198.}}$ Proceedings of the 11th international conference on User Modeling, (107-116)
  48. Yeh Y and Chang T Playwright agent as adaptive scripts for organization-communication Proceedings of the 12th international conference on Human-computer interaction: applications and services, (816-824)
  49. Daniele L, Costa P and Pires L Towards a rule-based approach for context-aware applications Proceedings of the 13th open European summer school and IFIP TC6.6 conference on Dependable and adaptable networks and services, (33-43)
  50. Mostinckx S, Scholliers C, Philips E, Herzeel C and De Meuter W Fact spaces Proceedings of the 9th international conference on Coordination models and languages, (268-285)
  51. Yang S and Shao N (2007). Enhancing pervasive Web accessibility with rule-based adaptation strategy, Expert Systems with Applications: An International Journal, 32:4, (1154-1167), Online publication date: 1-May-2007.
  52. Rao J, Dimitrov D, Hofmann P and Sadeh N A mixed initiative semantic web framework for process composition Proceedings of the 5th international conference on The Semantic Web, (873-886)
  53. Alechina N, Jago M and Logan B Modal logics for communicating rule-based agents Proceedings of the 2006 conference on ECAI 2006: 17th European Conference on Artificial Intelligence August 29 -- September 1, 2006, Riva del Garda, Italy, (322-326)
  54. Kozlenkov A, Penaloza R, Nigam V, Royer L, Dawelbait G and Schroeder M Prova Proceedings of the 2006 international conference on Current Trends in Database Technology, (899-908)
  55. Giannikis G, Antoniades A and Politis D ArchES Proceedings of the 9th WSEAS International Conference on Systems, (1-7)
  56. Weber S, Chan H, Degenaro L, Diament J, Fokoue-Nkoutche A and Rouvellou I (2005). Fusion, IEEE Transactions on Software Engineering, 31:7, (570-587), Online publication date: 1-Jul-2005.
  57. ACM
    Prada R and Paiva A Synthetic group dynamics in entertainment scenarios Proceedings of the 2005 ACM SIGCHI International Conference on Advances in computer entertainment technology, (3-es)
  58. ACM
    Kern A and Walhorn C Rule support for role-based access control Proceedings of the tenth ACM symposium on Access control models and technologies, (130-138)
  59. ACM
    Gandon F and Sadeh N Context-awareness, privacy and mobile access Proceedings of the 1st French-speaking conference on Mobility and ubiquity computing, (123-130)
  60. Eriksson H (2003). Using JessTab to Integrate Protégé and Jess, IEEE Intelligent Systems, 18:2, (43-50), Online publication date: 1-Mar-2003.
Contributors

Reviews

Kevin Denis Reilly

Hill's book introduces the expert system (ES) shell, Jess, emphasizing Jess-Java integration, which is perhaps the shell's most interesting and powerful feature. Prior exposure to Java, Java Beans, and Enterprise Java Beans is deemed helpful. The Jess system and example code are available to book purchasers and teachers with no charge (under conditions restricting use). Jess nuts-and-bolts are covered first. In isolation, the purpose of these snippets (and associated limitations and restrictions) sometimes appears to be obscure. Fortunately, much is clarified when many of them are seen again in later examples. This fragment-centered discourse can perhaps be defended because it provides core details for a nontrivial system with approximately 200 functions. The overall coverage is orderly and systematic: facts, rules, and then inference mechanisms (a modified Rete algorithm). Java Beans and associated Jess shadow facts are presented early. Rules elucidations include an examination of constraints (literal, variable, connective, predicate, and return value); forward and backward chaining; and managing the agenda. This helps make the under the hood section short and sweet. The heart of the book is a series of four relatively large examples, and a final tract on Java Enterprise systems. The first example uses forward chaining for US tax forms recommendations, and could have come earlier in the book. Development issues, creating facts and rules, and testing incrementally evolve as a plan for orderly code sequencing exploiting modules. The second example takes Jess into backward chaining in a diagnostic system example. Flowcharts guide development and testing. Still, backward chaining in a system built for forward chaining seems inelegant at times. A nice feature is that functions from the prior case study are adapted here and support a Java Swing graphical user interface (GUI), without exiting Jess. Changes are made incrementally, but for some readers, an up-front, adequately explained complete solution could prove more palatable. The third large example focuses on Java in a realistic setting: a hardware-based, C-dependent system, accessible through Java's native interface (JNI), with a featured Java simulator. A diagram aptly depicts heat pump and vent control systems, but additional illustrations would help. Attention falls heavily on Jess's key Java-based extension method, a two-method interface called Userfunction. Though, as noted, the author touts testing from the start, it is not until halfway through a three-chapter treatment that testing is given single-page coverage. The final chapter of the section presents the rules. After this, about 15 pages on fuzzy rules provide a minimal introduction to the topic. In the first chapter of the fourth section, Java Server Pages (JSP) and servlets are evaluated against alternatives, and are elected for a purchase recommendation system: a person buys a DVD player, and the system recommends DVDs. Discussion includes building rule (antecedent) patterns; arguing over ordering them within rules; incrementing order numbers; and cleaning up after user-initiated midstream cancellations. The jess.Rete Java class provides an access point to the Jess library to promote jess.Fact object manipulation in Java, and allows more control than Jess alone. Exception handling and input-output end a round of discussion. Remarks on a Linux setting, makefiles, the Tomcat servlet engine, and small examples make linking the pieces into a final target system proceed smoothly, resulting in an architecture of one Hypertext Markup Language (HTML) file, three JSP files, and three servlet files. The final two chapters cover features of a standardization effort on the javax.rules application programming interface (API), which opens the Java 2 Platform, Enterprise Edition (J2EE) and Java 2 Platform, Standard Edition (J2SE) infrastructures to rule engines. The API helps manage rules and Java engine sessions. Coverage includes transforming Extensible Markup Language (XML) rule representations to Jess and back. In another tract, a remote method invocation (RMI) server is employed to wrap a Jess system for network use. J2EE restrictions lead to a two-part solution: a remote (object) version of the Jess rule engineer, and a factory class to create engine instances. The abbreviated treatment may leave the reader hungry for more. The book's emphasis is primarily on programming techniques. Interleaved generalities about other ES aspects often seem awkward. These are well covered elsewhere, and eliminating them here would provide about 100 pages for additional development of other topics, including fuzzy systems, and balancing object-oriented and rule features. A few misspellings and incomplete sentences seem minor compared to the need for more diagrams and in-code comments. Nonetheless, this is a good book that is comprehensive and yet generally readable. Why Jess should be used instead of Java (and vice versa) is covered. Said to be primarily designed for practitioners, the book could also be used in course work, although it could be a bit intense for a single term. Homework or project suggestions are not given, although it would be easy to supply them. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations