Skip to main content

Module argument

Module argument 

Source
Expand description

Argument tree construction from knowledge base and rule set.

An ASPIC+ argument is a tree: leaves are premises, internal nodes are rule applications. We construct arguments by forward chaining from the knowledge base, applying rules whose premises are all derived.

Cyclic rule sets are rejected up front. Forward chaining over rule cycles (p ⇒ p, or p ⇒ q, q ⇒ p) produces infinite argument sequences with fresh ids at each iteration: even though each argument tree has a unique (rule_id, sub_args) tuple and the inner already_exists check catches duplicates at the same depth, a genuine cycle keeps producing deeper trees indefinitely (A0: p → A1: p via rule on A0 → A2: p via rule on A1 → ...). The already_exists guard does not save us here, so we detect rule-dependency cycles by DFS before chaining starts and return crate::Error::Aspic if any are found.

Structs§

Argument
An ASPIC+ argument.
ArgumentId
A unique argument id within a StructuredSystem.

Enums§

Origin
How an argument was constructed.

Functions§

construct_arguments
Build all possible arguments from a knowledge base and rule set by forward chaining to a fixed point.