User Tools

Site Tools



YodaQA is an open source Factoid Question Answering system that can produce answer both from databases and text corpora using on-the-fly information extraction. By default, open domain question answering is performed on top of the Freebase and DBpedia knowledge bases as well as the texts of enwiki articles.


YodaQA goals are practicality and extensible design, though it serves as a research project as well. Right now, we are still in early alpha regarding accuracy as well as speed; in the future, we hope to also add some deductive capabilities and include “personal assistant” style conversation capabilities.

YodaQA stands for “Yet anOther Deep Answering pipeline” and the system is built on top of the Apache UIMA and DKpro UIMA bindings and developed as part of the Brmson platform. The QA logic is mostly original work, but much of the designs and components are inspired by the DeepQA (IBM Watson) and state-of-art papers.


The main pipeline processing the question composes of five parts:

Main YodaQA pipeline


Core YodaQA Runtime

These components are required for running the main YodaQA pipeline.

Core YodaQA Development

These components are required for developing the YodaQA pipeline - e.g. for retraining some of the classifiers etc. Their output is typically included in the main YodaQA repository.

Extra Components

These components are not used in the main pipeline - yet(?). Or they represent some alternative frontends or usecases.


The main public YodaQA API endpoint, if you do not want to roll your own, is (this web address also contains a bare-bones debugging web interface; is the canonical web interface).

Question asking

To start answering process use POST request method to /q with the text attribute set to asked question. Return value is ID of question.

Answer retrieving

To retrieve answers use GET request method in format /q/<id>, where id is id returned during questioning. Answers is returned in JSON.

Answered questions

To retrieve last six questions use GET request method in format /q/?answered. Questions are returned in JSON. Returned JSON contains array of questions.

Question in progress

To retrieve question in progress use GET request method in format /q/?inProgress. Waiting questions are returned in JSON.

Questions in queue

To retrieve questions waiting in queue use GET request method in format /q/?toAnswer. Waiting questions are returned in JSON.

Question format

For full specification of JSON question object structure, see Readme


YodaQA can be run on a Docker server. Details on how to set it up here.

yodaqa.txt · Last modified: 2016/09/20 11:39 by cvut-matulma4