Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_rbs_back [2008/07/11 12:32] miw |
pl:miw:miw08_rbs_back [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Dawid, Zwoźniak, <david_z@poczta.fm> | Dawid, Zwoźniak, <david_z@poczta.fm> |
| |
RBS_Back | RBS_Back |
Przegląd metodologii reprezentacji reguł dla wnioskowania w tył (wstecz). Należy szczególnie uwzględnić reprezentacje graficzne oraz zwrócić uwagę na: przejrzystość reguł, gęstość reprezentowanej informacji. | Przegląd metodologii reprezentacji reguł dla wnioskowania w tył (wstecz). Należy szczególnie uwzględnić reprezentacje graficzne oraz zwrócić uwagę na: przejrzystość reguł, gęstość reprezentowanej informacji. |
| |
| |
====== Spotkania ====== | |
===== 080304 ===== | |
przydzielenie projektu | |
| |
===== 080311 ===== | |
planowane konsultacje | |
| |
| |
===== 080318 ===== | |
? | |
| |
| |
| |
| |
===== 080527 ===== | |
| |
| |
? | |
| |
===== 080626 ===== | |
? | |
| |
| |
* Tools for Software Visualization – SVT (Semantic Visualization Tools) and Vmax | * Tools for Software Visualization – SVT (Semantic Visualization Tools) and Vmax |
* VPP (Visual Programming in Prolog) | * VPP (Visual Programming in Prolog) |
| |
| |
| |
| |
| |
| |
| |
Przykładowy program: | Przykładowy program: |
| |
''p(X) :- q(X), r(X). | ''p(X) :- q(X), r(X).'' |
q(a). | |
q(b). | ''q(a).'' |
r(b). | |
:- p(What).'' | ''q(b).'' |
| |
| ''r(b).'' |
| |
| '':- p(What).'' |
| |
Spy - śledzenie wykonywania przykładowego programu: | Spy - śledzenie wykonywania przykładowego programu: |
| |
''call p(_1) | ''call p(_1)'' |
UNIFY 1 [] | |
call q(_1) | |
UNIFY 1 | |
exit q(a) | |
call r(a) | |
fail r(a) | |
redo q(a) | |
UNIFY 2 | |
exit q(b) | |
call r(b) | |
UNIFY 1 | |
exit r(b) | |
exit p(b)'' | |
| |
| ''UNIFY 1 []'' |
| |
| ''call q(_1)'' |
| |
| ''UNIFY 1'' |
| |
| ''exit q(a)'' |
| |
| ''call r(a)'' |
| |
| ''fail r(a)'' |
| |
| ''redo q(a)'' |
| |
| ''UNIFY 2'' |
| |
| ''exit q(b)'' |
| |
| ''call r(b)'' |
| |
| ''UNIFY 1'' |
| |
| ''exit r(b)'' |
| |
| ''exit p(b)'' |
| |
| |
| == PTP (Prolog Trace Package) == |
| |
| PTP został stworzony przez Eisenstadt (1984) w celu zapewnienia większej ilości detali i bardziej czytelnego przeglądanie uruchamiania programów Prologu, niż w Spy. |
| PTP obsługuje 19 różnych stanów uruchamiania (Spy tylko 4). Również wyróżnia osiągnięcie celu i klauzuli w programie, które były wykorzystywane do osiągnięcia tego celu, poprzez używanie różnych symboli dla wchodzenia i wychodzenia z klauzuli i osiągniętego celu. |
| |
| |
| PTP - reprezentacja przykładowego programu: |
| ''1: ? p(_1) |
| |
| 2: > p(_1) [1] |
| |
| 3: ? q(_1) |
| |
| 4: +*q(a) [1] |
| |
| 5: ? r(a) |
| |
| 6: -~r(a) |
| |
| 7: ^ q(a) |
| |
| 8: < q(a) [1] |
| |
| 9: +*q(b) [2] |
| |
| 10: ? r(b) |
| |
| 11: +*r(b) [1] |
| |
| 12: + p(b) [1]'' |
| |
| |
| == TPM (Transparent Prolog Machine) == |
| |
| TPM wykorzystuje AND/OR model drzewa dla wykonywania programu Prologu. Został stworzony przez Eisenstadt and Brayshaw, 1988; Brayshaw and Eisenstadt, 1991. |
| Opis TPM jest przedstawiony jako osobne narzędzie do wizualizacji. |
| |
| == TTT (Textual Tree Tracer)== |
| |
| TTT ma zasadniczo podobny model jak TPM, jednak używa tekstowej reprezentacji drzewa prez co dostarcza pojedynczego widoku uruchamiania programu. |
| Został stworzony przez Taylor et al, 1991. |
| |
| W przeciwieństwie do liniowych tekstowych programów śledzących wykonywanie programu takich jak Spy i PTP, bieżąca informacja określająca związek z poprzednio osiągniętym celem jest wyświetlana z lub nad poprzednią informacją. To utrzymuje wszystkie powiązane informacje poszczególnych celów w jednym miejscu. |
| |
| Siedem symboli relacji klauzul jest zaimplementowanych. Zmienne powiązane z historią celu są wyświetlane bezpośrednio pod nim. |
| |
| |
| TTT- reprezentacja przykładowego programu: |
| |
| ''>>>1: p(What) 1S |
| |
| |1 What = b |
| |
| ***2: q(What) 1SF/2S |
| |
| |1 What ≠ a |
| |
| |2 What = b |
| |
| ***3: r(a) Fm |
| |
| ***4: r(b) 1S'' |
| |
| |
| |
====== ISVL (The Internet Software Visualization Laboratory) ======== | ====== ISVL (The Internet Software Visualization Laboratory) ======== |
| |
| ISVL jest projektem, który miał na celu pomoc studentom w rozumieniu uruchamianych programów napisanych w Prolog-u, poprzez internet. |
| Projekt ten wywiązał się jakby z PPVL, jednak zaimplementowano w nim jedynie TPM. |
| |
| Demonstracje działania ISVL można zobaczyc na stronie: |
| |
| [[http://www-jime.open.ac.uk/97/1/java/isvl-09.html|http://www-jime.open.ac.uk/97/1/java/isvl-09.html]] |
| |
| |
| |
Vmax daje możliwość edycji klauzul na różne sposoby zarówno tekstowo jak i graficznie. Jednak zmiany w trybie graficznym nie są zapisywane do kodu źródłowego, dlatego jest to mało użyteczne. Lepszym rozwiązaniem w tym przypadku jest edycja kodu źródła programu. | Vmax daje możliwość edycji klauzul na różne sposoby zarówno tekstowo jak i graficznie. Jednak zmiany w trybie graficznym nie są zapisywane do kodu źródłowego, dlatego jest to mało użyteczne. Lepszym rozwiązaniem w tym przypadku jest edycja kodu źródła programu. |
| |
| |
| |
| |
| |
| ====== Podsumowanie ====== |
| |
| Próby wizualizacji programów napisanych w Prologu były tworzone juz na początku lat 80-tych. |
| Powstało kilka projektów/systemów, które dają możliwość wizualizacji i śledzenia wykonywania programów Prologu, jednak nie można żadnego z nich zdobyć. |
| Są to albo wersje komercyjne (TPM na UNIX-a, SVT i Vmax) lub akademickie na system MAC (TPM, PPVL, ale tez nie udało się ich odnaleźć na sieci). |
| |
| Większość z tych systemów podczas graficznej wizualizacji korzysta ciągle z tego samego, czyli TPM, a nie udało się odnaleźć bardziej szczegółowego opisu działania. |
| Wydana została książka o TPM (koszt 150$ + przesyłka) a wszystkie inne informacje na sieci są bardzo pobieżne i piszą ciągle o tym samym (w skrócie jak to ladnie sobie można robić wizualizacje śledzenia programów w Prolog-u przy pomocy TPM). |
| |
| Projekt niestety nie jest oparty na własnych próbach wykonywania programów z powodu braku dostępu do systemów SV dla Prologu. Zatem zostały opisane i przetłumaczone informacje jakie udało mi się odnaleźć w sieci. |
| |
| Opisanie tych programów było bardzo trudne. Ciężko pisać o czymś czego nie można wypróbować opierając sie tylko na bardzo ogólnych opisach. |
| |
====== Sprawozdanie ====== | ====== Sprawozdanie ====== |
| |
| |
| |
====== Materiały ====== | ====== Materiały ====== |
| |
| {{:pl:miw:miw08_rbs_back:005.pdf|:pl:miw:miw08_rbs_back:005.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:declarative-debugging-with-the.pdf|:pl:miw:miw08_rbs_back:declarative-debugging-with-the.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:domingue-97-1.pdf|:pl:miw:miw08_rbs_back:domingue-97-1.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:iee_20vis_20prolog_2091.pdf|:pl:miw:miw08_rbs_back:iee_20vis_20prolog_2091.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:mulholland97incorporating.pdf|:pl:miw:miw08_rbs_back:mulholland97incorporating.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:ppigvisprologfixed.pdf|:pl:miw:miw08_rbs_back:ppigvisprologfixed.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:tbpa91.pdf|:pl:miw:miw08_rbs_back:tbpa91.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:ucam-cl-tr-511.pdf|:pl:miw:miw08_rbs_back:ucam-cl-tr-511.pdf}} |
| |
| {{:pl:miw:miw08_rbs_back:visandor-iclp93.pdf|:pl:miw:miw08_rbs_back:visandor-iclp93.pdf}} |
| |
| |
| |
| [[http://citeseer.ist.psu.edu/cache/papers/cs/20963/http:zSzzSzkmi.open.ac.ukzSzmarczSzpaperszSzIJMMS-91.pdf/brayshaw91practical.pdf|http://citeseer.ist.psu.edu/cache/papers/cs/20963/http:zSzzSzkmi.open.ac.ukzSzmarczSzpaperszSzIJMMS-91.pdf/brayshaw91practical.pdf]] |
| |
| [[http://kmi.open.ac.uk/kmi-misc/tpm/tpm.html|http://kmi.open.ac.uk/kmi-misc/tpm/tpm.html]] |
| |
| [[http://www.amazon.com/Transparent-Prolog-Machine-Visualizing-Programs/dp/0792314476|http://www.amazon.com/Transparent-Prolog-Machine-Visualizing-Programs/dp/0792314476]] |
| |
| [[http://www.cc.gatech.edu/classes/cs7390_98_winter/talks/logic/topic3.html|http://www.cc.gatech.edu/classes/cs7390_98_winter/talks/logic/topic3.html]] |
| |
| [[http://citeseer.ist.psu.edu/cache/papers/cs/6324/http:zSzzSzwww.cs.usask.cazSzprojectszSzenvlopzSzWLPEzSz8WLPEzSzproceedingszSzmulholland.pdf/mulholland97incorporating.pdf|http://citeseer.ist.psu.edu/cache/papers/cs/6324/http:zSzzSzwww.cs.usask.cazSzprojectszSzenvlopzSzWLPEzSz8WLPEzSzproceedingszSzmulholland.pdf/mulholland97incorporating.pdf]] |
| |
| [[http://citeseer.ist.psu.edu/cache/papers/cs/150/ftp:zSzzSzfrost.open.ac.ukzSzpubzSzpaulmzSzMul-HCRL107.pdf/mulholland93evaluating.pdf|http://citeseer.ist.psu.edu/cache/papers/cs/150/ftp:zSzzSzfrost.open.ac.ukzSzpubzSzpaulmzSzMul-HCRL107.pdf/mulholland93evaluating.pdf]] |
| |
| [[http://books.google.pl/books?id=ATqiSr7QE24C&dq=Transparent+Prolog+Machine&pg=PP1&ots=-V8A0bzMyv&sig=9x21p9xwmyNquvVrCXlOcsBzQmA&hl=pl&sa=X&oi=book_result&resnum=1&ct=result#PPP1,M1|http://books.google.pl/books?id=ATqiSr7QE24C&dq=Transparent+Prolog+Machine&pg=PP1&ots=-V8A0bzMyv&sig=9x21p9xwmyNquvVrCXlOcsBzQmA&hl=pl&sa=X&oi=book_result&resnum=1&ct=result#PPP1,M1]] |
| |
| [[http://citeseer.ist.psu.edu/cache/papers/cs/27638/http:zSzzSzwww.cl.cam.ac.ukzSzTechReportszSzUCAM-CL-TR-511.pdf/grant99software.pdf|http://citeseer.ist.psu.edu/cache/papers/cs/27638/http:zSzzSzwww.cl.cam.ac.ukzSzTechReportszSzUCAM-CL-TR-511.pdf/grant99software.pdf]] |
| |
| [[http://www-jime.open.ac.uk/97/1/isvl-01.html|http://www-jime.open.ac.uk/97/1/isvl-01.html]] |
| |
| |
| |