To jest stara wersja strony!


Opis

Piotr, Strzelczyk, pit.strzelec@gmail.com

Integracja kodu Prologu z Java

porównać z projektami z 2006 roku http://www.ugosweb.com/jiprolog/ http://portal.acm.org/citation.cfm?id=787039 http://www.sics.se/sicstus|SICStus]]

patrz https://ai.ia.agh.edu.pl/wiki/prolog:prolog_tools#java_and_prolog

InterProlog http://www.declarativa.com/interprolog/, description, how to use, does it make any sense?

Spotkania

08.03.04

  • zbieranie materiałów

080318

  • selekcja (co odpada i dlaczego → np. brak dostępu do narzędzi)
  • klasyfikacja: podobieństwa i różnice → klasy

080401

  • próba zrobienia car, ew przerobienia istn. przykładów dla 2 środowisk?
  • dokładny opis uruchom kodu pod win i linux! prolog+jdk
  • pliki z kodem do pobrania z wiki →namespace

Projekt

Sprawozdanie

1. Wybranie najciekawszych linków oraz porównanie bibliotek.

1.1. Opis linków oraz ostateczna decyzja o ich użyteczności.

Opis wniosków (legenda):

  • OK! - link jest użyteczny i przydatny
  • OK (→ nazwa_biblioteki)! - link zawierający ciekawe dodatkowe informacje, albo bardziej szczegółowy opis biblioteki o nazwie podanej w nawiasie
  • OK! NEUTRAL! - link jest użyteczny i przydatny, ale mogą wystąpić kłopty ze względu na małą ilość informacji (związanych z daną biblioteką)
  • NEUTRAL! - link do biblioteki, której opis jest bardzo ubogi i nie rokuje sukcesem jej użycie
  • OUT! - link nie użyteczny, następuje rezygnacja z niego
  • INFO! - link do strony zestawiającej informacje związane z tematyką (np. zestawienie wszystkich bibliotek integrujących Javę i Prolog)

JIProlog

Link: http://www.ugosweb.com/jiprolog/index.aspx

Opis: 8min - poddanie się z próbą uruchomienia apletu

Bardzo szybko znalezione API (odrazu link)

Wygląda obiecująco, bo jest to program napisany w języku Java oraz pozwala integrować w bardzo łatwy sposób Prolog'u z Javą. Predykaty Prologu mogą być uruchamiane z poziomu javy (opis na stronie)

Forum dość ubogie, mało odnośnie samego kodowanie. Główne tematy związane bardziej z middletami i wykorzystaniem jiprolog na komórki. Forum dwujęzyczne (włoski, angielski), więc nie które tematy są w innym języku (włoskim) niż angielski (przeglądnięcie tylko samych tematów).

Manual jest w download-ach, więc znalezienie jego zajmuje trochę czasu (nie widać linku na głównej stronie).

Dokumentacja 73 strony (przeglądnięta na szybko przelotem) wnioski:

  • bardzo bogaty opis z przykładami, jeżeli chodzi o integrację java → prolog
  • mało napisane o samej integracji prolog → java
  • integracja prolog → java, wygląda obiecująco (najprawdopodobniej można uruchamiać cały program wprost z poziomu Javy)
  • pierwsze wrażenie dość pozytywne (subiektywne wrażenie autora)
  • wrażenie z przeglądniecia forum zaczyna się potwierdzać, sporo stron dokumentacji poświęcone platformie J2ME
  • znalezienie kodu przykładowego zajęło około 10min
  • przykład kodu prolog → java bardzo ubogi (może wynika to z dużej możliwości tej biblioteki, ograniczając konieczność nadmiernego kodowania)

Wniosek: OK!


Link: http://portal.acm.org/citation.cfm?id=787039

Opis: Program do analizy programów napisany po części w Javie po części w Prologu. Wygląda na to, że raczej strona mało użyteczna, jeżeli chodzi o integrację Prolog → Java.

Wniosek: OUT!


