TripleGraphMatcher

scalation.database.triplegraph.TripleGraphMatcher

The TripleGraphMatcher trait serves as a template for implementing specific algorithms for graph pattern matching.

Value parameters

g

the data graph G(V, E, l) with vertices v in V

q

the query graph Q(U, D, k) with vertices u in U

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def prune(φ: Array[Set[Int]]): Array[Set[Int]]

Given the mappings φ produced by the feasibleMates method, prune mappings u -> v where v's children fail to match u's. This version checks edge labels.

Given the mappings φ produced by the feasibleMates method, prune mappings u -> v where v's children fail to match u's. This version checks edge labels.

Value parameters

φ

array of mappings from a query vertex u to { graph vertices v }

Attributes

def prune0(φ: Array[Set[Int]]): Array[Set[Int]]

Given the mappings φ produced by the feasibleMates method, prune mappings u -> v where v's children fail to match u's. This version ignores edge labels.

Given the mappings φ produced by the feasibleMates method, prune mappings u -> v where v's children fail to match u's. This version ignores edge labels.

Value parameters

φ

array of mappings from a query vertex u to { graph vertices v }

Attributes

Concrete methods

def bijections(): Set[Array[Int]]

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.

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.

Attributes

def countMappings(φ: Array[Set[Int]]): (Int, Int)

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.

Value parameters

φ

the set-valued mapping function

Attributes

def feasibleMates: Array[Set[Int]]

Create an initial array of feasible mappings φ 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 φ from each query vertex u to the corresponding set of data graph vertices {v} whose label matches u's.

Attributes

def mappings(ignoreEdgeLabels: Boolean): Array[Set[Int]]

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 φ that maps each query graph vertex u to a set of data graph vertices {v}.

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 φ that maps each query graph vertex u to a set of data graph vertices {v}.

Value parameters

ignoreEdgeLabels

whether to ingore edge labels during matching

Attributes

def showMappings(φ: 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}.

Value parameters

φ

the set-valued mapping function

Attributes

def test(name: String, ans: Array[Set[Int]], ignore: Boolean): Array[Set[Int]]

Test the Graph Pattern Matcher.

Test the Graph Pattern Matcher.

Value parameters

ans

the correct answer

ignore

whether to ignore the edge labels during matching

mName

the name of graph pattern matcher

Attributes

Concrete fields

protected val CHECK: Int
protected val LIMIT: Double
protected val SELF_LOOPS: Boolean