abstract class GraphMatcher[TLabel] extends AnyRef
The GraphMatcher
abstract class serves as a template for implementing
specific algorithms for graph pattern matching.
- Alphabetic
- By Inheritance
- GraphMatcher
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Abstract Value Members
-
abstract
def
prune(phi: Array[Set[Int]]): Array[Set[Int]]
Given the mappings 'phi' produced by the 'feasibleMates' method, prune mappings 'u -> v' where v's children fail to match u's.
Given the mappings 'phi' produced by the 'feasibleMates' method, prune mappings 'u -> v' where v's children fail to match u's.
- phi
array of mappings from a query vertex u to { graph vertices v }
Concrete Value Members
-
def
bijections(): Set[Array[Int]]
Apply a graph pattern matching algorithm to find subgraphs of data graph 'g' that isomorphically match query graph 'q'.
Apply a graph pattern matching algorithm to find subgraphs of data graph 'g' that isomorphically match query graph 'q'. These are represented by a set of single-valued bijections {'psi'} where each 'psi' function maps each query graph vertex 'u' to a data graph vertices 'v'.
-
def
countMappings(phi: Array[Set[Int]]): Pair
Count the number of mappings between query graph vertices 'u_i' and their sets of data graph vertices {v}, giving the number of distinct vertices and edges.
Count the number of mappings between query graph vertices 'u_i' and their sets of data graph vertices {v}, giving the number of distinct vertices and edges.
- phi
the set-valued mapping function
-
def
disjoint(set1: Set[Int], set2: Set[Int]): Boolean
Determine whether two sets are disjoints, i.e., have an empty intersection.
Determine whether two sets are disjoints, i.e., have an empty intersection.
- set1
the first set
- set2
the second set
-
def
feasibleMates(): Array[Set[Int]]
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.
-
def
feasibleMatesW(): Array[Set[Int]]
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.
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. This version handles query graph labels that have wildcards.
-
def
filterGraph(phi: Array[Set[Int]]): Graph[TLabel]
Filter the data graph by consider only those vertices and edges which are part of feasible matches after performing initial dual simulation.
Filter the data graph by consider only those vertices and edges which are part of feasible matches after performing initial dual simulation.
- phi
mappings from a query vertex u_q to { graph vertices v_g }
-
def
mappings(): Array[Set[Int]]
Apply a graph pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'.
Apply a graph pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'. These are represented by a multi-valued function 'phi' that maps each query graph vertex 'u' to a set of data graph vertices '{v}'.
-
def
showMappings(phi: Array[Set[Int]]): Unit
Show all mappings between query graph vertices 'u_i' and their sets of data graph vertices {v}.
Show all mappings between query graph vertices 'u_i' and their sets of data graph vertices {v}.
- phi
the set-valued mapping function
-
def
test(name: String, ans: Array[Set[Int]] = null): Array[Set[Int]]
Test the Graph Pattern Matcher.
Test the Graph Pattern Matcher.
- ans
the correct answer