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/03/27 21:41]
jsi08 Opis projektu, częściowy opis realizacji + pytania
pl:miw:2009:miw09_varda_fix [2019/06/27 15:50] (aktualna)
Linia 29: Linia 29:
   * Wyjaśnienie czy sort/2 wystarczy   * Wyjaśnienie czy sort/2 wystarczy
   * shell: readline?   * shell: readline?
- 
 ====== Projekt ====== ====== 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'​ą. Projekt Varda_Fix jest zbiorem kilku niezależnych względem siebie części związanych z VARDA'​ą.
Linia 54: Linia 51:
 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. 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.
  
-  * __Zamieszczać patch? Prawdopodobnie za rok on nie będzie miał większego sensu, żeby tu leżał, ale z drugiej strony nie ma innego dowodu, że wykonałem to co wykonałem ​:-)__ +Patch[[http://​student.agh.edu.pl/​~niver/​files/​varda-sorting.diff]]
-  * __Nie wiem czy jest się jeszcze co rozpisywać w tym punkcie.__+
  
 ===== Ugraphs ===== ===== Ugraphs =====
Linia 61: Linia 57:
 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). 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. 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.
- 
-  * __Jeżeli to jest istotne, to chętnie zostawię plik na wiki, bo prawdopodobnie z mojego konta na studencie zniknie w nieokreślonej przyszłości__ 
  
 ===== Shell ===== ===== 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. 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
  
-  * __...pytanie tylko czy GUI w Javie nie będzie wygodniejsze__+Komendy są interaktywne,​ nie podaje się do nich żadnych argumentów [tzn po wpisaniu np''​ada''​ naciska się enter], same pytają o potrzebne informacjePrzy wpisywaniu tych danych można używać klawisza tabulacji [znanego także jako tabulator] aby uzyskać podpowiedzi.
  
-====== Prezentacja ====== +Przykładowy scenariusz prostego tworzenia diagramu ARD: 
-====== Materiały ======+  - 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ż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.1238186496.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