scc

Labelling · Kotlin object SccModule · library prolog.argumentation.graph.labelling.scc

Support module of the SCC-recursive semantics (complete, preferred, stable): their labellings are built one strongly connected component at a time, the semantics only choosing which local labellings to keep.

PredicateDescription
label/2Labellings built one strongly connected component at a time, in topological order
undecidedCandidates/3The UND arguments of Scc in Branch that can be forced IN, those not attacked by an UND argument of a previous component (nothing left could defend them)
selection/4The branches of the local labellings in Explored (a list of Branch-Ok) kept by Select: all the accepted ones, or the accepted ones whose IN arguments in Scc are maximal

label/2

label(+Accept, +Select)

Labellings built one strongly connected component at a time, in topological order. The labels of a component only depend on the components before it, and are final once it is left. Within a component the search forces IN its undecided arguments (grounded propagation labels the rest), then keeps the local labellings that pass Accept and Select: Accept admissible - the IN arguments are defended decided - admissible, and no argument of the component left UND Select all - every accepted local labelling maximal - the accepted ones with a maximal set of IN arguments in the component Each solution leaves its labelling as the active context, released when the next one is computed.

undecidedCandidates/3

undecidedCandidates(+Scc, +Branch, -Ids)

Native primitive.

The UND arguments of Scc in Branch that can be forced IN, those not attacked by an UND argument of a previous component (nothing left could defend them)

selection/4

selection(+Select, +Scc, +Explored, -Selected)

Native primitive.

The branches of the local labellings in Explored (a list of Branch-Ok) kept by Select: all the accepted ones, or the accepted ones whose IN arguments in Scc are maximal