|
|
pl:miw:miw08_prolog_javasockets [2008/06/13 13:46] miw |
pl:miw:miw08_prolog_javasockets [2019/06/27 15:50] |
====== Opis ====== | |
Łukasz Łysik <llysik@gmail.com> | |
| |
Java ↔ Prolog via Sockets, examples, feasibility study, evaluation | |
An example of enabling a Java tic tac toe GUI to interact with the Prolog tic tac toe game agent, using a socket data connector: http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/8_4.html | |
| |
====== Spotkania ====== | |
| |
===== 08.03.04 ===== | |
* zmiana java(server) na java client | |
* logic server | |
| |
| |
| |
===== 08.03.18 ===== | |
* todo: [[pl:prolog:prolog_lab:prolog_lab_2#tematprosty_system_ekspertowy|car expert system]] | |
| |
<code prolog> | |
user_says(Q,A) :- stored_answer(Q,A). | |
| |
user_says(Q,A) :- \+ stored_answer(Q,_), | |
nl,nl, | |
ask_question(Q), | |
get_yes_or_no(Response), | |
asserta(stored_answer(Q,Response)), | |
Response = A. | |
</code> | |
| |
<code prolog> | |
user_says(Q,A) :- stored_answer(Q,A). | |
| |
user_says(Q,A) :- \+ stored_answer(Q,_), | |
nl,nl, | |
java_ui_quest(Q,Response), | |
asserta(stored_answer(Q,Response)), | |
Response = A. | |
| |
java_ui_quest(Q,R) :- | |
ask_qest_in_java(Q), | |
get_ans_from_java(R). | |
</code> | |
| |
Przy założeniu Java pyta prolog o diagnozę: | |
| |
Przerobić to: | |
<code prolog> | |
try_all_possibilities :- % Backtrack through all possibilities... | |
defect_may_be(D), | |
explain(D), | |
fail. | |
</code> | |
| |
//defect_may_be// to zapytanie do prologu... | |
| |
===== 080401 ===== | |
| |
MISSED | |
| |
| |
| |
| |
===== 080415 ===== | |
* upload plików java/prolog do wiki + instr obsługi + wraz z opisem rozwiązania | |
* model z [[hekate:varda]], view w java, funkcjonalność z ''varda_model.pl'' (oraz ew. cześć innych predykatów) ma być udostępniania przez socket jako model, do tego jest view w javie | |
| |
===== 080422 ===== | |
* proto varda | |
| |
| |
| |
===== 080429 ===== | |
* dynamiczne generowanie zawartości (np. checkbox) okienka do split lub finalize | |
* możliwość odpalenia sar/shi z gui. | |
* kiedy można zrobić split/finalize -> | |
ard_property | |
ard_hist | |
ard_dependency | |
patrz varda_view:dotgen_ard_body | |
| |
| |
===== 080520 ===== | |
* logika w prologu + shi/sar! | |
| |
===== 080610 ===== | |
* split(V)->jgrapmvievserialize(V)->xml ->split(varda)->sar_socket <-dot2jgxml->update(V) | |
* po stronie V jest graphviz | |
''dot -Tsvg us.dot|grep 'text-anchor' us.svg'' | |
''dot -Tsvg us.dot|grep -A1 'node' us.svg'' | |
''dot -Tsvg us.dot|grep -A1 'node' us.svg|cut -d ' ' -f 3|grep points|cut -d'"' -f2'' | |
| |
===== 080617 ===== | |
* zacząć pisać sprawozd | |
* krótki opis "protokołu" | |
* sugestie co do rozszerzenia api vardy | |
* sug. co do poprawy kody ("switch") | |
| |
===== FutWork ===== | |
| |
====== Projekt ====== | |
===== Car expert system ===== | |
| |
==== Wersja 1 ==== | |
{{:pl:miw:car_expers_system_v.1.tar.gz|:pl:miw:car_expers_system_v.1.tar.gz}} | |
{{:pl:miw:prolog_javasockets_v.1.jpg|:pl:miw:prolog_javasockets_v.1.jpg}} | |
| |
==== Wersja 2 ==== | |
{{:pl:miw:car_expers_system_v.2.tar.gz|:pl:miw:car_expers_system_v.2.tar.gz}} | |
{{:pl:miw:prolog_javasockets_v.2.jpg|:pl:miw:prolog_javasockets_v.2.jpg}} | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
====== Sprawozdanie (jeszcze niepełne)====== | |
| |
===== Uruchamianie projektu ===== | |
| |
| |
| |
==== Serwer (Prolog) ==== | |
- Ściągnij archiwum: {{:pl:miw:varda-prolog-1.0.tar.gz|:pl:miw:varda-prolog-1.0.tar.gz}} | |
- Rozpakuj: <code> tar -zxvf varda-prolog-1.0.tar.gz </code> | |
- Wejdź do katalogu: <code> cd varda-prolog-1.0 </code> | |
- Uruchom przykładowy plik: <code> ./varda therm-model.pl </code> | |
- Uruchom serwer na porcie 12345: <code> :- create_server(12345). </code> | |
- Serwer oczekuje na połączenia. | |
| |
| |
==== GUI (Java) ==== | |
- Ściągnij archiwum: {{:pl:miw:varda-gui-1.0.tar.gz|:pl:miw:varda-gui-1.0.tar.gz}} | |
- Rozpakuj: <code> tar -zxvf varda-gui-1.0.tar.gz </code> | |
- Wejdź do katalogu: <code> cd varda-gui-1.0/bin </code> | |
- Uruchom program: <code> java -cp ../lib/jgraph.jar:./ varda_gui.Main </code> | |
| |
| |
====== Materiały ====== | |
FIXME | |
* http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/8_4.html | |
* [[pl:prolog:prolog_lab:prolog_lab_5|bagof/findall]] | |
* [[pl:prolog:prolog_lab:prolog_lab_6|call etc.]] | |
* [[http://72.5.124.55/docs/books/tutorial/uiswing/components/dialog.html|Java message box types]] | |
* [[http://72.5.124.55/docs/books/tutorial/uiswing/components/tree.html|Trees in Java Swing]] | |