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.
- Argument
Id - 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.