Różnice

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

Odnośnik do tego porównania

pl:miw:2009:miw09_varda_fix [2009/06/03 23:49]
jsi08
pl:miw:2009:miw09_varda_fix [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Varda Fix ====== 
-Paweł Płazieński,​ niver@student.agh.edu.pl 
- 
-:!: 
-Fix,  
-[[hekate:​VARDA]] 
-improve, extend, ​ 
-build better ui, 
-  * list -> set! 
-  * audit! 
-  * [[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​ugraphs.html]] 
-  * doc in pldoc 
-  * shell?: add, split, finalize 
-  * evaluate java guis FIXME 
- 
-====== Spotkania ====== 
- 
-===== 20090305 ==== 
-  * zalety ugraph, krótki przykład 1-2 predykatów 
-  * prosty shell: predykat czytajacy linie z wejscia z automatycznym dopelnianiem odpowiednich wartosci 
- 
-===== 20090219 ==== 
- 
-Główny punkt spotkania: 
-  * ugraph i sens jego zastosowania 
-  * Lista ugraph-ów jako historia rozwoju diagramu ARD? 
- 
-Dodatkowe punkty: 
-  * Wyjaśnienie czy sort/2 wystarczy 
-  * shell: readline? 
- 
-====== Projekt ====== 
- 
-__(Uwaga do prowadzącego:​ W poniższych paragrafach pytania inline zaznaczam podkreśleniem).__ 
- 
-Projekt Varda_Fix jest zbiorem kilku niezależnych względem siebie części związanych z VARDA'​ą. 
- 
-===== Zamiana list na zbiory ===== 
- 
-Patch do VARDY, który podował, że propercje zachowywały się jak zbiory, nie jak listy. Przykładowo lista ['​Temp',​ '​Temp',​ '​Status'​] powinna zachowywać się jak zbiór ['​Status',​ '​Temp'​]. 
- 
-===== Ugraphs ===== 
- 
-Sprawdzenie czy biblioteka [[http://​www.swi-prolog.org/​pldoc/​doc_for?​object=section(2%2C%20'​A.25'​%2C%20swi('​%2Fdoc%2FManual%2Fugraphs.html'​))|ugraphs]] nadaje się jako baza danych w VARDA'​zie 
- 
-===== Shell ===== 
- 
-Napisanie prostej, interaktywnej,​ podpowiadającej linii komend do użycia w VARDA'​zie. 
- 
-====== Sprawozdanie ====== 
- 
-===== Zamiana list na zbiory ===== 
- 
-Naprawione to zostało przez predykat sort/2, który unifikuje drugi argument z pierwszym argumentem z usuniętymi duplikatami i posortowanym leksykograficznie. Predykat ten został umieszczony w niektórych klauzulach w których propercje były jednym z argumentów. 
- 
-Patch: [[http://​student.agh.edu.pl/​~niver/​files/​varda-sorting.diff]] 
- 
-===== Ugraphs ===== 
- 
-Biblioteka ugraphs ustala prostą reprezentacje grafów skierownych i oferuje proste operacje na grafach. Sens jej użycia w VARDA'​ize jest ciężki do ustalenia, gdyż nie oferuje ona nic więcej z czego VARDA mogłaby korzystać, a wymaga przepisania większości kodu i wymyślenia sposobu trzymania dwóch osobnych grafów na raz (zależności historyczne i zleżności modelowe). 
-W ramach sprawdzenia sensowności użycia napisałem [[http://​student.agh.edu.pl/​~niver/​files/​minivarda.zip|MiniVarda]],​ która jest częściową implemntacją tego co oferuje VARDA, jednak opartą na Ugraphs. 
- 
-===== Shell ===== 
- 
-Zimplementowany predykat getline/3, znajdujący się w pliku read-tools.pl w [[http://​student.agh.edu.pl/​~niver/​files/​minivarda.zip|MiniVardzie]] realizuje odczytanie linijki z klawiatury umożliwiając podpowiedzi i własny prompt. Może to w bardzo prosty sposób zostać wykorzystane w VARDA'​zie. 
-Później ten predykat został dostosowany do samej Vardy, zamieszczony jest w patchu razem z generacją schenariuszy historii poniżej. 
- 
-Patrz także przykład użycia shella na dole strony. 
- 
-===== Generacja historii ===== 
- 
-Stworzyłem także metode generacji scenariuszy tworzenia diagramów ARD, które doprowadzają do tej samej histori TPH. Po wygenerowaniu scenariuszy,​ pierwsze 10 zapisywane jest do plików z wybranym przedrostkiem i odpowiednim numerem w formacie modelu Vardy. 
- 
-Patch (także dla shella): [[http://​student.agh.edu.pl/​~niver/​files/​varda-shell-generations.diff]] 
- 
-====== Przykład użycia shella ====== 
- 
-Shell obsługuje pięć dodatkowych komend: 
-  * **ada** - dodanie atrybutu 
-  * **adp** - dodanie propercji 
-  * **fin** - finalizacja propercji 
-  * **spl** - split propercji 
-  * **dep** - stworzenie zależności pomiędzy propercjami 
- 
-Komendy są interaktywne,​ nie podaje się do nich żadnych argumentów [tzn po wpisaniu np. ''​ada''​ naciska się enter], same pytają o potrzebne informacje. Przy wpisywaniu tych danych można używać klawisza tabulacji [znanego także jako tabulator] aby uzyskać podpowiedzi. 
- 
-Przykładowy scenariusz prostego tworzenia diagramu ARD: 
-  - Aby uruchomić shell należy wpisać ''​shl.''​ i nacisnąć enter - to jest jeszcze polecenie prologa, nie shella 
-  - Aby dodać pierwszy atrybut, należy wpisać ''​ada''​. Po wciśnięciu entera na pytanie o nazwe, należy napisać ''​Thermostat''​ 
-  - Aby dodać propercje trzeba wpisać ''​adp''​ i naciśnąć enter. Można wpisać nazwę atrybutu, który wykorzystamy,​ ale shell po naciśnięciu klawisza tabulacji podpowie jedyną możliwością i uzupełni nią linijkę. Po wciśnięciu entera zostanie dodana propercja 
-  - Przed finalizacją trzeba dodać atrybuty poprzez polecenia ''​ada''​. Dalej będę zakładał, że nazywają się one ''​Time''​ i ''​Temperature''​ 
-  - Aby wykonać finalizacje propercji, należy napisać ''​fin''​ i nacisnąć enter. ​ 
-    - Shell zapyta o starą propercje, wystaczy użyć klawisza tabulacji i nacisnąć enter. Można też spróbować napisać ''​The''​ i nacisnąć tabulator - shell dopełni możliwości mające taki prefiks. 
-    - Po wpisaniu albo wymuszeniu uzupełnienia i naciśnięciu enter system zapyta na jakie atrybuty sfinalizować propercje. Klawisz tabulacji w tym przypadku nie dopełni w linii poleceń, ponieważ jest więcej niż jedna wartość możliwa. Jednak po wpisaniu ''​Ti''​ naciśnięcie klawisza tabulacji spowoduje dopełnienie do ''​Time''​ - ponieważ tylko ta możliwość pasuje. Atrybuty na które się finalizuje podaje się osobno zatwierdzając każdy enterem. ​ 
-    - Aby zakończyć wpisywanie atrybutów należy po prostu wysłać pustą linijkę, czyli nacisnąć enter bez wpisywania czegokolwiek. 
-  - Aby wykonać split należy wpisać ''​spl''​ i nacisnąć enter. 
-    - Shell zapyta o pełną [wieloargumentową propercje] na której będzie wykonywany split. W reprezentacji takiej propercji atrybuty są oddzielane przecinkiem. Aby wybrać naszą propercje, można wpisać ''​Tem''​ i nacisnąć klawisz tabulacji. 
-    - Następnie należy podać propercje na które ma zostać podzielona obecna. Wpisywane jest to tak jak atrybuty przy finalizacji,​ jednak to są pełne propercje - tzn. kolejne atrybuty podaje się oddzielając przecinkiem. Podaje się wiele takich propercji. 
-    - Aby zakończyć wybór propercji wynikowych, należy wysłać pustą linijkę. 
-  - Shell nie obsługuje dodawania bezpośrednio zależności w splicie, należy to zrobić osobno wpisując ''​dep''​. 
-    - Pierwsze podaje się śródło zależności - pełną propercje i naciska się enter. 
-    - Drugie podaje się cel zależności,​ także pełną propercje. 
-  - Aby zobaczyć wynik tych komend można wpisać ''​sha''​. 
- 
  
pl/miw/2009/miw09_varda_fix.txt · ostatnio zmienione: 2019/06/27 15:50 (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