Jess (dasturlash tili) - Jess (programming language) - Wikipedia

Jess
Tuzuvchi (lar)Sandia milliy laboratoriyalari
Barqaror chiqish
7.1p2 / 5-noyabr, 2008 yil; 12 yil oldin (2008-11-05)
PlatformaJava
LitsenziyaYopiq manba / Ommaviy domen
Veb-saytwww.jessrules.com

Jess a qoida mexanizmi uchun Java tomonidan ishlab chiqilgan platforma Ernest Fridman-Xill ning Sandia milliy laboratoriyalari.[1] Bu superset ning CLIPS dasturlash tili.[1] Birinchi marta 1995 yil oxirida yozilgan.[1] Til beradi qoidalarga asoslangan dasturlash avtomatlashtirish uchun ekspert tizimi, va tez-tez an deb nomlanadi ekspert tizimining qobig'i.[1] Yaqin o'tkan yillarda, aqlli agent shunga o'xshash imkoniyatga bog'liq bo'lgan tizimlar ham rivojlandi.

A o'rniga protsessual paradigma, bu erda bitta dasturda faqat bir marta faollashtirilgan tsikl mavjud deklarativ paradigma Jess tomonidan qo'llaniladigan qoidalar to'plamini doimiy ravishda nomlangan jarayon tomonidan faktlar to'plamiga qo'llaydi naqshlarni moslashtirish. Qoidalar faktlar to'plamini o'zgartirishi yoki har qanday Java kodini bajarishi mumkin.

Jess qoidalari dvigatelidan foydalanadi Rete algoritmi,[1] va yaratish uchun foydalanish mumkin:

Litsenziya

CLIPS litsenziyasiga ega bo'lsa-da ochiq manba, Jess ochiq manba emas.JESS ta'lim va davlat uchun bepul, ammo tijorat tizimlari uchun JESS-dan foydalanish uchun litsenziya talab qilinadi.

Kod misollari

Kod namunalari:

; izoh(bog'lash ? x 100); x = 100(ishlamay qolish maksimal (? a ? b)             (agar (> ? a ? b) keyin ? a boshqa ? b))(deffaktlar mening xonam          (mebel kafedra)          (mebel stol)          (mebel karavot)          )(deftemplate mashina             (uyasi rang)             (uyasi yurish masofasi)             (uyasi qiymat)             )(tasdiqlash (mashina (rang qizil) (yurish masofasi 10000) (qiymat 400)))

Namuna kodi:

(aniq)(deftemplate qon topshiruvchi (uyasi ism) (uyasi turi))(deffaktlar qon banki ; ismlarni va ularning turlarini [[ishlaydigan xotira]] ga qo'ying          (qon topshiruvchi (ism "Elis")(turi "A"))          (qon topshiruvchi (ism "Agata")(turi "A"))          (qon topshiruvchi (ism "Bob")(turi "B"))          (qon topshiruvchi (ism "Barbara")(turi "B"))          (qon topshiruvchi (ism "Jess")(turi "AB"))          (qon topshiruvchi (ism "Karen")(turi "AB"))          (qon topshiruvchi (ism "Onan")(turi "O"))          (qon topshiruvchi (ism "Osbert")(turi "O"))          )(defrule bir xilga berishi mumkin, lekin o'zi emas ; tutqichlari A> A, B> B, O> O, AB> AB, lekin N1> N1 emas         (qon topshiruvchi (ism ism)(turi ? turi))         (qon topshiruvchi (ism ? ism2)(turi ? turi2 &:(tenglama ? turi ? turi2) &: (qarama-qarshi ism ? ism2) ))         =>         (chop etish t ism "qon berishi mumkin" ? ism2 crlf)         )(defrule O boshqalarga beradi, lekin o'zi emas ; Yuqoridagi qoidada O dan O gacha qopqoq         (qon topshiruvchi (ism ism)(turi ? turi &:(tenglama ? turi "O")))         (qon topshiruvchi (ism ? ism2)(turi ? turi2 &: (qarama-qarshi ? turi ? turi2) &: (qarama-qarshi ism ? ism2) ))         =>         (chop etish t ism "qon berishi mumkin" ? ism2 crlf)         )(defrule A-yoki-B-AB-ga beradi ; ishi AB ga, AB esa AB ga allaqachon ko'rib chiqilgan bo'ladi         (qon topshiruvchi (ism ism)(turi ? turi &:(yoki (tenglama ? turi "A") (tenglama ? turi "B" ))))         (qon topshiruvchi (ism ? ism2)(turi ? turi2 &: (tenglama ? turi2 "AB") &: (qarama-qarshi ism ? ism2) ))         =>         (chop etish t ism "qon berishi mumkin" ? ism2 crlf)         ); (barchasini tomosha qiling)(qayta o'rnatish)(yugurish)

Shuningdek qarang

Tegishli tizimlar

Adabiyotlar

  1. ^ a b v d e f g h Hemmer, Markus C. (2008). Kimyo tadqiqotlari bo'yicha mutaxassis tizimlar. CRC Press. 47-48 betlar. Olingan 30 mart, 2012. ISBN  978-1-4200-5323-4

Qo'shimcha manbalar

Tashqi havolalar