Paweł Płazieński, niver@student.agh.edu.pl
Fix, VARDA improve, extend, build better ui,
Główny punkt spotkania:
Dodatkowe punkty:
Projekt Varda_Fix jest zbiorem kilku niezależnych względem siebie części związanych z VARDA'ą.
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'].
Sprawdzenie czy biblioteka ugraphs nadaje się jako baza danych w VARDA'zie
Napisanie prostej, interaktywnej, podpowiadającej linii komend do użycia w VARDA'zie.
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
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 MiniVarda, która jest częściową implemntacją tego co oferuje VARDA, jednak opartą na Ugraphs.
Zimplementowany predykat getline/3, znajdujący się w pliku read-tools.pl w 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.
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
Shell obsługuje pięć dodatkowych komend:
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:
shl.
i nacisnąć enter - to jest jeszcze polecenie prologa, nie shellaada
. Po wciśnięciu entera na pytanie o nazwe, należy napisać Thermostat
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 propercjaada
. Dalej będę zakładał, że nazywają się one Time
i Temperature
fin
i nacisnąć enter. The
i nacisnąć tabulator - shell dopełni możliwości mające taki prefiks.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. spl
i nacisnąć enter.Tem
i nacisnąć klawisz tabulacji.dep
.sha
.