Jump to content

Джесс (язык программирования)

Джесс
Разработчик(и) Сандианские национальные лаборатории
Первоначальный выпуск 1995 год ; 29 лет назад ( 1995 )
Стабильная версия
7.1п2 / 5 ноября 2008 г .; 15 лет назад ( 05.11.2008 )
Написано в Ява
Платформа Ява
Лицензия Собственность , общественное достояние
Веб-сайт www .jessrules

Jess — это механизм правил для Java вычислительной платформы , написанный на Java языке программирования . Его разработал Эрнест Фридман-Хилл из Национальной лаборатории Сандии . [1] Это расширенный вариант языка CLIPS . [1] Впервые оно было написано в конце 1995 года. [1] Язык обеспечивает программирование на основе правил для автоматизации экспертной системы , и его часто называют оболочкой экспертной системы . [1] В последние годы также были разработаны системы интеллектуальных агентов , которые зависят от аналогичных способностей.

Вместо процедурной парадигмы , где одна программа имеет цикл , который активируется только один раз, декларативная парадигма, используемая Джессом, непрерывно применяет набор правил к набору фактов с помощью процесса, называемого сопоставлением с образцом . Правила могут изменять набор фактов или выполнять любой код Java. Он использует алгоритм Rete [1] выполнять правила.

Лицензия

[ редактировать ]

Лицензия бесплатное на Jess — программное обеспечение для образовательных и государственных учреждений, а также проприетарное программное обеспечение , требующее лицензии для коммерческого использования. Напротив, CLIPS, который является основой и исходным кодом Jess, является бесплатным программным обеспечением с открытым исходным кодом .

Примеры кода

[ редактировать ]

Примеры кода:

; 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 [[working memory]]
          (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)

См. также

[ редактировать ]
[ редактировать ]
  1. ^ Jump up to: а б с д и Хеммер, Маркус К. (2008). Экспертные системы в химических исследованиях . ЦРК Пресс. стр. 47–48. ISBN  9781420053241 . Проверено 30 марта 2012 г. ISBN   978-1-4200-5323-4

Дополнительные источники

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 132305c3955c0fb2da6f64782ceb6059__1718716380
URL1:https://arc.ask3.ru/arc/aa/13/59/132305c3955c0fb2da6f64782ceb6059.html
Заголовок, (Title) документа по адресу, URL1:
Jess (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)