Are there algorithms to cluster Graphs, not just cluster nodes in a graph? I am wondering if there are algorithms to cluster graphs; what I meant is to cluster many graphs, not cluster the nodes in a graph.
For example, we have N graphs, G1, G2, G3, .....GN. Then we can identify [G1, G2, G3] have high similarity in topology, [G4, G5] another one, and so on.

The main problem here seems to me to be about defining and finding the (dis)similarity between different graphs.

*

*The 'graph edit distance' (defining distance in terms of number of operations neccesary to convert one graph into the other) is a common way that has been described here on stack overflow.


*In section 4.2 of "Exact and inexact graph matching: methodology and applications" you find alternative methods for inexact graph matching.
These are: artificial neural networks, relaxation labeling, spectral methods and kernel methods.
Riesen, Kaspar, Xiaoyi Jiang, and Horst Bunke. "Exact and inexact graph matching: Methodology and applications." Managing and Mining Graph Data (2010): 217-247.
Then, after solving that problem, to perform clustering you can use any clustering method that uses a  distance matrix.

*

*See this question: Clustering with a distance matrix
