Skip to main content

aif_to_instance

Function aif_to_instance 

Source
pub fn aif_to_instance(
    doc: &AifDocument,
    registry: &CatalogRegistry,
) -> Result<SchemeInstance, Error>
Expand description

Import an AIF document back into a crate::instance::SchemeInstance.

Looks up the scheme by name in the provided crate::registry::CatalogRegistry and re-parses each I-node’s text as a argumentation::aspic::Literal (leading ¬ marks negation). Premises come from I-nodes pointing at the RA-node; the conclusion comes from the I-node the RA-node points at; CA-nodes pointing at the RA contribute critical-question text.

Not preserved through AIF. Critical-question crate::types::Challenge tags and counter_literal values are not part of the AIF format. On import, Challenge is re-derived by positional matching against the catalog’s scheme definition (with crate::types::Challenge::RuleValidity as fallback if the catalog has fewer CQs than the document); the counter_literal is a synthetic placeholder ¬aif_cq_<idx>. Callers who need a faithful counter_literal should drop the import route and re-instantiate the scheme from the catalog with the original bindings.

Expects exactly one RA-node per document. Documents with multiple RA-nodes represent conjoined arguments and are rejected with Error::AifParse — this is not a silent truncation.