Git Product home page Git Product logo

qanary's Introduction

A Reference Implementation for Creating Question Answering Systems following the Qanary Methodology

Qanary in a Nutshell

TL;DR: The Qanary framework takes a best-of-breed approach to the integration of Question Answering (QA) components. It enables rapid development of QA systems that are flexible, extensible, reusable and provide built-in features to measure the quality of the QA quality.

Qanary is a methodology for creating Question Answering Systems it is part of the WDAqua project where question answering systems are researched and developed. For all the publications related to Qanary please see the section publications. W.r.t. questions, ideas or any feedback related to Qanary please do not hesitate to contact the core developers. However, if you like to see a QA system built using the Qanary framework, one of our core developers has build a complete end-to-end QA system which allows to query several RDF data stores: http://wdaqua.eu/qa.

Please go to the GitHub Wiki page of this repository to get more insights on how to use this framework, how to add new component etc.

Here, we provide our key contributions on-top of the RDF vocabulary qa: the reference implementation of the Qanary methodology. This repository contributes several sub-resources for the Question Answering Community to build knowledge-driven QA systems incorporating a standard RDF vocabulary named "qa".

All the resources are reusable. For detailed description of individual resources, we kindly refer to the Wiki section of this repository. The Qanary Question Answering components maintained by the core developers are available here (in a separated Git repository); it contains typical components that where provided from and for the community. They require to first clone the Qanary framework repository and execute mvn install. Although many components are available already, this is still just the beginning, many more components will be published soon.

The following sub-project are part of the Qanary core frameworks:

  • Qanary Pipeline implementation: a central component where components for question answering systems are connected automatically and can be called by Web UIs
  • Qanary component implementations: components providing wrappers to existing functionality or implement new question answering approaches
  • the additional resource QALD evaluator: a client for the Qanary Pipeline evaluating the capabilities w.r.t. named entity recognition and disambiguation of a given Qanary Pipeline configuration with the QALD benchmark (Question Answering over Linked Data) data

Qanary Pipeline

source

More details follow soon.

Qanary component template

source

More details follow soon.

Additional Resource

QALD evaluator

source

More details follow soon.

QALD annotated with named entities

source

More details follow soon.

Publications / References

If you want to inform yourself about the Qanary methodology in general, please use this publication: Andreas Both, Dennis Diefenbach, Kuldeep Singh, Saedeeh Shekarpour, Didier Cherix and Christoph Lange: Qanary - A Methodology for Vocabulary-driven Open Question Answering Systems appearing in 13th Extended Semantic Web Conference, 2016.

For additional publication we suggest to follow this list of publications

Stuff used to make this:

How to run the code

How to build a complete tiny Question Answering system driven by Qanary is described here.

Without creating Docker images

  1. Clone the GitHub repository: git clone https://github.com/WDAqua/Qanary

  2. Install Java 8 or higher (see http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html for details)

  3. Install Maven 3.5.2 or higher (see https://maven.apache.org/install.html for details)

  4. Install Stardog Triplestore (http://stardog.com/) and start it in background. Create a database with the name qanary. All the triples generated by the components will be stored in the qanary database. We use version 7 of Stardog.

  5. Switch to Qanary directoy: cd Qanary

  6. Build the components (creating Docker images is skipped):

   mvn clean install -Ddockerfile.skip=true
  1. Run the pipeline component:
   cd qanary_pipeline-template/target/
   java -jar target/qa.pipeline-<version>.jar --qanary.triplestore=ENDPOINT-OF-YOUR-TRIPLESTORE
  • while using Stardog on your local system using the default configuration you might use as triplestore endpoint: http://admin:admin@localhost:5820/YOUR-DATABASE-NAME (of course, you have to create a database by yourself)
  1. After running corresponding component JAR files, you can see Spring Boot application running on http://localhost:8080/#/overview that will tell the status of currently running components.
  1. Now your pipeline is ready to use. Go to http://localhost:8080/startquestionansweringwithtextquestion. Here you can find a User Interface to interact for adding question via web interface, and then select the components you need to include in the pipeline via checking a checkbox for each component. Press the start button and you are ready to go!

Including the creation of Docker instances

  • Follow the steps described in the previous section.

  • Install the Docker environment (see https://docs.docker.com/engine/installation/ for details)

  • Start the Docker service (see https://docs.docker.com/engine/admin/ for details)

  • Build your project using maven: mvn clean install (note: you might also add -Ddockerfile.skip=false to express that Docker images are created)

    • The install goal will compile, test, and package your project’s code and then copy it into the local dependency repository. Additionally, it will generate docker images for each component that will be stored in your local repository.
  • Start the Qanary Docker containers.

  • Now your pipeline is ready to use. Go to http://localhost:8080/startquestionansweringwithtextquestion. Here you can find a User Interface to interact for adding question via web interface, and then select the components you need to include in the pipeline via checking a checkbox for each component. Press the start button and you are ready to go!

Using Qanary for your work

  • Our Wiki page contains all the information about how to integrate a new component and also about the easy usability of Qanary framework. We have illustrated inclusion of a new component with example in Wiki page. Please refer to it.

qanary's People

Contributors

anbo-de avatar d063520 avatar heinpa avatar ilytra avatar dcherix avatar joraojr avatar beni-gut avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.