Modal Defeasible
Logic-MDL
Run package
The package for MDL in JAR file can be found at codeMDL.jar
You will need jdk 1.6 to run the package. When successfully downloading the jar file, you simply do a double click on the file. You will see the GUI of the package as

Basic functions of the package are:
Load Theory: Load a modal theory in RuleML-like format.
Remove defeaters: Remove defeater rules from the theory
Remove sups: Remove the superiority relations
Mode convert: Convert modes as specified in the theory
Get conclusions: Do the inference
Save: Store conclusions into a file
Once a theory is successfully loaded, the MDL screen displays detailed information of the theory including the rules, facts, and the parameters.
A sample theory, from the paper ``Cost of social agents'', can be found at MDL example
RuleML-like format for MDL theory
The detailed structure of a MDL theory can be found at mdltheory.dtd .
The parameters for a MDL theory are determined by the tag < Parameters >. Currently, Strength parameter is fixed to STRICT, DEFEASIBLE, and DEFEATER as the standard defeasible logic.You can define the modalities to be used in the theory and their relations by using the tags of <Mode>, <Conversion>, and <Conflict>.
<Conversion>
<Mode>BEL</Mode>
<Mode>INT</Mode>
</Conversion>
This example means BEL mode can convert to INT mode.
<Conflict>
<Mode>BEL</Mode>
<Mode>INT</Mode>
</Conflict>
The above RuleML fragment states that BEL mode conflicts with INT mode. Also, a conclusion with BEL can override its complement with INT mode.
A atom in a theory is represented as:
<!ELEMENT Atom (Neg?,Mode?,Not?,Rel,(Ind|Var)*)>
The literal ~EntrustedByElrondBEL is written as:
<Atom><Mode>BEL</Mode><Not></Not><Rel>EntrustedByElrond</Rel></Atom>
A rule in MDL theory is composed of 4 elements: mode, strength, head, and body.
<!ELEMENT Rule (Mode?,Strength,head?,body?)>
A head is a atom without mode while a body can have non or many atoms defined in between <And> tag.
Rule r1: EntrustedByElrondBEL =>BEL RingBearer will look like :
<Rule label
="r1">
<Mode>BEL</Mode>
<Strength>STRICT</Strength>
<!-- ELEMENT Atom
(Neg?,Mode?,Not?,Rel,(Ind|Var)*)-->
<head>
<Atom>
<Rel>RingBearer</Rel>
</Atom>
</head>
<body>
<And>
<Atom><Mode>BEL</Mode><Rel>EntrustedByElrond</Rel></Atom>
</And>
</body>
</Rule>
Contact
Thanks for your interest.
If you have any comment or suggestion, please email me at pham@itee.uq.edu.au
