To jest stara wersja strony!


Opis

Wojciech Franczak, wojciech.franczak@gmail.com,

ARD visualization and interactive, shell-based editing, w/ vis. in XPCE (VARDA shell)

Spotkania

08.02.19

Przydzielenie projektu, wstępne omówienie tematu.

08.03.04

Pytania:

1. pytanie dotyczące aplikacji którą pokazywał Pan na pierwszym spotkaniu (jak działa i jak ja zainstalować, i jak wygląda od środka)?

2. czy w razie problemów mogę się zgłaszać do Pana?

08.03.18

  • generowanie prostych grafów skierowanych w XPCE
  • możliwość edycji, sprzężenie zwrotne, t.j. klikam na węźle, krawędzi → odpala predykat w prologu, callback

08.04.01

  • generowanie ARD w XPCE z varda

Sprawozdanie

1. Wstęp:

a. Środowisko pracy:

Wszystkie przykłady tworzone i testowane były w systemie Ubuntu.

b. Oprogramowanie:

i. SWI-Prolog
ii. XPCE

c. Biblioteka XPCE w Prologu:

XPCE to zestaw narzędzi wspomagający tworzenie GUI pod język Prolog. Jest zorientowane obiektowo, daje możliwość tworzenia klas, metod, waruków, iteracji… Procedury zawarte w XPCE tworzone są w C. Jest możliwe do uruchomienia w różnych środowiskach pracy. Dane z Prologa mogą być powiązane ze zmiennymi w XPCE. Zaimplementowane jest za pomocą własnej biblioteki VWS (Virtual Window System) która, definiuje metody do tworzenia i manipulacji oknami, prostymi obiektami jak: linie, kółka, tekst oraz obsługi zdarzeń. Dzięki swojej budowie, programy używające XPCE są w pełni przenośne pomiędzy różnymi środowiskami pracy.

d. Konstrukcja grafów ARD (Atribute Relationship Diagram):

Diagram ARD identyfikuje atrybuty systemu i wskazuje na zależności pomiędzy nimi. W ARD występują dwa rodzaje elementów: atrybuty (attributes) i właściwości (properties). Poniżej przedstawiam przykład diagramu ARD dla problemu budowy kontrolera temperatury:

:pl:miw:oraz1.png

4. Wiadomości wstępne o XPCE:

Jednymi z ważniejszych predykatów wykorzystywania XPCE w Prologu są:

a. Tworzenie obiektów NEW:

new(?Reference, +NewTerm) – tworzy obiekt oraz przypisuje do niego dana referencję, która jest wykorzystywana do komunikacji pomiędzy obiektami.

Przykład:
?- new(@demo, dialog(‘Okno Dialogowe’)). – tworzy okno dialogowe, w którym umieszcza się napisy, przyciski, itp.
b. Modyfikacja stanu obiektów SEND:

send(+Receiver, +Selector(..Argumenty..)). – za pomocą tej komendy dokonuje się zmiany stanu obiektów. Pierwszy argument tego predykatu jest referencją do obiektu, natomiast drugi to term, którego nazwa jako funktor jest nazwą metody do wywołania, a argumenty są argumentami operacji.

Przykład:
?- send (@demo, append(text_item(Nazwa)). – wywołuje metodę append klasy dialog, dodaje komponent do okna dialogowego.
c. Zapytanie do Obiektów GET:

Służy do pobierania informacji o stanie obiektu. Dwa pierwsze argumentu są podobne jak w predykacie SEND, trzeci zwraca wartość.

Przykład:
?- get(@demo, display, D). – zwraca obiekt display, na którym @demo jest wyświetlane.
d. Niszczenie obiektów FREE:

Argumentem jest referencja na obiekt (stworzona przy użyciu NEW i GET). Predykat usuwa obiekt.

Przykład:
?-free(@demo).

5. Projekt:

Jedynym pomysłem na tworzenie diagramów ARD w XPCE, jest ręczne przygotowanie pliku *.pce, który po załadowaniu wyświetli zawarte w nim informacje. Uproszczeniem procesu tworzenia pliku była by prosty edytor. Aby móc przygotować potrzebny plik musimy widzieć jak tworzyć odpowiednie figury, jak je ze sobą łączyć, w jaki sposób możemy mieć na nie wpływ.

a. Tworzenie figur:

arrow - Arrow-head. Normally used implicitly by class line.

bezier - Bezier curve. Both quadratic and cubic Biezer curves are supported.

bitmap - Visualisation of an image. Both monochrome and full-colour images are supported. Images can have shape. See section 10.10.

pixmap - Subclass of bitmap only for coloured images.

box - Rectangle. Can be rounded and filled.

circle - Special case of ellipse.

ellipse - Elliptical shape. May be filled.

arc - Part of an ellipse. Can have arrows. Can show as pie-slice.

line - Straight line segment. Can have arrows.

path - Poly-line through multiple points. Can have arrows. Can be smooth.

text - Visualisation of a string in some font. Can have various attributes, can be clipped, formatted, etc.

Przykład: Kwadrat ?- send(@p, display,

        new(@box, box(100,100))).
b. Łączenie figur:
c. Działanie na figurach:

6. Wnioski:

Materiały

  • Grzegorz J. Nalepa and Igor Wojnicki. (2008). An ARD+ Design and Visualization Toolchain Prototype in Prolog.
  • Nalepa, G. J. (2008). UServ Case Study, Conceptual Design with ARD+ Method. Paper presented at the FLAIRS-21: Proceedings of the twenty-first international Florida Artificial Intelligence Research Society conference: 15–17 may 2008, Coconut Grove, Florida, USA, Menlo Park, California.
  • Nalepa, G. J., & Wojnicki, I. (2008). Towards Formalization of ARD+ Conceptual Design and Refinement Method. Paper presented at the FLAIRS-21: Proceedings of the twenty-first international Florida Artificial Intelligence Research Society conference: 15–17 may 2008, Coconut Grove, Florida, USA, Menlo Park, California.
pl/miw/miw08_prolog_ardxpce.1222641303.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