Class BaseBuiltin
- 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
public abstract class BaseBuiltin extends java.lang.Object implements Builtin
Dummy implementation of the Builtin interface that specific implementations can inherit from.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BASE_URI
Base URI for jena builtins
-
Constructor Summary
Constructors Constructor Description BaseBuiltin()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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.Node
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
getArgLength()
Return the expected number of arguments for this functor or 0 if the number is flexible.java.lang.String
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
isMonotonic()
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 Detail
-
BASE_URI
public static final java.lang.String BASE_URI
Base URI for jena builtins- See Also:
- Constant Field Values
-
-
Method Detail
-
getURI
public java.lang.String 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
public void checkArgs(int length, RuleContext context)
Check the argument length.
-
bodyCall
public boolean bodyCall(Node[] args, int length, RuleContext context)
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
public void headAction(Node[] args, int length, RuleContext context)
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
public Node 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.
-
-