Creating Domain specific Question Answering Systems I want to create a domain specific QA system.

I am working on a project to create an QA system for a given text book (on a specific domain and answer all related questions)

One approach I am considering for this is to create an Ontology/Knowledge base and then use this for answer retrieval. 

For this :


How can I extract data from documents and populate this to the KB ?
The question will be in natural language, how can I use this question to query from the knowledge base ?
Is this the best approach ? because domain knowledge is required here for creating ontologies. And there are n number of domains. So shall I need to create different ontologies for each domain ?
Can a single QA model can be used to cover different domains ? Is there any other Machine learning and Deep learning approaches can be used for this ?
This is broad question, but here is the general approach. There are several sub-problems involved in a typical QA system, and each may be solved using different approaches:


Question Classification - What type of question is the user asking? This can be posed as a classification problem, assuming you have labels. 
Parsing the question - Multiple NLP techniques would be required here
Converting question to canonical form - Every question would be converted into a canonical or structured format (which can be used to query). This is usually the most difficult part of the process. This is usually referred to as Semantic Parsing. One approach is to get variants of phrases and then map it to a single canonical form using some similarity metric. You can start with this paper.


If you can get from a natural language text to a canonical form, you are essentially done. Storing data and retrieval are trivial aspects which could be done in numerous ways. Coming to the question of domains, it is always going to be a trade-off between accuracy for one domain vs a general QA system (which is way too difficult to crack). A single model for every domain will most likely give you better results at the cost of extra effort.