Rules#
The Arg2p framework allows the encoding of both strict and defeasible rules.
Defeasible Rules#
All statements are expressed in this form:
RuleName: Premise1, ..., PremiseN => Conclusion.The absence of premises can be expressed with the notation:
RuleName: [] => Conclusion.It is also possible to encode defeasible/ordinary premises with the notation:
FactName :=> Conclusion.As for the form that premises and conclusions can take, all the properties of prolog terms (atoms, variables, lists, compound terms) are allowed.
Strict Rules#
All statements are expressed in this form:
RuleName: Premise1, ..., PremiseN -> Conclusion.The absence of premises can be expressed with the notation:
RuleName: [] -> Conclusion.It is also possible to encode axioms premises with the notation:
FactName :-> Conclusion.As for the form that premises and conclusions can take, all the properties of prolog terms (atoms, variables, lists, compound terms) are allowed.
Conflicts#
The contrast between terms, at the base of rebuts and undermine attacks, can be reached through negation.
Strong negation#
-Termindicates a strong negation, as opposed to the negation as failure implemented within the tuProlog engine. Strong negation cannot be nested.
Weak negation#
~(Term)X indicates a weak negation – i.e., negation by failure – as the ability to encode rules exceptions. Weak negations are admitted only inside the body of the rule (premises). Accordingly, the rule:
r : ~(Term1), Term2 => Conclusions.should be read as unless Term1, if Term2 then Conclusions.
Undercut#
Undercut attacks can be expressed through the notation:
undercut(ruleName)where ruleName is the identifier of a defeasible rule in the theory.
For example, we could write:
r0 : something => conclusion.
r1 : some_other_thing => undercut(r0).Permission and obligation#
p(Term)
o(Term)to indicate permission and obligation respectively. These concepts, belonging to the deontic expansion of classical logic, allow obtaining the flexibility necessary to deal with prohibitions and rights. For instance:
v_rule: o(-enter), enter => violation.Currently, admitted forms for permission and obligation are:
o(Term) % obligation
o(-Term) % prohibition
-o(Term) % no obligation
-o(-Term) % no prohibition
p(Term) % permission to do something
p(-Term) % permission to don't do something
-p(Term) % prohibition
-p(-Term) % prohibitionwhere Term is a standard Prolog term.
Superiority Relation#
It is possible to express these preferences with the following notation:
sup(RuleNam1, RuleName2).This proposition symbolises the greater reliability of the rule with identifier equal to RuleName 1 over that with identifier RuleName 2.
Burden of proof#
The burden of persuasion indication can be expressed as:
bp(Term1,…, TermN).