جييس (لغة برمجة)

لا توجد نسخ مراجعة من هذه الصفحة، لذا، قد لا يكون التزامها بالمعايير متحققًا منه.

جييس هو محرك قاعدة لمنصة جافا طورها إرنست فريدمان هيل [الإنجليزية] من مختبرات سانديا الوطنية.[1] وهي نسخة مطورة من لغة برمجة سليبس [الإنجليزية]. كتبت في أواخر عام 1995. تزود هذه اللغة البرمجة المنطقية لأجل تلقائية النظام الخبير وغالبا يطلق عليها هيكل الانظمة الخبيرة. في السنوات الاخيرة، تم تطوير انظمة الوكيل الذكي والذي يعتمد على قدرة مماثلة.

جييس لغة برمجة
معلومات عامة
التصنيف
التنميط
مقتبس من
ظهرت في
1995 عدل القيمة على Wikidata
التطوير
المطور
الإصدار الأول
1995 عدل القيمة على Wikidata
متفرقات
موقع الويب

بدلاً من البرمجة الأمرية، حيث يحتوي برنامج واحد على حلقة يتم تنشيطها مرة واحدة فقط، يطبق التموذج التعريفي الذي يستخدمه جييس باستمرار مجموعة من القواعد على مجموعة من الحقائق من خلال عملية تسمى مطابقة النمط. يمكن للقواعد ان تعدل مجموعة الحقائق، أو يمكن ان يطبق أي جافا كود. يستخدم خوارزمية الريتي لتنفيذ القواعد.

الرخصة

عدل

بينما رخصت سليبس كبرمجية مفتوحة المصدر، جييس ليست برمجية مفتوح المصدر. هي مجانية للاستخدام التعليمي والحكومي لكن يجب الحصول على رخصة لاستخدامها للأنظمة التجارية.

أمثلة على شيفرة

عدل
; is a comment

(bind ?x 100)

; x = 100

(deffunction max (?a ?b)
             (if (> ?a ?b) then ?a else ?b))

(deffacts myroom
          (furniture chair)
          (furniture table)
          (furniture bed)
          )

(deftemplate car
             (slot color)
             (slot mileage)
             (slot value)
             )

(assert (car (color red) (mileage 10000) (value 400)))

أمثلة برمجة:

(clear)
(deftemplate blood-donor (slot name) (slot type))
(deffacts blood-bank ; put names & their types into [[ذاكرة عاملة]]
          (blood-donor (name "Alice")(type "A"))
          (blood-donor (name "Agatha")(type "A"))
          (blood-donor (name "Bob")(type "B"))
          (blood-donor (name "Barbara")(type "B"))
          (blood-donor (name "Jess")(type "AB"))
          (blood-donor (name "Karen")(type "AB"))
          (blood-donor (name "Onan")(type "O"))
          (blood-donor (name "Osbert")(type "O"))
          )
(defrule can-give-to-same-type-but-not-self ; handles A > A, B > B, O > O, AB > AB, but not N1 > N1
         (blood-donor (name ?name)(type ?type))
         (blood-donor (name ?name2)(type ?type2 &:(eq ?type ?type2) &: (neq ?name ?name2) ))
         =>
         (printout t ?name " can give blood to " ?name2 crlf)
         )
(defrule O-gives-to-others-but-not-itself ; O to O cover in above rule
         (blood-donor (name ?name)(type ?type &:(eq ?type "O")))
         (blood-donor (name ?name2)(type ?type2 &: (neq ?type ?type2) &: (neq ?name ?name2) ))
         =>
         (printout t ?name " can give blood to " ?name2 crlf)
         )
(defrule A-or-B-gives-to-AB ; case O gives to AB and AB gives to AB already dealt with
         (blood-donor (name ?name)(type ?type &:(or (eq ?type "A") (eq ?type "B" ))))
         (blood-donor (name ?name2)(type ?type2 &: (eq ?type2 "AB") &: (neq ?name ?name2) ))
         =>
         (printout t ?name " can give blood to " ?name2 crlf)
         )
;(watch all)
(reset)
(run)

انظر ايضاً

عدل
  • JSR-94

انظمة مشابهة

عدل
  • سليبس: أداة برمجيات المجال العام لبناء أنظمة خبيرة.
  • قواعد لوج: نظام إدارة قواعد العمل.
  • JBoss Drools: نظام إدارة قواعد الأعمال.
  • برولوغ: لغة برمجة منطقية للأغراض العامة.
  • أقراص أوبنل اللوحية: قواعد الأعمال المركزية وBRMS.
  • DTRules: محرك قاعدة مفتوح المصدر قائم على جدول القرار لجافا.

المصادر

عدل
  1. ^ Hemmer, Markus C. (2008). Expert Systems in Chemistry Research. CRC Press. ص. 47–48. مؤرشف من الأصل في 2018-09-18. اطلع عليه بتاريخ 2012-03-30. (ردمك 978-1-4200-5323-4)


روابط خارجية

عدل

الموقع الرسمي