VP-EXPERT PROJECT SOURCE CODE DETAILS
MY VP-EXPERT PROJECT WAS ON CAR CLINICAL DIAGNOSTIC
The following are the source code used with VP-EXPERT 2.1 student edition.
Sample screen output provided - can be viewed but no options to return
To this page is available, please use browser back button to return to this page
The names of the files:
Explains using hyper text and mouse function about references used for the project. This file receives data from About.txt |
|
Diagnose for aircond related problems |
|
Diagnose for battery related problems. It is not logical\practical in anyway. |
|
Diagnose for engine related problems |
|
Coming soon |
|
Execute this as the driver file for the project. |
|
Diagnose for brakes, tyres and clutch related problems |
|
Contains the text details for the About program |
[HOME] [VPEXPERT MAIN]
File name : About.txt |
*ABOUT
This Project information
>> MEMBERS information sheet
>> PURPOSE of this project
>> REFERENCE materials
*MEMBERS
GROUP PROJECT
Project Leader PARK SEUNG JOON (HF970994)
Programming Leader NICHOLAS ADRIAN SUPPIAH (HF9709A5)
Knowledge Engineer 1 SAM LEE CHEAN (HF970956)
Knowledge Engineer 2 POH SOO LENG (HF970959)
Librarian POON CHEE YUEN (HF970942)
[ ABOUT ]
*PURPOSE
ASIA PACIFIC INSTITUTE OF INFORMATION TECHNOLOGY
HIGHER DIPLOMA IN COMPUTER SYSTEMS
ARTIFICIAL INTELLINGENCE
KNOWLEDGE BASED SYSTEMS
INTAKE : FULL TIME SEPTEMBER 1997
LECTURER : MR. VINCENT CHAN
DATE ASSIGNED : 24TH JUNE 1998
DATE DUE : 31ST JULY 1998
EXPERT SYSTEM DOMAIN - CAR DIAGNOSTIC.
[ ABOUT ]
*REFERENCE
Books
-Lyons, Patrick J., 1994, "Applying Expert System Technology
to Business", Intenational Thomson Publishing, USA
-Schultz, Mort, 1994, "What's Wrong with My Car?", Percetakan
Seasons Sdn Bhd, Kuala Lumpur
-Dologite, Dorothy G., 1993, "Developing Knowledge-based
Systems Using VP-Expert", Macmillan Publishing Co., USA
-Prerau, D.S., 1990, "Developing and Managing Expert System:
Proven Techniques for Business and Industry", Addison-
Wesley, USA.
Internet
-FAQ, Commercial Expert System Shells
http://www.edm.hull.ac.uk/material/57353/es_faq6.htm
-Intelligent Systems Research
http://fas.sfu.ca/1/ensc/research/groups/intelligent/
-search engine : infoseek
http://www.infoseek.com/
-search engine : Alta Vista
http://altavista.digital.com/
VPexpert software is a copyright of
-Wordtech Systems Inc, PO Box 1747, Concord,
CA 94520 USA, phone 510-689-1200, or fax 510-689-1263.
[ ABOUT ]
File name : About.kbs |
SAMPLE SCREEN [1] [2] |
!NAME OF EXPERT SYSTEM: INFO ABOUT THIS PROJECT
!THE FILE NAME IS : ABOUT.KBS
! LAST UPDATE ON 7 JULY 1998
ENDOFF;
RUNTIME;
BKCOLOR = 1;
EXECUTE; !ACTIVATE THIS LINE ONLY WHEN THE PROG IS COMPLETE
ACTIONS
GMODE 16
EXIT = NO
MOUSEON
! GCLS
TOPIC = ABOUT !SETS VALUE OF FIRST HYPERTEXT HYPERWORD
LOADFACTS CHINFO
WHILETRUE EXIT = NO THEN END
CHAIN MAIN;
! TMODE;
RUNTIME;
HYPERTEXT TOPIC: 8,5,72,20,ABOUT,14,15;
LBUTTON EXIT: 30,4, 0, 7, RETURN_TO_MAIN_MENU;
WHENEVER 1
IF EXIT = YES
THEN RESET TOPIC;
WHENEVER MOUSEAVAILABLE
IF MOUSEAVAILABLE = YES
THEN MOUSEON;
File name : Air-cond.kbs |
SAMPLE SCREEN [1] |
!NAME OF EXPERT SYSTEM: THE AIR-COND
!THE FILE NAME IS : AIRCOND.KBS
ENDOFF;
RUNTIME;
BKCOLOR = 1;
!****************************************************************************
! --[ACTIONS BLOCK]--
ACTIONS
PRINTOFF
COLOR = 15
FIND PRTCTRL
FIND SOLUTION
LOADFACTS A:\CHINFO
DISPLAY " "
DISPLAY " "
DISPLAY "**************************************************************"
DISPLAY "BASED ON THE ANSWER YOU HAVE GIVEN, WE RECOMMEND :
{#SOLUTION}~"
PRINTOFF
FIND RETURN_MAIN
;
! EXECUTE; MAKE THIS LINE ONLY WHEN PROG IS DONE
! DECISION TABLE - SOLUTION
RULE 1-PRINTER
IF PRINTER = YES
THEN PRTCTRL = ON
DISPLAY " PLEASE TURN ON YOUR PRINTER. PRESS ANY KEY TO CONTINUE.~"
DISPLAY ""
PRINTON
EJECT;
! --[PRINTER STATEMENT BLOCK]--
ASK PRINTER:"DO YOU WISH TO PRINT OUT THE STATEMENTS & RECOMMENDATIONS?";
CHOICES PRINTER :YES ,NO;
RULE 1-1
IF AIR-POWER = NO AND FUSE_OK = YES
THEN SOLUTION = REPLACE_AIR-COND_FUSE
BECAUSE "TO DETERMINE IF THERE IS ELECTRICAL SUPPLY.";
RULE 1-2
IF AIR-POWER = NO AND FUSE_OK = NO
THEN SOLUTION = CHECK_IGNITION_SYSTEM
BECAUSE "TO DETERMINE IF THERE IS ELECTRICAL SUPPLY.";
ASK AIR-POWER:
"IS THERE AIR COND POWER WHEN SWITCHED ON?";
CHOICES AIR-POWER: YES,NO;
ASK FUSE_OK: "OPEN THE FUSE BOX. LOOK FOR THE AIR-CONDITION FUSE.
IS THE FUSE BROKEN ?";
CHOICES FUSE_OK: YES, NO;
RULE 2-1A
IF AIR-POWER = YES AND COOLING = NOT_COOLING_AT_ALL
THEN HEAT = NONE
BECAUSE "THE AIR CONDITION IS NOT ABLE TO COOL MEANS
THAT THERE IS A BREAK IN THE SYSTEM OR THERE
IS A FAULTY HARDWARE.";
RULE 2-1B
IF AIR-POWER = YES AND COOLING = COOLING_INSUFFECIENTLY
THEN HEAT = MID
BECAUSE "THE AIR CONDITION IS NOT ABLE TO COOL MEANS
THAT THERE IS A BREAK IN THE SYSTEM OR THERE
IS A FAULTY HARDWARE.";
RULE 2-1C
IF AIR-POWER = YES AND COOLING = NEITHER AND AIR_CONTROL_OK = NO
THEN SOLUTION = REPLACE_THERMAL_CONTROL_PANEL
BECAUSE "THE CONTROL PANEL MUST HAVE BE ABLE TO
ACTIVATE THE TEMPERATURE.";
RULE 2-2A
IF HEAT = NONE
AND COMPRESSOR_BELT = YES
THEN SOLUTION = REPLACE_COMPRESSOR_BELT
BECAUSE "THE COMPRESSOR BELT RUNS THE COOLING SYSTEM
TO MOVE THE COOLING FLUID.";
RULE 2-2B
IF HEAT = NONE
AND COMPRESSOR_BELT_LOOSE = YES
THEN SOLUTION = TIGHTEN_COMPRESSOR_BELT
BECAUSE "THE COMPRESSOR BELT RUNS THE COOLING SYSTEM
TO MOVE THE COOLING FLUID.";
RULE 2-2C
IF HEAT = NONE OR HEAT = MID
AND COMPRESSOR_BELT_SURFACE = YES
THEN SOLUTION = REPLACE_COMPRESSOR_BELT
BECAUSE "THE COMPRESSOR BELT RUNS THE COOLING SYSTEM
TO MOVE THE COOLING FLUID.";
RULE 2-3
IF HEAT = MID AND HOSE_DAMAGE = YES
THEN SOLUTION = REPLACE_AIR_COND_HOSE;
RULE 2-4
IF HEAT = MID AND HOSE_CONNECTION = NO
THEN SOLUTION = TIGHTEN_THE_HOSE_CONNECTIONS
BECAUSE "THIS WILL DETERMINE INTEGRITY OF THE COOLING SYSTEM.";
RULE 2-5
IF HEAT = MID AND CONDENSER_CLEAN = NO
OR CLOGG_DUCT = YES
THEN SOLUTION = BRUSH_AWAY_DEBRIS
BECAUSE "THIS WILL DETERMINE WHETHER THERE CAN
BE AIR TO COOL THE SYSTEM INTEGRITY OF THE COOLING SYSTEM.";
RULE 2-6
IF HEAT = HIGH AND CONDENSER_LEAK = YES
THEN SOLUTION = CHANGE_THE_CONDENSER;
RULE 2-7A
IF HEAT = NONE AND FAN = NO AND FAN_FUSE_OK = YES
THEN SOLUTION = CHANGE_FAN_FUSE;
RULE 2-7B
IF HEAT = NONE AND FAN = NO AND FAN_FUSE_OK = NO
THEN SOLUTION = REPLACE_INTERIOR_AIR-COND_FAN;
RULE 2-8A
IF HEAT = NONE AND SIGHT_GLASS = CLEAR
THEN SOLUTION = REFILL_REFRIGERANT;
RULE 2-8B
IF HEAT = MID AND SIGHT_GLASS = BUBBLY
THEN SOLUTION = REFILL_REFRIGERANT;
RULE 2-9
IF HEAT = MID OR HEAT = NONE
AND COMPRESSOR_OK = NO
THEN SOLUTION = REPLACE_COMPRESSOR_UNIT
ELSE SOLUTION = CONSULT_MECHANIC;
ASK COOLING:
"CLOSE CAR DOORS AND WINDOWS. LEAVE THE AIR-CONDITION SWITCHED ON
FOR ABOUT 5 MINUTES. HOW IS THE TEMPERATURE INSIDE THE CAR FINALLY ?";
CHOICES COOLING: NOT_COOLING_AT_ALL, COOLING_INSUFFECIENTLY, NEITHER;
ASK AIR_CONTROL_OK: "TEST THE THERMOSTAT CONTROL. IS IT WORKING ?";
CHOICES AIR_CONTROL_OK : YES, NO;
ASK COMPRESSOR_BELT_SURFACE: "CHECK COMPRESSOR BELT, INCLUDING UNDERSIDE.
IS IT GLAZED OR CRACKED ?";
CHOICES COMPRESSOR_BELT_SURFACE: YES, NO;
ASK COMPRESSOR_BELT_LOOSE:
"PRESS THE COMPRESSOR BELT. CAN IT BE MOVED OR SEEMS VERY LOOSE ?";
CHOICES COMPRESSOR_BELT_LOOSE: YES, NO;
ASK COMPRESSOR_BELT: "CHECK COMPRESSOR BELT, IS IT MISSING OR BROKEN ?";
CHOICES COMPRESSOR_BELT: YES, NO;
ASK HOSE_DAMAGE: "INSPECT THE AIR-COND HOSE FOR LEAKS BY FINDING OILY AREAS,
CUTS OR DAMAGE ON THE HOSE. IS THERE ANY LEAK ? ";
CHOICES HOSE_DAMAGE: YES, NO;
ASK HOSE_CONNECTION: "INSPECT THE AIR-CONDITION HOSE CONNECTION. ARE THEY TIGHT ? ";
CHOICES HOSE_CONNECTION: YES, NO;
ASK CONDENSER_CLEAN: "INSPECT THE CONDENSER, INCLUDING ITS FINS. IS IT CLEAN ? ";
CHOICES CONDENSER_CLEAN: YES, NO;
ASK CLOGG_DUCT: "TRACE THE AIR-COND OUTLET DUCT, LOOK FOR ANYTHING PRESSING
ON THE DUCT OR IS STUCK (E.G. DIRT). IS IT CLOGGED ?";
CHOICES CLOGG_DUCT: YES, NO;
ASK CONDENSER_LEAK: "INSPECT THE CONDENSER FINS CLOSELY. IS THERE ANY SIGNS OF OILY SUBSTANCE ? ";
CHOICES CONDENSER_LEAK: YES, NO;
ASK FAN:
"WHILE THE AIR-COND IS RUNNING, INSPECT THE INTERIOR (AIR-COND) FAN.
IS IT TURNING PROPERLY ?";
CHOICES FAN: YES, NO;
ASK FAN_FUSE_OK:
"THERE IS USUALLY A FUSE FOR THE INTERIOR FAN MOTOR, IS THE FUSE BROKEN
OR MATBE THERE IS NO FUSE ?";
CHOICES FAN_FUSE_OK: YES, NO;
ASK SIGHT_GLASS: "WHILE THE AIR-COND IS STILL RUNNING,
INSPECT THE RECEIVER DRYER GLASS. WHAT DOYOU SEE ?";
CHOICES SIGHT_GLASS: CLEAR, BUBBLY;
ASK COMPRESSOR_OK:
"WHILE THE AIR-COND AND ENGINE IS RUNNING.
CHECK THE COMPRESSOR PULLEY, DOES IT TURN
AND GENERATE THE DESIRED VOLTAGE ?";
CHOICES COMPRESSOR_OK: YES, NO;
! RULE TO DISPLAY INFORMATION
RULE DISPLAY1
IF SET_PRINTER <> UNKNOWN
THEN DISPLAY_RESULT = PART1
CLS DISPLAY
"THE RESULT TO THIS PROBLEM IS {#SOLUTION}
PRESS ANY KEY TO CONTINUE ~" CLS DISPLAY"
THIS IS BECAUSE ....
PRESS ANY KEY TO CONTINUE ~" CLS DISPLAY"
THIS IS .....";
! SEE PG 69 OF LYONS
RULE RETURN1
IF TASK_MAIN = CONSULT_AIRCON
THEN RETURN_MAIN = YES
CHAIN MAIN
ELSE RETURN_ESTA = NO;
File name : Battery.kbs |
SAMPLE SCREEN [1] |
!NAME OF EXPERT SYSTEM: THE BATTERY
!THE FILE NAME IS : BATTERY.KBS
ENDOFF;
RUNTIME;
BKCOLOR = 1;
!****************************************************************************
! --[ACTIONS BLOCK]--
ACTIONS
PRINTOFF
COLOR = 15
FIND PRTCTRL
FIND RECO
LOADFACTS A:\CHINFO
DISPLAY " "
DISPLAY " "
DISPLAY "**************************************************************"
DISPLAY "BASED ON THE ANSWER YOU HAVE GIVEN, WE RECOMMEND"
DISPLAY ""
!:{#RECO}"
FIND SOLUTION
DISPLAY "~"
PRINTOFF
FIND RETURN_MAIN;
! --[PRINTER RULES BLOCK]--
RULE 0-PRINTER
IF PRINTER = YES
THEN PRTCTRL = ON
DISPLAY "PLEASE TURN ON YOUR PRINTER. PRESS ANY KEY TO CONTINUE~"
PRINTON;
! --[PRINTER STATEMENT BLOCK]--
ASK PRINTER:"DO YOU WISH TO PRINT OUT THE STATEMENTS & RECOMMENDATIONS?";
CHOICES PRINTER :YES ,NO;
! --[RULES BLOCK]--
RULE 1-1
IF RECO = NO_REPAIR
THEN SOLUTION = OTHER_RELATED_CAR
DISPLAY "SINCE NOTHING TO BE DONE WITH BATTERY PROBLEM"
DISPLAY "I RECOMMEND THAT YOU TRY OTHER CAR SOLUTIONS";
RULE 1-2
IF RECO = PUSH
THEN SOLUTION = UNCHARGEABLE_BATTERY
DISPLAY "TRY OUT PUSH STARTING";
RULE 1-3
IF RECO = BATTERY_FILL
THEN SOLUTION = BATTERY_FLUID
DISPLAY "BATTERY FLUID SHOULD REFILL AT THE MAXIMUM LEVEL";
RULE 1-4
IF RECO = BATTERY_CORRODED
THEN SOLUTION = BATTERY_CORRODED
DISPLAY "WASH YOUR BATTERY TERMINALS";
RULE 1-5
IF RECO = BATTERY_LOOSE_CONNECTION
THEN SOLUTION = LOOSE_CONNECTION
DISPLAY "TIGHTEN THE CLAMP BOLTS BUT DO NOT OVERTIGHT AND REPLACE FIRMLY.";
!RULE 1-6
! IF RECO = BATTERY_STARTER_BAD
! THEN SOLUTION = STARTER
! DISPLAY "STARTER IS BAD ,TRY TO REPLACE A NEW ONE.";
!
RULE 1-7
IF RECO = BATTERY_EXCHANGE
THEN SOLUTION = BATTERY_UNCHARGEABLE
DISPLAY "CHANGE THE BATTERY";
! -----------------------------------------------------------------------
RULE 2-2
IF ENGINE = YES
THEN RECO = NO_REPAIR
BECAUSE "CAR STARTING IS VERY RELATED TO ENGINE AND BATTERY COMPONENT";
RULE 3-1
IF !ENGINE = YES AND
AUTO_MANUAL = MANUAL
THEN RECO = PUSH
BECAUSE "I NEED TO SEE WHETHER YOUR CAR CAN TRY OUT PUSH STARTING";
RULE 4-1
IF !ENGINE = YES AND
BATTERY_CONDITION = BETWEEN OR
BATTERY_CONDITION = MINIMUM
THEN
RECO = BATTERY_FILL
BECAUSE "FLUID LEVEL NOT TO MAXIMUM WILL CAUSE YOUR ENGINE TO RESPOND SLUGGISH";
RULE 5-1
IF !ENGINE = YES AND
BATTERY_CONNECT = CORRODED
THEN RECO = BATTERY_CORRODED
BECAUSE "CORRODED TERMINAL MAY CAUSE YOUR BATTERY TRANSMISSION CORRUPTED";
RULE 5-2
IF !ENGINE = YES AND
BATTERY_CONNECT = LOOSE_CONNECTION
THEN RECO = BATTERY_LOOSE_CONNECTION;
!ULE 6-1
! IF !ENGINE = YES AND
! BATTERY_STARTER = YES
! THEN RECO = BATTERY_STARTER_BAD
! BECAUSE "THE STARTER IS ONE OF THE IMPORTANT COMPONENT TO START YOUR ENGINE";
RULE 7-1
IF !ENGINE = YES AND
BATTERY_CHARGE = NO
THEN BATTERY_CHARGE_2ANSWER = YES
BECAUSE "THE BEST SOLUTION IS CHANGE YOUR BATTERY WITH NEW ON";
RULE 7-11
IF !ENGINE = YES AND
BATTERY_CHARGE = NO AND
BATTERY_CHARGE_2ANSWER = YES
THEN RECO = NO_REPAIR;
RULE 7-2
IF BATTERY_CHARGE = YES
THEN RECO = BATTERY_EXCHANGE;
! --[STATEMENTS BLOCK]--
ASK PRINTER:"DO YOU WANT TO PRINT OUT THE STATEMENT & RECOMMENDATIONS?";
CHOICES PRINTER :YES ,NO;
ASK ENGINE: "CAN YOU START YOUR ENGINE(THE ENGINE TURNING SLOWLY BUT WON'T START)?";
CHOICES ENGINE :YES , NO;
ASK AUTO_MANUAL:"WHAT TRANSMISSION TYPE IS YOUR VEHICLE ?";
CHOICES AUTO_MANUAL : AUTO , MANUAL;
ASK BATTERY_CONDITION :"HOW FULL IS YOUR BATTERY FLUID(IT IS DEPENDING THE REMARK LEVEL)";
CHOICES BATTERY_CONDITION :MAXIMUM , BETWEEN , MINIMUM ;
ASK BATTERY_CONNECT:"CHECK YOUR BATTERY THAT IS MEET THIS PROBLEM OR NOT";
CHOICES BATTERY_CONNECT :CORRODED ,LOOSE_CONNECTION ,NONE_OF_THIS;
ASK BATTERY_CHARGE :"DO YOU HAVE A SPARE BATTERY";
CHOICES BATTERY_CHARGE : YES , NO;
! --[RETURN TO MAIN ONLY IF IT WAS CHAINED FROM MAIN]--
RULE RETURN_MAIN
IF TASK_MAIN = CONSULT_BATTERY
THEN RETURN_MAIN = YES
RESET ALL
PRINTOFF
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES
CHAIN MAIN
ELSE RETURN_MAIN = NO
PRINTOFF;
! --[END OF PROGRAM]--
!***************************************************************************
File name : Engine.kbs |
SAMPLE SCREEN [1] |
!NAME OF EXPERT SYSTEM: THE ENGINE TROUBLE GUIDE
!THE FILE NAME IS : ENGINE.KBS
ENDOFF;
RUNTIME;
BKCOLOR = 1;
!****************************************************************
! --[ACTIONS BLOCK]--
ACTIONS
PRINTOFF
COLOR = 15
FIND PRTCTRL
LOADFACTS A:\CHINFO
FIND SOLUTION
DISPLAY " "
DISPLAY " "
DISPLAY "**************************************************************"
DISPLAY "BASED ON THE ANSWER YOU HAVE GIVEN, WE RECOMMEND :
{#SOLUTION}
{#SOLUTION2}
~"
PRINTOFF
FIND RETURN_MAIN
;
! --[PRINTER RULES BLOCK]--
RULE 1-PRINTER
IF PRINTER = YES
THEN PRTCTRL = ON
DISPLAY "PLEASE TURN ON YOUR PRINTER. PRESS ANY KEY TO CONTINUE~"
PRINTON
EJECT;
! --[PRINTER STATEMENT BLOCK]--
ASK PRINTER:"DO YOU WISH TO PRINT OUT THE STATEMENTS & RECOMMENDATIONS?";
CHOICES PRINTER :YES ,NO;
! --[RULES BLOCK]--
RULE BFIRE
IF BFIRE = YES
THEN RECO = ONE;
RULE CR_PER1
IF CR_PER = SLOW
THEN RECO = TWO;
RULE ACCELERATE
IF ACCELERATE = YES
THEN RECO = THREE;
RULE MPG
IF MPG = YES
THEN RECO = FOUR;
RULE RAIN1
IF SHAKE = SUDDEN AND RAIN = YES
THEN RECO = FIVE;
RULE RAIN2
IF SHAKE = SUDDEN AND RAIN = NO
THEN RECO = THREE;
!STATEMENTS BLOCK
ASK BFIRE : "DOES YOUR CAR BACKFIRE ?";
CHOICES BFIRE : YES,NO;
ASK CR_PER : "IS THE CAR ENGINE PERFORMANCE :... ";
CHOICES CR_PER : SLOW,NORMAL;
ASK ACCELERATE : "DOES THE CAR HAVE SUDDEN DROP IN RPM WHEN ACCELERATING?";
CHOICES ACCELERATE : YES,NO;
ASK MPG : "DOES THE CAR SEEM TO CONSUME MORE PETROL?";
CHOICES MPG : YES,NO;
ASK SHAKE : "DID ROUGH IDLE START SUDDENLY OR PROGRESSIVELY?";
CHOICES SHAKE : SUDDEN,PROGRESS;
ASK RAIN : "DID CONDITION HAPPEN AFTER RAIN ?";
CHOICES RAIN : YES, NO;
!END OF PROGRAM
!***************************************************************************
! *********************
RULE SOL1
IF RECO = ONE
THEN
SOLUTION = IT_IS_CAUSED_BY_A_FAULTY_SPARK
SOLUTION2 = PLUG_OR_A_BAD_CABLE_CONNECTION;
RULE SOL2
IF RECO = TWO
THEN
SOLUTION = CAUSED_BY_EITHER_DIRTY_AIR_FILTER
SOLUTION2 = OR_FAULTY_VALVE_ADJUSTMENT;
RULE SOL3
IF RECO = THREE
THEN
SOLUTION = SEND_CAR_TO_PROPER_MECHANIC
SOLUTION2 = FOR_SERVICING;
RULE SOL4
IF RECO = FOUR
THEN
SOLUTION = ADJUST_AIR_OR_FUEL_RATIO_LOCATED
SOLUTION2 = IN_CARBURETTOR;
RULE SOL5
IF RECO = FIVE
THEN SOLUTION = WET_AIR_FILTER
SOLUTION2 = DRY_FILTER_TO_REGAIN_SMOOTH_IDLE;
RULE SOL6
IF RECO = SIX
THEN SOLUTION = FAULTY_CARBURETTOR_OR_OVERHEATING
SOLUTION2 = NULL;
RULE SOL7
IF RECO = SEVEN
THEN SOLUTION = AIR_OR_FUEL_MIXTURE_NOT_IN_TUNE_OR
SOLUTION2 = WRONG_IDLE_SPEED;
! --[RETURN TO MAIN ONLY IF IT WAS CHAINED FROM MAIN]--
RULE RETURN_MAIN
IF TASK_MAIN = CONSULT_ENGINE
THEN RETURN_MAIN = YES
RESET ALL
PRINTOFF
CHAIN MAIN
ELSE RETURN_MAIN = NO
PRINTOFF;
! --[END OF PROGRAM]--
!***************************************************************************
File name : Hard.kbs |
SAMPLE SCREEN [1] |
!NAME OF EXPERT SYSTEM: THE HARD STARTING ENGINE
!THE FILE NAME IS : HARD.KBS
ENDOFF;
RUNTIME;
BKCOLOR = 1;
!****************************************************************************
! --[ACTIONS BLOCK]--
ACTIONS
COLOR = 15
FIND PRTCTRL
LOADFACTS a:\CHINFO
FIND RECO
DISPLAY " "
DISPLAY " "
DISPLAY "**************************************************************"
DISPLAY "BASED ON THE ANSWER YOU HAVE GIVEN, WE RECOMMEND :
{#RECO}~"
FIND RETURN_MAIN;
! --[PRINTER RULES BLOCK]--
RULE 0-PRINTER
IF PRINTER = YES
THEN PRTCTRL = ON
DISPLAY "PLEASE TURN ON YOUR PRINTER. PRESS ANY KEY TO CONTINUE~"
PRINTON;
! --[PRINTER STATEMENT BLOCK]--
ASK PRINTER:"DO YOU WISH TO PRINT OUT THE STATEMENTS & RECOMMENDATIONS?";
CHOICES PRINTER :YES ,NO;
! --[RULES BLOCK]--
RULE CR_1
IF CRANK = YES
AND CR_PROB = SLOWLY
THEN BATTERY_COND = NOK
BECAUSE "IT IS USUALLY DUE TO A WEAK BATTERY OR A BAD CABLE CONNECTION.";
RULE CR_2
IF CRANK = YES
AND CR_PROB = NORMALLY
THEN FUEL_CHECK = NOK;
RULE FUEL_1
IF FUEL_CHECK = NOK
AND FUEL_LEVEL = YES
THEN FUEL = OK
BECAUSE " IT MAY BE THE PROBLEM OF NON COMBUSTION IN THE COMBUSTION
CHAMBER. THIS MAY BE CAUSED BY NO FUEL OR NO SPARK.";
RULE FUEL_1.2
IF FUEL_CHECK = NOK
AND FUEL_LEVEL = NO
THEN FUEL = NOK;
RULE FUEL_2
IF FUEL = OK
AND SPARK_CHECK = NO
THEN RECO = CHANGE_THE_CARBURETOR;
RULE FUEL_2.1
IF FUEL = OK
AND SPARK_CHECK = YES
THEN RECO = CONNECT_WIRE_OR_REPLACE_SPARK_PLUG_LEAD;
RULE FUEL_3
IF FUEL = NOK
THEN RECO = FILL_THE_TANK;
RULE NCR_1
IF CRANK = NO
AND NOISE = MAKE_NOISE
THEN RECO = CANNOT_FIND_SOLUTION_SEND_TO_MECHANIC;
RULE NCR_2
IF CRANK = NO
AND NOISE = CLICKING_SOUND
THEN BATTERY_COND = NOK
BECAUSE "IT IS USUALLY DUE TO A WEAK BATTERY OR A BAD CONNECTION .";
RULE NCR_3
IF CRANK = NO
AND NOISE = NO_SOUND
THEN BATTERY_COND = OK;
RULE BATT_1
IF BATTERY_COND = NOK
AND BATTERY_CHECK = YES
THEN RECO = REPLACE_THE_STARTER;
RULE BATT_1.2
IF BATTERY_COND = NOK
AND BATTERY_CHECK = NO
THEN RECO = CLEAN_OR_TIGHTEN_OR_CHARGE_THE_BATTERY;
RULE BATT_2
IF BATTERY_COND = OK
AND LIGHT_CHECK = YES
THEN RECO = REPLACE_NEUTRAL_SAFETY_SWITCH;
RULE BATT_2.2
IF BATTERY_COND = OK
AND LIGHT_CHECK = NO
THEN RECO = CHECK_THE_BETTERY_CONDITION;
!******************************************************************************
!STATEMENTS BLOCK
ASK CRANK : "DOES YOUR ENGINE CRANK ?";
CHOICES CRANK : YES,NO;
ASK CR_PROB : " THE CAR CRANK :... ";
CHOICES CR_PROB : SLOWLY,NORMALLY;
ASK FUEL_LEVEL : "IS FUEL IN THE TANK?";
CHOICES FUEL_LEVEL : YES,NO;
ASK BATTERY_CHECK : "IS YOUR BATTERY CLEAN,TIGHT AND FULLY CHARGE?";
CHOICES BATTERY_CHECK : YES,NO;
ASK SPARK_CHECK : "ANY LEAD/WIRES DISCONNECTED FROM SPARK PLUG?";
CHOICES SPARK_CHECK : YES,NO;
ASK NOISE : "DOES YOUR CAR MAKE NOISE WHEN START?";
CHOICES NOISE : MAKE_NOISE,CLICKING_SOUND,NO_SOUND;
ASK LIGHT_CHECK : " IS THE HEADLIGHT ON?";
CHOICES LIGHT_CHECK : YES,NO;
! --[RETURN TO MAIN ONLY IF IT WAS CHAINED FROM MAIN]--
RULE RETURN_MAIN
IF TASK_MAIN = CONSULT_HARD
THEN RETURN_MAIN = YES
RESET ALL
PRINTOFF
CHAIN MAIN
ELSE RETURN_MAIN = NO
PRINTOFF;
! --[END OF PROGRAM]--
!***************************************************************************
File name : Main.kbs |
SAMPLE SCREEN [1] [2] |
!NAME OF EXPERT SYSTEM: THE MAIN MENU
!THE FILE NAME IS : MAIN.KBS
!LAST UPDATE ON 7 JULY 1998
ENDOFF;
RUNTIME;
BKCOLOR = 1;
! EXECUTE; !ACTIVATE THIS LINE ONLY WHEN THE PROG IS COMPLETE
!****************************************************************************
! --[ACTIONS BLOCK]--
ACTIONS
COLOR = 15
!------------------------------
! INTRODUCTION
!------------------------------
TMODE
MOUSEOFF
RESET ALL
WOPEN 1, 4, 9, 13, 60, 6
ACTIVE 1
CLS
DISPLAY "
ASIA PACIFIC INSTITUTE OF INFORMATION TECHNOLOGY
*** HIGHER DIPLOMA IN COMPUTER SYSTEM ***
ARTIFICIAL INTELLIGENCE
GROUP PROGRAMMING PROJECT
USING FOR VP-EXPERT RELEASE 3.0
FOR
CAR DIAGNOSTICS
1998
"
MOUSEON
FIND CONTINUE
WCLOSE 1
TMODE
WOPEN 1, 4, 9, 13, 60, 6
ACTIVE 1
DISPLAY
"
THANK YOU FOR USING OUR PROGRAM
~"
WCLOSE 1;
! --[ END OF ACTIONS BLOCK]--
ASK RESPONSE: "DO YOU WISH TO PROCEED?";
CHOICES RESPONSE: YES, NO;
RULE SHOW_SAMPLE
IF RESPONSE = YES
THEN CONTINUE = YES
GMODE 16
CLS
MOUSEON
GLOCATE 8,2 ! FORMAT IS X,Y WHERE X= COL Y= ROW
GDISPLAY "ARTIFICIAL INTELLIGENCE PROJECT - A CAR DIAGNOSTIC PROGRAM"
GLOCATE 18,23
GDISPLAY "HIGHER DIPLOMA IN COMPUTER SYSTEMS"
GCOLOR 12
RECTANGLE 160,45,360,280
FILL 165,46,12
OPT1 = NO
OPT2 = NO
OPT3 = NO
OPT4 = NO
OPT5 = NO
OPT6 = NO
DONE = NO
ABOUT = NO
WHILETRUE DONE = NO THEN
END
ELSE CONTINUE = NO;
!.......WHENEVER RULES TO HANDLE MOUSE-DOWNS ........
WHENEVER OPT1
IF OPT1 = YES
THEN
TMODE
COLOR = 15
TASK_MAIN = CONSULT_BATTERY
SAVEFACTS CHINFO
!VALUES TO FILE CALLED CHINFO
CHAIN BATTERY
RESPONSE = NO
;
WHENEVER OPT2
IF OPT2 = YES
THEN
TMODE
COLOR = 15
TASK_MAIN = CONSULT_AIRCON
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES AND
!VALUES TO FILE CALLED CHINFO
DISPLAY "SAVING CHAIN DONE !"
CHAIN AIRCON
RESPONSE = NO
;
WHENEVER OPT3
IF OPT3 = YES
THEN
TMODE
COLOR = 15
TASK_MAIN = CONSULT_ENGINE
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES AND
!VALUES TO FILE CALLED CHINFO
CHAIN ENGINE
RESPONSE = NO
;
WHENEVER OPT4
IF OPT4 = YES
THEN
TMODE
COLOR = 15
TASK_MAIN = CONSULT_HARD
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES AND
!VALUES TO FILE CALLED CHINFO
CHAIN HARD
RESPONSE = NO
;
WHENEVER OPT5
IF OPT5 = YES
THEN
TMODE
COLOR = 15
TASK_MAIN = CONSULT_HEAT
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES AND
!VALUES TO FILE CALLED CHINFO
CHAIN HEAT
RESPONSE = NO
;
WHENEVER OPT6
IF OPT6 = YES
THEN
TMODE
COLOR = 15
TASK_MAIN = CONSULT_OTHERS
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES AND
!VALUES TO FILE CALLED CHINFO
CHAIN OTHERS
RESPONSE = NO
;
WHENEVER ABOUT
IF ABOUT = YES
THEN
TASK_MAIN = CONSULT_ABOUT
SAVEFACTS CHINFO !TEMPORARY SAVE TEXT VARIABLE NAMES AND
!VALUES TO FILE CALLED CHINFO
GCLS
CHAIN ABOUT
RESPONSE = NO
;
PLURAL: CONTINUE, TASK_MAIN;
!.........LABEL BUTTONS TO ALLOW EASY ACCESS TO A SPECIFIC HOTREGION.......
LBUTTON OPT1: 25, 5, 9, 10, ____BATTERY_____;
LBUTTON OPT2: 25, 7, 9, 10, AIR-CONDITIONING;
LBUTTON OPT3: 25, 9, 9, 10, ____ENGINE______;
LBUTTON OPT4: 25, 11, 9, 10, _HARD_STARTING__;
LBUTTON OPT5: 25, 13, 9, 10, __OVERHEATING___;
LBUTTON OPT6: 25, 15, 9, 10, ____OTHERS______;
LBUTTON DONE: 25, 17, 0, 7, ______QUIT______;
LBUTTON ABOUT: 25, 19, 0, 7, _____ABOUT______;
! --[END OF PROGRAM]--
!***************************************************************************
File name : Others.kbs |
SAMPLE SCREEN [1] |
!NAME OF EXPERT SYSTEM: THE BRAKES, TYRE AND CLUTCH
!THE FILE NAME IS : OTHERS.KBS
ENDOFF;
RUNTIME;
BKCOLOR = 1;
!***************************************************************************
! --[ACTIONS BLOCK]--
ACTIONS
PRINTOFF
COLOR = 15
RESET ALL
FIND PRTCTRL
FIND SOLUTION
LOADFACTS CHINFO
DISPLAY " "
DISPLAY " "
DISPLAY "**************************************************************"
DISPLAY "BASED ON THE ANSWER YOU HAVE GIVEN, WE RECOMMEND :
{#SOLUTION}~"
FIND RETURN_MAIN;
! EXECUTE; MAKE THIS LINE ONLY WHEN PROG IS DONE
! --[PRINTER RULES BLOCK]--
RULE 0-PRINTER
IF PRINTER = YES
THEN PRTCTRL = ON
DISPLAY "PLEASE TURN ON YOUR PRINTER. PRESS ANY KEY TO CONTINUE~"
PRINTON;
! --[PRINTER STATEMENT BLOCK]--
ASK PRINTER:"DO YOU WISH TO PRINT OUT THE STATEMENTS & RECOMMENDATIONS?";
CHOICES PRINTER :YES ,NO;
! --[RULES BLOCK]--
RULE 1-1
IF CAR_HANDLING = GOOD AND CLUTCH_PRESSURE = NO
THEN SOLUTION = REPLACE_CLUTCH_LINE;
RULE 1-2
IF CAR_HANDLING = GOOD AND CLUTCH_PRESSURE = YES
THEN TX_CLUTCH = YES;
RULE 1-3
IF CAR_HANDLING = BAD AND BRAKING_OK = NO
THEN BRAKE_PROBLEM = YES;
RULE 1-4
IF CAR_HANDLING = BAD AND BRAKING_OK = YES
THEN TYRE_PROBLEM = YES;
! --[STATEMENTS BLOCK]--
ASK CAR_HANDLING :
"WHILE DRIVING AT AROUND 60 KPH, HOW IS THE CAR HANDLING ?";
CHOICES CAR_HANDLING : GOOD, BAD
BECAUSE
"THIS WILL DECIDE WHEATER THE PROBLEM LIES IN THE BRAKES
AND TYRES PROBLEM OR IN THE TRANSMISSION PROBLEM.";
ASK CLUTCH_PRESSURE :
"PRESS THE CLUTCH, IS THERE PRESSURE ?";
CHOICES CLUTCH_PRESSURE : YES, NO
BECAUSE
"HAVING NO PRESSURE ON THE CLUTCH, IS A SURE INDICATION
THAT THE PROBLEM LIES IN THE CLUTCH";
ASK BRAKING_OK : "ARE THERE ANY PROBLEMS WHEN BRAKING ?";
CHOICES BRAKING_OK : YES, NO
BECAUSE "THIS WILL DECIDE IF THE PROBLEM LIES IN THE
BRAKES SYSTEM OR NOT.";
RULE 2-1
IF TX_CLUTCH = YES AND GEAR_CHANGE = NO AND OLD_GEAR = YES
THEN SOLUTION = CHANGE_CLUTCH
BECAUSE
"AS TIME PASSES, WEAR AND TEAR WILL TAKE PLACE, EVEN BETWEEN
METAL. THIS WILL CAUSE THE TRANSMISSION HARDWARE TO LOSE
ITS SHAPE.";
RULE 2-2
IF TX_CLUTCH = YES AND PEDAL_SMOOTH = NO AND OLD_TX_FLUID = YES
THEN SOLUTION = CHANGE_TRANSMISSION_FLUID
BECAUSE
"THERE MAY BE FOREIGN PARTICLES OR THE TRANSMISSION FLUID
MAY HAVE LOST ITS PROPERTY, ESPECIALLY IF IT IS OF
VERY LOW QUALITY.";
ASK GEAR_CHANGE : "WHILE DRIVING, DOES IT HAVE SMOOTH GEAR CHANGE ?";
CHOICES GEAR_CHANGE : YES, NO;
ASK OLD_GEAR :
"IS THE GEAR BOX MORE THAN 10 YEARS OLD ?";
CHOICES OLD_GEAR : YES, NO;
ASK PEDAL_SMOOTH :
"WHEN DRIVING, PRESS THE CLUTCH, IS IT SMOOTH AND ENGAGES ALL THE WAY ?";
CHOICES PEDAL_SMOOTH : YES, NO;
ASK OLD_TX_FLUID :
"HAS IT BEEN MORE THAN 2 YEARS SINCE THE TRANSMISSION FLUID WAS CHANGED ?";
CHOICES OLD_TX_FLUID : YES, NO;
! --[RULES BLOCK]--
RULE 3-1
IF BRAKE_PROBLEM = YES AND BRAKE_FLUID = NO
THEN SOLUTION = FILL_BRAKE_FLUID_TO_MAX
"As time passes, the brake fluid may have leaked out
in small quantities.
Evaporation of the brake fluid when brakes is applied
can drop the fluid level too, as time passes.";
RULE 3-2
IF BRAKE_PROBLEM = YES AND OLD_BRAKE_FLUID = YES
THEN SOLUTION = CHANGE_BRAKE_FLUID
BECAUSE
"There is a possibility that the brake fluid property may have
changed or foreign particles (such as dirt) might have entered
the system";
RULE 3-3
IF BRAKE_PROBLEM = YES AND LOW_BRAKE_PRESS = YES AND BRAKE_LINE = YES
THEN SOLUTION = FIX_THE_BRAKE_LINE
BECAUSE
"1) THE BRAKE LINE IS OLD AND WORN OUT OR SOME
FOREIGN OBJECT HAS DAMAGED THE LINE
2) THE CONNECTION TO THE BRAKE PUMP IS LOOSE OR
MAYBE DAMAGED";
RULE 3-4
IF BRAKE_PROBLEM = YES AND BRAKE_SOUND = YES
THEN SOLUTION = CHANGE_BRAKE_PAD_OR_SHOE
BECAUSE
"A SCREECHING SOUND NEAR THE TYRE WHEN BRAKING,
CAN CAUSE A WORN OUT BRAKE PAD OR SHOE WHICH IS BARE METAL
TO SLIP TRYING TO CATCH THE TYRE";
! --[STATEMENT BLOCK]--
ASK BRAKE_FLUID : "CHECK THE BRAKE FLUID LEVEL. IS IT AT MAX ?";
CHOICES BRAKE_FLUID : YES, NO;
ASK OLD_BRAKE_FLUID :
"HAS IT BEEN MORE THAN 1 YEAR SINCE BRAKE FLUID WAS LAST CHANGED ?";
CHOICES OLD_BRAKE_FLUID : YES, NO;
ASK LOW_BRAKE_PRESS :
"PRESS THE BRAKE PEDAL, IS THE PRESSURE LOW ?";
CHOICES LOW_BRAKE_PRESS : YES, NO;
ASK BRAKE_LINE :
"CHECK THE BRAKE LINE, ESPECIALLY AT THE JOINTS. IS THERE ANY LEAKS ?";
CHOICES BRAKE_LINE : YES, NO;
ASK BRAKE_SOUND :
"WHILE DRIVING, PRESS THE BRAKES, IS THERE A SQUEKY SOUND ?";
CHOICES BRAKE_SOUND : YES, NO;
! --[RULES BLOCK]--
RULE 4-1
IF TYRE_PROBLEM = YES AND TYRE_PRESSURE = NO
THEN SOLUTION = FILL_TYRE_AIR_TO_RECOMMENDED_PRESSURE
BECAUSE
"LOW TYRE PRESSURE MAKES THE TYRE IN CONTACT WITH THE
ROAD SURFACE WITH MORE RESISTANCE, MAKING STEERING HEAVY.";
RULE 4-2
IF TYRE_PROBLEM = YES AND TYRE_THREAD = YES
THEN SOLUTION = CHANGE_THE_BOLD_TYRE
BECAUSE
"TYRE WITH LITTLE OR NO MORE THREAD CAN CAUSE
DIFFICULTY IN STEERING AND BRAKING";
RULE 4-3
IF TYRE_PROBLEM = YES AND TYRE_WOBBLY = YES
THEN SOLUTION = BALANCE_THE_TYRES_OR_CHANGE_TYRE
BECAUSE
"TYRE PROBABLY HIT SOMETHING HARD CAUSING IT TO BE
OUT OF SHAPE OR IT IS OVER FILLED WITH AIR.";
RULE 4-4
IF TYRE_PROBLEM = YES AND TYRE_STRAIGHT = NO
THEN SOLUTION = ADJUST_THE_TYRE_ALIGNMENT
ELSE SOLUTION = CONSULT_A_MECHANIC;
! --[STATEMENTS BLOCK]--
ASK TYRE_PRESSURE :
"USE A PRESSURE GAUGE TO CHECK THE TYRE, IS THERE ENOUGH AIR ?";
CHOICES TYRE_PRESSURE : YES, NO;
ASK TYRE_THREAD :
"INSPECT THE TYRE THREAD, IS IT BOLD ?";
CHOICES TYRE_THREAD : YES, NO;
ASK TYRE_WOBBLY :
"WHILE DRIVING, DOES THE TYRE WOBBLE ?";
CHOICES TYRE_WOBBLY : YES, NO;
ASK TYRE_STRAIGHT :
"WHILE DRIVING SLOWLY, LEAVE THE STEERING, DOES THE CAR GO IN
A STRAIGHT LINE ?";
CHOICES TYRE_STRAIGHT : YES, NO;
! --[RETURN TO MAIN ONLY IF IT WAS CHAINED FROM MAIN]--
RULE RETURN_MAIN
IF TASK_MAIN = CONSULT_OTHERS
THEN RETURN_MAIN = YES
RESET ALL
PRINTOFF
CHAIN MAIN
ELSE RETURN_MAIN = NO
PRINTOFF;
! --[END OF PROGRAM]--
!***************************************************************************
[HOME] [VPEXPERT MAIN] [TOP OF PAGE]