拡張論理型言語では,2種類の否定(classical negationとnegation as failure)を 使えるため,ルール間に2つの種類の矛盾が生じる.
このうち rebuttingしているルールは以下のようにundercuttingしているルールに
書き換えることができる.
r5(X):: 傷害(主体= X)← 無言電話(主体= X), not −傷害(主体= X).
r6(X):: −傷害(主体= X)← ふれていない(主体= X), not 傷害(主体= X).
ルール間のコンフリクトと優先関係がこのように定義されると, それらのルールを 内部に含んだ論証(argument)間のコンフリクトや優先関係も定義することができる.
次に、論証の集合の優先関係について考える. ある論証Aに対する反証をBとし, Bに対する反証をCとする.このとき, AよりBが優先したとしても, BよりCが優先するならば, 結果としてAの論証が勝ち残った ことになる.すなわち,論証集合 { A, C } はBより優先する.このように, ある論証集合があって,(1)その集合内の論証は互いに攻撃することなく,また, (2)その集合内の論証を攻撃するような外部の論証があるときは,その集合内の どれかの論証がその外部論証を攻撃し返す,という2条件を満たす場合, そのような極大の論証集合により支持されるリテラルは,拡張論理プログラ ムの preferred modelと対応する.
このような拡張論理プログラムの意味論をさらに,優先ルールの意味論に拡張し, それをベースにした優先ルール付き拡張論理型言語の処理系を開発した. この言語をGUIモードで実行すると,論証間の関係や論証内の情報などを図で表示し, ユーザはそれを見て,論証を組み立てたり,論争の反論手段を検討したりすることが できる(図2).