SICStus 4 Link: http://www.sics.se/isl/sicstuswww/site/index.html

Opis: Wygląda na to, że umożliwia integrację Prologu z serwerami Javy oraz Javę z serwerem Prologu!

Dokumentacja 1246 stron (przeglądana na szybko przelotem) wnioski:

  • integracja przez PrologBeans
  • kod Javy wywołuje zapytanie do Prologu (wniosek z przykładu)
  • ogółem wrażenie, że użyteczne jest to w celu tworzenia aplikacji webowych opartych o Javę
  • wydaje się, że skonfigurowanie środowiska może być cięższe (najprawdopodobniej potrzebny serwer aplikacyjny np Tomcat)

Wniosek: OK, NEUTRAL!


Declarativa InterProlog Link: http://www.declarativa.com/interprolog/

Opis: Strona bardzo prosta, przejrzysta i szybko można znaleść tego czego się potrzebuje.

Dokumentacja w pliku .doc (przeglądana na szybko przelotem) wnioski:

  • bardzo krótka
  • zwięzła i wygląda na bardzo konkretną
  • szybko można znaleść tego co się szuka

Opis mechanizmu działania (bardzo ogólne wnioski, po przeglądnięciu dokumentacji przelotem: Najprawdopodobniej uruchamiany jest 'silnik' prologu, następnie nasłuchiwacz (listener) Prologu. Same zapytania wysyłane są string-iem, zgodnie z konwencją prologu.

Wniosek: OK!


JPL swi-prolog

Link: http://www.swi-prolog.org/packages/jpl/java_api/index.html

Opis: Działa tylko z użyciem SWI-Prolog

Strona prosta i łatwa w przeglądzie i znajdywaniu informacji

Dokumentacja w formie HTML (przeglądana na szybko przelotem) wnioski:

  • prosta
  • szybko można znaleść przykład
  • wygląda na to, że Java wywołuje zapytania do Prologu (przypomina to działanie biblioteki JIProlog)

Wniosek: OK!


Link: http://www.jaist.ac.jp/~fuji/work/docs/html4/jpro_p2.html

Opis: Strona z bardzo dobrym przykładem użycia JPL.

Wniosek: OK ( → JPL)!


PrologCafe

Link: http://kaminari.istc.kobe-u.ac.jp/PrologCafe/

Opis: Na stronie pisze, że bazuje na jProlog, ale link przekierowuje na stronę JLog

Wniosek: OUT!


jProlog

Link: http://www.cs.kuleuven.ac.be/~bmd/PrologInJava/

Opis: Wyglada na to, że są to własne napisane klasy, umożliwające korzystanie z Prologu pod Javą. Brak jakichkolwiek dokumentacji, sam kod umieszczony na stronie. Tworzenie termów itd jest możliwe przez odpowiednie funkcje.

Wniosek: NEUTRAL!


Link: http://ktiml.mff.cuni.cz/~bartak/prolog/implementations.html#prolog_in

Opis: Strona zestawiające projekty łączące Prolog z Javą

Wniosek: INFO!


Link: http://www.robert-tolksdorf.de/vmlanguages.html

Opis: Strona zestawiająca integrację innych języków programowania z JVM. Znajduje się tutaj również Prolog.

Wniosek: INFO!


JLog

Link: http://jlogic.sourceforge.net/

Opis: Wygląda na to, że jest to tylko interpreter Prologu napisany w Javie.

Wniosek: OUT!


Link: http://portal.acm.org/citation.cfm?id=1103379.1103383&coll=GUIDE&dl=GUIDE

Opis: Zawiera informacje o tuProlog lecz dość ogólnikowe i ubogie!

Wniosek: OUT!


Link: http://www.kprolog.com/jipl/index_e.html

Opis: Niestety z nieznajomych względów link nie działa. Podjęto prubę wejścia na stronę www.kprolog.com co się zakończyło sukcesem, lecz niestety oprócz tekstu „Prolog compiler” reszta tekstu na stronie jest w jakiś chinśkich, albo Japońskich ślaczkach :p. Próba znalezienia jakiegoś linku, który zmieniłby język zakończyła się powodzeniem. Strona angielska jest bardzo uboga, ale za to nie zawiera krzaczków! Jest to najprawdopodobniej tylko kompilator Prologu!

Wniosek: OUT!


TuProlog

Link: http://alice.unibo.it/xwiki/bin/view/Tuprolog/

Opis: Ciężko znaleść dobre materjały. Dokumentacja dość przeciętna (po szybkim przeglądnięciu). Wygląda na to, że prolog jest uruchamiany bezpośrednio z Javy, lub przez pisanie kodu dość podobnego do SWI Prolog, ale nie widać coś w stylu wykonania zapytania! Może jest to wykonywane w czasie rzeczywistym (równolegle z wykonaniem kodu Javy)!

Wniosek: OK! NEUTRAL!


MINERWA

Link: http://www.ifcomputer.co.jp/MINERVA/

Opis: Produkt komercyjny, dobrze udokumentowany oraz bardzo łatwo znaleść przykłady urzycia. Ponieważ jest to produkt płatny, nie będzie nas bardziej interesował. Można oczywiście na próbę ściągnąć MINERWĘ nie ponosząc kosztów, ale jedynie na potrzeby własne, w celu przetestowania produktu.

Wniosek: OUT!


Link: http://homepages.fh-regensburg.de/~mpool/mpool07/proceedings/8.pdf

Opis: Pdf opisujący integrację Prologu z Java 1.5. Dokument opiera się o tuProlog i zawiera przykłady kodu, co powinno ułatwić ewentualne zagłębianie się w tuProlog.

Wniosek: OK ( → tuProlog)!


Link: http://www.prolog.info/compilers.html

Opis: Strona opisująca kompilatory Prologu (nie które z nich mogą zawierać biblioteki integrujące Prolog z Javą).

Wniosek: OUT!


Link: http://kaminari.istc.kobe-u.ac.jp/logic/jprolog.html

Opis: Strona zestawia biblioteki integrujące Prolog z Javą!

Wniosek: INFO!


1.2. Porównanie wybranych bibliotek.

Zasada działania Wspierane OS Działa na następujących maszynach Prologu Wersja Javy
JIProlog Umożliwia wywołanie predykatów z Prologu bez wymagania znajomości JNI, albo tworzenie własnych predykatów z poziomu Javy Windows, Linux, Mac OS X Większość popularnych (wspiera specyfikację Edimburgh'ską oraz większość specyfikacji ISO od 1.1
InterProlog Umożliwia wywołanie dowolnej komendy Prologu przez objekt PrologEngineWindows, Linux, Mac OS X XSB Prolog, SWI Prolog, YAP Prolog od 1.4
JPL Zbiór klas Javy i funkcji w C dostarczających interfejs pomiędzy Prologiem, a Javą, używa JNI (Java Nativ Interface) Windows (tylko wersja JPL 2.0.2), Linux (tylko wersja JPL 1.0.1) SWI Prolog brak informacji
TuProlog Wymaga tylko obecności JVM oraz zainicjalizowania jednego pliku .jar, który zawiera najważniejsze mechanizmy maszyny Prologu brak dokładnych informacji, prawdopodobnie Windows, ale skoro to wymaga tylko załadowania .jar to najprawdopodobniej pójdzie na wszystkich OS wspieranych przez Javę Brak wymagań! brak informacji

2. Instalacja wybranych bibliotek integrujących Javę z Prologiem

2.1. Instalacja InterPrologu

2.1.1. Instalacja pod system operacyjny Windows
  1. Instalacja Java JDK (wersja 1.5).
  2. Ustawienie zmiennej środowiskowej (Java).
  3. Instalacja SWI-Prolog.
  4. Ustawienie zmiennej środowiskowej (Prolog).
  5. Instalacja InterPrologu.

Materiały

pl/miw/miw08_prolog_java.1206921611.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0