Class ActionSignature

All Implemented Interfaces:
Cloneable, Signature

public class ActionSignature extends FolSignature
This class represents an action signature consisting of a set of fluent names (representing environment states) and a set of action names (representing actions). They are represented by first order predicates to allow for the simple implementation of a grounding mechanism.
Author:
Sebastian Homann
  • Constructor Details

    • ActionSignature

      public ActionSignature()
      Creates an empty signature
    • ActionSignature

      public ActionSignature(Collection<?> c) throws IllegalArgumentException
      Creates a signature with the given objects (should be sorts, constants, predicates or formulas).
      Parameters:
      c - a collection of items to be added.
      Throws:
      IllegalArgumentException - if at least one of the given objects is neither a constant, a sort, a predicate or a formula.
    • ActionSignature

      public ActionSignature(FolFormula f)
      Creates a new Action Signature for a single first order formula.
      Parameters:
      f - a FOL formula
  • Method Details

    • getActionNames

      public Set<FolActionName> getActionNames()
      Returns:
      the set of action names contained in this action signature.
    • getFluentNames

      public Set<FolFluentName> getFluentNames()
      Returns:
      the set of fluent names contained in this action signature.
    • isValidFormula

      public boolean isValidFormula(Formula f)
      Checks if a given formula is valid in the sense of an action description, containing only predicates that are either fluentNames or actionNames and containing neither quantifiers nor functions.
      Parameters:
      f - the formula in question.
      Returns:
      true iff the given formula is a FolFormula, contains only atoms with fluent or action-predicates and contains no quantifiers or functors.
    • toString

      public String toString()
      Description copied from class: FolSignature
      Returns a string representation of this first-order logic signature.
      Specified by:
      toString in interface Signature
      Overrides:
      toString in class FolSignature
      Returns:
      a string consisting of the sorts with their constants followed by the predicates and functors of the signature.
    • containsActionName

      public boolean containsActionName(String actionName)
      Returns true iff the given actionName is contained in this action signature.
      Parameters:
      actionName - an action name
      Returns:
      true iff actionName is contained in this signature.
    • containsFluentName

      public boolean containsFluentName(String fluentName)
      Returns true iff the given fluentName is contained in this action signature.
      Parameters:
      fluentName - a fluent name
      Returns:
      true iff fluentName is contained in this action signature.
    • getActionName

      public FolActionName getActionName(String action)
      Returns the action name predicate with the given name if one exists, null otherwise.
      Parameters:
      action - an action
      Returns:
      the actionName predicate with the given name or null
    • getFluentName

      public FolFluentName getFluentName(String fluentName)
      Returns the fluent name predicate with the given name if one exists, null otherwise.
      Parameters:
      fluentName - a string
      Returns:
      the fluent predicate with the given name or null
    • containsActionName

      public boolean containsActionName(FolActionName actionName)
      Returns true iff the given actionName is contained in this signature.
      Parameters:
      actionName - a FOL action name
      Returns:
      true iff the given actionName is contained in this signature.
    • containsFluentName

      public boolean containsFluentName(FolFluentName fluentName)
      Returns true iff the given fluentName is contained in this signature.
      Parameters:
      fluentName - a string
      Returns:
      true iff the given fluentName is contained in this signature.
    • containsPredicate

      public boolean containsPredicate(Predicate predicate)
      Returns true iff the given predicate is contained in this signature.
      Parameters:
      predicate - some predicate
      Returns:
      true iff the given predicate is contained in this signature.
    • getAllGroundedFluentAtoms

      public Set<FolAtom> getAllGroundedFluentAtoms()
      Returns the set of all possible grounded atoms in this signature on the basis of all fluent predicates contained.
      Returns:
      the set of all possible grounded fluent atoms.
    • getAllGroundedActionNameAtoms

      public Set<FolAtom> getAllGroundedActionNameAtoms()
      Returns the set of all possible grounded atoms in this signature on the basis of all action name predicates contained.
      Returns:
      the set of all possible grounded action atoms.
    • add

      public void add(Object obj) throws IllegalArgumentException
      Description copied from class: FolSignature
      Adds the given object, either a constant, a sort, a predicate, or a functor, to this signature. If a constant is added its sort is added as well, the same is for any sort mentioned in predicates and functors. Alternatively, you can pass over a formula, then all predicates, sorts, constants, and functors of this formula are added to the signature.
      Specified by:
      add in interface Signature
      Overrides:
      add in class FolSignature
      Parameters:
      obj - the object to be added, either a constant, a sort, a predicate, a functor, or a formula.
      Throws:
      IllegalArgumentException - if the given object is neither a constant, a sort, a predicate, a functor, or a formula.