Package org.aksw.jenax.arq.dataset.cache
Class CachePattern
java.lang.Object
org.aksw.jenax.arq.dataset.cache.CachePattern
This class is used to specify for which patterns invocations to
DatasetGraph.find(Node, Node, Node, Node) should cache.
Instances of this class are created using create(Node, Node, Node, Node).
The special node constant IN can be used to mark components that must be concrete when find() is called.
In other words: Whereas Node.ANY matches any node, IN only matches concrete nodes.
Example, the following two patterns are used to cache all outgoing and incoming quads for any
find() call where either (g, s) or (g, o) are concrete, the predicate must be owl:sameAs, and the remaining component must be Node.ANY.
CachePattern.create(IN, IN, OWL.sameAs.asNode(), Node.ANY) CachePattern.create(IN, Node.ANY, OWL.sameAs.asNode(), IN)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.jena.sparql.core.QuadThe pattern to retrieve all matching quads - effectively all IN's are substitude with Node.ANYstatic final org.apache.jena.sparql.core.Varprotected int[]The indices of the INs in the spec patternprotected org.apache.jena.sparql.core.QuadThe specified pattern - may make use of IN -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCachePattern(org.apache.jena.sparql.core.Quad specPattern, org.apache.jena.sparql.core.Quad findPattern, int[] inputs) -
Method Summary
Modifier and TypeMethodDescriptionstatic CachePatterncreate(org.apache.jena.graph.Node g, org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o) Marking components as IN only matches concrete values.org.apache.jena.atlas.lib.tuple.Tuple<org.apache.jena.graph.Node>createPartitionKey(org.apache.jena.graph.Node mg, org.apache.jena.graph.Node ms, org.apache.jena.graph.Node mp, org.apache.jena.graph.Node mo) org.apache.jena.atlas.lib.tuple.Tuple<org.apache.jena.graph.Node>createPartitionKey(org.apache.jena.sparql.core.Quad quad) booleanorg.apache.jena.sparql.core.Quadint[]Do not modify the returned arrayorg.apache.jena.sparql.core.QuadinthashCode()<D> booleanmatchesPattern(D argPattern, org.aksw.commons.tuple.accessor.TupleAccessor<D, org.apache.jena.graph.Node> accessor) booleanmatchesPattern(org.apache.jena.graph.Node mg, org.apache.jena.graph.Node ms, org.apache.jena.graph.Node mp, org.apache.jena.graph.Node mo) Determine whether this pattern can match the given pattern's find() result.static booleanmatchesPatternNode(org.apache.jena.graph.Node patternNode, org.apache.jena.graph.Node argNode) ANY only matches ANY<D> booleansubsumes(D argPattern, org.aksw.commons.tuple.accessor.TupleAccessor<D, org.apache.jena.graph.Node> accessor) lhs.subsumes(rhs) == true means lhs is more generic and rhs is more specific (i.e.static booleansubsumes(org.apache.jena.graph.Node patternNode, org.apache.jena.graph.Node argNode) ANY always matches (can be ANY or concrete)booleansubsumes(org.apache.jena.graph.Node mg, org.apache.jena.graph.Node ms, org.apache.jena.graph.Node mp, org.apache.jena.graph.Node mo) booleansubsumes(org.apache.jena.sparql.core.Quad quad) toString()
-
Field Details
-
IN
public static final org.apache.jena.sparql.core.Var IN -
specPattern
protected org.apache.jena.sparql.core.Quad specPatternThe specified pattern - may make use of IN -
findPattern
protected org.apache.jena.sparql.core.Quad findPatternThe pattern to retrieve all matching quads - effectively all IN's are substitude with Node.ANY -
inputs
protected int[] inputsThe indices of the INs in the spec pattern
-
-
Constructor Details
-
CachePattern
protected CachePattern(org.apache.jena.sparql.core.Quad specPattern, org.apache.jena.sparql.core.Quad findPattern, int[] inputs)
-
-
Method Details
-
getSpecPattern
public org.apache.jena.sparql.core.Quad getSpecPattern() -
getFindPattern
public org.apache.jena.sparql.core.Quad getFindPattern() -
getInputs
public int[] getInputs()Do not modify the returned array -
createPartitionKey
public org.apache.jena.atlas.lib.tuple.Tuple<org.apache.jena.graph.Node> createPartitionKey(org.apache.jena.sparql.core.Quad quad) -
createPartitionKey
public org.apache.jena.atlas.lib.tuple.Tuple<org.apache.jena.graph.Node> createPartitionKey(org.apache.jena.graph.Node mg, org.apache.jena.graph.Node ms, org.apache.jena.graph.Node mp, org.apache.jena.graph.Node mo) -
matchesPattern
public boolean matchesPattern(org.apache.jena.graph.Node mg, org.apache.jena.graph.Node ms, org.apache.jena.graph.Node mp, org.apache.jena.graph.Node mo) Determine whether this pattern can match the given pattern's find() result.- All inputs must be concrete
- Node.ANY only matches Node.ANY (rather than matching everything)
-
subsumes
public boolean subsumes(org.apache.jena.sparql.core.Quad quad) -
subsumes
public boolean subsumes(org.apache.jena.graph.Node mg, org.apache.jena.graph.Node ms, org.apache.jena.graph.Node mp, org.apache.jena.graph.Node mo) -
matchesPattern
public <D> boolean matchesPattern(D argPattern, org.aksw.commons.tuple.accessor.TupleAccessor<D, org.apache.jena.graph.Node> accessor) -
subsumes
public <D> boolean subsumes(D argPattern, org.aksw.commons.tuple.accessor.TupleAccessor<D, org.apache.jena.graph.Node> accessor) lhs.subsumes(rhs) == true means lhs is more generic and rhs is more specific (i.e. same or fewer ANYs) -
matchesPatternNode
public static boolean matchesPatternNode(org.apache.jena.graph.Node patternNode, org.apache.jena.graph.Node argNode) ANY only matches ANY -
subsumes
public static boolean subsumes(org.apache.jena.graph.Node patternNode, org.apache.jena.graph.Node argNode) ANY always matches (can be ANY or concrete) -
create
public static CachePattern create(org.apache.jena.graph.Node g, org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o) Marking components as IN only matches concrete values. create(IN, IN, owl:sameAs, OUT)- Parameters:
g-s-p-o-
-
hashCode
public int hashCode() -
equals
-
toString
-