Abstract for ComputerAdvice
Michael Wales - NeedMoreHP@yahoo.com
EEL 5874 - Expert Systems and Knowledge Engineering
This application, ComputerAdvice, is a knowledge-based system used to aid the user in selecting individual components to build a complete computer system out of. The application works by asking the user about what they want to use their computer for and how much they would like to spend on the computer system. The application uses heuristic knowledge about what makes different applications perform their best, and develops a build sheet for a computer system that would be the best fit for the user's budget and needs.
How it works:
ComputerAdvice consists of two separate smaller applications. The first application, JESS, is a commercial off the shelf product (COTS). JESS is an expert system shell written in Java. JESS interprets a script file, to create a database of rules and facts to construct the user's system. JESS is the master of the two smaller applications that make up the entire application, and controls the other application.
The second part of the ComputerAdvice system is the ComputerAdvice program. It is a program written entirely by me in Java. Its most visible purpose is to handle the input and output to the user. It also keeps a database of hardware components used in computer systems, and what components are on the build sheet for the computer that JESS is constructing for the user.
An important part of any computer software is how easy it is for the end user to be able to use the application. I used the strength of Java and Internet applications to greatly enhance the user friendliness of the application. I created a web page that automatically loads a Java applet (a graphical Java application that runs inside of the web-browser) that connects to the ComputerAdvice system. This worked by replacing the ComputerAdvice program with a client-server application, and the JESS part of the ComputerAdvice system worked the same as before. This allows the user to use the application without any knowledge of how expert systems or Java applications work.