przegląd exsys corvid - m65.pk.edu.pl dydaktyczne/materialy do zajec/2011_2012... · opis produktu...

34
OPIS PRODUKTU EXSYS CORVID

Upload: others

Post on 15-Sep-2019

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID

Page 2: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Spis Treści

2

SPIS TREŚCI

EXSYS CORVID – PRZEGLĄD. ........................................................................................... 3

CZYM JEST CORVID? ............................................................................................................... 3

STRUKTURA OBIEKTOWA ........................................................................................................ 3

BLOKI LOGICZNE ..................................................................................................................... 3

JAVA RUNTIME APPLET DELIVERY ......................................................................................... 4

PIERWSZE PODEJŚCIE, CZYLI JAK WYGLĄDA? ....................................................... 5

OKNO GŁÓWNE PROGRAMU ..................................................................................................... 5

MENU ...................................................................................................................................... 5

File ..................................................................................................................................... 5

Windows ............................................................................................................................. 6

Run ..................................................................................................................................... 6

PASEK NARZĘDZIOWY (TOOLBAR) ........................................................................................... 6

CO POTRAFI CORVID? ........................................................................................................ 8

INTERPRETATOR REGUŁ ........................................................................................................... 8

ZMIENNE ................................................................................................................................. 8

Typy .................................................................................................................................... 9

Dodawanie ....................................................................................................................... 10

Ustawianie parametrów zmiennych ................................................................................. 11

Właściwości i metody zmiennych. .................................................................................... 14

BLOKI LOGICZNE ................................................................................................................... 15

Dodawanie nowego bloku logicznego .............................................................................. 15

Wyrażenia i operatory ...................................................................................................... 15

Dodawanie węzłów w drzewie logicznym ........................................................................ 16

BLOKI KOMEND ..................................................................................................................... 16

Dodawanie bloku komend ................................................................................................ 17

Wyrażenia warunkowe oraz pętle .................................................................................... 17

Komendy ........................................................................................................................... 17

SPRAWDZANIE I URUCHAMIANIE SYSTEMU ............................................................................ 18

BUDOWA PROSTEGO SYSTEMU EKSPERTOWEGO W EXSYS CORVID ............ 20

ZACZYNAMY – ZMIENNE ....................................................................................................... 22

TWORZENIE BAZY FAKTÓW – ORGANIZACJA BLOKÓW LOGICZNYCH ..................................... 25

KONTROLA DZIAŁANIA SYSTEMU – PROJEKTOWANIE BLOKÓW POLECEŃ .............................. 32

PODSUMOWANIE ......................................... BŁĄD! NIE ZDEFINIOWANO ZAKŁADKI.

ZAŁĄCZNIKI .................................................. BŁĄD! NIE ZDEFINIOWANO ZAKŁADKI.

Page 3: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd.

3

EXSYS CORVID – PRZEGLĄD.

Podczas pracy korzystałem z jedynego dostępnego źródła na temat produktu, mianowicie z

obszernego „Podręcznika użytkownika” dostarczanego wraz z systemem, w pliku „CORVID

Manual.pdf”. Kontaktowałem się też z pracownikami działu public relations firmy EXSYS

Inc., którzy szybko i zwięźle odpowiadali na moje pytania i wątpliwości.

Czym jest Corvid?

Szkieletowy system ekspertowy EXSYS Corvid jest produktem firmy EXSYS Inc., będącej

wcześniej częścią korporacji Multi Logic. Program ten powstał w wyniku zapotrzebowania na

wiedzę ekspercką w Internecie. Przy tworzeniu aplikacji wykorzystano doświadczenie

uzyskane podczas pisania programu EXSYS Developer oraz wcześniejszych wersji systemów

szkieletowych serii EXSYS (np. EXSYS Pro. rozwijany jeszcze przez Multi Logic).

EXSYS Corvid jest narzędziem przeznaczonym do szybkiego tworzenia systemów

eksperckich na stronach HTML. Jego funkcjonalność jest zdeterminowana trzema nowymi

rozwiązaniami, które według producenta mają zrewolucjonizować tworzenie systemów

ekspertowych w sieci. Są to: struktura obiektowa (ang. object structure), bloki logiczne (ang.

Logic Blocks) oraz aplety Java.

Struktura obiektowa

Struktura obiektowa to nic innego jak obiektowe podejście do zmiennych przy zachowaniu

podejścia strukturalnego w projektowaniu systemów decyzyjnych. Corvid wykorzystuje

znany z Visual Basic’a model programowania. Czyli połączenie obiektowości z podejściem

strukturalnym.

Bloki logiczne

W poprzednich wersjach EXSYS logika była reprezentowana przez drzewa logiczne i

indywidualne reguły IF/THEN. Niestety dużo systemów wymaga wielu drzew decyzyjnych,

co przysparza kłopotów przy organizacji logiki. Bloki logiczne wprowadzone w EXSYS

Corvid mają za zadanie wspomóc projektanta systemu właśnie przy organizacji logiki. Mogą

Page 4: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd.

4

nimi być jakiekolwiek zestawy reguł lub cała baza wiedzy. Pozwala to na uporządkowanie

wiedzy w bloki, które zachowują się jak obiekty.

Java Runtime Applet Delivery

Corvid pozwala na przesyłanie systemu poprzez aplety Javy, natomiast komunikacja z

użytkownikiem realizowana jest poprzez strony HTML. Aplikacje tworzone w Corvidzie

przesyłane są w ok. 100kB apletach. Twórca systemu ekspertowego wybiera tylko pytanie i

sposób jego zadania. Korzystając z możliwości HTML’a wyniki wnioskowania można

umieszczać w odpowiednio sformatowany sposób, dzięki czemu system staje się

czytelniejszy.

Aplet Corvid’a zapewnia funkcjonalność dla większości systemów. Jeśli jednak zajdzie

potrzeba na dodanie nowej funkcji to istnieje możliwość komunikowania się z innymi

apletami na stronie. Jeśli chodzi o pobieranie lub obliczanie danych dostępnych tylko z

serwera, to można wykorzystać skrypty CGI, ASP i JSP.

