CLIPS

CLIPS
Paradigm expert system
Dök först upp 1985
Hemsida http://www.clipsrules.net/

CLIPS är ett programvaruverktyg för offentlig egendom för att bygga expertsystem . Namnet är en akronym för "C Language Integrated Production System." Syntaxen och namnet inspirerades av Charles Forgys OPS5 . De första versionerna av CLIPS utvecklades med start 1985 vid NASA - Johnson Space Center (som ett alternativ för befintligt system ART*Inference) fram till mitten av 1990-talet då utvecklingsgruppens ansvar upphörde att fokusera på expertsystemteknik. Det ursprungliga namnet på projektet var "NASA's AI Language" (NAIL).

CLIPS var förmodligen det mest använda expertsystemverktyget från och med 2005. CLIPS i sig är skrivet i C , tillägg kan skrivas i C och CLIPS kan anropas från C. Dess syntax liknar den för programmeringsspråket Lisp .

CLIPS innehåller ett komplett objektorienterat språk för att skriva expertsystem. COOL kombinerar programmeringsparadigmen för procedurspråk, objektorienterade och logiska (satsbevisande) språk.

Fakta och regler

CLIPS använder framåtkedja . Precis som andra expertsystemspråk handlar CLIPS om regler och fakta. Olika fakta kan göra en regel tillämplig. En tillämplig regel avfyras då. Fakta och regler skapas genom att först definiera dem, som visas nedan:

  
      
      

  
         
         
         

  
         
         
      
           (  deftemplate  car_problem  (  platsnamn  )  (  plats  status  )  )  (  deffacts  trouble_shooting  (  car_problem  (  namn  tändningsnyckel  )  (  status  ))  (  car_problem  (  namn  motor  )  (  status  wont_start  ))  (  car_problem  (  namn  strålkastare  )  (  status  arbete  ))  (  defrule  rule1  (  car_problem  (  name  ignition_key  )  (  status  on  ))  (  car_problem  (  name  engine  )  (  status  wont_start  ))  =>  (  hävda  (  car_problem  (  namnstartare  )  (  status  felaktig ))   )  ) 

Efter att ha ställt in detta får kommandot (återställ) CLIPS att läsa fakta och regler. I det här fallet skulle det leda till att de tre "felsökningsfakta" hävdas. Därefter används kommandot (kör). Med tanke på att de två fakta som räknas upp i regel 1 båda har hävdats, har villkoren för att göra sin åtgärd uppfyllts så att det ytterligare faktumet hävdas som ett resultat av körningen.

 
 
0       
     
 
     
         
         
         
     
 
 
     
         
         
         
         
     

 
    
 
 
 
 
 0
   CLIPS>  (  återställ  )  CLIPS  >  (  agenda  )  regel1:  f-1,f-2  För  totalt  1  aktivering  .  CLIPS>  (  fakta  )  f-0  (  initial-fakta  )  f-1  (  bil_problem  (  namn  tändningsnyckel  )  (  status  ))  f-2  (  bil_problem  (  namn  motor  )  (  status  vann_starta  ))  f-3  (  bil_problem  (  namn  strålkastare  )  (  statusarbete  )  )  För  totalt  4  fakta  .  _  CLIPS>  (  kör  )  CLIPS>  (  fakta  )  f-0  (  initial-fakta  )  f-1  (  bil_problem  (  namn  tändningsnyckel  )  (  status  ))  f-2  (  bil_problem  (  namn  motor  )  (  status  vill_starta  ))  f-3  (  bil_problem  (  namnstrålkastare  )  (  statusarbete  )  )  f  -  4  (  bil_problem  (  namnstartare  )  (  status  defekt  )  )  För  totalt  5  fakta  .  CLIPS>  (  hävda  <fakta>+  )  (  Säga  (  objekt  (  namn  "stol"  )  (  Material  trä  )  (  höjd  3 fot  )  (  Färg  brun  ))  CLIPS  (  dra tillbaka  <fakta-index+  )  (  dra tillbaka  )  för  en  färg 

I CLIPS tillåter framträdande en användare att tilldela prioritet (eller vikt) till en regel.

Ättlingar

Ättlingar till CLIPS-språket inkluderar Jess (regelbaserad del av CLIPS omskriven i Java , den växte senare upp i olika riktningar) och FuzzyCLIPS (som lägger till begreppet relevans i språket).

Se även

externa länkar