Similar Items: Formalising the Double-Pushout Approach to Graph Transformation