The KLMDEETOOL, developed in Java, implements algorithms for KLM-style Rational Closure Entailment and Explanations. It consists of several interconnected components that work together to facilitate the processing and analysis of defeasible reasoning scenarios. The user interface tier offers both a command line interface (CLI) and a graphical user interface (GUI) for user interaction.
To aid in processing and solving complex logical expressions and queries efficiently, the KLMDEETOOL incorporates and relies on two external libraries or packages: the TweetyProject and the SAT4J SAT Solver. The Desktop and Console Applications output of the KLMDEETOOL are shown below:
Figure 1: The KLMDEETOOL GUI with an active example output
Figure 2: The KLMDEETOOL CLI with an active example output
Figure 3: The KLMDEETOOL GUI explanation output for K |โ ๐ |โผ ๐ค?
Figure 4: The KLMDEETOOL CLI explanation output for K |โ ๐ |โผ ๐ค?
- Maven 4.0+
- Java 20+
The target folder already has the binary 'KLMDEETool-1.0.1-jar-with-dependencies.jar' which can be run directly without any need for compilation. The default application is the Desktop Application (GUI).
To build the KLMDEETOOL, run the following Maven command against the home folder:
mvn package
java -cp target/KLMDEETool-1.0.1-jar-with-dependencies.jar uct.cs.dee.tool.ui.ToolGUI
java -cp target/KLMDEETool-1.0.1-jar-with-dependencies.jar uct.cs.dee.tool.ui.ToolCLI kb.txt "s~>w"
where 'kb.txt' is the Knowledge Base file and "s~>w" is the defeasible query.
- Chipo Hamayobe ([email protected]) - Project Lead
-
The TweetyProject - http://tweetyproject.org
The TweetyProject consists of diverse Java libraries that embody strategies for knowledge representation formalisms, encompassing classical logics, conditional logics, and probabilistic logics.
-
The SAT4J SAT Solver - http://www.sat4j.org
The SAT4J SAT Solver is a Java library designed to solve problems related to boolean satisfaction and optimisation.
-
JUnit - https://junit.org
The JUnit is a widely adopted open-source framework that provides a structured and organised approach to writing and running unit tests in Java applications..