Query Abduction

Overview

ABEL is a prototypical implementation of a query abduction system with observations as conjunctive queries (CQs) over ontologies specified in the DL ELH. The program is written by Mahsa Chitsaz with the assistance of Dr. Zhe Wang and Professor Kewen Wang.

An instance of a query abduction problem (QAP) in ELH is a tuple (T,A,q(a),Σ, Δ), where T is a TBox and A is an ABox. q(a) is an observation with q a CQ and a is a tuple of constants, Σ is a subset of concept names and role names in the ontology called abducibles,and Δ is a finite set of constants called the domain. An Abox E is a solution to the QAP iff:

  1. pred(E) ⊆ Σ and const(E) ⊆ Δ
  2. T ∪ A ∪ E ⊨ q(a)
  3. T ∪ A ∪ E ⊭ ⊥
  4. E ⊭ q(a)
Moreover we call E be :

In this implimentation, an ELH ontology, a set of abducibles Σ, a domain Δ, and an observation which includes a CQ and a tuple of constants a are given. The system will compute the Prolog encoding of this ABox abduction problem using three steps, then further this Prolog program can be executed by XSB:

  1. The TBox of the ontology is transferred to a datalog program using KARMA
  2. The observastion is rewritten from an approach in query answering.
  3. Encode TBox, ABox, abducibles and observation to a Prolog program.

The second step is necessary because the datalog approximation yields to have incorrect solutions, therefore with this rewriting we retain the soundness of our approach. The first step is also guarantees the completeness of our approach since the result of approximation is a stronger program.

Requirements

XSB has to be installed in the system. First, it can be downloaded from XSB home page. To test it is correctly installed, run XSB by XSB_DIR/XSB/bin/xsb in the command line. Then an interactive XSB environment will be activated which you can execute any Prolog program.

How to execute ABEL

Currently ABEL is only available in command-lines and can be used in Linux-based systems. The system and the evaluation data is included in the downloaded zip file.

It can be executed by java -jar ABEL.jar [OPTIONS].
-help display the help and exit.

The following command, will find all explanations for all observations in atomic_queries.txt file, where all unary and binary predicates are abducibles (i.e. -allU and -allB). Domain is specified by individuals listed in domain.txt. All result will be stored in LSTW/lubm-ex-20_result.txt, otherwise a file could be set by '-result' option. The default time limit is 10 minutes which can be changed by -limit option.
java -jar ABEL.jar -observations data/LSTW/queries/atomic_queries.txt -allU -allB -domain data/LSTW/domain.txt -tbox data/LSTW/ontologies/lubm-ex-20-noFO.owl -abox data/LSTW/ontologies/LSTW-ELH-noFO-1univ-datatype.owl -xsb /XSB-DIR/XSB/bin/xsb -limit 20

*Note that if there is any named individual in the query, it has to be presented between < and >. Also, any boolean query has to have head like this Q(). For abducibles and domain, files can be accepted where all predicates or constants have to be listed in each line. These are options to specify abducibles and the domain:

The default reasoner is set to the Pellet reasoner. If the RDFox is going to be used instead of the Pellet the following command shows how to configure the RDFox:
java -jar ABEL.jar -observations data/LSTW/queries/atomic_queries.txt -allU -allB -domain data/LSTW/domain.txt -tbox data/LSTW/ontologies/lubm-ex-20-noFO.owl -abox data/LSTW/ontologies/LSTW-ELH-noFO-1univ-datatype.owl -xsb /XSB-DIR/XSB/bin/xsb -rdfox -rl data/LSTW/ontologies/lubm-ex-20-noFO-RL.owl -ttl data/LSTW/ontologies/LSTW1.ttl

To use the module extract optimisation, the -summary has to be given as well as -rdfox:
java -jar ABEL.jar -observations data/LSTW/queries/generated/Q0.txt -allU -allB -domain data/LSTW/domain.txt -tbox data/LSTW/ontologies/lubm-ex-20-noFO.owl -abox data/LSTW/ontologies/LSTW-ELH-noFO-1univ-datatype.owl -xsb /XSB-DIR/XSB/bin/xsb -rdfox -rl data/LSTW/ontologies/lubm-ex-20-noFO-RL.owl -ttl data/LSTW/ontologies/LSTW1.ttl -summary

*Note that the AQ module is dependent on the query, and the A is dependent on the domain. So if there are different queries in the observation file, those have to be seperated to find the appropriate modules.

To turn off the classification optimisations, the -noHierarchy could be given in the command line.

By downloading the sources files, you agree to the GNU Lesser General Public License.This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.