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 е сложен.

Основни елементи и интеграција со CLIPS[уреди]

CLIPS претставува комплетна околина за развој на експертни системи, која во себе вклучува интегриран едитор и алатки за дебагирање. CLIPS школката овозможува донесување на заклучоци (inferences) или резонирање. CLIPS се состои од листа на факти и листа на инстанци, база на знење (или база на правила) и механиза за донесување на заклучоци, кој го контролира целокупното извршување на правилата. Експертните системи напишани во CLIPS може да се извршуваат преку командна линија, стандарден графички кориснички интерфејс за CLIPS или пак како вградена програма во некој систем (embedded). Постојат два вида на интеграција експертни системи напишани во CLIPS. Првиот е употреба на експертниот систем како вграден дел од друг систем (embedded), а вториот е кога експертниот систем е надвор од системот, но истиот се повикува по потреба, односно се повикуваат надворешни функции. Првиот тип на интеграција се употребува кога експертниот систем е мал, па неговото вградување во поголем систем е брзо и едноставно. Спротивно на ова, при комплексни експертни системи, тие се интегрираат со повик на надворешни функции.

Факти и правила[уреди]

Како и другите јазици за развој на експертни системи, и 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 можно е доделување на приоритет (или тежини) за правилата.

Наследници на CLIPS[уреди]

Два нови јазици се сметаат за наследници на CLIPS. Едниот е Jess, кој се базира на правила и претставува превод на CLIPS во Јава, иако подоцна неговиот развој продолжува во друга насока. И вториот е FuzzyCLIPS, кој внесува концепт на релевантност.

Наводи[уреди]

Следните две книги содржат детални информации и документација за CLIPS:

Користена литература[уреди]

  • Билјана Стојкоска, Скрипта Експертни системи: Осниви на Clips, ФЕИТ, УКИМ, Скопје

Слични системи[уреди]

  • d3web: бесплатна, open-source платформа за системи базирани на знаење (експертни системи).
  • ILOG rules: систем за менаџирање на бизнис правила.
  • JBoss Drools: систем за менаџирање на бизнис правила.
  • JESS: CLIPS верзија за Јава развивачи.
  • Prolog: логички јазик за програмирање со општа намена.
  • OpenL Tablets: бизнис базирани правила, open source BRMS.
  • DTRules: базирано на дрва на одлука, open-sourced механизам од правила за Јава.

Дополнителни линкови[уреди]