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.

Prostokąt / 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.1222641186.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