Qanary is a Methodology for Creating Question Answering Systems it is part of the WDAqua project where question answering systems are researched and developed. Here, we are providing our key contributions on-top of the RDF vocabulary qa the reference implementation of the Qanary methodology. This repository contributes several sub-resources for Question Answring Community to build knowledge driven QA systems incorporating a standard RDF vocabulary qa. All the resources are reusable. For detailed description of individual resources, kindly refer to Wiki section of this repository. In brief, the following sub-projects are available all aiming at establishing an ecosystem for question answering systems.
- 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
- a Qanary component template implementation: use this to build you own component (howto) as it provides several features
- Qanary AGDISTIS: a wrapper for disambiguating named entity in text using the AGDISTIS (NED) tool
- Qanary Alchemy: a wrapper for the Alchemy Entity Extraction API (commercial, but offers a free API key) computing named entities and disambiguates them (NER+NED)
- Qanary DBpedia Spotlight NER: a wrapper for the service interface of DBpedia Spotlight spotting named entities within text (NER)
- Qanary DBpedia Spotlight NED: a wrapper for the service interface of DBpedia Spotlight disambiguating named entities within text (NED) to DBpedia resources
- Qanary FOX: a wrapper for the FOX tool for recognizing named entities within text (NER)
- Qanary Lucene Linker: a tool for recognizing and disambiguating named entities within text derived from an implementation within the SINA question answering system (NER+NED)
- Qanary Stanford NER: a wrapper for the Stanford Named Entity Recognizer recognizing named entities within text
- Qanary benchmarking
- 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
- QALD annotated with named entities: questions of QALD annotated with named entities containing
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
More details follow soon.
For a mapping between the resources presented at ISWC and this repository please refer to the wiki under section "Resources presented at ISWC".
If you want to inform yourself about the Qanary methodology in general, please use this publication: Andreas Both, Dennis Diefenbach, Kuldeep Signh, 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.
- Spring Boot project
-
Clone the GitHub repository:
git clone https://github.com/WDAqua/Qanary -
Install Java 8 (see http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html for details)
-
Install maven (see https://maven.apache.org/install.html for details)
-
Compile and package your project using maven:
mvn clean install -DskipDockerBuildThe install goal will compile, test, and package your project’s code and then copy it into the local dependency repository. -
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.
-
Run the pipeline component:
cd qanary_pipeline-template/target/ java -jar target/qa.pipeline-<version>.jar -
After
maven buildjar files will be generated in the corresponding folders of the Qanary components. For example, to start the Alchemy API components:cd qanary_component-Alchemy-NERD java -jar target/qa.Alchemy-NERD-0.1.0.jar -
After running corresponding jar files, you can see Springboot application running on http://localhost:8080/#/overview that will tell the status of currently running components.
-
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!
-
Clone the GitHub repository:
git clone https://github.com/WDAqua/Qanary -
Install Java 8 (see http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html for details)
-
Install maven (see https://maven.apache.org/install.html for details)
-
Install docker (see https://docs.docker.com/engine/installation/ for details)
-
Start docker service (see https://docs.docker.com/engine/admin/ for details)
-
Compile and package your project using maven:
mvn clean installThe 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. -
Configure the script
start.shaccording to the services you want to start. Each service runs inside a docker instance. At least the docker containersstardog,pipelineand one qanary component have to be up and running. Afterwards, run the scriptinitdb.shthat creates the database qanary in the stardog triple store. -
After executing the run script, you can see Springboot application running on http://localhost:8080/#/overview that will tell the status of currently running components.
-
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!