Grammatica is a prototype implementation of double-pushout algebraic graph transformation based on relation algebra, developed by Gabriel Valiente. It has originated in an investigation of the extent to which algebraic graph transformation can be expressed within relation algebra, and has been implemented using Mathematica on top of the Combinatorica package. Therefore, it runs on most platforms. Moreover, all graph manipulation functions included in Combinatorica ---which consists of over 230 functions for both combinatorics and graph theory--- become readily available in Grammatica.
The implementation takes the form of a package, and it consists of Mathematica functions for representing, manipulating, displaying and transforming graphs, as well as functions implementing some relation algebra-theoretic operations on graphs. It supports both interactive and automatic application of double-pushout graph productions, being therefore both a teaching aid and a research tool for algebraic graph transformation.
A beta release of Grammatica is available for downloading. It consist of the Grammatica.m package for Mathematica 3.0. A tutorial is also available. An on-line tutorial is under preparation.