  Graph mining applications analyze the structural properties of large graphs,
and they do so by finding subgraph isomorphisms, which makes them
computationally intensive. Existing graph mining techniques including both
custom graph mining applications and general-purpose graph mining systems,
develop efficient execution plans to speed up the exploration of the given
query patterns that represent subgraph structures of interest.
  In this paper, we step beyond the traditional philosophy of optimizing the
execution plans for a given set of patterns, and exploit the sub-structural
similarities across different query patterns. We propose Pattern Morphing, a
technique that enables structure-aware algebra over patterns to accurately
infer the results for a given set of patterns using the results of a completely
different set of patterns that are less expensive to compute. Pattern morphing
"morphs" (or converts) a given set of query patterns into alternative patterns,
while retaining full equivalency. It is a general technique that supports
various operations over matches of a pattern beyond just counting (e.g.,
support calculation, enumeration, etc.), making it widely applicable to various
graph mining applications like Motif Counting and Frequent Subgraph Mining.
Since pattern morphing mainly transforms query patterns before their
exploration starts, it can be easily incorporated in existing general-purpose
graph mining systems. We evaluate the effectiveness of pattern morphing by
incorporating it in Peregrine, a recent state-of-the-art graph mining system,
and show that pattern morphing significantly improves the performance of
different graph mining applications.