Funkcjonalność sieciowa jest najmocniejszą stroną tego produktu wykorzystywaną przez

największe firmy.

Page 5: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Pierwsze podejście, czyli jak wygląda?

5

PIERWSZE PODEJŚCIE, CZYLI JAK WYGLĄDA?

Okno główne programu

Rys. 1 Okno główne programu EXSYS Corvid.

Menu

Menu zawiera pięć sekcji: File, Windows, Run, Register, Help, z czego trzy pierwsze

związane z kontrolą tworzonego systemu ekspertowego, zaś dwie ostatnie odnoszą się do

rejestracji programu i pomocy (tymi grupami menu nie będziemy zajmować się w opisie).

File

Grupa File zawiera następujące polecenia:

New

Open

Close

Save

Save as...

Proprieties

Page setup

Print

Pulpit roboczy programu

Menu

Toolbar

Bieżąca data i czas

Page 6: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Pierwsze podejście, czyli jak wygląda?

6

Exit

Większość opcji dla użytkowników systemu Windows jest jasna i nie wymaga wyjaśnień.

Windows

Grupa Windows zawiera polecenia:

Logic Block – otwiera okno edycji bloków logicznych

Rule View – określa czy przy otwieraniu okna edycji bloków logicznych ma pojawić

się widok reguł.

Command Block – otwiera okno edycji bloków poleceń.

Where – otwiera okno poszukiwania zmiennych w systemie.

Set RESULT Default – otwiera okno, w którym możemy ustawić wygląd jaki mają

przybrać wyniki.

Run

Grupa Run zawiera takie opcje jak:

Start Run – uruchamia system w przeglądarce Corvid’a

Set Starting Cmd Block – otwiera okno, w którym określamy, od którego bloku

komend ma się zacząć wykonywanie systemu.

Reorder Logic Blocks – otwiera okno, w którym możemy zmienić kolejność bloków

logicznych.

Check System – sprawdza system i wypisuje ewentualne wady.

Pasek narzędziowy (toolbar)

Na pasku dostępnych jest dziewięć najczęściej używanych poleceń, które mają swoje

odpowiedniki w menu. Kolejno od lewej mamy:

Otwórz plik (File/Open)

Zapisz plik (File/Save)

Otwórz okno edycji bloków logicznych (Windows/Logic Block)

Otwórz okno edycji bloków poleceń (Windows/Command Blocks)

Otwórz okno edycji zmiennych (Windows/Variables)

Uruchom system w przeglądarce Crovid’a (Run/Start Run)

Page 7: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Pierwsze podejście, czyli jak wygląda?

7

Drukuj system (File/Print)

Właściwości (File/Properties)

Pomoc (Help/Contents)

Page 8: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

8

CO POTRAFI CORVID?

Interpretator reguł

Wartościowanie zmiennych przeprowadzane jest domyślnie metodą wnioskowania wstecz, co

można zmienić bez większego problemu. Jeśli chodzi o algorytm działania interpretatora to

panowie z działu technicznego firmy EXSYS Inc. odpowiedzieli, iż jest on zastrzeżony i tylko

do wglądu przez pracowników. Dlatego jedno z najbardziej interesujących mnie pytań

pozostaje otworem. Apropo algorytmu, udało mi się jedynie dowiedzieć, iż reguła aktywna

jest pierwszą wolną regułą. Mogę tylko powiedzieć, że z moich dotychczasowych wojaży z

programem nie zauważyłem żadnych anomalii we wnioskowaniu.

Zmienne

Jak zazwyczaj w programowaniu tak i tu zmienne odgrywają zasadniczą rolę. System

zarządzania zmiennymi mimo tego, że jest rozbudowany nie traci na przejrzystości. Dlatego

tworzenie i edytowanie zmiennych należy do przyjemnych, jeśli ktoś lubi pracować myszką.

Mnie osobiście widmo ciągłego klikania przeraziło niezmiernie, na szczęście nie jest to tak

bardzo uciążliwe. Zmienne w Corvid’zie używane są do:

definiowania logiki w blokach logicznych

przechowywania danych użytkownika w czasie działania systemu

definiowania w jaki sposób system ma działać.

Page 9: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

9

Typy

W Corvid’zie wyróżniamy siedem typów zmiennych.

Tabela 1 Typy zmiennych w EXSYS Corvid.

Typ zmiennej Funkcja

Static List Lista wyboru, której wartości znane są już podczas tworzenia systemu

ekspertowego.

Dynamic List

Lista wyboru, której wartości ustalane są podczas działania systemu.

Wartości listy mogą pochodzić ze źródeł zewnętrznych lub być ustalane

przez logikę systemu. Listy dynamiczne mogą być używane w połączeniu z

arkuszami kalkulacyjnymi do odpowiedniego ograniczenia wartości.

Numeric Wartość liczbowa, która może być używana we wzorach lub wyrażeniach

warunkowych.

String Jakikolwiek ciąg znaków.

Date Data najczęściej używana do porównań.

Collection

Kolekcja – lista wartości. Operatory pozwalają na dodawanie, wyrzucanie

elementów listy. Jakikolwiek napis lub zmienna może być dodana do

kolekcji.

Confidence Zmienna, której może być przypisany stopień pewności.

Wszystkie zmienne w opisywanym programie mają swoje właściwości i metody, które można

na nich wykonywać (patrz rozdz. „Właściwości i metody zmiennych”). Natomiast kiedy i

gdzie używać zmiennych danego rodzaju stanie się jaśniejsze podczas budowania bloków

logicznych (patrz rozdz. „Bloki logiczne” oraz „Tworzenie bazy faktów – organizacja bloków

logicznych”).

Page 10: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

10

Dodawanie

Zmienne dodawane są za pomocą okna dialogowego „Variables”. Powyższe okno dialogowe

dostępne jest w menu (Windows/Variables) lub na pasku narzędziowym.

Rys. 2 Okno dialogowe „Variables”.

Aby dodać nową zmienną klikamy „New” i pojawia się okno dialogowe „New Variable”, w

którym wpisujemy nazwę zmiennej i wybieramy typ.

Page 11: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

11

Rys. 3 Okno dialogowe „New Variable”.

Zmienne posiadają nazwę oraz powiązany ze sobą tekst (ang. prompt), który będzie użyty do

pobrania danych od użytkownika. Dopuszczalnymi nazwami są te składające się tylko i

wyłącznie ze znaków: a-z, A-Z, 0-9 oraz _%#$. Spacja jest niedopuszczalna w nazwie

zmiennej i będzie zamieniana na „_”.

Zmienne mogą być sortowane ze względu na nazwę bądź typ. Natomiast nazwy zmiennych

mogą być zmieniane w każdym momencie tworzenia systemu. Corvid zadba o to by nazwa

została zmieniona wszędzie, gdzie występuje w kodzie.

Ustawianie parametrów zmiennych

Opcje dla zmiennych ustawiamy w dwóch grupach zakładek dostępnych na prawo od listy

zmiennych. Górny zestaw zakładek pozwala na ustawienie parametrów dostępnych we

wszystkich zmiennych. Natomiast każda z dolnych pozwala na ustawienie parametrów

charakterystycznych tylko dla danego typu zmiennych.

Dostępne ustawienia wraz z przykładami zastosowań zmiennych opiszę pokrótce, ponieważ

szczegółowy i bardzo wyczerpujący opis znaleźć można w dokumentacji do produktu.

Prompt (tekst zachęty)

Wszystkie zmienne posiadają tę właściwość, która stanowi o tekście wyświetlanym podczas

pobierania wartości zmiennej od użytkownika i reprezentacji jej w raportach. Dostępne

ustawienia dotyczą: głównego tekstu zachęty oraz alternatywnych tekstów zachęty.

Page 12: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

12

Main Prompt, czyli główny tekst zachęty, powinien opisywać zmienną. De facto może on być

dowolnym tekstem jaki sobie wymyślimy ale trzymanie się zasady opisu zmiennej pozwoli

nam uniknąć przykrych niespodzianek w estetyce sytemu. Np. nazwa zmiennej to

[TEMP_POMPY_A], a tekst zachęty „Temperatura pompy A mierzona termometrem

elektronicznym w stopniach Celsjusza”. Jeśli dana zmienna będzie używana tylko wewnątrz

systemu to użytkownik nigdy nie zobaczy jej tekstu zachęty. Jednak gdy nastąpi potrzeba

zapytania o temperaturę pompy A, to system wraz z polem tekstowym do wprowadzenia

temperatury wyświetli tekst zachęty: „Temperatura pompy A mierzona termometrem

elektronicznym w stopniach Celsjusza”.

Główny tekst zachęty może być pobierany z zewnętrznej bazy danych. Istnieje także

możliwość dodania tzw. Alternate Prompts, czyli dodatkowych tekstów zachęty dla systemów

przeznaczonych do użytku międzynarodowego lub dla użytkowników o różnym stopniu

wiedzy na dany temat.

To Be

Najczęściej można ustalić wartość zmiennej poprzez bardzo krótkie reguły, które mąciłyby

tylko ogólny wgląd w widok logiki systemu. Dlatego dla zmiennych można wprowadzać

pojedyncze reguły, które zostaną uruchomione, gdy zajdzie potrzeba ustalenia wartości

zmiennej.

Reguły powinny być krótkie, gdyż najprawdopodobniej, jeśli reguła jest długa to ma być

zawarta w bloku logicznym.

Options

Jest to zakładka z różnorodnymi parametrami, które warunkują zachowanie zmiennej, kiedy

jej wartość musi być wywnioskowana, pobierana, wyświetlana lub inicjalizowana. Jedne z

najczęściej używanych opcji to: Maximum Number of Values that can be Assigned oraz Final

Results Display Flag, które oznaczają odpowiednio: maksymalną liczbę wartości, które mogą

być przypisane dla zmiennych typu List oraz czy wyświetlać zmienną na stronie wynikowej.

Link

Zakładka Link pozwala na wstawienie adresu URL, do którego ma się odwoływać tekst

zachęty.

Page 13: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

13

Ask With

Jeśli wartość zmiennej nie może być w żaden sposób ustalona w trakcie działania systemu. To

trzeba się o nią zapytać użytkownika. Sposób przedstawiania pytań jest ustalany właśnie w tej

zakładce. Do wyboru mamy standardowe kontrolki Windows plus Image Map, możemy także

sformatować tekst i umieścić go w odpowiednim miejscu na stronie.

Also Ask

Czasami zachodzi potrzeba zadania pytania o kilka zmiennych na jednej stronie wystarczy

tylko ustalić, które i wybrać na zakładce Also Ask.

Static List

Tutaj nadajemy wartości dla wszystkich możliwości wyboru z listy. Oczywiście pobranie

wartości z bazy danych jest dopuszczalne oraz, podobnie jak w przypadku tekstu zachęty

możemy wprowadzić wartości alternatywne dla każdego punktu listy.

Dynamic List

Wartości dla listy dynamicznej możemy nadać na trzy sposoby:

użyć arkusza kalkulacyjnego

użyć zmiennej typu Collection

użyć pliku tekstowego pod adresem URL

za pomocą zewnętrznego apletu

Continuous

Do kontrolowania zmiennych typów Date, String, Numeric służy zakładka Continous.

Dla typu Numeric możemy ustawić górną i dolną granicę wprowadzonej liczby oraz nie

dopuścić do wprowadzania liczb rzeczywistych.

Dla typu String możemy określić maskę wprowadzania. Akceptowalne znaki w masce

wprowadzania znajdują się w poniższej tabeli.

Page 14: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

14

Tabela 2 Znaki możliwe do używania w maskach wprowadzania.

Maska Znaczenie

? Jakikolwiek jeden znak.

* Reszta napisu.

Znak Ten sam znak

# Cyfra 0-9.

{abc} Jeden ze znaków w {}.

{X-Z} Jeden ze znaków z zakresu podanego w {}.

Wprowadzoną datę można kontrolować na dwa sposoby. Pozwolić na wprowadzenie daty nie

starszej niż ileś dni wstecz lub/i pozwolić na wprowadzanie daty nie więcej naprzód niż ileś

dni.

Collection

Typ Collection posiada opcje kontroli przepełnienia, inicjalizacji wartości z pliku, .

Confidence

Posiadamy możliwość ograniczenia wartości wprowadzanych zmiennych typu Confidence.

Dostępne jest także zaokrąglanie do wartości całkowitej. Oraz obliczenie wartości stopnia

pewności przez zastosowanie z góry ustalonych wzorów.

Jak widać kontrola zmiennych jest ograniczona przez opcje programu i trudno nam będzie

zmusić Corvid’a by na przykład zmienił typ zmiennej w czasie działania systemu. Dostępne

są tylko opcje z zakładek, fakt że jest ich dużo nie stanowi jeszcze o tym, że można ze

zmiennymi zrobić wszystko czego dusza zapragnie.

Właściwości i metody zmiennych.

Wszystkie zmienne w systemie mają oprócz wartości także inne właściwości oraz metody,

które można na nich wykonywać. Korzystamy z tego udogodnienia w znany, z innych

języków programowania sposób, czyli:

[nazwa_zmiennej.(właściwość/metoda)]

Sprawne użycie tej możliwości pozwoli zaoszczędzić masę czasu podczas tworzenia systemu.

Pominę tu dokładny opis, gdyż wszystko wyjaśnione jest w „Podręczniku użytkownika

EXSYS Corvid”1.

1 Corvid Manual.PDF

Page 15: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

15

Bloki logiczne

Porządek w projektowaniu jest bardzo ważny, chyba że akurat zależy nam na zagmatwaniu

np. ze względów bezpieczeństwa. Ale zazwyczaj chcemy wiedzieć, co się dzieje w projekcie.

Dlatego EXSYS wprowadził pojęcie bloków logicznych, które pozwalają na lepszą kontrolę

tworzonego systemu. Reguły w blokach reprezentowane są jako drzewa logiczne, co pomaga

przy analizowaniu wszystkich możliwych przypadków wartości zmiennych.

Bloki logiczne pomagają na etapie konstruowania reguł dla systemu. Programista sam ustala,

co ma stanowić dany blok, nie ma żadnych zasad, które by określały sposób dzielenia reguł w

bloki. Jednak reguły w bloku powinny być powiązane w logiczny sposób np. zawierać ten

sam węzeł korzenia drzewa logicznego lub ułatwiać programiście nawigację po logice

projektowanego systemu.

Dodawanie nowego bloku logicznego

Otwieramy okno edycji bloku logicznego (Windows/Logic Block) i od razu mamy utworzony

nowy blok. Możemy, co najwyżej, zmienić jego nazwę klikając Edit Name.

Wyrażenia i operatory

Aby tworzyć reguły w blokach potrzebne są nam pewne zasady ich kreacji. Dlatego poniżej

przedstawiam wyrażenia akceptowalne w Corvid’zie:

liczby (także w formie 1.2e3), trzeba tylko zwrócić uwagę, że E jest stałą

matematyczną „e”

nawiasy ()

operatory matematyczne w kolejności wykonywania ^, *, /, +, -

operatory logiczne <, <=, >, =>, !=, =, !, |, &

nazwy funkcji wbudowanych z argumentami w nawiasach

Operatory logiczne są tymi znanymi z C i C++ oprócz | i &, które znaczą odpowiednio sumę

logiczną oraz iloczyn logiczny dwóch wyrażeń. Pisząc wyrażenia musimy pamiętać o tym, iż

wszelkie nazwy zmiennych umieszczamy w nawiasach kwadratowych []. Oto przykłady

wyrażeń akceptowalnych przez Corvid’a:

[ZAMIEN] = 10

([A]+[B] = COS([X])) & ([A]!=[B])

Page 16: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

16

Do tworzenia wyrażeń opartych na łańcuchach znaków możemy używać operatorów

logicznych podanych powyżej. Zasady działania nie odbiegają w niczym od zasad znanych z

Turbo Pascal’a. Z tym wyjątkiem ze operator <> jest zastąpiony przez !=.

Dodawanie węzłów w drzewie logicznym

Węzły IF w drzewie logicznym reprezentowane są poprzez prostokąt (lub znaki grupujące),

natomiast węzły THEN poprzez strzałki. Do dodawania węzła IF służą przyciski z grupy IF.

Dzięki nim możemy dodawać węzeł IF w dowolnym miejscu w drzewie. Węzły Then

dodajemy za pomocą przycisków grupy Then. Klikając którykolwiek z guzików z obu grup

otwieramy okno edycji węzłów, w którym kontrolujemy jak ma wyglądać każdy z węzłów

drzewa. Możemy tu wybrać zmienną, której chcemy nadać wartość lub ją testować. Jeśli

mamy gotowy warunek lub przypisanie, klikamy Add to List i po zatwierdzeniu mamy

utworzony węzeł w drzewie.

Jedną z ciekawych cech opisywanego systemu szkieletowego jest to, że w drzewie logicznym

pod THEN możemy podpiąć IF. Przydaje się to w sytuacjach gdy musielibyśmy dla każdego

bardziej zagłębionego IF wpisać tę samą regułę THEN.

Bloki komend

Same zmienne i reguły nie czynią jeszcze systemu tworzonego w EXSYS Corvid w pełni

działającym. Trzeba jeszcze systemowi powiedzieć co ma z tym wszystkim robić, które bloki

logiczne kiedy odpalać, czy może odpalić jeden blok logiczny kilka razy dla zmieniających

się zmiennych. To można zrobić właśnie w bloku komend. Tworzymy tam programy, które

wykorzystują logikę zawartą wcześniej w blokach logicznych.

Dla użytkowników bez przygotowania programistycznego mam dobrą wiadomość najczęściej

używaną komendą będzie DERIVE CONF, która mówi Corvid’owi, że w drodze

wnioskowania ma nadać wartości wszystkim zmiennym typu Confidence. Dodatkowo można

określić jak mają być sformatowane wyniki. Ogólnie mogę powiedzieć, że wszystko co

chcieliśmy zrobić, a nie mogliśmy tego zrobić poprzez ustawienie właściwości zmiennych lub

poprzez odpowiednie zaprojektowanie bloków logicznych można zrobić tutaj.

Programowanie w Corvid’zie nie jest podobne do czegokolwiek co do tej pory widziałem.

Program składa się z węzłów komend, podobnie jak drzewo logiczne składa się z węzłów IF i

Page 17: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

17

THEN. Jednak wygląda to przejrzyście i jest łatwe do opanowania. Dostępne są pętle,

wyrażenia warunkowe oraz stos komend kontrolujących wykonanie programu.

Dodawanie bloku komend

Dodanie nowego bloku komend wiąże się, podobnie jak w bloku logicznym z otworzeniem

okna dialogowego Logic Block poprzez wybranie z menu Windows/Logic Block. Możemy

także zmienić nazwę klikając Edit Name.

Wyrażenia warunkowe oraz pętle

Każdy choćby najprostszy język programowania musi obsługiwać w jakikolwiek sposób

wyrażenia warunkowe. Większość programistów nie wyobraża sobie programu bez instrukcji

IF. W Corvid’zie oczywiście nie pominięto tej instrukcji dostępna jest ona w grupie opcji

Control w oknie Logic Block pod przyciskiem IF. Po kliknięciu powyższego otwiera się okno

edycji Add to Block znane już z obsługi bloków logicznych. W nim możemy tworzyć

wyrażenia Boolowskie.

W systemie szkieletowym firmy EXSYS dostępne są także pętle typu WHILE oraz FOR.

Dostępne są one podobnie jak instrukcja IF pod odpowiednimi przyciskami w grupie opcji

Control. Po wybraniu While otwiera się, tak jak w przypadku IF okno Add to Block, w którym

określamy warunek powtarzania pętli. Czyli dopóki warunek jest prawdziwy pętla WHILE się

wykonuje.

Gdy klikniemy For, otworzy się nam okienko FOR command, w którym określamy przedział

działania pętli, zmienną która służy kontrolowaniu oraz krok, o który ma się zmieniać

zmienna. Dodatkową możliwością jest wykonywanie pętli dla każdego elementu zmiennej

typu Collection (kolekcji).

Komendy

Oczywiście same pętle i instrukcje warunkowe nie tworzą złożonych programów, dobrym

pomysłem jest jeszcze mieć co wykonywać w pętli lub co wykonywać jeśli. Dlatego w grupie

opcji Command możemy dodawać rozkazy, które trzeba wykonać, aby system działał jak

należy. Po kliknięciu jednego z przycisków w tej grupie ukazuje się nam okno tworzenia

komend Commands. Dodawać i edytować możemy komendy dotyczące:

Page 18: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

18

zmiennych (zakładka Variables)

bloków (Blocks)

czyszczenia wartości zmiennych, np. kiedy chcemy jakieś bloki logiczne uruchomić

kilka razy w trakcie działania sytemu (Reset)

wywoływania: zewnętrznych apletów, zapisywania do pliku, odczytywania wartości z

adresu URL, wywołania skryptu CGI (External)

kontrolowania wykonania systemu za pomocą: GOTO (idz do bloku), dodaj/usuń

bloki z metody wnioskowania wstecz, czekaj przez określonyczas (Control)

formatowania okna wyników (Results)

wprowadzenia strony tytułowej (Title)

tworzenia raportów na serwerze (Report)

Wszystkie powyższe zakładki pozwalają na stworzenie programu bez wklepywania kodu.

Oczywiście, gdy znamy nazwy komend możemy je wpisywać ręcznie. Po wybraniu któregoś

z przycisków z grupy Command możemy wpisać w oknie edycji komend Commands w polu

tekstowym Command: nazwę komendy. Jest jednak kilka ograniczeń. Nie możemy wpisać

np. po komendzie RESULTS formatowania poszczególnych partii okna wyników. Niestety

technicy z EXSYS nie obmyślili żadnego języka, ani nie przyjęli żadnego standardu, który by

mógł wspomóc żmudne klikanie. No cóż pozostaje klikać.

Sprawdzanie i uruchamianie systemu

Jeśli ktoś uważa się za doskonałego to znaczy, że nie jest człowiekiem. Człowiek błędy

popełnia i najlepiej się uczy na swoich. Dlatego system szkieletowy firmy EXSYS Inc. byłby

niczym bez sprawdzania pomyłek, jakie zrobiliśmy w systemie. Ta opcja jest jedną z

ciekawszych w Corvid’zie. Sprawdzanie całego systemu wykonuje się poprzez wywołanie z

menu opcji Run/Check System. Po wywołaniu tej opcji zostanie wyświetlone okno z

ewentualnymi błędami lub ostrzeżeniami. Checker sprawdza zarówno błędy logiczne oraz

syntaktyczne. Ostrzega nas np. przed zbyt dużą ilością zmiennych, czy też nie rozpatrzeniem

wszystkich możliwych przypadków reguł.

Dodatkowo podczas tworzenia reguł i komend sprawdzana jest ich syntaktyka, dlatego nie

możemy np. przypisać zmiennej Numeric wartości tekstowej.

Page 19: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Co potrafi Corvid?

19

Uruchamianie systemu odbywa się poprzez wybrania z menu Run/Start Run. Otwierana jest

wtedy przeglądarka www z widoczną stroną startową systemu. Podczas uruchomienia

tworzona jest dynamicznie strona HTML oraz plik CVR, który jest używany przez Corvid

Java Runtime i powinien być przeniesiony na serwer z systemem ekspertowym. Na serwerze

powinien znaleźć się także aplet Corvid Runtime Java.

Page 20: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

20

BUDOWA PROSTEGO SYSTEMU EKSPERTOWEGO W

EXSYS CORVID

Wcześniejszy suchy opis funkcji EXSYS Corvid’a byłby niczym bez konkretnego przykładu.

Za takowy posłuży nam problem blondynek i żarówki. Czyli co zrobić, gdy zrobi się ciemno?

Założenia są proste poinformować domowniczki o przyczynach egipskich ciemności i

zaproponować rozwiązanie problemu mając na uwadze to, iż blondynki muszą oszczędzać z

powodu jakiejś dziury lub budżetu.

Ekspert z dziedziny elektryki określił następujące warunki na przypadek zgaśnięcia żarówki:

