Convolution Neural Network (CNNs) operate over strict grid-like structures ($M \times N \times C$ images), whereas Graph Neural Networks (GNNs) can operate over all-flexible graphs, with an undefined number of neighbors and edges. 

On the face of it, GNNs appear to be neural architectures that can subsume CNNs. Are GNNs really generalized architectures that can operate arbitrary functions over arbitrary graph structures?

An obvious follow-up - **How can we derive a CNN out of a GNN**? 

Since non-spectral GNNs are based on message-passing that employ *permutation-invariant* functions, is it possible to derive a CNN from a base-architecture of GNN?