java.lang.Object
org.apache.jena.reasoner.rulesys.builtins.BaseBuiltin
- All Implemented Interfaces:
Builtin
- Direct Known Subclasses:
AddOne,AssertDisjointPairs,Bound,CountLiteralValues,Difference,Drop,Equal,GE,GreaterThan,Hide,IsBNode,IsDType,IsFunctor,IsLiteral,LE,LessThan,ListContains,ListEntry,ListEqual,ListLength,ListMapAsObject,ListMapAsSubject,ListNotContains,ListNotEqual,MakeInstance,MakeSkolem,MakeTemp,Max,Min,NotBNode,NotDType,NotEqual,NotFunctor,NotLiteral,NoValue,Now,Print,Product,Quotient,Regex,Remove,StrConcat,Sum,Table,TableAll,Unbound
Dummy implementation of the Builtin interface that specific
implementations can inherit from.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbodyCall(Node[] args, int length, RuleContext context) This method is invoked when the builtin is called in a rule body.voidcheckArgs(int length, RuleContext context) Check the argument length.getArg(int n, Node[] args, RuleContext context) Return the n'th argument node after dereferencing by what ever type of rule engine binding environment is appropriate.intReturn the expected number of arguments for this functor or 0 if the number is flexible.getURI()Return the full URI which identifies this built in.voidheadAction(Node[] args, int length, RuleContext context) This method is invoked when the builtin is called in a rule head.booleanReturns false if this builtin is non-monotonic.booleanisSafe()Returns false if this builtin has side effects when run in a body clause, other than the binding of environment variables.
-
Field Details
-
BASE_URI
Base URI for jena builtins- See Also:
-
-
Constructor Details
-
BaseBuiltin
public BaseBuiltin()
-
-
Method Details
-
getURI
Return the full URI which identifies this built in. -
getArgLength
public int getArgLength()Return the expected number of arguments for this functor or 0 if the number is flexible.- Specified by:
getArgLengthin interfaceBuiltin
-
checkArgs
Check the argument length. -
bodyCall
This method is invoked when the builtin is called in a rule body.- Specified by:
bodyCallin interfaceBuiltin- Parameters:
args- the array of argument values for the builtin, this is an array of Nodes, some of which may be Node_RuleVariables.length- the length of the argument list, may be less than the length of the args array for some rule enginescontext- an execution context giving access to other relevant data- Returns:
- return true if the buildin predicate is deemed to have succeeded in the current environment
-
headAction
This method is invoked when the builtin is called in a rule head. Such a use is only valid in a forward rule.- Specified by:
headActionin interfaceBuiltin- Parameters:
args- the array of argument values for the builtin, this is an array of Nodes.length- the length of the argument list, may be less than the length of the args array for some rule enginescontext- an execution context giving access to other relevant data
-
isSafe
public boolean isSafe()Returns false if this builtin has side effects when run in a body clause, other than the binding of environment variables. -
isMonotonic
public boolean isMonotonic()Returns false if this builtin is non-monotonic. This includes non-monotonic checks like noValue and non-monotonic actions like remove/drop. A non-monotonic call in a head is assumed to be an action and makes the overall rule and ruleset non-monotonic. Most JenaRules are monotonic deductive closure rules in which this should be false.- Specified by:
isMonotonicin interfaceBuiltin
-
getArg
Return the n'th argument node after dereferencing by what ever type of rule engine binding environment is appropriate.
-