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 på )) ( 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 på )) 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 på )) 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).