Sarkar presents a prototype implementation of the graph transformation language GXL, which borrows first-order functional programming constructs from the tree-rewriting language Turing extender language (TXL), but is applicable to general graphs. In GXL, the application of a rewrite rule is limited to some subpart of the host graph: a production may define a scope (subgraph) that is used by other graph productions, which may in turn define subscopes, and so on. This technique provides the user with more control over the situation than general graph rewriting systems. General graph rewriting systems allow a production to choose between different matches for the left-hand side, whereas GXL searches for pattern matches in the scope graph in a strict order, which is called canonical, but which is not explained in this paper.
Ideally, patterns and replacements should be expressed graphically. The prototype implementation, however, uses a textual representation that is difficult to grasp. Even the very simple examples presented in the paper need to be expressed graphically. Nevertheless, the paper is a clearly-written extended summary of the author’s Ph.D. thesis.