Thursday 23 April 2009

Pseudo-algorithm Explaining Argument Evaluation Implementation

(Procedural) Pseudo-algorithm explanation of my (Declarative) Prolog Argument Evaluation Procedure:
Given claim C;
Get a backward deduced support (consisting of private facts and assumptions) S of C;
Add C to Friends;
Add all sentences in S to Defences;
Get the set AttackArgs containing all arguments that attack the assumptions of S;
Append arguments in AttackArgs to Enemies;
Repeat: For each argument AttackArg in Enemies
If AttackArg contains a Culprit,
Remove AttackArg from Enemies;

Otherwise,
Remove AttackArg from Enemies;
Get a contrary D of some non-Defence assumption A in AttackArg;
Add A to Culprits;
If D is a Friend, skip forward to Repeat;
Get a non-Culprit-contaminated backward deduced support S of D;
Add D to Friends;
FilteredS = S with all Defences filtered out;
Append sentences in FilteredS to Defences;
Get the set AttackArgs containing all arguments that attack the assumptions of FilteredS;
Append arguments in AttackArgs to Enemies;
End Repeat
Explaining the implementation in terms of the Dispute Derivation Definition, the player choice and selection function is such that P is emptied immediately whenever a sentence is added to P , such that a set S in O is only addressed if P is empty. Hence, when attacking an assumption A in an element S of O, the check whether A is in P is not required (since P is empty). So, in conclusion, the implementation need not be modified despite the changes made to the Dispute Derivation Definition.

No comments: