SPHINX jest dobrze zintegrowanym pakietem oprogramowania narzędziowego z zakresu sztucznej inteligencji. W jego skład wchodzą następujące komponenty:
system PC-Shell – szkieletowy system ekspertowy,
system Neuronix – symulator sieci neuronowej,
system CAKE – system komputerowego wspomagania inżynierii wiedzy,
system HybRex – system do budowy inteligentnych aplikacji SWD i analizy danych,
system Predyktor – system prognostyczny,
system DeTreex – indukcyjny system pozyskiwania wiedzy,
system dialogEditor – system wspomagający tworzenie interfejsu użytkownika,
system demoViewer – system do prezentacji aplikacji pakietu SPHINX,
aplikacje demonstracyjne,
obszerna dokumentacja z dużą liczbą przykładów.
Wykorzystywany jest w dydaktyce i badaniach naukowych na wielu polskich uczelniach. Znajduje również zastosowanie w przedsięwzięciach i instytucjach komercyjnych, zaczynając od techniki, a na finansach i bankowości kończąc. Pakiet posiada własny język reprezentacji wiedzy oraz programowania, co niezwykle zwiększa elastyczność tworzonych w jego środowisku aplikacji. Zdobył kilka wyróżnień i nagród na targach oprogramowania.
Systemy ekspertowe można określić jako programy, których podstawowym zadaniem jest symulowanie ludzkiej ekspertyzy w określonej, na ogół wąskiej dziedzinie. Trudno podać ścisłe wyznaczniki tej technologii, jest ona bowiem w trakcie intensywnego rozwoju. Nie mniej jednak, można podać kilka cech odróżniających te systemy od konwencjonalnych programów:
jawna interpretacja wiedzy i oddzielenie jej od procedur sterowania;
zdolność wyjaśniania znalezionych przez system rozwiązań problemów;
przetwarzanie wiedzy wykorzystujące głównie przetwarzanie symboli, w mniejszym zaś stopniu przetwarzanie numeryczne;
do rozwiązywania problemów wykorzystane są głównie różne metody rozumowania (wnioskowania), w mniejszym zaś stopniu algorytmy.
Te cechy, jak się wydaje, tworzą współczesny paradygmat systemów ekspertowych.
W odróżnieniu od klasycznych programów komputerowych wiedza zawarta w bazie wiedzy opisuje dziedzinę problemową bez podania szczegółowego sposobu rozwiązania danego problemu. Baza wiedzy przyjmuje na ogół postać pliku na dysku komputera.
Przechowywana w nim wiedza jest zapisana za pomocą określonego języka reprezentacji wiedzy, na który najczęściej składa się opis faktów, reguł stosowanych w procesie wnioskowania oraz w [przypadku niektórych systemów – metareguł, opisujących strategię rozwiązania danego problemu. Ponadto niektóre systemy wykorzystują tzw. Ramy, które z jednej strony mogą być wykorzystywane w procesie wnioskowania, z drugiej strony zaś odwzorowują wiedzę o strukturze problemu.
Wiedza znajdująca się w bazie wiedzy może pochodzić z różnych źródeł, najczęściej jednak pochodzi od ekspertów lub innych specjalistów z danej dziedziny.
W tzw. tablicowych systemach ekspertowych wiedza może być rozproszona w kilku plikach, tzw. źródłach wiedzy. Każde ze źródeł wiedzy może przechowywać wtedy wiedzę służącą do rozwiązania innego problemu.
Unikatową cechą SE jest zdolność do tworzenia objaśnień. Wyróżnia się 3 rodzaje wyjaśnień:
• „jak?”(ang. how) – w jaki sposób system wyprowadził konkluzję
• „dlaczego?” (ang. why) – dlaczego system zadał użytkownikowi pytanie i jak jego odpowiedź przyczynia się do rozwiązania problemu
• „co to jest?” (ang. what is)– objaśniające pojęcia zawarte w bazie wiedzy.
System szkieletowy zawiera gotowy podsystem przetwarzania wiedzy. Twórca systemu ekspertowego może ograniczyć się do pozyskania i sformalizowania wiedzy eksperckiej.
ARCHITEKTURA SYSTEMU EKSPERTOWEGO
Ponieważ systemy eksperckie mają budowę modułową, można łatwo odseparować maszynę wnioskującą i interfejs użytkownika od bazy wiedzy. Pozwala to na tworzenie szkieletowych systemów eksperckich, czyli gotowych programów komputerowych z maszyną wnioskującą i pustą bazą wiedzy. Specjalne edytory znajdujące się w tych programach umożliwiają wpisywanie odpowiednich reguł dotyczących danego problemu, po wprowadzeniu, których system rozwiąże postawione zadanie. Użytkownicy tych systemów nie muszą zajmować się programowaniem, do nich należy jedynie przekazywanie wiedzy o danym problemie.
Propozycja klasyfikacji systemów ekspertowych:
- interpretacyjne (np. rozpoznawania mowy czy obrazów)
- predykcyjne (wnioskują o przyszłości)
- diagnostyczne (określają wady przedmiotu ekspertyzy)
- kompletowania (np. ustalanie konfiguracji komputera)
- planowania (np. planują ruchy robota dla osiągnięcia jakiegoś celu)
- monitorowania (porównują obserwacje z ograniczeniami)
- sterownia (kierują zachowaniem systemu)
- poprawiania (podają sposób postępowania z systemem)
- naprawy (harmonogram naprawy uszkodzenia)
- instruowania (np. systemy doskonalenia zawodowego)
Klasyfikacja systemów ekspertowych ze względu na liczbę reguł zawartych w bazie wiedzy wyróżnić można cztery typy systemów ekspertowych:
dydaktyczne – znacznie poniżej 100 reguł
małe – nieco powyżej 100 reguł (0.5MM)
średnie – około tysiąca reguł (8MM)
duże – zwykle poniżej 10 tyś. reguł (36 MM)
W nawiasach podano szacunkowy czas tworzenia systemu ekspertowego z odpowiedniej wielkości bazą.
Przykłady zastosowań:
- finanse (analiza ryzyka kredytowego czy inwestycyjnego, monitorowanie spłat kredytu, ...)
- medycyna (analiza wyników badań pacjenta, diagnoza choroby, ocena trafności leczenia, ...)
- przemysł (planowanie produkcji, kontrola jakości, monitorowanie produkcji, ...)
- marketing (analiza zachowań klientów i ich prognozowanie)
- prawo (odtwarzanie norm prawnych)
- administracja (decyzje dotyczące wymiaru emerytur, monitorowanie decyzji urzędników)
- energetyka
- telekomunikacja ....
Przykłady systemów:
- DENDRAL (poł. lat 60-tych), ustalanie struktury molekularnej nieznanych związków chemicznych.
- MYCIN (od 1972, 1974, 1979), pomaga w wyborze terapii przeciwbakteryjnej dla pacjentów z chorobami infekcyjnymi krwi (identyfikacja drobnoustrojów, wybór leku i dawkowania).
- INTERNIST/CADUCEUS (od 1974) diagnozowanie, system osiągnął sprawność 85% medycyny wewnętrznej (interny).
- R1/XCON (od 1979) konfiguruje komputery VAX znacznie lepiej niż ludzie, którzy to wcześniej robili, zawiera około 3000 reguł, do 1986 policzył ponad 80.000 zamówień na komputery.
- PROSPECTOR (od 1974), interpretacja danych geologicznych przy poszukiwaniu złóż minerałów, spektakularny sukces w 1978 – odkrycie złóż molibdenu w stanie Waszyngton.
- MACSYMA, rozwiązywanie problemów matematycznych (algebra i rachunek całkowy), szeroko stosowany w MIT.
- UNDERWRITING ADVISOR - ocena ryzyka na podstawie podań o ubezpieczenie.
- LENDING ADVISOR - pomoc w podejmowaniu decyzji kredytowych.
- INVEST (1988) doradztwo w dziedzinie inwestycji finansowych klientów.
- ISAF (inteligentny system analiz finansowych) AITECH, Katowice, 1993-1995 diagnostyka kondycji finansowej przedsiębiorstw (wersja oceny zewnętrznej oraz wersja dla firmy do planowania i bieżącej kontroli) informacje pobierane są z systemów ewidencyjnych (pliki w formatach dbf, oracle, txt ...) używany przez banki, towarzystwa leasingowe, firmy doradcze, wyższe uczelnie wykorzystuje PC-Shell.
Techniki pozyskiwania wiedzy
1) Rejestrowanie działań eksperta
2) Rozmowa z ekspertem
3) Opisywanie problemu przez eksperta
4) Obserwacja i analizowanie problemu
Inżynier wiedzy stawia ekspertowi szereg zadań, obserwuje działania eksperta i analizuje sposób ich rozwiązywania przez eksperta. Metoda ta jest przydatna wtedy, gdy praca eksperta da się obserwować.
5) Udoskonalanie systemu ekspertowego
Dla danego systemu ekspertowego, inżynier wiedzy daje ekspertowi do rozwiązania coraz trudniejsze problemy. Poprzez rejestrację, rozmowę, opisywanie rozwiązania przez eksperta i obserwację działań eksperta inżynier analizuje rozwiązania i poprawia system (np. dodaje kolejne reguły do bazy wiedzy).
6) Testowanie systemu ekspertowego
W przypadku systemu ekspertowego regułowego inżynier wiedzy sprawdza i ocenia sposób doboru reguł przez mechanizm wnioskowania oraz działanie każdej reguły w różnych konkretnych przypadkach wymagających decyzji, rady czy opinii.
W przypadku systemu rozmytego testy mogą służyć również do dostrojenia kształtów zbiorów rozmytych, reprezentujących w systemie zmienne bądź operacje na zmiennych, do specyfiki rozwiązywanych problemów.
7) Legalizacja systemu ekspertowego
Udostępniamy system ekspertom, którzy nie brali udziału w tworzeniu tego systemu. Eksperci ci oceniają rozwiązania proponowane przez system i poddają je krytyce. Służy to do ostatecznego poprawienia systemu.
Zalety systemów ekspertowych:
- jawna reprezentacja wiedzy zrozumiała dla użytkownika
- możliwość przyrostowej budowy bazy wiedzy
- względna łatwość modyfikowania bazy wiedzy
- stanowią narzędzie kodyfikacji wiedzy eksperckiej
- mają zdolność rozwiązywania problemów specjalistycznych, w których dużą rolę odgrywa doświadczenie
- wiedza eksperta jest dobrem rzadkim i kosztownym
- SE mają zdolność wyjaśniania własnych konkluzji
- SE zwiększają dostępność ekspertyzy
- dają możliwość prowadzenia jednolitej polityki przez firmy mające wiele oddziałów
- poziom ekspertyzy stabilny, niezależny od warunków zewnętrznych, godzin pracy
PC-Shell jest pierwszym polskim - w pełni komercyjnym - szkieletowym systemem ekspertowym. PC-Shell powstał jako rezultat wcześniejszych doświadczeń uzyskanych podczas budowy systemu PC-Expert (1985-87) oraz Diagnosta MC 14007 (1988). PC-Shell otrzymał dwa wyróżnienia na Międzynarodowych Targach Oprogramowania SOFTARG w roku 1994 oraz 1996. W roku 1997 system otrzymał nagrodę II-go stopnia w konkursie na najlepszy program targów SOFTARG. System był wielokrotnie prezentowany na konferencjach i seminariach, zarówno w kraju jak i za granicą.
PC-Shell jest dziedzinowo-niezależnym narzędziem służącym do budowy systemów ekspertowych. Może być zastosowany w dowolnej dziedzinie: począwszy od bankowości i finansów a na zastosowaniach technicznych kończąc. Typowe obszary zastosowań systemu PC-Shell to:
• systemy doradcze i wspomagania decyzji,
• dydaktyka (wyższe uczelnie i szkoły średnie).
System może być między innymi wykorzystywany w takich dziedzinach jak:
• analizy finansowe (ekonomiczne),
• analizy wniosków kredytowych w bankach,
• doradztwo podatkowe,
• dzięki otwartej architekturze może być łatwo zintegrowany z Systemami Informowania Kierownictwa, służąc np. do automatycznej analizy wskaźników ekonomicznych,
• technika, np. do analizy danych pomiarowych.
Dziedzinowa niezależność systemu PC-Shell oznacza, że nie dziedzina a raczej klasa problemów decyduje o powodzeniu zastosowania tego systemu. System PC-Shell jest szczególnie predysponowany do rozwiązywania następujących klas problemów:
• analiza (interpretacja) danych
• klasyfikacja,
• diagnostyka,
• finanse i bankowość,
• inwestycje,
• marketing,
• technika,
• dydaktyka,
• komponent dla systemów SIK, analizatorów, arkuszy kalkulacyjnych,
• komponent programów edukacyjnych.
PC-Shell jest dziedzinowo niezależny, stąd zakres jego zastosowań jest bardzo szeroki. Bowiem nie dziedzina a klasa problemów decyduje o powodzeniu zastosowania systemu
PC-Shell.
System PC-Shell jest systemem o architekturze hybrydowej, tj. łączącej w sobie różne metody rozwiązywania problemów i reprezentacji wiedzy. Interesującą właściwością systemu PC- Shell jest między innymi wbudowany, w pełni zintegrowany, symulator sieci neuronowej. Inną istotną cechą systemu PC-Shell jest jego struktura tablicowa, co umożliwia podzielenie dużej bazy wiedzy na mniejsze moduły - zorientowane tematycznie, tzw. źródła wiedzy.
Dzięki hybrydowej architekturze, w systemie PC-Shell występują obok siebie różne metody reprezentowania wiedzy:
• deklaratywna w formie reguł i faktów,
• trójka: obiekt, atrybut, wartość,
• imperatywna w formie programu algorytmicznego,
• wiedza w formie tekstów,
• wiedza rozproszona w sieci neuronowej,
• możliwość podzielenia bazy wiedzy na pewną liczbę źródeł wiedzy.
System PC-Shell jest wyposażony we własny język reprezentacji wiedzy. Język ten dzięki przyjętym rozwiązaniom, w tym blokowej strukturze, cechują:
• elastyczność,
• czytelność,
• pełne rozdzielenie wiedzy eksperckiej i procedur sterowania,
• łatwość nauczania.
Niezwykle ważną i wręcz unikatową cechą systemów ekspertowych są tzw. wyjaśnienia. System PC-Shell dostarcza szerokiego zakresu wyjaśnień spotykanych we współczesnych systemach ekspertowych.
W systemie PC-Shell oprócz wyjaśnienia typu: „jak”, „dlaczego”, „co top jest”, wprowadzono dodatkowe wyjaśnienia tekstowe, nazywane metaforami, będące uzupełnieniem wyjaśnień typu jak i opisy faktów pokazujące źródło i metodę ich pozyskania oraz dostępność wyjaśnień.
System PC-Shell składa się z następujących elementów:
1) Modułu sterującego – podstawowym jego zadaniem jest koordynowanie wszelkich procesów realizowanych przez system PC-Shell. Jednym z jego zadań jest komunikacja z użytkownikiem poprzez interfejs użytkownika. Interfejs ten pracuje w trybie tekstowym i opracowany został w taki sposób, by sugerował użytkownikowi określone warianty działania w danym kontekście, uwalniając go tym samym od konieczności ich pamiętania.
2) Translatora języka opisującego bazy wiedzy – systemy rozwiązują problemy wykorzystując wiedzę ekspercką zawartą w ich bazie wiedzy. Zanim wiedza zostanie wprowadzona do bazy wiedzy, musi być wcześniej odpowiednio sformalizowana (skodyfikowana). Do tego celu w systemie PC-Shell wykorzystuje się tzw. język opisu bazy wiedzy. Wyrażony w tym języku opis bazy wiedzy może być utworzony i zapisany w pamięci dyskowej komputera za pomocą dowolnego edytora tekstowego pracującego w kodzie ACII. Zadaniem translatora języka opisu bazy wiedzy jest czytanie pliku dyskowego zawierającego opis bazy wiedzy, tłumaczenie i wprowadzenie odpowiedniego kodu do bazy systemu PC-Shell, mieszczącej się w całości w pamięci operacyjnej komputera.
3) Modułu wnioskującego – zadaniem tego modułu jest rozwiązywanie problemów wyjaśnień wykorzystaniem wiedzy zawartej wyjaśnień bazie wiedzy. Do tego celu wykorzystywane są odpowiednie procedury wnioskowania (rozumowania).
4) Modułu wyjaśnień – wyjaśnienia udzielane przez system powinny przekonać użytkownika do poprawności zastosowanego rozumowania. Jednakże mogą one być również podstawą do weryfikacji bazy wiedzy, jeśli użytkownik stwierdzi, że wyjaśnienia przedstawione przez system są nieprzekonujące.
5) Symulatora sieci neuronowych
6) Zewnętrznego edytora bazy wiedzy
7) Interfejsu użytkownika
8) Interfejsu do plików dyskowych.
Elementy architektury tablicowej w systemie.
Istota systemów tablicowych opiera się na analogii ze sposobem, w jaki może współpracować kilka ekspertów rozwiązujących pewien problem.
Każdy z ekspertów włącza się do rozwiązania wspólnego problemu w zakresie jego kompetencji, a tworzone przez nich rozwiązania pośrednie zapisywane są na tablicy.
W systemach tablicowych wiedza ekspercka nie jest zgromadzona w jednym miejscu (np. pliku), lecz rozproszona w postaci kilku wyodrębnionych fizycznie modułów, zwanych źródłami wiedzy. Poszczególne źródła wiedzy odpowiadają ekspertom z podanej metafory. Ponadto zakłada się istnienie wspólnej, tj. dostępnej dla wszystkich źródeł, tablicy komunikacyjnej (ang. blackboard), będącej rodzajem pamięci roboczej.
System może być łatwo integrowany z innymi aplikacjami. W szczególności może być wykorzystany jako moduł do analizy (interpretacji) danych i wskaźników z systemów typu SIK, arkuszy kalkulacyjnych lub innych systemów pomiarowych. Ułatwiają to instrukcje uruchamiania innych aplikacji, jak również możliwość wywołania systemu PC-Shell przez inną aplikację. Wymiana danych może odbywać się przez plik tekstowy (PC-Shell ma rozbudowany interfejs i instrukcje do obsługi tego typu plików) oraz z użyciem mechanizmu DDE. Ponadto istnieje możliwość integracji za pomocą uruchamiania podstawowych procesów systemowych za pomocą funkcji DLL tychże systemów.