author: Dennis Aanstoot
title: Graph Rewriters as Components
keywords: Web service, GROOVE, Tool Chain
topics: Graphs
committee: Arend Rensink
started: November 2020


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