كليبس (أداة برمجة)

كليبس هي أداة برمجة عامة المجال تستخدم لبناء النظم الخبيرة. هذا الاسم اختصار ل"C Language Integrated Production System" (نظام الإنتاج المدمج للغة ال C). الاسم وتركيب الجمل مستوحى من OPS5 من قبل تشارلز فورغي. تم تصميم الإصدارات الأولى من كليبس انطلاقا من عام 1985 في ناسا- مركز لندون بي جونسون للفضاء (كبديل للنظام الموجود سابقا ART*Inference) حتى منتصف التسعينيات عندما توقف تركيز المسؤوليات لمجموعة التطوير على تقنية النظام الخبير. الاسم الأصلي للمشروع كان لغة ناسا للذكاء الاصطناعي (NAIL).

ربما يكون كليبس هو أداة النظام الخبير الأكثر استخداما.Di Stefano, Antonella; Gangemi, Francesc; Santoro, Corrado (2005). ERESYE: artificial intelligence in Erlang programs. Proceedings of the 2005 ACM SIGPLAN workshop on Erlang. Tallinn, Estonia: ACM. pp. 62–71. doi:10.1145/1088361.1088373. ISBN 1-59593-066-3. كليبس بحد ذاتها مكتوبة بلغة الC، يمكن كتابة الامتدادات بالC، ويمكن الوصول لكليبس من الC. تركيب الجمل الخاصة بها يشبه لغة برمجة ليسب.Giarratano, Joseph C; Riley, Gary D (2005). Expert Systems: Principles and Programming. Boston: Thomson. ISBN 81-315-0167-1. يدمج كليبس لغة كاملة للكائنات الموجة لكتابة النظم الخبيرة. يجمع COOL بين إجراءات نماذج البرمجة، والكائنات الموجة، اللغات المنطقية (إثبات النظرية).Riley, Gary (30 Nov 2017). CLIPS Reference Manual: Volume 1 - Basic Programming Guide (PDF). Retrieved 9 July 2019.

 الحقائق والقواعد 
يستخدم كليبس التسلسل الامامي.Sandeep, K; Rakesh, K (2011), "CLIPS based decision support system for water distribution networks", Drinking Water Engineering and Science, 4 (1): 37–50, doi:10.5194/dwes-4-37-2011 مثل لغات النظام الخبير الأخرى، يتعامل كليبس مع قواعد وحقائق. يمكن للحقائق المختلفة أن تجعل قاعدة قابلة للتطبيق. ثم يتم تفعيل القاعدة القابلة للتطبيق. تنشئ الحقائق والقواعد من خلال تعريفها أولاً، كما هو مبين أدناه:(deftemplate car_problem
     (slot name)
     (slot status))

 (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))))بعد إعداد هذا، يجعل أمر (reset) كليبس يقوم بقراءة الحقائق والقواعد. في هذه الحالة، سيؤدي إلى ثلاثة "trouble_shooting" وتأكيد الحقائق. من ثم يستخدم امر (run). بالنظر إلى انه تم تأكيد حقيقتان مسجلتان في rule1، تم تحقيق شروط القيام بعملها لذا تم تأكيد اخر حقيقة كنتيجة للتشغيل.CLIPS> (reset)
CLIPS> (agenda)
0 rule1: f-1,f-2
For a total of 1 activation.
CLIPS> (facts)
f-0 (initial-fact)
f-1 (car_problem (name ignition_key) (status on))
f-2 (car_problem (name engine) (status wont_start))
f-3 (car_problem (name headlights) (status work))
For a total of 4 facts.
CLIPS> (run)
CLIPS> (facts)
f-0 (initial-fact)
f-1 (car_problem (name ignition_key) (status on))
f-2 (car_problem (name engine) (status wont_start))
f-3 (car_problem (name headlights) (status work))
f-4 (car_problem (name starter) (status faulty))
For a total of 5 facts.
CLIPS>
(assert <fact>+)
 (Assert (object (name "chair")
(Material wood)
(height 3feet)
(Color brown))
CLIPS(retract <fact-index+)
(retract 0)
for a colorفي كليبس، يسمح البروز للمستخدم بتعيين الأولوية (أو الوزن) للقاعدة.

 الأحفاد 
يتضمن أحفاد لغة كليبس، جييس (الجزء المستند إلى القواعد من كليبس معاد كتابته في الجافا، نشأ لاحقًا في اتجاه مختلف)، وFuzzyCLIPS (الذي يضيف مفهوم الصلة إلى اللغة).

 المراجع 

تصنيف:برمجيات ملكية عامة مع المصدر البرمجي
تصنيف:لغات برمجة مخصصة النطاق