java.lang.Object
org.apache.jena.reasoner.TriplePattern
- All Implemented Interfaces:
ClauseEntry
- Direct Known Subclasses:
MutableTriplePattern
Datastructure which defines a triple pattern as used in simple
rules and in find interfaces.
Wildcards are recorded by using Node_RuleVariable entries rather than nulls because they can be named. If a null is specified that is converted to a variable of name "". Note that whilst some engines might simply require Node_Variables the forward engine requires variables represented using the more specialized subclass - Node_RuleVariable.
It would make more sense to have TriplePattern subclass Triple but that is final for some strange reason.
-
Constructor Summary
ConstructorDescriptionTriplePattern
(Node subject, Node predicate, Node object) Constructor - builds a pattern from three nodes, use Node_RuleVariables as variables, use a variable with an empty name as a wildcard, can also use null as a wildcard.TriplePattern
(Triple match) Constructor - builds a degenerate pattern from a simple triple. -
Method Summary
Modifier and TypeMethodDescriptionasTriple()
Return the triple pattern as a tripleReturn the triple pattern as a triple match (concrete terms + Node.ANY)boolean
compatibleWith
(TriplePattern pattern) Compare two patterns for compatibility - i.e. potentially unifiable.boolean
Equality override - used so that TriplePattern variants (same to within variable renaming) test as equalsReturns the object.Returns the predicate.Returns the subject.int
hashCode()
hash function overrideboolean
isGround()
Test if the pattern is ground, contains no variables.boolean
isLegal()
Check a pattern to see if it is legal, used to exclude backchaining goals that could never be satisfied.boolean
Compare triple patterns, taking into account variable indices.static String
Simplified printable name for a nodestatic String
Simplified printable name for a tripleboolean
subsumes
(TriplePattern arg) Compare two patterns and return true if arg is a more specific (more grounded) version of this one.toString()
Printable stringboolean
variantOf
(TriplePattern pattern) Test if a pattern is just a variant of this pattern.
-
Constructor Details
-
TriplePattern
Constructor - builds a pattern from three nodes, use Node_RuleVariables as variables, use a variable with an empty name as a wildcard, can also use null as a wildcard. -
TriplePattern
Constructor - builds a degenerate pattern from a simple triple. This would be much easier if we merged Triples and TriplePatterns!
-
-
Method Details
-
getObject
Returns the object.- Returns:
- Node
-
getPredicate
Returns the predicate.- Returns:
- Node
-
getSubject
Returns the subject.- Returns:
- Node
-
asTripleMatch
Return the triple pattern as a triple match (concrete terms + Node.ANY) -
asTriple
Return the triple pattern as a triple -
compatibleWith
Compare two patterns for compatibility - i.e. potentially unifiable. Two patterns are "compatible" in the sense we mean here if all their ground terms match. A variable in either pattern can match a ground term or a variable in the other. We are not, currently, checking for multiple occurances of the same variable. Functor-valued object literals are treated as a special case which are only checked for name/arity matching. -
variantOf
Test if a pattern is just a variant of this pattern. I.e. it is the same up to variable renaming. This takes into account multiple occurances of the same variable. -
isLegal
public boolean isLegal()Check a pattern to see if it is legal, used to exclude backchaining goals that could never be satisfied. A legal pattern cannot have literals in the subject or predicate positions and is not allowed nested functors in the object. -
subsumes
Compare two patterns and return true if arg is a more specific (more grounded) version of this one. Does not handle functors. -
isGround
public boolean isGround()Test if the pattern is ground, contains no variables. -
toString
Printable string -
simplePrintString
Simplified printable name for a triple -
simplePrintString
Simplified printable name for a node -
equals
Equality override - used so that TriplePattern variants (same to within variable renaming) test as equals -
hashCode
public int hashCode()hash function override -
sameAs
Compare triple patterns, taking into account variable indices. The equality function ignores differences between variables.- Specified by:
sameAs
in interfaceClauseEntry
-