Wymieniamy żarówkę, jeśli jest przepalona.

Żarówka jest przepalona, jeśli inne światła w pokoju się świecą.

Jeśli inne światła w pokoju się nie świecą, to mogły wyskoczyć bezpieczniki.

Jeśli wyskoczyły bezpieczniki, to trzeba je ustawić w odpowiedniej pozycji.

Jeśli inne światła w domu się nie świecą, to najprawdopodobniej brak prądu.

Jeśli brak prądu, to zadzwoń do elektrowni i spytaj, co się dzieje.

Blondynki muszą oszczędzać na energii, więc same zakładają, iż jeśli żarówka się przepali to

żarówki powyżej 75W wymieniają na żarówki 75W, a do 75W na takie, jakie były. Czyli:

Jeśli wymieniamy żarówkę i żarówka ma powyżej 75W, to dodajemy do listy

zakupów żarówkę 75W.

Jeśli wymieniamy żarówkę i żarówka ma do 75W, to dodajemy do listy zakupów

żarówkę o takiej mocy, jaka była wcześniej.

Niektóre z wyżej wymienionych reguł da się pominąć. Poniżej przedstawiam wcześniej

określone przez ekspertów (w dziedzinie elektryki i oszczędzania) reguły jako IF/THEN:

Page 21: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

21

Tabela 3 Reguły IF/THEN do przykładowego systemu dla blondynek.

Niebieskim zaznaczono zmienne typu Static List,

czerwonym – Numeric,

zielonym – Confidence,

fioletowym – Collection,

brązowym – wartości, jakie przyjmują zmienne typu Static List

Lp Reguła IF/THEN

1

IF:

Żarówka zgasła

AND: Inne światła w pokoju świecą

THEN:

Zmień żarówkę. Użyj żarówki o mocy nowej żarówki W.:

2

IF:

Żarówka zgasła

AND: Inne światła w pokoju zgasły

AND: Inne światła w domu świecą

THEN:

Sprawdź czy nie wyskoczyły bezpieczniki

3

IF:

Żarówka zgasła

AND: Inne światła w pokoju zgasły

AND: Inne światła w domu zgasły

THEN:

Zadzwoń do elektrowni i zgłoś awarię

4

IF:

Żarówka świeci

THEN:

Nie rób nic

5

IF:

Zmień żarówkę

AND: Moc żarówki zużytej > 75

THEN:

Moc żarówki nowej = 75

Dodaj do listy zakupów żarówkę o mocy żarówki nowej

6

IF:

Zmień żarówkę

AND: Moc żarówki zużytej <= 75

THEN:

Moc żarówki nowej = moc żarówki zużytej

Dodaj do listy zakupów żarówkę o mocy żarówki nowej

Page 22: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

22

Zaczynamy – zmienne

1. Zaczynamy od uruchomienia systemu szkieletowego EXSYS Corvid.

2. Wybieramy z File/New, wprowadzamy nazwę dla pliku systemu i klikamy Save. Od

razu wyskakuje okno Variables.

3. Klikamy w oknie Variables przycisk New. Wyskakuje okno New Variables.

4. Pierwszą zmienną będzie żarówka, o którą pytamy. Czyli w polu tekstowym

wpisujemy ZAROWA.

5. Zmienna przyjmuje dwie wartości świeci i zgasła, dlatego będzie typu Static List,

więc wybieramy tę opcję i klikamy OK.

6. Zmieniamy tekst zachęty na „Żarówka” (pojawia się, gdy pytamy o wartość

zmiennej).

7. Teraz ustalamy pierwszą wartość, jaką może przyjmować zmienna. Jako Short Text

wpisujemy „zgasła”, to samo wpisujemy w polu Full Text.

4

5

Page 23: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

23

8. Klikamy przycisk >

9. Postępujemy analogicznie jak w punkcie 7 tylko, że wstawiamy wartość „świeci”.

10. ZAROWA może przyjąć na raz jedną z wartości, więc zaznaczmy na zakładce

Options w grupie opcji Maximum Number of Values that can be assigned wartość

SINGLE Value.

11. Tworzymy zmienną typu Static List o nazwie SWIATLA_W_POKOJU tekście

zachęty „Inne światła w pokoju” i dwóch wartościach „świecą” oraz „zgasły” i

zaznaczamy, iż zmienna może przyjmować tylko jedną wartość.

6

7

8

10

Page 24: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

24

12. Tworzymy zmienną typu Static List o nazwie SWIATLA_W_DOMU tekście zachęty

„Inne światła w domu” i dwóch wartościach „świecą” oraz „zgasły” i zaznaczamy, iż

zmienna może przyjmować tylko jedną wartość.

13. Następnie tworzymy zmienną typu Confidence i nadajemy jej nazwę

ZMIEN_ZAROWE.

14. Tekst zachęty będzie wyświetlany jako wynik, więc w zakładce Prompt zmieniamy

Main Prompt na „Zmień żarówkę”.

15. Teraz tworzymy zmienną typu Confidence o nazwie ROB_NIC i tekście zachęty: „Nie

rób nic”.

16. Następnie zmienną typu Confidence o nazwie SPRAWDZ_BEZPIECZNIKI i tekście

zachęty: „Sprawdź czy nie wyskoczyły bezpieczniki”.

17. Zmienną Confidence ZADZWON_DO_ELEKTROWNI, tekst zachęty: „Zadzwoń do

elektrowni i zgłoś awarię”.

18. Następnym krokiem będzie stworzenie zmiennych do przechowywania wartości mocy

żarówek. Tworzymy zmienne typu Numeric o nazwach MOC_ZUZYTEJ,

MOC_NOWEJ i tekście zachęty: „Moc żarówki zużytej”, „Moc żarówki nowej”.

19. Ostatnim krokiem w tworzeniu zmiennych będzie utworzenie zmiennej do

przechowywania listy zakupów typu Collection LISTA_ZAKUPOW, tekst zachęty:

„Lista zakupów”.

W ten oto sposób wszystkie zmienne potrzebne do działania systemu wymiany żarówki są

stworzone. Klikamy Done i gotowe. Pozostaje tylko jeszcze jedna uwaga na temat wartości

