class TightSim2 extends GraphMatcher
The 'TightSim2' class provides an implementation for tight simulation
graph pattern matching. This version uses DualSim2
.
- See also
hipore.com/ijbd/2014/IJBD%20Vol%201%20No%201%202014.pdf FIX: try to implement without using parent references 'pa'.
- Alphabetic
- By Inheritance
- TightSim2
- GraphMatcher
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
CHECK: Int
- Attributes
- protected
- Definition Classes
- GraphMatcher
-
val
LIMIT: Double
- Attributes
- protected
- Definition Classes
- GraphMatcher
-
val
SELF_LOOPS: Boolean
- Attributes
- protected
- Definition Classes
- GraphMatcher
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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'.
- Definition Classes
- GraphMatcher
-
def
calculateBallDiameterMetrics(balls: Map[Int, Ball]): Statistic
Calculate statistics (e.g., min, max, average diameter and standard deviation) on the balls left after post-processing.
Calculate statistics (e.g., min, max, average diameter and standard deviation) on the balls left after post-processing.
- balls
mappings from a center vertex to the Ball B(Graph, Center, Radius)
-
def
calculateTotalEdges(g: Graph, balls: Map[Int, Ball], matchCenters: Set[Int]): Int
Count distinct edges left after post processing.
Count distinct edges left after post processing.
- g
the data graph G(V, E, l)
- balls
mappings from a center vertex to the Ball B(Graph, Center, Radius)
- matchCenters
set of all vertices which are considered as center
-
def
calculateTotalVertices(): Int
Count distinct vertices left after post processing.
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
dualFilter(phi: Array[Set[Int]], ball: Ball): Array[Set[Int]]
Perform dual simulation onto the ball.
Perform dual simulation onto the ball.
- phi
mappings from a query vertex u_q to { graph vertices v_g }
- ball
the Ball B(Graph, Center, Radius)
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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.
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.
- Definition Classes
- GraphMatcher
-
def
filterGraph(phi: Array[Set[Int]]): Graph
Prune the data graph by consider only those vertices and edges which are part of feasible matches after performing initial dual simulation.
Prune 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
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
mappings(): Array[Set[Int]]
Apply the Tight Graph Simulation pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'.
Apply the Tight Graph Simulation 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}'.
- Definition Classes
- TightSim2 → GraphMatcher
-
def
mappings2(): Map[Int, Array[Set[Int]]]
Return mapping results per ball.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
overlaps(set1: Set[Int], set2: Set[Int]): Boolean
Determine whether two sets overlap, i.e., have a non-empty intersection.
Determine whether two sets overlap, i.e., have a non-empty intersection.
- set1
the first set
- set2
the second set
- Definition Classes
- GraphMatcher
-
def
prune(phi: Array[Set[Int]]): Array[Set[Int]]
The 'prune' is not needed, pruning is delegated to incorporated dual graph simulation algorithm.
The 'prune' is not needed, pruning is delegated to incorporated dual graph simulation algorithm.
- phi
array of mappings from a query vertex u_q to { graph vertices v_g }
- Definition Classes
- TightSim2 → GraphMatcher
-
val
qRange: Range
- Attributes
- protected
- Definition Classes
- GraphMatcher
-
def
refine(phi: Array[Set[Int]]): Map[Int, Array[Set[Int]]]
Refine 'phi' using tight simulation to find mappings with balls.
Refine 'phi' using tight simulation to find mappings with balls.
- phi
the initial mapping after applying Dual to the whole graph
-
def
selectivityCriteria(qmet: GraphMetrics): Int
Return the vertex from an array of central vertices, those which have highest 'ch' set size and lowest frequency of label in the query graph, i.e., highest ratio.
-
def
showMappings(phi: Array[Set[Int]]): Unit
Show the mappings between a query graph vertex u and a set of data graph vertices {v}.
Show the mappings between a query graph vertex u and a set of data graph vertices {v}.
- phi
the set-valued mapping function
- Definition Classes
- GraphMatcher
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
test(name: String, ans: Array[Set[Int]] = null): Unit
Test the graph pattern matcher.
Test the graph pattern matcher.
- name
the name of graph pattern matcher
- ans
the correct answer
- Definition Classes
- GraphMatcher
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )