Graph Rewriters as Components

Description

This assignment involves the design and implementation of a (communication and programming) interface for the graph transformation engine GROOVE, an FMT-based open source tool written in Java.

Graph transformation systems can be seen as a particular kind of labelled transition systems, and so they can be used as models in, for instance, a tool chain with other FMT-based tools such as JTorX and LTSmin, or as stand-alone components in other contexts. This requires, however, that such a model or component can communicate with other parties using some well-defined interface, either as an API or through a message-based protocol.

In this assignment, the aim is to design and implement such an interface. Steps to be taken are:

Get acquainted with GROOVE

Study existing similar interfaces, such as the ones employed in JTorX and LTSmin

Design an appropriate interface for GROOVE, and implement it as part of the tool

Test the resulting system by designing and carrying out experiments, in conjunction with LTSmin and as a stand-alone component