Skip to main content

Crate argumentation_bipolar

Crate argumentation_bipolar 

Source
Expand description

§argumentation-bipolar

Bipolar argumentation frameworks (Cayrol & Lagasquie-Schiex 2005, Amgoud et al. 2008, Nouioua & Risch 2011) built on top of the argumentation crate’s Dung semantics.

A bipolar framework extends Dung’s abstract argumentation with a second directed edge relation: support. Arguments can attack and support one another. This crate implements necessary support semantics: A supports B means A must be accepted for B to be acceptable.

§Quick example

use argumentation_bipolar::framework::BipolarFramework;
use argumentation_bipolar::coalition::detect_coalitions;
use argumentation_bipolar::semantics::bipolar_preferred_extensions;

let mut bf = BipolarFramework::new();
bf.add_support("alice", "bob").unwrap();
bf.add_support("bob", "alice").unwrap();
bf.add_attack("alice", "charlie");
bf.add_attack("bob", "charlie");

let coalitions = detect_coalitions(&bf);
assert!(coalitions.iter().any(|c| c.members.len() == 2));

let prefs = bipolar_preferred_extensions(&bf).unwrap();
for ext in &prefs {
    assert!(!ext.contains(&"charlie"));
}

§Semantics pipeline

  1. derived::closed_attacks computes the set of all attacks under the closed attack relation (direct + supported + secondary + mediated) per C&LS 2005 §3.
  2. flatten::flatten produces an equivalent argumentation::ArgumentationFramework whose attack edges are the closure.
  3. semantics::bipolar_preferred_extensions runs the core crate’s Dung preferred semantics on the flattened framework, then filters extensions that are not support-closed (every accepted argument must have all its necessary supporters in the extension too).
  4. coalition::detect_coalitions runs Tarjan SCC on the support graph to find mutually-supporting groups.

§References

  • Cayrol, C. & Lagasquie-Schiex, M.-C. (2005). On the acceptability of arguments in bipolar argumentation frameworks. ECSQARU / IJAR 23(4).
  • Amgoud, L., Cayrol, C., Lagasquie-Schiex, M.-C., & Livet, P. (2008). On bipolarity in argumentation frameworks. IJIS 23(10).
  • Nouioua, F. & Risch, V. (2011). Bipolar argumentation frameworks with specialized supports. ICTAI 2011.
  • Cohen, A. et al. (2014). A survey of different approaches to support in argumentation systems. KER 29(5).

Re-exports§

pub use coalition::Coalition;
pub use coalition::detect_coalitions;
pub use error::Error;
pub use framework::BipolarFramework;
pub use semantics::bipolar_complete_extensions;
pub use semantics::bipolar_grounded_extension;
pub use semantics::bipolar_preferred_extensions;
pub use semantics::bipolar_stable_extensions;
pub use semantics::is_support_closed;
pub use types::CoalitionId;
pub use types::EdgeKind;

Modules§

coalition
Coalition detection on the support graph.
derived
Derived attack closure per Cayrol & Lagasquie-Schiex 2005 and Amgoud et al. 2008 §3.
error
Crate error types.
flatten
Flattening: convert a BipolarFramework into an equivalent argumentation::ArgumentationFramework whose attack relation is the closed attack set from crate::derived::closed_attacks.
framework
BipolarFramework<A>: arguments, attacks, and supports.
queries
Transitive queries over a bipolar framework.
semantics
Bipolar semantics: compute Dung extensions on the flattened framework and filter them for support closure under necessary-support semantics.
types
Foundational types for bipolar argumentation.