Student Software
Student Software
On this page, we collect exceptionally good software demos created by students as part of our courses.
The Simpsons Quiz
Project done in the QA-lab 2015 by Stefan Bauregger, Timo Gerecht, Daniel Theiß, Ute Winchenbach.
This application employs the IBM Watson QA service on a corpus of ”The Simpsons” documents. Natural language questions are answered by Watson and further processed into sentence and multiple word long answers. These answers are either presented on their own or used as input for an user-generated Quiz application. An Android-App and a Web application are presented as user interfaces for this system.
The system consists of four main components: the User Interface, the Answer Processing Pipeline, the NLP Server and the Quiz Backend. Furthermore, it uses the IBM Watson QA service as a fifth external component.
The IBM Watson component is an IBM Watson Private Instance that was trained on a corpus of “The Simpsons” documents with 1000 question-answer pairs via the Watson Experience Manager. The corpus contains 1678 episode, character and location documents from the Simpsons Wikia. It is accessed through RESTful API via a Java wrapper that was implemented by Uli Fahrer. The IBM Watson module receives natural language questions and provides paragraph long answers from the collection of Simpsons documents.
These answers are further processed into sentence or multiple word long answers by the Answer Processing Pipeline. This module selects shorter text excerpts that are most likely to answer the given question. For this purpose, it analyses question as well as answer text features that are annotated by the Natural Language Processing (NLP) Server. This server uses the Stanford Core NLP Toolkit for e.g. text segmentation, Part-of-Speech and Named Entity annotation. The initial natural language questions are received from the User Interface, which also displays and further uses the resulting answers. An Android app and a web application are implemented as user interfaces. They offer direct answers to question input or use the generated answers in a Quiz Game. The Quiz Game stores on and retrieves user and quiz question information from the Quiz Backend Server, a MySQL database with PHP frontend.
Question Answering Lab 2014
The following two projects were created in the QA project lab 2014:
- LQA: This is a QA system developed by Jonas Klesy, particularly focused on location related Jeopardy! Clues. The QA architecture can easily be extended to the different types of questions. The QA system is developed with UIMA based server architecture, using Wikipedia as an Apache Solr index and different supporting resources (abbreviation lexicon, location resources including city, country, continent, river, mountain, and US state names). The system is built as a RESTful service with Jersey and a rich HTML client with JavaScript using jQuery which handles the presentation of the results. Out of 100 randomly selected clues, the system correctly answered 40 questions, and 36 question at position 2 and above. As the Jeopardy! challenge is known for its complex, tricky questions and presented for very smart champions, we found the student project software performing very well. The source code is not yet open source but you can email to Jonas if you are interested.
- PAL is a Question Answering (QA) system for Linked Data developed by Johannes Simon. It is based on Hakimov's previous work as described in the paper Semantic Question Answering System over Linked Data using Relational Patterns. Processing of natural-language (NL) questions is achieved using Stanford dependencies. Triples are generated from the dependency tree, and then combined to a SPARQL-like pseudo query. NL elements are mapped to ontology elements using WordNet similarity measures, and the final SPARQL query is selected using different scoring mechanisms. The back-end of the QA system is developed in Java using DBPedia, MusicBrainz, and The Open University sparql end points for data access. A simple web front-end is developed which is used to send queries to the REST-style Java servlet which responds with an input interpretation and query results in the JSON format. The web fron-tend then displays a graphical version of the query interpretation along with results to the user. Evaluation is performed using the QALD-2 challenge and the result obtained is comparable to the stat of the art QA systems over linked data. You can get the source code from github repository (here is the core PAL code and here is the PAL Web-front end component)