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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
bodyCall
(Node[] args, int length, RuleContext context) This method is invoked when the builtin is called in a rule body.void
checkArgs
(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.int
Return 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.void
headAction
(Node[] args, int length, RuleContext context) This method is invoked when the builtin is called in a rule head.boolean
Returns false if this builtin is non-monotonic.boolean
isSafe()
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:
getArgLength
in interfaceBuiltin
-
checkArgs
Check the argument length. -
bodyCall
This method is invoked when the builtin is called in a rule body.- Specified by:
bodyCall
in 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:
headAction
in 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:
isMonotonic
in interfaceBuiltin
-
getArg
Return the n'th argument node after dereferencing by what ever type of rule engine binding environment is appropriate.
-