Friday, 23 March 2007

Negation in Computing Argumentation

I was just looking through your 1999 paper 'Computing Argumentation in Logic Programming' and noticed that there was no mention of classical negation (like '¬p') anywhere. Is there a reason for this? Would propositions of the form '¬p' and hypotheses of the form 'not ¬p' require alterations to the paper and its findings?

In our approach classical negation 'not p' is meant to be represented by means of additional atoms (like) not_p. This means that in some cases, if the programs are not well written, then an inconsistency (p and not_p) may hold in some extension. This can be avoided if assumptions are properly positionsed, e.g.
'p if q' and 'not p if r'
really are written as
'p if q, a' and 'not_p if r, b'
where a, b are assumptions and contrary(a)=not_p and contrary(b)=p.

So, basically, we can ignore classical negation, and the overall approach is still fine.

Just to check a few things:

- In the paper, 'not p' is negation as failure, right? Is it to be interpreted as "p cannot be shown to hold and so we assume it does not hold".

Correct.

- Are rules of the form 'not p' allowed as the conclusions of rules?

No, conclusions 'not p', where 'not' is negation as failure, are not allowed in rules.

- Strictly speaking, would a program of the form
"p if q, a
not_p if r, b
where a,b are assumptions and contrary(a)=not_p and contrary(b)=p"
be allowed given that assumptions must be of the form of negative literals (like 'not p')?


Assumptions are negation as failure literals in this case, sorry I have written them as 'a' and 'b'. You see, we have proven that naf literals are really assumptions in the AIJ97 paper, so I often simply write them as assumptions. In terms of naf, my example could become what you suggest below or alternatively
p if q, not not_p
not_p if r, not p
where not in the premises of the rules is negation as failure.

I suggest you read my paper Abstract Argumentation (AI and Law 1996 or 1997): you can find it on my web page.

So, instead, would we have to say something like:
"p if q, not a
not_p if r, not b
where not a, not b are assumptions and contrary(a)=not_p and contrary(b)=p"?
Is this a correct translation?


Yes, this would be fine too.

No comments: