How do you represent queries? That's really, for me, the most interesting question.
For "question answering" (the bit I have working) both end up being converted into SPARQL queries and then run against a local RDF store.
For SymPy the idea is that my frontline parallel pipeline thing will throw the query at SymPy as well as the other parsers, but SymPy will be the only thing that knows what to do with it.