This thesis presents work done on compressed graph representations via hyperedge replacement
grammars. It comprises two main parts. Firstly the RePair compression scheme, known for
strings and trees, is generalized to graphs using graph grammars. Given an object, the scheme
produces a small context-free grammar generating the object (called a “straight-line grammar”).
The theoretical foundations of this generalization are presented, followed by a description of a
prototype implementation. This implementation is then evaluated on real-world and synthetic
graphs. The experiments show that several graphs can be compressed stronger by the new
method, than by current state-of-the-art approaches.
The second part considers algorithmic questions of straight-line graph grammars. Two algorithms
are presented to traverse the graph represented by such a grammar. Both algorithms have
advantages and disadvantages: the first one works with any grammar but its runtime per traversal
step is dependent on the input grammar. The second algorithm only needs constant time per
traversal step, but works for a restricted class of grammars and requires quadratic preprocessing
time and space. Finally speed-up algorithms are considered. These are algorithms that can
decide specific problems in time depending only on the size of the compressed representation,
and might thus be faster than a traditional algorithm would on the decompressed structure. The
idea of such algorithms is to reuse computation already done for the rules of the grammar. The
possible speed-ups achieved this way is proportional to the compression ratio of the grammar.
The main results here are a method to answer “regular path queries”, and to decide whether
two grammars generate isomorphic trees