Wraz z rozwojem sztucznej inteligencji, równolegle zmianie ulegały języki programowania, które stosowano do implementacji budowanych systemów. Spośród jeżyków wysokiego poziomu dwa zasługują na Szczególną uwagę: LISP i PROLOG. Pierwszy z nich preferowany jest przez projektantów w Stanach Zjednoczonych, zaś drugi w Japonii. Obok wymienionych jeżyków, powstały bardzo wyspecjalizowane środowiska programowe, czy narzędzia wspomagające tworzenie systemów eksperckich. Na rysunku 1.3 przedstawiono ogólny podział środków wspomagających tworzenie systemów sztucznej, inteligencji (w tym systemów eksperckich).
Najniżej w hierarchii5 znajdują się języki wysokopoziomowe. Klasyfikując' języki wysokopoziomowe, można najogólniej wyróżnić trzy grupy:
—języki klasyczne (np. PASCAL),
— języki, w których podstawą jest programowanie w języku rachunku predykatów (np. PROLOG),
—języki tzw. funkcyjne (np. LISP, HOPE, FP).
SYSTEMY
SZKIELETOWE
(POWŁOKOWE)
EXSYS
EXFERTSHELL
JĘZYKI
SZKIELETOWE
EMYON
HEARSAYIH
KEE
OPS5
JĘZYKI
SZTUCZNEJ
INTELIGENCJI
JĘZYKI
WYSOKOPOZIOMOWE
PROLOG
LISP
Rys. 1.3. Podział narzędzi do budowy systemów eksperckich
-5) Ze względu na użyteczność i stopień przystosowania do implementacji specyficznych problemów występujących w systemach eksperckich.
W PROLOGU za pomocą klauzul Homa zapisuje się program, który jest zbiorem faktów i reguł dotyczących obiektów z rozpatrywanej dziedziny wiedzy. Jedną z najbardziej popularnych implementacji języka PROLOG hży wali yeh nasprzęęie klasy IBM PC jest TURBO PROLOG. Program składiasię z (rzęch zasadniczych części: -
a) definicji dziedzin (ang. domains), ; ^ -
b) definicji predykatów (ang. predicates), i i
c) definicji klauzul (ang, clauses). : ;
Korzystając z powyższego zbioru definicji określa się cel (ang. goal) wykonania programu.
PROLOG mą wbudowany mechanizm wnioskowania oparty o wnioskowanie zstępujące (odwromy łańcuch wnioskowania). Jest to jedna z najbardziej p<ipulamyćh metod używanych nawet w bardzo zaawansowanych systemach eksperckich,
W odróżnieniu od PROLOGU, LISP wykorzystuje funkcje, których argumentami mogą być inne funkcje. Stanowi to o przewadze w tym zakresie języka I ,ISP nad PROLOGIEM. Popularną implementacją tego języka jest MULISP. Dynamiczną strukturą danych jest tu lista. Do operowania na strukturze listowej , język wyposażony jest w trzy podstawowe funkcje i dwa predykaty:
• cons [A B] — połączenie dwóch elementów,
-car [lista] — wydzielenie “głowy” listy,
■— cdr [lista] — wydzielenie “ogona” listy;
atom [A]—sprawdzenie czy A jest atomem,
— eg [AB]—porównanie A z B.
Dobrym rozwiązaniem projektowym może być w niektórych przypadkach zastosowanie języków sztucznej inteligencji, które w klasyfikacji znajdują się pomiędzy językami wysokiego poziomu a językami szkieletowymi. Do najbardziej popularnych języków szkieletowych należą: OPS5, KES, KEE, ART, KULEMASTER, SRL, PERSONALCOLSUNTANTPLUS [7],
OPS5 jest jednym z najczęściej wykorzystywanych narzędzi inżynierii wiedzy. Został opracowany w Carnegie-Mellón University i zaimplementowany w dialektach LISPU. Jest językiem przeznaczonym do reprezentacji wiedzy w postaci reguł, z mechanizmem wnioskowania wstępującego. Zawiera także procedury redagowania bazy wiedzy i usuwania błędów.
KES został opracowany przez Software Architecture & Engineering Inc. Zaimplementowany w j ęzyku FRANZLISP, jest przeznaczony do reprezentacji wiedzy w oparciu o reguły i ramy (patrz punkt 2.1) z wnioskowaniem zstępującym. Zawiera mechanizm wnioskowania umożliwiający przetwarzanie wie-
23