Używanie JPL i Logtalk do tworzenia aplikacji zgodnych z wzorcem MVC
Instalacja JPL pod Windows
Jako, że do komunikacji pomiedzy obiektami klas Javy i Logtalk'a używana jest bibliotek'a JPL, konieczne jest wcześniejsze jej zainstalowanie.
Jest ona standardowo instalowana wraz z środowiskiem SWI-Prolog, warto jednak podkreslic, ze instalowana jest biblioteka w wersji 3.1.3-alpha, podczas gdy wiekszość dokumentacji, którą można znaleźć na stronie projektu dotyczy wersji 2.x. Skrótowy opis API do uzywania Prologa z Javy, natomiast opis API do uzywania Javy z Prologa .
Jeżeli chodzi o konfigurowanie projektu w Javie konieczne jest też podanie scieżki do NativeLibrary czyli jpl.dll dla Windowsa (pod Linuxami bodajże jpl.so), ktora domyslnie znajduje sie w SWI_HOME_DIR\bin, gdzie SWI_HOME_DIR to folder instalacyjny SWI-Prolog.Aby JPL działał porawnie i możliwa bylo komunikacja pomiedzy Java, a Prologiem nalezy dokonać odpowiednich zmian w zmiennych systemowych zgodnych z instrukcją instalacji JPL. W szczególności upewnić się :
jpl.jar jest widoczny dla Javy, czyli np znajduje się w folderze obecnym w CLASSPATH
Zmienna środowiskowa PATH zawiera folder, w którym znajduje się libpl.dll (domyślnie SWI_HOME_DIR\bin)
Przy uwzglednieniu tych uwag wszystko powinno działać normalnie.
Konfiguracja Logtalk runtime
Aby móc używać obiektów Logtalk'a potrzebne jest nie tylko ich kod zrodlowy w plikach z rozszerzeniem lgt ale aby móc je skompilować i uruchomić, tworząc instancje tych obiektów konieczne jest załadowanie środowiska uruchomieniowego Logtalk'a.
Aby skonfigurowac odpowiednio kompilator SWI do pracy z LogTalk'iem należy uruchomić 3 pliki konfiguracyjne:
configs/swi.config - ustawia zmienne i konfiguruj srodowisko Prologa
complier/logtalk.pl - laduje kompilator LogTalka
libpaths/libpaths.pl - ustawia sciezki do bibliotek standardowych LogTalka
Pliki te znajduja sie w katalogu instalacyjnym Logtalk'a (czyli domyslnie dla Windowsa C:\Program Files\Logtalk)
chyba najwygodniej jest sporządzić sobie plik startowy o zawartosci:
:-consult('lib/Resources/logtalk/swi.config').
:-consult('lib/Resources/logtalk/logtalk.pl').
:-consult('lib/Resources/logtalk/libpaths.pl').
Zanim przystapimy do tworzenia instancji jakiego obiektu Logtalk'a konieczne bedzie uruchomienie tego pliku.