So far I have a "Knowledge Engine" that can answer (some) questions in natural language by using a process similar to how IBM Watson Deep QA works (an extremely simplified version atm, though).
I'm currently working on integrating SymPy for symbolic calculation[2]. SymPy already has a web interface[3] which is broadly similar to what WolframAlpha can do. That relies on Google AppEngine to provide security sandboxing.
My version is designed to be completely private, open source and self-hostable, including all the data[1], so I can't rely on AppEngine. Instead, I have SymPy running inside ZeroVm + LXC (Docker) as a sandbox. I'm currently working out how to get that to communicate with the front end (which is non-trivial, because ZeroVm is pretty much undocumented).
Obviously SymPy isn't as "Natural Language Like" as the WolframAlpha language, but arguably Python is actually more powerful.
After that I'll do OpenStreetMap integration (ie, self hosted OSM), which will give it better geographic understanding that it has.
[1] Every time I mention this I need to include a standard disclaimer that I do realize this is completely and utterly crazy.