Computing with graphs and graph transformations
Many software applications require the construction and manipulation of graphs. In standard programming languages, this is accomplished using low-level mechanisms such as pointer manipulation or array indexing. In contrast, graph productions are a convenient high-level visual notation for coding graph modifications. A graph production replaces one subgraph by another subgraph. Graph productions can define a graph grammar and graph language, or can directly transform an input graph into an output graph. Graph transformation has been applied in many areas, including the definition of visual languages and their tools, the construction of software development environments, the definition of constraint programming algorithms, the modeling of distributed systems, and the construction of neural networks. One application is presented in detail: the interpretation of mathematical notation in scanned document images. The graph models the set of mathematical symbols, and their spatial and logical relationships. This graph is transformed by productions written in the PROGRES language. Copyright (C) 1999 John Whey & Sons, Ltd.
graphs graph transformation graph grammars visual languages graph rewriting recognition of mathematical notation