~~SLIDESHOW~~
====== XTT_CLIPS ======
* Zrealizował [[mfabia@student.agh.edu.pl|Maciej Fabia]] (4RI)
* Metody Inżynierii Wiedzy 2009
===== Zawartość projektu =====
* Omówienie przykładowych systemów ekspertowych w CLIPS
* Stworzenie diagramów dla wybranych systemów
* Zaimplementowanie przykładu z Hekate w CLIPS
===== Przykłady reguł CLIPS =====
* prosta reguła:
(defrule mortality
(George is man)
=>
(assert (George is mortal)))
* podobna reguła używająca zmiennej - wstawia fakt dla każdego człowieka:
(defrule mortality2
(?someone is man)
=>
(assert (?someone is mortal)))
===== Przykłady gotowych systemów =====
* System diagnozujący chorobę i dobierający terapię,
* System wskazujący, co naprawić w samochodzie,
* System identyfikujący zwierzę na podstawie charakterystycznych cech (używa zaimplementowanego w CLIPS silnika wstecznego wnioskowania)
===== Rozwiązania składniowe =====
Poza [[#slide2|klasycznymi regułami]], w przykładach korzystano z
następujących rozwiązań:
* po lewej stronie reguł (Left Hand Side)
* wzorce wymagające nieistnienia pewnego faktu - operator //not//,
* połączenie wzorców prostych łącznikami logicznymi, np. //and//, //or//,
* deklaracje priorytetów.
* po prawej stronie (Right Hand Side)
* konstrukcje //if-then-else//
===== Silnik wstecznego wnioskowania =====
* CLIPS posiada wbudowany silnik wnioskowania w przód,
* W przykładzie rozpoznającym zwierzęta zaimplementowano silnik wstecznego wnioskowania,
* Zasady działania silnika:
* fakty i reguły danej bazy wiedzy są reprezentowane w CLIPS przez fakty,
* zadajemy określony cel,
* silnik szuka reguł, które mają cel w RHS - zmienne w ich LHS stają się dodatkowymi celami,
* reguły nie zawierające celu w RHS są usuwane.
===== Schematy ARD, TPH, XTT =====
* Wykonano schematy dla:
* systemu diagnozującego awarie samochodowe,
* systemu rozpoznającego zwierzęta.
* Schematy zostały wykonane za pomocą narzędzi VARDA i HQEd.
== Na finalny parametr wskazuje duża liczba strzałek (schematy ARD): ==
* w powyższych systemach w CLIPS dominowały reguły o małej liczbie argumentów,
* na schematach szukany parametr zależy od dużej liczby atrybutów,
* przyczyna - szukany parametr występuje w RHS dużej liczby reguł, które posiadają różne zestawy atrybutów w częściach warunkowych,
===== Automotive Expert System - ARD =====
{{:pl:miw:2009:miw09_xtt_clips:auto-ard.png|schemat ARD}}
===== Automotive Expert System - TPH =====
{{:pl:miw:2009:miw09_xtt_clips:auto-tph.png?554|schemat TPH}}
===== Automotive Expert System - XTT =====
{{:pl:miw:2009:miw09_xtt_clips:auto-xtt.png?620|schemat XTT}}
===== Animal Identification Expert System - ARD =====
{{:pl:miw:2009:miw09_xtt_clips:anim-ard.png?900x500|schemat ARD}}
===== Animal Identification Expert System - TPH =====
{{:pl:miw:2009:miw09_xtt_clips:anim-tph.png?1000x500|schemat TPH}}
===== Animal Identification Expert System - XTT =====
{{:pl:miw:2009:miw09_xtt_clips:anim-xtt.png?900x500|schemat XTT}}
===== Termostat zaimplementowany w CLIPS =====
Opis programu
* Program korzysta z funkcji zapewniających pobranie i walidację danych
* reguły są odpowiednikami [[hekate:hekate_case_thermostat#Original Rules|opisów słownych]],
* aby porównać liczby (lub użyć dowolnej funkcji zwracającej wartości true/false) w częściach warunkowych reguł, zastosowano słowo kluczowe //test//.
* normalnie po zadaniu pytań program wyświetla od razu temperaturę. Aby obserwować wstawiane podczas wnioskowania fakty, należy przed uruchomieniem wpisać w konsoli CLIPS polecenie //(watch facts)//.