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:2009:miw09_varda_fix [2009/02/19 12:17]
gjn
pl:miw:2009:miw09_varda_fix [2019/06/27 15:50] (aktualna)
Linia 15: Linia 15:
  
 ====== Spotkania ====== ====== Spotkania ======
 +
 ===== 20090305 ==== ===== 20090305 ====
   * zalety ugraph, krótki przykład 1-2 predykatów   * zalety ugraph, krótki przykład 1-2 predykatów
 +  * prosty shell: predykat czytajacy linie z wejscia z automatycznym dopelnianiem odpowiednich wartosci
  
 ===== 20090219 ==== ===== 20090219 ====
Linia 27: Linia 29:
   * Wyjaśnienie czy sort/2 wystarczy   * Wyjaśnienie czy sort/2 wystarczy
   * shell: readline?   * shell: readline?
- 
 ====== Projekt ====== ====== Projekt ======
 +
 +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 ====== ====== Sprawozdanie ======
-====== ​Prezentacja ​====== + 
-====== ​Materiał======+===== 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.1235042254.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