GEM
GEM - a Graphical Editor for arbitrary Metadata
Both the Caro and Paladin projects of our working group have a need to visualize and modify metadata of many different and ever evolving metamodels. Instead of creating custom editors from scratch that are specific to our respective models and would require constant maintainance to keep them up to date with the evolving metamodels, we formulated the requirement for a generic editor that could be easily and declaratively customized to allow visualizing and editing of arbitrary metadata. In the course of a diploma thesis, GEM, a functional prototype of such an editor, was created.
The editor's underlying model for the application data to be displayed is that of attributed, typed multigraphs. Almost any kind of data and metadata can be converted into this very generic representation. Once the data or metadata of the respective application has been converted into a graph, graph stylesheets are used to specify how the different types of elements of the application graph are to be displayed. Graph stylesheets are based on the concept of graph transformations: A stylesheet describes, which elements of the editor's visualization model are to be created for certain parts of the application graph. The visualization model is itself represented as a graph and coexists with the original application graph. Its elements (nodes resp. edges) directly correspond to simple and complex widgets (boxes, ovals, labels etc.) resp. connectors between these widgets, which are then displayed by the editor. The set of available widgets can be easily extended.
While an application graph can be directly represented by basic widgets, it is often desirable to aggregate larger subgraphs of the application graph into one or few more complex widgets. This is useful to mimic the respective meta model's native visualization, e.g., a class in a UML class diagram is a complex widget with many different fields, but will in general be represented by many different nodes in the graph representation of the application model.
Aggregation also allows a graph stylesheet to abstract from the complexity and details of an application model, to enable the visualization of very large and complex models.
Since the necessary aggregation of elements gives rise to a variant of the well-known view-update problem, graph stylesheets are also used to explicitely specify the valid edit operations available to the users.
To perform the graph transformations, GEM uses a relational database system. A number of commercial and open source DBMSs are supported.
In the near future, a stable build of the editor will be made available for evaluation.
Contact: Boris Stumm or Jürgen Göres