Packages

class MuStrictSim[TLabel] extends GraphMatcher[TLabel]

The MuStrictSim class provides an implementation for strict simulation graph pattern matching. This version uses DualSim.

See also

hipore.com/ijbd/2014/IJBD%20Vol%201%20No%201%202014.pdf

Linear Supertypes
GraphMatcher[TLabel], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MuStrictSim
  2. GraphMatcher
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MuStrictSim(g: MuGraph[TLabel], q: MuGraph[TLabel])(implicit arg0: ClassTag[TLabel])

    g

    the data graph G(V, E, l)

    q

    the query graph Q(U, D, k)

Value Members

  1. 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
  2. def calculateBallDiameterMetrics(balls: HashMap[Int, Ball[TLabel]]): 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)

  3. def calculateTotalEdges(g: MuGraph[TLabel], balls: HashMap[Int, Ball[TLabel]], 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

  4. def calculateTotalVertices(): Int

    Count distinct vertices left after post processing.

  5. 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

    Definition Classes
    GraphMatcher
  6. 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

    Definition Classes
    GraphMatcher
  7. def dualFilter(phi: Array[Set[Int]], ball: Ball[TLabel]): 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)

  8. 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
  9. 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.

    Definition Classes
    GraphMatcher
  10. def filterGraph(phi: Array[Set[Int]]): MuGraph[TLabel]

    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 }

    Definition Classes
    MuStrictSimGraphMatcher
  11. def mappings(): Array[Set[Int]]

    Apply the Strict Graph Simulation pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'.

    Apply the Strict 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
    MuStrictSimGraphMatcher
  12. def mappings2(): HashMap[Int, Array[Set[Int]]]

    Mapping results per ball.

  13. def merge(matches: HashMap[Int, Array[Set[Int]]]): Array[Set[Int]]

    Merged mapping results, the union over all balls.

  14. 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
    MuStrictSimGraphMatcher
  15. def selectivityCriteria(qmet: GraphMetrics[TLabel]): 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.

    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.

    qmet

    the GraphMetrics

  16. 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

    Definition Classes
    GraphMatcher
  17. def strictSim(phi: Array[Set[Int]]): HashMap[Int, Array[Set[Int]]]

    Performs strict simulation to find mappings with balls.

    Performs strict simulation to find mappings with balls.

    phi

    the initial mapping after applying Dual to the whole graph

  18. 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

    Definition Classes
    GraphMatcher