Skip to content

A question answering system which utilises machine learning.

License

Notifications You must be signed in to change notification settings

costantino2000/TeBaQA

 
 

Repository files navigation

Template-Based Question Answering (TeBaQA)

This fork changes the port of the controller module from 8080 to 9080 in order to avoid possible conflicts when installing the system on a network and makes the output of the run and build scripts appear on the terminal instead of redirecting it to files. It also includes a full installation script in order to make the installation process easier. Tested on Ubuntu WSL 18.04.

In order to install and run the system you have to download and run the installation scripts:

wget https://raw.githubusercontent.com/costantino2000/TeBaQA/master/tebaqa-full-install-1.sh &&
chmod +x tebaqa-full-install-1.sh &&
./tebaqa-full-install-1.sh

Wait for Elasticsearch to start and then run the second script in another terminal:

wget https://raw.githubusercontent.com/costantino2000/TeBaQA/master/tebaqa-full-install-2.sh &&
chmod +x tebaqa-full-install-2.sh &&
./tebaqa-full-install-2.sh

The scripts will automatically install all the required dependencies along with the system and then run it on localhost:9080. Other informations can be found in the scripts comments.

Original Readme

Build Status Codacy Badge

TeBaQA is available at https://tebaqa.demos.dice-research.org/

Execution

TeBaQA implements microservices architecture. The application comprises following 5 modules:

  • Template Classification :- to classify query templates (localhost:8081)
  • Entity Linking :- finding and linking entities and relations (localhost:8082)
  • Query Ranking :- candidate query execution, ranking (localhost:8083)
  • TeBaQA Controller :- central controller, frontend application (localhost:8080)
  • NLP Server :- CoreNLP Server endpoint (localhost:8085)

Additionally, Entity Linking requires Elasticsearch indices for data and ontology of the knowledge base. We provide dumps of DBPedia (2016-10 release). Find the dump files along with the instructions at Hobbit data. The indices were generated on Elastiscearch 6.6.1. You have to install Elasticsearch to use the Entity Linking components of TeBaQA. However, TeBaQA can also be run on your own knowledge base. Check the instruction in this file for more information on creating your own Elasticsearch indices. The script for createing the indices is located here

There are two ways to run TeBaQA

1. Run locally

  • Checkout the project

  • make files executable (chmod +x <filename>.sh)

  • Build all modules

    ./build-script.sh

  • Run all modules

    ./run-script.sh

2. Run as Docker (installation guide, Ubuntu 20.04) containers

  • Checkout the project

  • Build docker images for each module

    ./docker/build-images.sh

  • To run all containers

    ./docker/run-containers.sh

  • To stop all containers

    ./docker/stop-containers.sh

Citation

Vollmers, D., Jalota, R., Moussallem, D., Topiwala, H., Ngomo, A. C. N., & Usbeck, R. (2021). Knowledge Graph Question Answering using Graph-Pattern Isomorphism. arXiv preprint arXiv:2103.06752. https://arxiv.org/abs/2103.06752

Question Answering

  • To answer a question, simply execute an HTTP POST request to
  • Parameters:
    • query: A string which contains a question (required).
    • lang: The language of the question (default:en) Note: Other languages than English haven't been implemented yet.
  • An example request could look like this:
    • http://localhost:8080/qa?query=Where is the birthplace of Angela Merkel?&lang=en

Evaluation

Ablation study

Credit

About

A question answering system which utilises machine learning.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 84.0%
  • HTML 13.1%
  • Other 2.9%