Class BaseBuiltin

    • 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.
      • 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 Detail

      • BASE_URI

        public static final java.lang.String BASE_URI
        Base URI for jena builtins
        See Also:
        Constant Field Values
    • Constructor Detail

      • BaseBuiltin

        public BaseBuiltin()
    • Method Detail

      • getURI

        public java.lang.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.