Hal & Carla
Hal, a diabetic, loses his insulin. Before collapsing, he enters Carla's house and uses some of her insulin. Carla is another diabetic, not home. Should Hal be punished?
— Trevor Bench-Capon, introducing value-based argumentation frameworks (2003). A widely-used worked example for reasoning about values.
The arguments
Drag β to see how the framework resolves
Watch C2 — it stays credulously accepted at every β, because nothing in the framework attacks it. As β rises, the H2 → C1 attack (weight 0.4) becomes droppable around β = 0.4, and the symmetric H1 ↔ C1 pair (both weight 0.5) becomes droppable around β = 0.5. But no β setting yields Hal as the sole winner: Carla's C2 is structurally unkillable in this graph, and the symmetric H1 ↔ C1 leaves both sides credulously accepted (multiple preferred extensions) rather than picking a winner.
A pre-recorded multi-beat trace at four discrete β
The traces tell a stark story: in every beat at every β, Carla's proposal is accepted and Hal's is rejected. At β = 1.0 Hal pivots from arguing life_over_property to arguing too_poor_to_compensate — the scorer notices the H2 → C1 attack has dropped — but the rejection persists because Carla's C2 still defeats H2 (weight 0.6, too heavy to drop even at β = 1.0; in fact that edge would need β > 0.6 to fall).
This is the limit of the abstract weighted framework. Tuning β changes which Hal-claim gets put forward, but never changes who wins. To get a different outcome, the framework would need to encode the moral preference itself — life > property — as a first-class part of the resolution. That's what value-based argumentation does.
With values: the audience flips the outcome
The abstract weighted framework above can't prefer Hal — but argumentation-values can. Below, the same four arguments and four attacks, but with values attached: H1 promotes life, C1 promotes property, H2 promotes fairness, C2 promotes life. Each side panel shows the audience-conditioned defeat graph under one audience.
Audience: life > property
Audience: property > life
The framework hasn't changed; the audience has. Same four arguments, same four attacks, opposite outcome. This is the formal machinery of value-based argumentation.
Why values matter
Pure Dung semantics — the engine you just played with — can't prefer Hal in the way humans intuitively do, because the framework treats H1 and C1 as ordinary attacks on each other (or on C1's targets). The preference "life is more important than property" is not encodable as an attack weight or a β setting. That's a value preference, not a scene-intensity setting.
Bench-Capon's solution: attach values to arguments. H1 promotes life; C1 promotes property; H2 promotes fairness; C2 promotes life (Carla's life, in this case). An audience is an ordering over values. Different audiences with different orderings reach different stable positions rationally:
- An audience that ranks life > property → H1 and C2 accepted, C1 and H2 rejected. Hal goes free.
- An audience that ranks property > life → the opposite. Hal is punished.
The framework hasn't changed; the audience has. This is the formal machinery that makes "different audiences, same arguments, different conclusions" precise rather than vague.
In our library
Value-based argumentation is implemented in the argumentation-values crate. The audience-flip demonstration above uses the actual library to derive the defeat graphs shown. For full API details, types, and the Hal & Carla integration test that pins this exact behaviour, see the VAF concepts page.
For multi-character scene wiring (per-character audiences flowing into the encounter bridge), see the wiring per-character values how-to.
Further reading
- Bench-Capon (2003) — value-based argumentation frameworks.
- Atkinson & Bench-Capon (2007) — practical reasoning over VAFs.
- Open areas — formalisms not yet implemented in this library.
- VAF scoping — what an
argumentation-valuescrate would look like. - Wiring per-character values — how to wire per-character audiences into a multi-actor scene.
- The siege council (flagship) — multi-actor engine-driven scene.
- The east wall — the simplest engine-driven scene.