home *** CD-ROM | disk | FTP | other *** search
- ╔════════════════════════════════════════════════════════════════════════════╗
- ║ ║
- ║ EXPERT SYSTEMS ║
- ║ ║
- ║ "Give your PC some human intelligence" ║
- ║ ║
- ╚════════════════════════════════════════════════════════════════════════════╝
-
- An Expert System is computer software that can solve real
- world problems requiring logic, decision making and knowledge
- processing. Expert Systems can also categorize, consult, analyze,
- and diagnose. These software tools are useful in areas that
- formerly required a human expert. Expert Systems use deductive
- reasoning to solve problems that are often unstructured, and
- would be impossible to approach with conventional procedural
- computer techniques.
-
- An Expert System Shell is an Expert System minus its
- knowledgebase and domain. It is an Expert System ready to be
- taught the rules of knowledge in a particular field. An
- Expert System Toolkit is something more: a shell plus an organized
- set of software tools to assist in developing it into a full
- expert system. Usually, this includes an editor for building
- the IF-THEN rules that make up the rulebase, a trace facility
- for testing the way the rules interact, hooks to pre-existing
- databases and spreadsheets, and a sophisticated user interface
- that hopefully hides all these tools from the user during
- the run-time consultation.
-
- Shareware is user supported software. It is usually
- distributed free through Bulletin Boards, but can also
- be purchased for a disk-copying fee. Shareware
- authors hope that you will like and use their software
- enough to remit the requested registration fee. (Usually
- $25 to $75). In return, you become a registered user,
- entitled to updates and sometimes a printed manual.
- There are currently about a dozen Shareware Expert Sytem
- Shells on the Boards. I've downloaded and un-archived
- them all, and selected six of the best.
-
- I'm going to give you some information and opinion on each of these
- Shareware Shells: ESIE, Turbo Expert Toolkit, ImpShell, XXXPERT,
- Inference, and Rulemaker.
-
- Each shell was tested with the simple rulebase in Figure 1,
- which will advise you as to whether or not your PC will run the
- new OS/2 operating sytem recently released by IBM for its line
- of PS/2 Personal Computers. The minimum requirements for running
- OS/2 are a 286 or 386 CPU and 1.5 Meg of Memory (2 Meg for OS/2
- with the DOS Compatability Box). The rulebase was first developed
- and tested in Level5, a popular commercial expert system shell, and then
- modified in syntax as required. I'll comment on just how difficult
- it was to adapt the rulebase to each shell, the ease of running the
- consultation thru the provided user interface, and finally if
- each inference engine generated the correct conclusion.
-
-
-
- =============================================================================
- TITLE Will Your PC Run OS/2
-
- 1. Your PC will run OS/2
- 2. Your PC should run OS/2 with more memory
- 3. Your PC will never run OS/2
-
- RULE for Will Run OS/2
- IF Your CPU is a 386
- AND Your PC has 2 Meg of Memory
- THEN Your PC will run OS/2
-
- RULE for Should Run with Modification
- IF Your CPU is a 286
- AND Your PC has under 1.5 Meg of Memory
- THEN Your PC should run OS/2 with more memory
-
- RULE for Will Never Run
- IF Your CPU is a 8086 or 8088
- AND Your PC has under 1 Meg of Memory
- THEN Your PC will never run OS/2
-
-
- Figure 1. Original OS/2 rulebase in LEVEL/5 syntax
- ============================================================================
-
-
- 1. ESIE (Lightwave Consultants, PO Box 290539, Tampa, FL 33617 $75)
-
- ESIE is the acronym for Expert System Inference Engine, and
- that is exactly what it is. ESIE loads in a knowledge base,
- and builds inferences out of the IF-THEN rules, to
- act like an Advisor. It is an Artificial Intelligence expert
- system shell. An infinite multitude of knowledge bases can
- be used by ESIE.
-
- The normal gamut of expert systems (ES) can be built for and
- used by ESIE. Tools such as system configurators, medical
- experts, oil and gas exploration, etc, can all be done in
- ESIE. ESIE is a rule-based backward chaining inference
- engine.
-
- The acronym was also selected because ESIE is easy to use.
- You just type ESIE at the prompt, and a one-screen shareware
- ad appears. You then type the name of the rulebase to load:
- DOCTOR, ANIMAL, or GLASS. ESIE then begins to ask you
- questions from the rulebase. You can only respond YES or
- NO. The consultation will either lead to a conclusion
- or the statement "UNKNOWN". Options are TRACE ON, TRACE OFF,
- GO, or EXIT. When you EXIT, Esie always says "Have a nice
- day". This is an excellent shell with excellent documentation.
- The full page shareware notice on the first screen is
- a problem for business use, as is the "Have a nice day".
- The main problem is the lack of confidence factors. You
- can only answer 100% YES or 100% NO.
-
-
- For ESIE, my OS2 rule base had to be restated (Figure 2).
-
-
-
-
- ============================================================================
- goal is type.computer
- legalanswers are yes no *
-
- if cpu is no
- then type.cpu is old
-
- if cpu is yes
- then type.cpu is new
-
- question cpu is "Does your PC have a 286 or 386 CPU chip?"
-
- if type.cpu is old
- then type.computer is "your PC will never run OS/2!"
-
- if type.cpu is new
- and memory is yes
- then type.computer is "your PC will run OS/2 perfectly!"
-
- if type.cpu is new
- and memory is no
- then type.computer is "your PC should run OS/2 with more memory"
-
- question MEMORY is "Does your PC have 2 meg or more memory?"
-
- answer is "In my expert opinion " type.computer
-
- Figure 2. Rulebase as modified for ESIE
- =========================================================================
- Once this was accomplished, ESIE did a perfect
- job of running the consultation, and could respond
- with the three possible answers appropriately.
- When I turned TRACE ON, ESIE said that the rule
- base had 12 rules(!), three legal questions,
- and two legal answers(!). I've been informed
- that this has been corrected in the latest
- release of this excellent product.
-
- 2. TURBO EXPERT TOOLKIT (Thinking Software, 46-16 65th Place,
- Woodside, N.Y. 11377 $59.95)
- The Turbo Expert System Toolkit is based on confidence
- factors (10 means yes, 0 means no, 5 means maybe, 9 means
- almost definitely, etc.) In addition, with this Toolkit
- you are relieved of the difficult assignment of creating
- an IF-THEN rulebase in a separate ASCII text editor.
- The Turbo Expert Toolkit presents the absolutely
- most direct menu driven approach to generating your own
- rule-based backward chaining expert system. When it is
- complete, your expert system will ask you (or the user of
- your system) a series of questions (QUERIES) to be answered
- on a scale of 0(No) to 10(Yes). At the conclusion of the
- consultation the Expert will draw a graph of the User's
- responses, and finally display the correct solution (GOAL).
- Turbo Expert never says UNKNOWN.
- Large scale expert systems with hundreds of queries
- and goals can be built, since the Knowledgebase is stored on
- its own separate disk. In addition, you can build many
- expert systems: just use a separate disk to store the
- Knowledgebase for each. Turbo Expert comes with extensive
- documentation, an online tutorial and demo, plus a Quick
- Reference Chart to help you put up your first Expert System
- in under one hour.
- The registered version also includes two complete
- Expert Systems ready to consult (The Psychology Expert &
- The Stock Market Expert).
-
- Turbo Expert leads you step by step through the process
- of creating a rulebase. First I pressed 'A' on the
- Main Menu, and was prompted to enter TITLE, AUTHOR and
- DESCRIPTION of my rulebase. Then I pressed 1 and entered
- these three queries:
-
- 1. Does your PC have an 8088 CPU and 640K of memory?
- 2. Does your PC have a 286 or 386 CPU and less than 2 Meg of memory?
- 3. Does your PC have a 286 or 386 CPU and 2 Meg or more of memory?
-
- Next, I pressed 5 on the Main Menu and entered these
- three goals, with numeric links to the appropriate queries.
-
- 1. Your PC is most similiar to the original IBM/PC and will not
- run OS/2. (link with 99 to query 1)
- 2. Your PC will run OS/2 if you install a total of two Megs of
- memory. (link with 99 to query 2)
- 3. Your PC was designed to run OS/2! (link with 99 to query 3).
-
- Building the Turbo Expert Rulebase took all of 10
- minutes, and the resulting consultation was the
- only one with a completely natural use of english
- language for the entire process.
-
- In addition, Turbo Expert is the only one of the
- Shareware Shells which comes with an independent
- run-time module to insulate the user from
- the development process and protect the completed
- expert system.
-
-
- 3. IMPSHELL (Daniel H. Marcellus, Middletown Programming Works,
- Middletown, New York. Public Domain)
-
- The IMP Shell is a powerful expert system development environment for the
- IBM-PC. It contains all the utilities needed to develop and test new expert
- systems, and run them when they are finalized. All functions are menu
- driven and appear in windows. IMP expert systems are rule based, backwards
- chaining systems. They are very fast and not limited by an artificially
- small number of rules.
- The IMP Shell is in the public domain and is used in many educational
- settings. It was developed by Daniel H. Marcellus of the Middletown
- Programming Works, Middletown, New York. It is completely described in the
- book "Expert Systems Programming in Turbo Prolog" which is written by
- Mr. Marcellus, and published by Prentice-Hall, Englewood Cliffs, N.J. (1987).
- An expert system is a program which has captured the expertise of an expert
- in some field and can deploy that expertise with seemingly intelligent
- behavior. For instance there are expert systems to do all these things:
-
- Diagnose medical problems
- Guide the repair of complex equipment
- Give advice about taxes and investments
- Guide chemists in synthesizing desired chemicals
- Interpret telemetry data from satellites
- Control nuclear reactors and electric utility grids
-
- A shell makes it easy to set up an expert system by concentrating on the
- problem at hand rather than on the details of a particular machine
- reasoning system or artificial intelligence language. This shell was
- written entirely in TURBO PROLOG, and the source code is provided,
- although you don't need to understand anything about TURBO PROLOG in order to
- set up an expert system with this software.
- The IMP Shell is menu driven, and the menu allows you to select all the
- activities that are necessary at various stages of the development
- of an expert system, for example:
-
- 1. HELP information
- 2. MAKE rules for a new expert system
- 3. INSPECT the rule set that is loaded
- 4. SAVE the rule set that is loaded
- 5. LOAD an existing rule set
- 6. RUN the presently loaded rule set
- 7. EDIT an existing rule set
- 8. PRINT an existing rule set
- 9. DOS access
- 10. END this program
-
- The IMP Shell uses backward reasoning. This means that it has the proper
- architecture for creating good expert systems for classification
- tasks, for troubleshooting, and, in general, for anything that involves
- choosing among alternatives. It is not the proper architecture for
- applications that require a well defined sequence of steps with
- complex reasoning going into the application of each step. Applications
- such as configuring complex equipment or estimating costs of a project are
- of this sort. They should be implemented with a forward chaining shell.
- I found Impshell more complex than the other Shells presented
- here. The rulebase was difficult to create, and the consultation
- insisted on displaying all the possible conclusions. The
- correct conclusion had a probability of 1, while the other
- two were presented in exactly the same way but with a
- probability of 0. Most users would find this confusing.
- ============================================================================
- imp("s","n","Your PC was designed to run OS/2","pos",
- "the CPU is a 286/386 and the Memory is 2 meg","dummy","dummy",1)
- imp("s","n","Your PC can run OS/2 after a memory upgrade",
- "pos","the CPU is a 286/386 and memory is under 1.5 meg","dummy","dummy",1)
- imp("s","n","Your PC will never run OS/2","pos",
- "the CPU is 8088 and memory is 640k","dummy","dummy",1)
-
- terminal_node("the CPU is a 286/386 and the Memory is 2 meg")
- terminal_node("the CPU is a 286/386 and memory is under 1.5 meg")
- terminal_node("the CPU is 8088 and memory is 640k")
-
- hypothesis_node("Your PC will never run OS/2")
- hypothesis_node("Your PC will run OS/2 after a memory upgrade")
- hypothesis_node("Your PC was designed to run OS/2")
-
- Figure 3. Prolog rule set required for IMPSHELL was more complex then others.
- =============================================================================
-
- 4. XXXPERT (Stephen Thurber, 1926 Labrador Lane, Vienna, VA 22180 $50)
-
- XXXPERT is an expert system development facility which
- includes an editor, file manager and expert systems
- inference engine packaged together in one integrated
- environment.
- You can use XXXPERT to develop expert systems that use rules
- you write in an English language syntax. You can develop
- expert systems that will aid you and others in doing things
- that you would not be able to do consistently as well
- without XXXPERT. XXXPERT allows you to define expert
- knowledge just once then apply it repeatedly time after
- time.
- XXXPERT is a rule-driven system. Rules are simply
- statements of logic that you wish to have applied to the
- area of expertise your rules are to address. These
- statements are written in English and abbreviations.
- The first rule statement in a rules file must be
- on a line by itself (and on the first line of the file).
- This statement must specify the name of the goal for the
- consultations to be performed with the set of accompanying
- rules.
- XXXPERT will need certain information from the user in the
- course of any given consultation session depending on the
- rules being used in that session. The "asks" define how
- XXXPERT should ask the user (consultee) for such
- information. In general you should code an ask for each
- identifier that appears in the left-hand-side of a rule
- (before the THEN) unless it also appears in the right-hand-
- side of another rule. XXXPERT may take a little longer to
- develop an Expert System, as you must develop the rulebase
- first and then the Questions to ask the user, but it is
- a very complete and professional product. The big problem
- is the difficulty of making your consultation use
- ordinary English Language.
- Figure 4 and 5 shows how I had to abbreviate the
- rulebase and related ASKS for XXXPERT. The consultation
- had an unnatural/inhuman quality, especially the statement
- of the conclusion.
-
- =====================================================================
- RUN.OS2
- IF CPU EQ NO THEN RUN.OS2 EQ NEVER
- IF CPU EQ YES THEN CHECKMEM
- IF CHECKMEM EQ YES THEN RUN.OS2 EQ YES
- IF CHECKMEM EQ NO THEN RUN.OS2 EQ WITH.MORE.MEMORY
-
- Figure 4. The uncomfortably abbreviated rulebase required.
- =====================================================================
- CPU
- Does your PC have a 286 or 386 CPU chip?
- CHECKMEM
- Does your PC have 2 meg or more memory?
-
- Figure 5. The related ASKS could use normal English Language.
- ====================================================================
- 5. INFERENCE (George Hageman, PO BOX 11234, Boulder Colorado 80302 PD)
-
- This inference engine is backwards-chaining only and features the
- running of binary files if:
-
- 1) they are antecedents associated with a particuar consequent
- being proved, or
- 2) they are consequents which have been proven true by verify().
- their actual predicate value will be determined by their returned
- result after running.
-
- This inference engine is designed with diagnostics in mind and so
- will probably be best suited for this application. Later revisons
- will include forward-chaining so that the user will have the
- opportunity to give pre-existant conditons, or that these may be
- supplied by the calling process.
-
- See structure design for details of operation, but basically the
- inference reads in all of the compiled information as produced by the
- rule compiler.
-
- It proceeds to attempt to prove each consequent by proving the truth
- or falseness of any antecedent associated with this consequent.
- if any antecedent of a consequent turns out to be a consequent itself, then
- the inference engine will recursively attempt to prove this
- consequent. The process is complete when all of the predicate values
- of the consequents has been determined.
-
- This Shell is seriously lacking in documentation, however complete C
- Source code is supplied.
- The consultation could probably be more natural
- (although all upper-case) with a little refinement of the rulebase.
-
-
- =============================================================================
- ! THIS IS THE KNOWLEDGE BASE FOR THE
- ! OS/2 EXPERT SYSTEM FOR INFERENCE
- !
- IF PC HAS 8088-CPU
- ANDIF PC HAS MEMORY OF 640K
- THEN PC IS OLDPC
- !
- IFNOT PC IS OLDPC
- ANDIF PC HAS MEMORY LESS THAN 1.5 MEG
- THENHYP PC IS WILL-RUN-OS/2-WITH-MEMORY-EXPANSION
- !
- IFNOT PC IS OLDPC
- ANDIF PC HAS MEMORY 2 MEG OR MORE
- THENHYP PC IS WILL-RUN-OS/2-PERFECTLY
- !
- IF PC IS OLDPC
- THENHYP PC IS WILL-NEVER-RUN-OS/2
- !
- IFNOT PC IS WILL-NEVER-RUN-OS/2
- IFNOT PC IS WILL-RUN-OS/2-WITH-MEMORY-EXPANSION
- IFNOT PC IS WILL-RUN-OS/2-PERFECTLY
- THENHYP THIS PC IS NOT WITHIN MY KNOWLEDGE
-
- Figure 6. Rulebase for Inference must be compiled before running
- =============================================================================
-
- 6. RULEMAKER (Samuel H. Smith, no address given, Public Domain)
-
- This unique program allows you to painlessly prepare a set of
- rules for a decision-tree based expert system. It can be fun!
- You teach the expert by repeatedly "Learning" new facts.
- When you have your rules working properly, you can generate
- a stand-alone expert system in Turbo Pascal.
-
- MENU SELECTIONS:
- New Create a new knowledge base
- Read Read a knowledge base from disk
- Write Write the current knowledgebase to a file
- Display Display the rules in the current knowledgebase
- Program Generate a Turbo Pascal Source Program
- Learn Run this knowledgebase and learn new rules
- Quit Exit to DOS
-
- Two complete knowledgebase files are included:
- MECHANIC....diagnose your car
- LANGEXP.....Choose the appropriate computer language
- for your next programming project.
-
- This clever little system was a pleasure to work with.
- The rulebase is generated interactively in "Learn"
- Mode. A very nice feature is that you can always
- go back to your original rulebase and teach it
- more rules. When you are happy with it, you can
- generate a Turbo Pascal Source Program, ready to
- be compiled into a stand alone Expert System.
- ==============================================================================
- OS/2 EXPERT SYSTEM
- Q:Does your PC have an 8088 CPU and 640K of memory?
- YC:Your PC will never run OS/2
- NQ:Does your PC have a 286 or 386 CPU and less than 1.5 Meg Memory?
- YC:Your PC will run OS/2 with a Memory Upgrade
- NQ:Does your PC have a 286 or 386 CPU and over 2 Meg of Memory?
- YC:Your PC will run OS/2 perfectly!
- NC:No conclusion
-
- Figure 7. This compact rulebase was generated by RULEMAKER
- =============================================================================
-
- {Expert program OS2.PAS generated by Rulmaker}
-
- {$I PXG.INC}
-
- begin
- repeat
- writeln;
- writeln('OS/2 EXPERT SYSTEM');
- writeln;
-
- if ask('Does your PC have an 8088 CPU and 640K of memory?') = true then
- conclude('Your PC will never run OS/2')
-
- else {Does your PC have an 8088 CPU and 640K of memory? = false}
- if ask('Does your PC have a 286 or 386 CPU and less than 1.5 Meg Memory?') = true then
- conclude('Your PC will run OS/2 with a Memory Upgrade')
-
- else {Does your PC have a 286 or 386 CPU and less than 1.5 Meg Memory? = false}
- if ask('Does your PC have a 286 or 386 CPU and over 2 Meg of Memory?') = true then
- conclude('Your PC will run OS/2 perfectly!')
-
- else {Does your PC have a 286 or 386 CPU and over 2 Meg of Memory? = false}
- conclude('No conclusion')
-
- until ask('Run again?') = false;
- end.
-
- Figure 8. Rulmaker also generated this Turbo Pascal Program ready to compile.
- ==============================================================================
- All these Expert System Shells, with demo rulebases and
- extensive Manuals-on-disk are available on many Bulletin Boards
- for the cost of a download or from the original authors.
- The original authors deserve our support, and if you like
- and use their system you should remit the registration fee.
- If you can't find the programs or don't have a modem or the time
- to download, from Thinking Software, Inc. 46-16 Sixty-fifth Place,
- Woodside, New York 11377. All six are available for $59.95 with an
- informative catalog with many other AI programs and a
- free demo disk. Ask for the "Expert System Pack".
- *Note: as the AITUTOR was "going to press", we received permission
- to include IBIS, a new and extremely powerful Expert System Shell
- in our Expert System Pack. IBIS is from Intelligence Manuafacturing
- Company, and is an Educational, yet fully functional version, of their
- $450 Professional Version.
-