Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_rbs_back [2008/07/11 11:35]
miw
pl:miw:miw08_rbs_back [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== 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 ===== 
-? 
  
  
Linia 61: Linia 40:
   * 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)
 +
 +
 +
 +
 +
 +
  
  
Linia 66: Linia 51:
  
 ======= PPVL (Prolog Program Visualization Laboratory) ========= ======= PPVL (Prolog Program Visualization Laboratory) =========
 +
 +PPVL jest projektem który służy do wizualizacji wiedzy Prolog-u. Łączy w sobie kilka programów do wizualizacji - SV.
 +Są to:
 +  * Spy (Byrd, 1980)
 +  * PTP (Prolog Trace Package)
 +  * TPM (Transparent Prolog Machine)
 +  * TTT (Textual Tree Tracer)
 +
 +W środowisku PPVL każdy wymieniony wyżej SV system ma podobny interfejs i nawigacje.
 +
 +Środowisko zostało stworzone w Macprolog wersji 4.5 i uruchamiane na Macintosh system 7.1
 +
 +Spy, PTP i TTT zostały w pełni zaimplementowane. Natomiast TPM zostało zaimportowane i później zmodyfikowane aby umożliwić integracje z PPVL (nawigacje i zapisywanie).
 +PPVL posiada wiele zalet nad zaimplementowanymi systemami osobno, między innymi zapewnia identyczny interfejs dla wszystkich systemów.
 +
 +== Spy (Byrd, 1980) ==
 +
 +Spy jest krokowym, liniowym i tekstowym systemem śledzenia wykonywania programu, który używa Byrd Box model do uruchamiania programu. Model używa proceduralnej interpretacji logiki.
 +
 +Początek klauzuli jest klasyfikowany jako procedura, natomiast koniec klauzuli jedną lub więcej sub procedur.
 +Każda procedura lub sub procedura może mieć jeden z czterech stanów:
 +  * call
 +  * exit
 +  * fail
 +  * redo
 +
 +Wywołanie procedury jest klasyfikowane jako call, jeśli jest zakończone sukcesem jest kończone exit, jeśli nie to fail. Procedura ponownego próbowania lub wstecznego śledzenia jest pokazywana jako redo.
 +
 +Przykładowy program:
 +
 +''​p(X) :- q(X), r(X).''​
 +
 +''​q(a).''​
 +
 +''​q(b).''​
 +
 +''​r(b).''​
 +
 +'':​- p(What).''​
 +
 +
 +Spy - śledzenie wykonywania przykładowego programu:
 +
 +''​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)''​
 +
 +
 +== 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]]
  
  
Linia 103: Linia 234:
 TPM jest dostepny jako komercyjny produkt (Expert Systems Ltd.) uruchamiany na graficznych stacjach roboczych systemu UNIX. TPM jest dostepny jako komercyjny produkt (Expert Systems Ltd.) uruchamiany na graficznych stacjach roboczych systemu UNIX.
 Powstała również wersja uczelniana na platforme Mac. Powstała również wersja uczelniana na platforme Mac.
 +
  
  
Linia 133: Linia 265:
 {{:​pl:​miw:​miw08_rbs_back:​vmax2.jpg|:​pl:​miw:​miw08_rbs_back:​vmax2.jpg}} {{:​pl:​miw:​miw08_rbs_back:​vmax2.jpg|:​pl:​miw:​miw08_rbs_back:​vmax2.jpg}}
  
 +Struktura klauzuli może być vizualizowana na różne sposoby. Przedstawia to rysunek poniżej:
  
 +{{:​pl:​miw:​miw08_rbs_back:​vmax3.jpg|:​pl:​miw:​miw08_rbs_back:​vmax3.jpg}}
 +
 +Vmax umożliwia również wizualizacji klauzul bardzo podobnie do TPM, co można zobaczyć na rysunku:
 +
 +{{:​pl:​miw:​miw08_rbs_back:​vmax4.jpg|:​pl:​miw:​miw08_rbs_back:​vmax4.jpg}}
 +
 +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.
  
  
Linia 179: Linia 319:
  
  
 +====== 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]]
 +
 +
 +
pl/miw/miw08_rbs_back.1215768901.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