We present the editing and the interpretation facilities for the sample application ShortestPath.
In Figure 1 you can see the graphical user interface of the AGG system. To the left, the window with the current graph grammars is shown. It is possible to have more than one graph grammar loaded. This is visualized by a GraGra tree, the current graph grammar, start graph or rule being highlighted.
In Figure 1, there is only one
graph grammar, namely ShortestPath.ggx consisting of the start graph Cities
and seven rules (five of them having NACs). In the GraGra tree window
the names of graph grammars, start graphs,
rules and NACs can be edited and the rule or graph to be edited or used for transformation steps
can be selected here by clicking on its icon.
The selected graph or rule is then shown in its graphical editor.
The graph editor can be found in the lower right part, while
the rule editor is situated in the upper right part exact by
above the graph editor.
The File menu allows to create, load, save, export and import
a graph grammar and to exit the AGG system.
Each graph grammar consists of one start graph and a number of rules.
The menus Edit and Mode allow to edit graphs, rules and attributes.
The Transform menu is visited for interpreting and debugging
graph transformation.
Here, the definition of a match and the execution of a transformation step or sequence is possible.
The Parser menu may be used to activate and start graph
parsing processes.
The Analyzer menu allows to apply some kinds of analysis
technique to a grammar. There are critical pair analysis,
consistency check for graphs and
termination checks available for Layered Graph Transformation Systems.
The Preferences menu should be used to set options for transformation,
parsing and critical pair analysis.
The Help menu provides short description of AGG GUI.
Figure 1 shows the first rule
of our ShortestPath example in the rule editor and the result
of the rule having been applied to the initial road map of
the example.
Now we describe how to create and delete graph grammars and their components,
how to define types for graph objects, how to draw
nodes and edges in the graphical editors, how to edit rules,
and how to add attributes making use of the textual attribute editor.