xiv
PRZEDMOWA
także próby posiłkowania się nimi w „normalnej aplikacji” często są nieskuteczne. Teoretycznie jest to możliwe, ale w praktyce okazuje się, że jest odwrotnie, bo „coś" nie działa.
Do czego więc są? Mówiąc ogólnie, są to języki szczególnie użyteczne wszędzie tam, gdzie stworzenie algorytmu jest trudne. Znany jest problem, znane są warunki jakie muszą być spełnione i pewne zależności a mimo to algorytmu albo nie potrafimy ułożyć, albo jest on strasznie „toporny". Do klasy zagadnień nie poddających się łatwemu opisowi algorytmicznemu, takich w których wiemy co chcemy zrobić, ale zupełnie nie mamy pojęcia jak, należy m.in. (szeroko rozumiana) sztuczna inteligencja.
Niniejszy podręcznik jest opisem narzędzi jakie możemy wykorzystać rozwiązując problemy z zakresu sztucznej inteligencji (ale nie tylko). Ponieważ narzędziem w tym przypadku jest język programowania, więc stąd tytuł: języki programowania sztucznej inteligencji. Zasadniczym celem jaki przed sobą stawiamy jest zmiana sposobu myślenia o problemie oraz umiejętność jego rozwiązania w inny niż algorytmiczny sposób. Służyć temu mają części l-V, w których prezentujemy kolejno Prolog, Lisp oraz Haskell. Wspomniane języki w swej pierwotnej postaci są już dosyć wiekowe i słabo przystają do obecnej rzeczywistości. Dlatego w kolejnych rozdziałach przedstawimy współczesne rozwiązania bazujące na koncepcjach obecnych we wspomnianych językach, czyli tzw. silniki regułowe. Część VII omawia „mały” silnik regułowy Jess, natomiast część VIII poświęcona jest systemowi zarządzania regułami biznesowymi (ang. business rule management system - BRMS) Drools. W żadnym razie nie jest to opracowanie aspirujące do roli „manuala" w omawianych zagadnieniach - osoby zainteresowane np. dokładnym poznaniem Lispa czy Drools odsyłamy do publikacji im poświęconych. Tym bardziej, że choćby samo Drools nie jest już żadną „akademicką zabawką" ale niezwykle rozbudowanym środowiskiem do tworzenia poważnych aplikacji biznesowych.
Piotr Fulmański