Apply the GraphQL Subgraph Isomorphism algorithm to find subgraphs of data graph 'g' that isomorphically match query graph 'q'.
Apply the GraphQL Subgraph Isomorphism algorithm to find subgraphs of data graph 'g' that isomorphically match query graph 'q'. This method represents the Algorithm 1: Graph Pattern Matching of the GraphQL paper
Examines, if u can be mapped to v, by considering their edges.
Examines, if u can be mapped to v, by considering their edges. This method is the part of Algorithm 1, line 19 to 26, of the GraphQL paper.
vertex u can be mapped to v
vertex v can be mapped to u
Is vertex v contained in any matched vertex?
Is vertex v contained in any matched vertex?
array of matched vertex from a query vertex u to graph vertex v
the vertex v to check
Create an initial array of feasible mappings 'phi' from each query vertex 'u' to the corresponding set of data graph vertices '{v}' whose label matches 'u's.
Returns all subgraph isomorphic matches.
Finds neighborhood profile of vertex u in a graph.
Finds neighborhood profile of vertex u in a graph. The profile is constructed in lexicographic order, refer figure 13 of the GraphQL paper for example.
For which graph, we are finding neighbor profile of u
Vertex u, for which neighborhood profile is created
Finds all the neighbors of vertex u in a graph.
Finds all the neighbors of vertex u in a graph.
For which graph, we are finding neighbors of u
Vertex u, for which all neighbors are found
Sorts according to the feasible matches size in ascending order.
Sorts according to the feasible matches size in ascending order. This method represents the Section 4.4.2 : Optimization of search order based on greedy approach of the GraphQL paper. i.e., at join i, choose a leaf node that minimizes the estimated cost of the join.
Examines neighborhood profile(sorted neighborhood labels) of query vertex u with feasible vertex v profile of v must contain profile of u.
Examines neighborhood profile(sorted neighborhood labels) of query vertex u with feasible vertex v profile of v must contain profile of u. This method is the part of Algorithm 1: line 3 and the section 4.2 of the GraphQL paper.
Iterates on the u'th Node to find feasible mapping for that node.
Iterates on the u'th Node to find feasible mapping for that node. This is the part of Algorithm 1, Line 8 to 18, of the GraphQL paper
the depth of recursion
The 'GraphqlOpt' class provides an implementation for Subgraph Isomorphism of GraphQL's Algorithm.
http://cs.ucsb.edu/~dbl/papers/he_sigmod_2008.pdf (GraphQL paper)