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 Object implements Builtin
Dummy implementation of the Builtin interface that specific implementations can inherit from.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Base URI for jena builtins
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    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.
    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.
    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
    Returns false if this builtin has side effects when run in a body clause, other than the binding of environment variables.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.jena.reasoner.rulesys.Builtin

    getName
  • Field Details

  • Constructor Details

    • BaseBuiltin

      public BaseBuiltin()
  • Method Details

    • getURI

      public String getURI()
      Return the full URI which identifies this built in.
      Specified by:
      getURI in interface Builtin
    • getArgLength

      public int getArgLength()
      Return the expected number of arguments for this functor or 0 if the number is flexible.
      Specified by:
      getArgLength in interface Builtin
    • 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 interface Builtin
      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 engines
      context - 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 interface Builtin
      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 engines
      context - 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.
      Specified by:
      isSafe in interface Builtin
    • 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 interface Builtin
    • 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.