TU Dresden  ◆  Faculty of Computer Science  ◆  Institute of Theoretical Computer Science  ◆  Chair of Automata Theory  ◆  Dr. Patrick Koopmann

LETHE-Abduction: A Tool for Signature-Based Abduction for ALC Knowledge Bases

LETHE-Abduction is an extension of LETHE that can be used to perform signature-based abduction for ALC Knowledge Bases formulated as OWL ontologies. Abduction can be used to explain or to fix missing entailments from the ontology, or to obtain a rational explanation for an unexpected observation. Specifically, one specifies an ALC knowledge base as background knowledge, a set of DL axioms (TBox or ABox or mixed) called the observation, and a set of concept and role names called the abducibles. LETHE-Abduction computes then several possible solutions to the abduction problem, where each corresponds to a set of ALC axioms (TBox or ABox or mixed) that are fully expressed using the abducibles, and that, when added to the original knowledge base, will make the observation entailed. The intended use it from within a Java or a Scala application, after importing it using Maven or SBT. Comes together with the source code of LETHE, on which it depends, and can be compiled for both OWL API 4 and OWL API 5.

More information and technical details of the underlying methods can be found in the following publication:


P. Koopmann, W. Del-Pinto, S. Tourret, and R. Schmidt: Signature-Based Abduction for Expressive Description Logics. In Proceedings of the 17th International Conference on Principles of Knowledge Representation and Reasoning (KR 2020), 2020. Link

If you have any queries, suggestions or noticed any problems or bugs, please send me a message: patrick.koopmann@tu-dresden.de

Update 23-03-28: Fixed problem with the installation of the OWL API 5 version.

Download

Source code: LETHE-abduction-0.8.tar.gz

Installation

Using Maven:

	mvn install
      

Using SBT:

	sbt publishLocal
      

Usage

After installation, one of the following maven dependencies should be added to your project, depending on whether you are using OWL API 4 or OWL API 5:


         <dependency>
            <groupId>de.tu-dresden.inf.lat</groupId>
            <artifactId>lethe-abduction-owlapi4_2.12</artifactId>
            <version>0.8-SNAPSHOT</version>
         </dependency>
	    
	 <dependency>
            <groupId>de.tu-dresden.inf.lat</groupId>
            <artifactId>lethe-abduction-owlapi5_2.12</artifactId>
            <version>0.8-SNAPSHOT</version>
         </dependency>
	 
      

To perform signature-based abduction, one then proceeds as follows.

      import uk.ac.man.cs.lethe.abduction.OWLAbducer


      import org.semanticweb.owlapi.model.OWLAxiom
      import org.semanticweb.owlapi.model.OWLEntity
      import org.semanticweb.owlapi.model.OWLOntology


      ...

      OWLOntology ontology;
      Set<OWLEntity> abducibles;
      Set<OWLAxiom> observation;

      ...


      OWLAbducer abducer = new OWLAbducer();
      abducer.setBackgroundOntology(ontology);
      abducer.setAbducibles(abducibles);
      
      DLStatement hypotheses = abducer.abduce(observation); // compute hypotheses as DLStatement object

      abducer.formatAbductionResult(observation); // output the hypotheses in DL syntax to the standard output