public class GraphMatcher extends Object
An implementation of graph isomorphism for Graph equality. The underlying algorithm is exponential but will only enter a non-deterministic polynomial part when there are a lot of difficult to distinguish anonymous nodes connected to each other by statements with the same property(s). Non-pathological examples, where most nodes have some properties that help distinguish them from other nodes, will experience nearly linear performance.
Method SummaryModifier and TypeMethodDescription
static booleanAre the two models isomorphic? The isomorphism is defined as a bijection between the anonymous variables such that the statements are identical.
static NodeReturn an isomorphism between the two models.
equalsAre the two models isomorphic? The isomorphism is defined as a bijection between the anonymous variables such that the statements are identical. This is described in http://www.w3.org/TR/rdf-concepts#section-Graph-syntax
hashCodepublic static int hashCode
matchReturn an isomorphism between the two models. This function is nondeterministic in that it may return a different bijection on each call, in cases where there are multiple isomorphisms between the models.
nullon failure or an array of related pairs (arrays of length 2) of anonymous nodes.
match(m1,m2)[i]is the corresponding node in