Figure 2: Production rules for the scheduling example

   COMMENT 
    
   COMMENT What I want is to get the driver 
   COMMENT needed for the delivery
    
   COMMENT handle the shift rollover and 
   COMMENT possible day rollover.
   COMMENT dt6=delivery time greater than 6 hours
    
IF dt6 THEN shift-rollover
    
   COMMENT shift1=midnight to 8AM 
   COMMENT shift2=8AM to 4PM
   COMMENT shift1=4PM to midnight
    
IF shift3 AND shift-rollover AND_NOT shift2 THEN day-rollover 
IF shift2 AND shift-rollover AND_NOT shift1 THEN shift3
IF shift1 AND shift-rollover AND_NOT shift3 THEN shift2
    
IF day-rollover THEN shift1
    
   COMMENT rollover the days of the week
    
IF saturday AND day-rollover AND_NOT friday THEN sunday 
IF friday AND day-rollover AND_NOT thursday THEN saturday 
IF sunday AND day-rollover AND_NOT saturday THEN monday 
IF monday AND day-rollover AND_NOT saturday THEN tuesday 
IF tuesday AND day-rollover AND_NOT monday THEN wednesday
IF wednesday AND day-rollover AND_NOT tuesday THEN thursday
    
IF thursday AND day-rollover AND_NOT wednesday THEN friday
    
   COMMENT determine weekday or weekend
    
IF sunday AND_NOT weekday THEN weekend 
IF saturday AND_NOT weekday THEN weekend 
IF friday AND_NOT weekend THEN weekday 
IF thursday THEN weekday
IF wednesday THEN weekday
IF tuesday THEN weekday
IF monday AND_NOT weekend THEN weekday
    
   COMMENT determine the driver
   COMMENT wed=weekend driver
   COMMENT wdd=weekday driver
IF weekend AND_NOT weekday THEN wed
[Rest of rule base omitted to save space. The full rule base is available on the CUJftp site. See p. 3 for downloading instructions. --mb]