Short of that, there are a ton of places to start. You might start by reading all of the papers published by the folks behind the START question & answer system:
http://start.csail.mit.edu/index.php
If you can accept something that's fairly dumb, and requires a bit of up-front coding, you could just code up a chat-bot using AIML. Or you could start with a fairly dumb AIML bot and incorporate additional techniques over time. You could probably tie in OpenNLP or CoreNLP or something, figure out ways to use WordNet, ConceptNet, SyntaxNet, the OpenCyc knowledgebase, dbPedia, Wikidata, etc. and make something that could answer a lot of questions. Figuring out how to make it learn is a much bigger challenge, as is integrating all of the various ML/AI techniques out there that might be applicable.
You might also get some mileage out of something like Quepy[1], a framework for translating natural language into structured queries (think, SPARQL, SQL, etc.)
If you just want to get your feet wet and start exploring, I'd look here:
http://www.alicebot.org/downloads/programs.html
If AIML bots aren't "smart" enough for you, start exploring other techniques.
[0] https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A