Class ConstrainedArgumentationFramework

All Implemented Interfaces:
Comparable<DungTheory>, Iterable<Argument>, Collection<Argument>, ArgumentationFramework<Argument>, BeliefBase, GeneralGraph<Argument>, Graph<Argument>

public class ConstrainedArgumentationFramework extends DungTheory
This class implements a constrained abstract argumentation theory (CAF) using a propositional logic formula.

See

Coste-Marquis, Sylvie, Caroline Devred, and Pierre Marquis. "Constrained Argumentation Frameworks." KR 6 (2006): 112-122.
Author:
Sandra Hoffmann
  • Constructor Details

    • ConstrainedArgumentationFramework

      public ConstrainedArgumentationFramework()
      default constructor.
    • ConstrainedArgumentationFramework

      public ConstrainedArgumentationFramework(Graph<Argument> graph)
      Constructor for a CAF from a graph.
      Parameters:
      graph - A graph representing the structure of an argumentation framework.
    • ConstrainedArgumentationFramework

      public ConstrainedArgumentationFramework(Graph<Argument> graph, String constraint)
      Constructor for a CAF from a given graph and constraint. The constraint is parsed from a string into a propositional formula.
      Parameters:
      graph - A graph representing the structure of an argumentation framework.
      constraint - A string representing the propositional constraint.
    • ConstrainedArgumentationFramework

      public ConstrainedArgumentationFramework(Graph<Argument> graph, PlFormula constraint)
      Constructor for a CAF from a graph and a propositional formula as the constraint.
      Parameters:
      graph - A graph representing the structure of arguments and their relations.
      constraint - A propositional formula representing the constraint.
  • Method Details

    • setConstraint

      public boolean setConstraint(PlFormula constraint)
      Sets a new propositional formula as the constraint of CAF.
      Parameters:
      constraint - A propositional formula to be set as the new constraint.
      Returns:
      true when the constraint is successfully set.
    • setConstraint

      public boolean setConstraint(String constraint)
      Sets a new constraint by parsing a string representing a propositional formula.
      Parameters:
      constraint - A string representing the propositional constraint to be parsed.
      Returns:
      true if the constraint is successfully set, false if an error occurs during parsing.
    • getConstraint

      public PlFormula getConstraint()
      Retrieves the current propositional constraint of the framework.
      Returns:
      The propositional formula representing the current constraint.
    • isCompletion

      public boolean isCompletion(Extension<ConstrainedArgumentationFramework> ext)
      Checks whether the given extension forms a completion based on the argumentation framework and its constraint.
      Parameters:
      ext - The extension (set of arguments) to be checked for completion.
      Returns:
      true if the extension satisfies the framework's constraint, false otherwise.
    • isCAdmissibleSet

      public boolean isCAdmissibleSet(Extension<ConstrainedArgumentationFramework> ext)
      Checks whether the given extension is C-admissible, meaning that it is both admissible according to the standard Dung theory and satisfies the current constraint.
      Parameters:
      ext - The extension to be checked for C-admissibility.
      Returns:
      true if the extension is C-admissible, false otherwise.
    • isConsistent

      public boolean isConsistent()
      Checks whether the framework is consistent, i.e., whether there exists at least one C-admissible extension.
      Returns:
      true if a C-admissible extension exists, false otherwise.
    • isPreferredCExtension

      public boolean isPreferredCExtension(Extension<ConstrainedArgumentationFramework> ext)
      Checks whether the given extension is a preferred C-extension, meaning it is a set-maximal C-admissible extension
      Parameters:
      ext - The extension (set of arguments) to be checked for being a preferred C-extension.
      Returns:
      true if the extension is a preferred C-extension, false otherwise.
    • isStableCExtension

      public boolean isStableCExtension(Extension<ConstrainedArgumentationFramework> ext)
      Checks whether the given extension is a stable C-extension, meaning it is C-admissible and attacks every argument not included in the extension.
      Parameters:
      ext - The extension (set of arguments) to be checked for being a stable C-extension.
      Returns:
      true if the extension is a stable C-extension, false otherwise.
    • fcaf

      The characteristic function of a constrained argumentation framework: F_CAF(S) = {A | A is acceptable w.r.t. S and S ∪ {a} satisfies C}.
      Parameters:
      extension - an extension (a set of arguments) for which the characteristic function will be applied.
      Returns:
      a new extension containing arguments that are acceptable with respect to the given extension and where S ∪ {a} satisfies C, or null if F_CAF(S) is not a monotone function.
    • hasMonotoneFcafA

      public boolean hasMonotoneFcafA()
      Checks whether the characteristic function of the given CAF is monotonic with respect to a collection of admissible extensions. If the characteristic function is monotone and the set of admissible Extension of the CAF has a least element, then it has a C-grounded extension.
      Returns:
      true if fcaf is monotonic over the admissible extensions, false otherwise
    • getLeastElement

      public Extension<ConstrainedArgumentationFramework> getLeastElement()
      Determines the least element of the admissible sets of this CAF.
      Returns:
      The least element of the admissible sets of this CAF, if one exists.
      Throws:
      RuntimeException - if no least element can be determined.
    • fcafIteration

      Determines the least fixed point of the C-characteristic function of the CAF, starting from extension S.
      Parameters:
      S - Initial extension
      Returns:
      The least fixed point of Fcaf, or null if S is inadmissible.
    • prettyPrint

      public String prettyPrint()
      Pretty print of the theory.
      Overrides:
      prettyPrint in class DungTheory
      Returns:
      the pretty print of the theory.
    • toString

      public String toString()
      Generates a string representation of the framework.
      Specified by:
      toString in interface BeliefBase
      Specified by:
      toString in interface Graph<Argument>
      Overrides:
      toString in class DungTheory
      Returns:
      The string representation of the framework.