====== Przykład użycia JPL do komunikacji Prolog'a z Java ====== Poniżej przestawiam prosty przykład mocno inspirowany tutorialem do JPL. Probując wywołać predykat Prologa z kodu Javy posługujemy się następującą składnią : Query q2 = new Query( "child_of", new Term[] {new Atom("joe"),new Atom("ralf")} ); System.out.println( "child_of(joe,ralf) is " + ( q2.query() ? "provable" : "not provable" ) ); Przykład pokazuje przesłanie zapytania do bazy wiedzy prologa. Można ten mechanizm wykorzystać do wywoływania predykatów wewnątrz obiektów LogTalk, czyli de facto do wywoływania metod na obiektach LogTalk z obiektów Java'y. Gdy konieczne jest wysłanie komunikatu do obiektu Java'y z poziomu Prologa, JPL oferuje następujące rozwiązanie : Predykat **jpl_new/3** pozwala na utworzenie instancji obiektu klasy z Javy : jpl_new( 'javax.swing.JFrame', ['frame with dialog'], F) Natomiast predykat **jpl_call/4** pozwala wywołać metodę na utworzonym powyżej obiekcie: jpl_call( F, setVisible, [@(true)], _) Jak widać JPL umożliwia obustronne wywoływanie metod pomiędzy obiektami klas zdefiniowanych w Javie i logiką opisaną w Prologu.