zmiennych, mianowicie możemy odnieść się do nich praktycznie w każdym miejscu w

systemie umieszczając nazwę zmiennej w [[]]. Spróbujmy na przykład do tekstu zachęty

zmiennej ZMIEN_ZAROWE dodać informację o mocy żarówki, którą należy wstawić. Za

istniejącym promptem dopisujemy: „. Użyj żarówki o mocy [[MOC_NOWEJ]]W.” To byłoby

na tyle jeśli chodzi o zmienne.

Page 25: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

25

Tworzenie bazy faktów – organizacja bloków logicznych

Wymiana żarówki nie jest zbyt skomplikowaną sprawą, dlatego też nasz system podzielimy

na tylko dwa bloki logiczne. Pierwszy dotyczyć będzie tego czy żarówka powinna być

rzeczywiście wymieniona (reguły 1-4 z Tabeli 3). Drugi zajmie się oszczędnością energii w

mieszkaniu i będzie wskazywał żarówkę odpowiedniej mocy do wstawienia. Przystąpmy do

zaprojektowania tych bloków.

1. Otwieramy okno edycji bloków logicznych Windows/Logic Block. Nowy blok

logiczny jest nazwany „Logic Block 1”, zmieńmy tę nazwę na bardziej przejrzystą.

2. Klikamy przycisk Edit Name i wpisujemy: „Wymiana zarowki”.

3. Klikamy Add.

4. W ten sposób otwiera się okno dialogowe edycji reguł. Na razie stworzymy dwa

węzły: „IF Żarówka zgasła”, „IF Żarówka świeci” dla reguł 1-4 z Tabeli 3.

Z listy zmiennych wybieramy zmienną ZAROWA.

5. Z listy wartości zmiennej wybieramy „zgasła”.

6. Klikamy Add to List.

3

16

2

Page 26: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

26

7. Następnie z listy wartości zmiennej wybieramy „świeci”.

8. Klikamy Add to List.

9. Klikamy Done.

10. Utworzyliśmy dwa węzły dla reguł o zawierających w sobie status żarówki. Teraz

musimy utworzyć w drzewie logicznym węzły IF reguł 1-3 z Tabeli 3, zawierające

wszystkie wartości zmiennej SWIATLA_W_POKOJU dla ZAROWA=zgasła.

Zaznaczamy w tym celu węzeł ZAROWA=zgasła.

4

5

6 i 8

7

9

Page 27: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

27

11. W grupie Add klikamy Below. W ten sposób dodajemy węzły w drzewie logicznym

pod wybranym węzłem.

12. Wybieramy zmienną SWIATLA_W_POKOJU.

10

11

Page 28: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

28

13. Klikamy Add Each Individually i Done.

14. Następnym krokiem będzie utworzenie węzłów reguł zawierających wartości

zmiennej SWIATLA_W_DOMU (reguły 2-3 Tabela 3). Jak widać wartość zmiennej

ma być sprawdzana tylko wtedy, kiedy SWIATLA_W_POKOJU=zgasły. Dlatego

zaznaczamy węzeł, w którym SWIATLA_W_POKOJU=zgasły i dla zmiennej

SWIATLA_W_DOMU powtarzamy kroki 12 i 13.

15. Następnie zajmiemy się tym, co system ma robić, gdy spełnione są warunki z drzewa

logicznego. Weźmy pod lupę regułę 1 z Tabeli 3. W drzewie logicznym wybieramy

SWIATLA_W_POKOJU=świecą.

12

13

Page 29: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

29

16. Ustawimy teraz wartość zmiennej ZMIEN_ZAROWE na 10. Tak naprawdę to mamy

ją ustawić na jakąkolwiek wartość różną od 0. W grupie Then klikamy Variable.

17. Wybieramy zmienną ZMIEN_ZAROWE.

18. Na zakładce Expression w polu tekstowym po znaku = wpisujemy 10.

15

16

Page 30: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

30

19. Klikamy Add to List i Done. Zauważmy, że kolor czerwonej ramki zmienił się na

zielony, co oznacza, że reguła IF/THEN jest kompletna.

20. Skompletujmy teraz regułę 2 z Tabeli 3, czyli przypiszemy zmiennej

SPRAWDZ_BEZPIECZNIKI wartość 10. Wybieramy węzeł

SWIATLA_W_DOMU=świecą.

21. W oknie Add to Block wybieramy zmienną SPRAWDZ_BEZPIECZNIKI i wpisujemy

po znaku = liczbę 10. Klikamy Add to List i Done.

22. Uzupełnienie reguły 3 z Tabeli 3 będzie wyglądało następująco. Zaznaczamy

SWIATLA_W_DOMU=zgasły, klikamy Variable, ustawiamy wartość zmiennej

ZADZWON_DO_ELEKTROWNI na 10.

23. Dochodzimy do ostatniej reguły w tym bloku logicznym, którą uzupełniamy o człon

THEN w taki sposób, że wartość zmiennej ROB_NIC na 10.

24. W oknie Logic Block klikamy Done. W ten sposób blok logiczny „Wymiana żarówki”

jest kompletny.

25. Kolejny blok to „Moc żarówki”. Otwieramy okno edycji bloków logicznych

(Windows/Logic Block).

17

18

19

Page 31: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

31

26. Zmieniamy nazwę (Edit Name) na „Moc żarówki”.

27. Moc żarówki określamy tylko wtedy, gdy chcemy ją wymienić, czyli gdy

ZMIEN_ZAROWE=10. Dodajemy IF, gdzie warunkiem jest ZMIEN_ZAROWE=10.

28. Następnie dodajemy węzły dotyczące sprawdzenia mocy żarówki zużytej. Klikamy w

grupie If/And przycisk Below.

29. Wybieramy zmienną MOC_ZUZYTEJ.

30. W oknie edycji wyrażenia Boolowskiego (Boolean Test Expression) wpisujemy:

„>75”.

31. Klikamy Add to List.

32. Ponownie wybieramy zmienną MOC_ZUZYTEJ i dodajemy do wyrażenia „<=75”.

Ponownie Add to List, a na koniec Done.

