Class CachePattern

java.lang.Object
org.aksw.jenax.arq.dataset.cache.CachePattern

public class CachePattern extends Object
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

    Fields
    Modifier and Type
    Field
    Description
    protected org.apache.jena.sparql.core.Quad
    The pattern to retrieve all matching quads - effectively all IN's are substitude with Node.ANY
    static final org.apache.jena.sparql.core.Var
     
    protected int[]
    The indices of the INs in the spec pattern
    protected org.apache.jena.sparql.core.Quad
    The specified pattern - may make use of IN
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    CachePattern(org.apache.jena.sparql.core.Quad specPattern, org.apache.jena.sparql.core.Quad findPattern, int[] inputs)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    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)
     
    boolean
     
    org.apache.jena.sparql.core.Quad
     
    int[]
    Do not modify the returned array
    org.apache.jena.sparql.core.Quad
     
    int
     
    <D> boolean
    matchesPattern(D argPattern, org.aksw.commons.tuple.accessor.TupleAccessor<D,org.apache.jena.graph.Node> accessor)
     
    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.
    static boolean
    matchesPatternNode(org.apache.jena.graph.Node patternNode, org.apache.jena.graph.Node argNode)
    ANY only matches ANY
    <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.
    static boolean
    subsumes(org.apache.jena.graph.Node patternNode, org.apache.jena.graph.Node argNode)
    ANY always matches (can be ANY or concrete)
    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)
     
    boolean
    subsumes(org.apache.jena.sparql.core.Quad quad)
     
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • IN

      public static final org.apache.jena.sparql.core.Var IN
    • specPattern

      protected org.apache.jena.sparql.core.Quad specPattern
      The specified pattern - may make use of IN
    • findPattern

      protected org.apache.jena.sparql.core.Quad findPattern
      The pattern to retrieve all matching quads - effectively all IN's are substitude with Node.ANY
    • inputs

      protected int[] inputs
      The 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()
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals(Object obj)
        Overrides:
        equals in class Object
      • toString

        public String toString()
        Overrides:
        toString in class Object