- Research Article
44
- 10.1007/s002360050106
Context-free graph grammars and concatenation of graphs
- Oct 01, 1997
- Acta Informatica
- Joost Engelfriet + 1 more +1
An operation of concatenation is defined for graphs. This allows strings to be viewed as expressions denoting graphs, and string languages to be interpreted as graph languages. For a class \(K\) of string languages, \({\rm Int}(K)\) is the class of all graph languages that are interpretations of languages from \(K\). For the classes REG and LIN of regular and linear context-free languages, respectively, \({\rm Int}({\rm REG}) = {\rm Int}({\rm LIN})\). \({\rm Int}({\rm REG})\) is the smallest class of graph languages containing all singletons and closed under union, concatenation and star (of graph languages). \({\rm Int}({\rm REG})\) equals the class of graph languages generated by linear HR (= Hyperedge Replacement) grammars, and \({\rm Int}(K)\) is generated by the corresponding \(K\)-controlled grammars. Two characterizations are given of the largest class \(K'\) such that \({\rm Int}(K') = {\rm Int}(K)\). For the class CF of context-free languages, \({\rm Int}({\rm CF})\) lies properly inbetween \({\rm Int}({\rm REG})\) and the class of graph languages generated by HR grammars. The concatenation operation on graphs combines nicely with the sum operation on graphs. The class of context-free (or equational) graph languages, with respect to these two operations, is the class of graph languages generated by HR grammars.
Read more