1. A computer implemented question answering method, comprising: (a) receiving or accessing a natural language question; (b) recognizing one or more entity surfaces in the natural language question, and generating one or more corresponding template surface queries; (c) constructing one or more structured queries based on one or more trained models for queried templates and entities; (d) finding and selecting one or more answer phrases using constructed structured queries on a knowledge base; and (e) composing, or initiating the composition, of output based on the one or more answer phrases.