33. Zajmiemy się teraz dodawaniem podpowiadaniem jakiej mocy żarówki powinne być

wkręcane. Dla żarówek o mocy większej niż 75W będzie wyglądało to tak: musimy

najpierw przypisać odpowiednią wartość dla zmiennej MOC_NOWEJ. W tym celu

zaznaczamy węzeł, gdzie MOC_ZUZYTEJ>75, w grupie Then klikamy Variable,

wybieramy zmienną MOC_NOWEJ, w polu edycji po znaku = wpisujemy 75 i

klikamy Add to List i Done.

34. Podobnie postępujemy, jeśli chodzi o tworzenie węzła THEN, dla żarówek o mocy

mniejszej bądź równej 75W. Zaznaczamy węzeł MOC_ZUZYTEJ<=75, klikamy

Variable, wybieramy zmienną MOC_NOWEJ.

35. Tu następuje zmiana sposobu działania. Wartość zmiennej MOC_ZUZYTEJ dla

zmiennej MOC_NOWEJ możemy przypisać na dwa sposoby: albo wpisać nazwę

zmiennej ręcznie, albo wybrać ją z listy. Aby wybrać zmienną z listy klikamy przycisk

Variables i wybieramy zmienną MOC_ZUZYTEJ z listy. Add to List i Done.

36. Dodawanie do listy zakupów powinno być realizowane tylko w przypadku, gdy

wymieniamy żarówkę. W bieżącym bloku logicznym zaznaczamy najpierw węzeł

MOC_ZUZYTEJ>75. Dodajemy THEN jako operacje na zmiennych (Variable).

37. Z listy zmiennych wybieramy LISTA_ZAKUPOW.

38. Do listy zakupów chcemy dodawać elementy, dlatego zaznaczamy opcję Add Item.

Page 32: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

32

39. Rozwija się nam pole tekstowe, w które wpisujemy tekst, który chcemy dodać do listy

zakupów. Wpiszmy: „Żarówka o mocy [[MOC_NOWEJ]]W”. Klikamy Add to List i

Done.

40. Kroki 36-39 powtarzamy dla węzła MOC_ZUZYTEJ<=75.

Logikę systemu wymiany żarówki mamy stworzoną. Wszystko ma działać według reguł 1-6 z

Tabeli 3.

Kontrola działania systemu – projektowanie bloków poleceń

Skoro mamy zmienne i reguły, to co nas ma zatrzymać przed uruchomieniem systemu?

Niestety reguły i zmienne to nie wszystko, musimy powiedzieć Corvid’owi jak ma

uruchamiać nasz system. Dlatego teraz zaprojektujemy blok komend.

1. Otwieramy okno edycji bloków komend (Windows/Command Block)

2. Naszym oczom ukazuje się okno z dodanym blokiem o nazwie „Command Block 1”.

Klikamy Add, co otwiera okno budowania komend.

3. W blokach logicznych używaliśmy zmiennych Confidence (stopień pewności),

dlatego żeby system używał naszych bloków logicznych do określenia stopnia

pewności wszystkich zmiennych typu Confidence. W zakładce Variables ustawiamy

następujące wartości: Derive a value from TO BE and Logic Blocks oraz All

Confidence Variables. W polu tekstowym Command wyświetliła się nam komenda,

którą zostawiamy w spokoju.

4. Klikamy OK.

5. Komenda DERIVE CONF użyje bloków logicznych do określenia wartości

zmiennych typu Confidence. Zachodzi jeszcze potrzeba wyświetlenia wyników

wnioskowania. W tym celu dodajemy kolejny fragment programu w bloki komend

klikając Add Below.

6. Przechodzimy do zakładki Results.

7. Ustawiamy domyślny ekran wyświetlania zmiennych zaznaczając opcję Display

Default Result Screen. (W tym momencie możemy uruchomić już system, jednak

wygląd wyników pozostawiałby wiele do życzenia.) Ciskamy przycisk Edit

znajdujący się tuż pod dużym oknem tekstowym.

Page 33: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Budowa prostego systemu ekspertowego...

33

8. Nie chcemy, żeby były wyświetlane wartość zmiennych typu Confidence, chcemy

żeby wyświetlane były tylko teksty zachęty. W oknie Display Commands w grupie

opcji Build wybieramy opcję Variables.

9. Następnie na zakładce Format wybieramy opcję Prompt only – no value.

10. Nadajmy jakiś inny wygląd dla tekstów zachęty zmiennych Confidence. Zmieniamy

rozmiar czcionki na 15 i pogrubiamy – w polu tekstowym Size wpisujemy „15”, a w

polu kombi Style wybieramy Bold. Klikamy OK.

11. Tak spreparowaną komendę edycji dodajemy do listy komend wciskając przycisk Add.

12. Następnie dodamy do wyników listę zakupów. Jako nową regułę formatowania

wyników dodajemy pusty wiersz. W grupie opcji Build zaznaczamy opcję Text.

13. Klikamy przycisk Add. I mamy pusty wiersz do oddzielenia listy zakupów.

14. Analogicznie jak w punktach 12 i 13 dodajemy tekst: „Lista zakupów”, przy czym

nadajemy mu postać kursywy – Edit na zakładce Format i tam zaznaczamy Style i

wybieramy Italic.

15. Wreszcie wypisujemy listę poprzez zaznaczenie opcji Variables i wybranie z pola

kombi zmiennej LISTA_ZAKUPÓW. Klikamy Add i OK, w nastepnym oknie też OK,

a w oknie edycji bloków logicznych Done.

Opracowaliśmy właśnie wygląd i działanie systemu. Działa on sprawnie, aby się o tym

przekonać uruchamiamy go poleceniem Run/Start Run. Wreszcie potrzeba tylko jednej

blondynki do wymiany żarówki.

Page 34: Przegląd EXSYS Corvid - m65.pk.edu.pl dydaktyczne/Materialy do zajec/2011_2012... · OPIS PRODUKTU EXSYS CORVID EXSYS Corvid – przegląd. 4 nimi być jakiekolwiek zestawy reguł

OPIS PRODUKTU EXSYS CORVID Błąd! Nie można odnaleźć źródła odwołania.

34