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, 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, Int(REG) =
Int(LIN). Int(REG) is the smallest class of graph languages containing
all singletons and closed under union, concatenation and star (of
graph languages). Int(REG) equals the class of graph languages
generated by linear HR (= Hyperedge Replacement) grammars, and Int(K)
is generated by the corresponding K-controlled grammars. Two
characterizations are given of the largest class K' such that Int(K')
= Int(K). For the class CF of context-free languages, Int(CF) lies
properly inbetween Int(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.