Class ASPElement

java.lang.Object
org.tweetyproject.lp.asp.syntax.ASPElement
All Implemented Interfaces:
Formula, ComplexLogicalFormula, LogicStructure, SimpleLogicalFormula
Direct Known Subclasses:
AggregateElement, ASPBodyElement, ASPHead, ASPRule, ChoiceElement, OptimizationElement

public abstract class ASPElement extends Object implements ComplexLogicalFormula
This class acts as an abstract base class for elements of ASP rules.
Author:
Anna Gessler
  • Constructor Details

    • ASPElement

      public ASPElement()
  • Method Details

    • getPredicates

      public abstract Set<Predicate> getPredicates()
      Description copied from interface: SimpleLogicalFormula
      Processes the set of all predicates which appear in this formula
      Specified by:
      getPredicates in interface SimpleLogicalFormula
      Returns:
      all predicates that appear in this formula
    • substitute

      public abstract ASPElement substitute(Term<?> t, Term<?> v)
      Description copied from interface: ComplexLogicalFormula
      Substitutes all occurrences of term "v" in this formula by term "t" and returns the new formula.
      Specified by:
      substitute in interface ComplexLogicalFormula
      Parameters:
      t - the term to be substituted.
      v - the term to substitute.
      Returns:
      a formula where every occurrence of "v" is replaced by "t".
    • getSignature

      public abstract FolSignature getSignature()
      Description copied from interface: Formula
      Returns the signature of the language of this formula.
      Specified by:
      getSignature in interface Formula
      Returns:
      the signature of the language of this formula.
    • getAtoms

      public abstract Set<ASPAtom> getAtoms()
      Description copied from interface: SimpleLogicalFormula
      Processes the set of all atoms which appear in this formula
      Specified by:
      getAtoms in interface SimpleLogicalFormula
      Returns:
      The set of all atoms
    • clone

      public abstract ASPElement clone()
      Description copied from interface: SimpleLogicalFormula
      Creates a deep copy of this formula
      Specified by:
      clone in interface ComplexLogicalFormula
      Specified by:
      clone in interface SimpleLogicalFormula
      Returns:
      the cloned formula
    • substitute

      public ASPElement substitute(Map<? extends Term<?>,? extends Term<?>> map) throws IllegalArgumentException
      Description copied from interface: ComplexLogicalFormula
      Substitutes all occurrences of all terms "v" in map.keyset() in this formula by map.get(v) and returns the new formula.
      Specified by:
      substitute in interface ComplexLogicalFormula
      Parameters:
      map - a mapping defining which terms to be substituted.
      Returns:
      a formula where every term in map.keyset() has been replaced by map.get(v).
      Throws:
      IllegalArgumentException - if any term and its mapping are of different sorts
    • exchange

      public ASPElement exchange(Term<?> v, Term<?> t) throws IllegalArgumentException
      Description copied from interface: ComplexLogicalFormula
      Substitutes all occurrences of term "v" in this formula by term "t" and at the same time replaces all occurrences of term "t" by term "v" and eventually returns the new formula.
      Specified by:
      exchange in interface ComplexLogicalFormula
      Parameters:
      v - a term.
      t - a term.
      Returns:
      a new logical formula with both "v" and "t" exchanged.
      Throws:
      IllegalArgumentException - if "v" and "t" are of different sorts
    • containsTermsOfType

      public <C extends Term<?>> boolean containsTermsOfType(Class<C> cls)
      Description copied from interface: LogicStructure
      Checks if this logical structure contains at least one term of type C. This method is a shortcut for !getTerms(TermImplementation.class).isEmpty().
      Specified by:
      containsTermsOfType in interface LogicStructure
      Type Parameters:
      C - the type of terms
      Parameters:
      cls - The class structure representing the type C of the term.
      Returns:
      True if this logical structure contains at least one term of type C or false otherwise.
    • isGround

      public boolean isGround()
      Description copied from interface: ComplexLogicalFormula
      Checks whether this formula is ground, i.e. whether there appears no variable in this formula.
      Specified by:
      isGround in interface ComplexLogicalFormula
      Returns:
      "true" if this formula is ground.
    • isWellFormed

      public boolean isWellFormed()
      Description copied from interface: ComplexLogicalFormula
      Checks if this formula is well formed in the logical langauge. What well- formed means is highly language dependent and the documentation of implementing sub classes shall describe the well formed term for the language they model.
      Specified by:
      isWellFormed in interface ComplexLogicalFormula
      Returns:
      true if the formula is well-formed, false otherwise
    • getPredicateCls

      public Class<? extends Predicate> getPredicateCls()
      Specified by:
      getPredicateCls in interface SimpleLogicalFormula
      Returns:
      The class description of the predicate used by this formula.
    • printToClingo

      public String printToClingo()
      Returns a representation of this ASP element in clingo (potassco) syntax. See https://potassco.org/ for more information.
      Returns:
      String representation in clingo syntax
    • printToDLV

      public String printToDLV()
      Returns a representation of this ASP element in DLV syntax. See http://www.dlvsystem.com/html/DLV_User_Manual.html for more information.
      Returns:
      String representation in DLV syntax