- All Implemented Interfaces:
public class Drop extends BaseBuiltin
A variant of the "remove" builtin that will delete matched triples from the graph but will not trigger further rule processing for the removed triples. This makes it seriously non-monotonic but useful for rewrite rules.
Method SummaryModifier and TypeMethodDescription
getName()Return a name for this builtin, normally this will be the name of the functor that will be used to invoke it.
voidThis method is invoked when the builtin is called in a rule head.
booleanReturns false if this builtin is non-monotonic.
Methods inherited from class org.apache.jena.reasoner.rulesys.builtins.BaseBuiltin
bodyCall, checkArgs, getArg, getArgLength, getURI, isSafe
getNamepublic String getName()Return a name for this builtin, normally this will be the name of the functor that will be used to invoke it.
headActionThis method is invoked when the builtin is called in a rule head. Such a use is only valid in a forward rule.
- Specified by:
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 engines
context- an execution context giving access to other relevant data
isMonotonicpublic 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.