All Implemented Interfaces:

public class NoValue extends BaseBuiltin
Can be used in two arg form (X, P) or three arg form (X, P, V). In three arg form it succeeds if the triple (X, P, V) is not currently present, in two arg form it succeeds if there is not value for (X, P, *).
  • Constructor Details

    • NoValue

      public NoValue()
  • Method Details

    • getName

      public String getName()
      Return a name for this builtin, normally this will be the name of the functor that will be used to invoke it.
    • 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 interface Builtin
      bodyCall in class BaseBuiltin
      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 engines
      context - an execution context giving access to other relevant data
      return true if the buildin predicate is deemed to have succeeded in the current environment
    • isMonotonic

      public boolean isMonotonic()
      Flag as non-monotonic so the guard clause will get rerun after deferal as part of a non-trivial conflict set.
      Specified by:
      isMonotonic in interface Builtin
      isMonotonic in class BaseBuiltin