1. A computer-implemented method comprising: causing an answering system to receive a user query posed in a natural language to a database; causing the answering system to derive semantics from the user query and create a parse graph; perform normalization and transformation of the semantics; imposing constraints on the semantics to create artifacts; mapping the artifacts into a structured query; and executing the structured query on the database.