1. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to: receive an input question; generate one or more candidate answers from a corpus of knowledge using a pipeline of software engines, wherein the pipeline of software engines generates a plurality of features extracted from the question, the one or more candidate answers, or the corpus of knowledge; generate a question difficulty score based on the plurality of features using a machine learning model, wherein the machine learning model maps features to assigned weights for scaling the difficulty score; store the question difficulty score in association with the input question to form a stored set of questions; receive a question policy, wherein the question, policy comprises a target difficulty level and a threshold; and select a set of questions from the stored set of questions, wherein the set of questions have a difficulty within the threshold of the target difficulty level.