CLIPS

CLIPS е софтверска алатка која се користи за развој на експертен систем (програми кои не се засноваат на даден алгоритам, туку се обидуваат да го имплементираат човековото знаење - екпертиза). Името претставува акроним од целосното име "C Language Integrated Production System". Синтаксата на CLIPS и името се инспирирани од OPS ("Official Production System”) на Charles Forgy, иако тоа официјално никогаш не е потврдено. Развојот на оваа алатка започнува во 1985 година во центарот на НАСА, Johnson Space Center, и продолжува сè до среднината на деведесеттите години кога развојот на експертните системи престанува да биде во фокус. Оригиналното име на овој проект е ''NASA's AI Language'' (''NAIL'').
CLIPS е веројатно најраспространета алатка за развој на експертни системи, бидејќи е брза, ефикасна и бесплатна. CLIPS во себе вклучува комплетно објектно-ориентиран јазик COOL за создавање на експертни системи. CLIPS е напишан во C, исто така може да се пишуваат екстензии во C и истиот може да се повикува од програми напишани во C. Главна причина за развој на CLIPS било да се замени LISP која тешко се интегрира со други јазици, што значи развојот на вградливи апликации со LISP е сложен.
1 Основни елементи и интеграција со CLIPS
CLIPS претставува комплетна околина за развој на експертни системи, која во себе вклучува интегриран едитор и алатки за дебагирање. CLIPS школката овозможува донесување на заклучоци (inferences) или резонирање. CLIPS се состои од список на факти и список на инстанци, база на знење (или база на правила) и механиза за донесување на заклучоци, кој го контролира целокупното извршување на правилата.
Експертните системи напишани во CLIPS може да се извршуваат преку командна линија, стандарден графички кориснички интерфејс за CLIPS или пак како вградена програма во некој систем (embedded). Постојат два вида на интеграција експертни системи напишани во CLIPS. Првиот е употреба на експертниот систем како вграден дел од друг систем (embedded), а вториот е кога експертниот систем е надвор од системот, но истиот се повикува по потреба, односно се повикуваат надворешни функции. Првиот тип на интеграција се употребува кога експертниот систем е мал, па неговото вградување во поголем систем е брзо и едноставно. Спротивно на ова, при комплексни експертни системи, тие се интегрираат со повик на надворешни функции.
2 Факти и правила
Како и другите јазици за развој на експертни системи, и CLIPS се заснова на правила и факти. Едно правило може да задоволи различни факти. Кога едно правило ќе биде задоволено од некој факт, тогаш тоа се извршува. Фактите и правилата се создаваат прво со нивно дефинирање како во следниот пример:
(deffacts trouble_shooting
(car_problem (name ignition_key) (status on))
(car_problem (name engine) (status wont_start))
(car_problem (name headlights) (status work))
)
(defrule rule1
(car_problem (name ignition_key) (status on))
(car_problem (name engine) (status wont_start))
=>
(assert (car_problem (name starter) (status faulty)))
)
Во CLIPS можно е доделување на приоритет (или тежини) за правилата.
3 Наследници на CLIPS
Два нови јазици се сметаат за наследници на CLIPS. Едниот е Jess, кој се заснова на правила и претставува превод на CLIPS во Јава, иако подоцна неговиот развој продолжува во друга насока. И вториот е FuzzyCLIPS, кој внесува концепт на релевантност.
4 Наводи
Следните две книги содржат детални информации и документација за CLIPS:
* A college textbook about CLIPS, ''Expert Systems: Principles and Programming'', ISBN 0-534-95053-1
* A book on Jess, ''Jess in Action: Rule Based Systems in Java'', ISBN 1-930110-89-8
5 Користена литература
*Билјана Стојкоска, Скрипта Експертни системи: Осниви на Clips, ФЕИТ, УКИМ, Скопје
6 Слични системи
* d3web: бесплатна, open-source платформа за системи засновани на знаење (експертни системи).
* ILOG rules: систем за менаџирање на бизнис правила.
* JBoss Drools: систем за менаџирање на бизнис правила.
* JESS: CLIPS верзија за Јава развивачи.
* Prolog: логички јазик за програмирање со општа намена.
* OpenL Tablets: бизнис засновани правила, open source BRMS.
* DTRules: засновано на дрва на одлука, open-sourced механизам од правила за Јава.
7 Дополнителни врски
**** : an extension to CLIPS language that adds support for GUI, Multimedia, IPC, etc. on Windows.
* at iweb.tntech.edu
***