Skip to main content

argumentation_weighted_bipolar/
lib.rs

1//! # argumentation-weighted-bipolar
2//!
3//! Weighted bipolar argumentation frameworks: a composition of
4//! [`argumentation-weighted`](../argumentation_weighted/index.html) and
5//! [`argumentation-bipolar`](../argumentation_bipolar/index.html)
6//! following Amgoud, Cayrol, Lagasquie-Schiex & Livet 2008, with
7//! Dunne 2011 inconsistency-budget semantics applied uniformly over
8//! attacks and supports.
9//!
10//! Each edge (attack or support) carries a non-negative finite weight.
11//! A budget `β` permits any subset `S` of edges whose cumulative weight
12//! is at most `β` to be tolerated (dropped). Acceptance queries iterate
13//! every β-inconsistent subset and aggregate:
14//!
15//! - **Credulous**: accepted in some preferred extension of some residual.
16//! - **Skeptical**: accepted in every preferred extension of every residual.
17//!
18//! ## Why compose
19//!
20//! `argumentation-bipolar` already implements necessary-support
21//! semantics (Nouioua & Risch 2011) by flattening + filtering against
22//! the core Dung layer. `argumentation-weighted` already implements
23//! Dunne 2011 inconsistency-budget enumeration over attack subsets.
24//! This crate glues them: residuals are bipolar (not plain Dung), so
25//! the preferred-extension aggregation runs through the bipolar
26//! semantics layer.
27//!
28//! ## References
29//!
30//! - Amgoud, L., Cayrol, C., Lagasquie-Schiex, M.-C., & Livet, P.
31//!   (2008). *On bipolarity in argumentation frameworks.* IJIS 23(10).
32//! - Dunne, P. E., Hunter, A., McBurney, P., Parsons, S., &
33//!   Wooldridge, M. (2011). *Weighted argument systems.* AIJ 175(2).
34
35#![deny(missing_docs)]
36#![warn(clippy::all)]
37
38pub mod error;
39pub mod framework;
40pub mod reduce;
41pub mod semantics;
42pub mod types;
43
44pub use error::Error;
45pub use framework::WeightedBipolarFramework;
46pub use reduce::{wbipolar_residuals, EDGE_ENUMERATION_LIMIT};
47pub use semantics::{is_credulously_accepted_at, is_skeptically_accepted_at};
48pub use types::{AttackWeight, Budget, WeightedAttack, WeightedSupport};