Syntax
- Predicates are separated into three categories: abducibles, defeasible and background (non-defeasible).
- Literals are represented using prolog terms. A negative literal is a term of the form neg(L).
- The language for representing various theories (problem domains) is given by rules of the form:
where,rule(Signature, Head, Body).
Head
is a literalBody
is a list of literalsSignature
is a compound term composed of a rule name together with selected variables from theHead
andBody
of the rule.
- The special predicate
prefer/2
is used to encode locally the relative strength of rules in the theory,i.e.means that the rule with signaturerule(Signature, prefer(Sig1,Sig2), Body).
Sig1
has higher priority than the rule with signatureSig2
provided that the preconditions in theBody
hold.
- Abducible literals are specified using the special predicate abducible/2,
abducible(Literal, Preconditions).
- The statement
conflict(Sig1,Sig2)
indicates that the rules with signaturesSig1
andSig2
are conflicting. In many casesconflict(Sig1,Sig2)
will be true iff the heads of the rulesSig1
andSig2
are contrary literals, but other rules can also be declared as conflicting by the designer of the domain description.