Whether or not a subgraph \(G_S\)  is a match to query \(G_Q\)  depends on the underlying matching rule. For example, isomorphism [1]}, [2]}, [3]} requires the embeddings to have a bijective mapping with the query graph. Formally, a subgraph \(G_S\)  of a data graph \(G\)  is isomorphic to the query graph \(G_Q\)  if and only if there exists a bijective function \(f: V_Q \rightarrow V_S\)  such that \(\forall u \in V_Q\) , \(L^v_Q(u) \subseteq L^v(f(u))\) , \(\forall (u_i, u_j) \in E_Q\) , \((f(u_i), f(u_j)) \in E_S\)  and \(L^e_Q(u_i, u_j) = L^e(f(u_i), f(u_j))\) .
In Figure REF (b), the graph snapshot \(G\)  contains two isomorphic embedding of the query graph in Figure REF (e), where the query edges {(\(u_0, u_1\) ), (\(u_2, u_0\) ), (\(u_0, u_5\) ), (\(u_1, u_3\) ), (\(u_1, u_4\) ), (\(u_2, u_6\) ), (\(u_2, u_5\) )} are matched with data edges {(\(v_1\) , \(v_3\) ),(\(v_4\) , \(v_1\) ),(\(v_1\) , \(v_5\) ),(\(v_3\) , \(v_6\) ),(\(v_3\) , \(v_7\) ),(\(v_4\) , \(v_8\) ),(\(v_4\) , \(v_5\) )} respectively on the first embedding while the next embedding matches query edge \((u_2, u_6)\)  to data edge \((v_4, v_0)\) . Isomorphism is useful in applications that require strict matching such as in chemical compound or protein-network.
