A mechanism is provided in a data processing system for rating difficulty of a question. The mechanism receives an input question and generates one or more candidate answers from a corpus of knowledge using a pipeline of software engines. 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. The mechanism then generates a question difficulty score based on the plurality of features using a machine learning model. The machine learning model maps features to assigned weights for scaling the difficulty score.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method, in a data processing system, for rating difficulty of a question, the method comprising: receiving an input question; generating 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; and generating 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. 2. The method of claim 1, wherein generating the one or more candidate answers comprises submitting the input question to a question answering system, wherein the question answering system comprises the pipeline of software engines. 3. The method of claim 2, wherein the pipeline of software engines comprises one or more annotation engines that contribute to generation of the one or more candidate answers. 4. The method of claim 1, wherein the plurality of features comprise an inverse document frequency measure, wherein the inverse document frequency measure is an inverse of a term frequency measure, wherein the term frequency measure specifies a frequency that a fact or concept appears in the corpus of knowledge. 5. The method of claim 1, wherein the plurality of features comprises one or more features from the set consisting of: a number of times a target concept is referenced in the corpus of knowledge; a feature indicating a topicality or centrality of a topic; syntactic clues; intersentential discourse clues; discourse structure attributes; a frequency of a predicate/argument structure in the corpus of knowledge; a position in the corpus of knowledge of an initial mention of a concept; whether a definition of a term is contained within the corpus of knowledge; a degree to which a term is used in a sentence in an unexpected context compared to a typical context within the corpus of knowledge. 6. The method of claim 1, further comprising training the machine learning model using supervised machine learning. 7. The method of claim 6, wherein training the machine learning model comprises: providing a set of training question/answer pairs with associated known difficulty scores; generating one or more candidate answers for each question in set of training question/answer pairs from the corpus of knowledge using the pipeline of software engines, wherein the pipeline of software engines generates a set of features extracted from the question, the one or more candidate answers, or the corpus of knowledge for each question; and assigning a weight for each feature in the set of features for each question to map the set of features to the assigned weights for scaling the difficulty score. 8. The method of claim 1, further comprising storing the question difficulty score in association with the input question to form a stored set of questions. 9. The method of claim 8, further comprising: receiving a question policy; and selecting a set of questions from the stored set of questions that satisfies the question policy based on difficulty score. 10. The method of claim 9, wherein the question policy comprises a target difficulty level and a threshold. 11. 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; and 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. 12. The computer program product of claim 11, wherein the plurality of features comprise an inverse document frequency measure, wherein the inverse document frequency measure is an inverse of a term frequency measure, wherein the term frequency measure specifies a frequency that a fact or concept appears in the corpus of knowledge. 13. The computer program product of claim 11, wherein the plurality of features comprises one or more features from the set consisting of: a number of times a target concept is referenced in the corpus of knowledge; a feature indicating a topicality or centrality of a topic; syntactic clues; intersentential discourse clues; discourse structure attributes; a frequency of a predicate/argument structure in the corpus of knowledge; a position in the corpus of knowledge of an initial mention of a concept; whether a definition of a term is contained within the corpus of knowledge; or a degree to which a term is used in a sentence in an unexpected context compared to a typical context within the corpus of knowledge. 14. The computer program product of claim 11, wherein the computer readable program further causes the computing device to train the machine learning model using supervised machine learning, wherein training the machine learning model comprises: providing a set of training question/answer pairs with associated known difficulty scores; generating one or more candidate answers for each question in set of training question/answer pairs from the corpus of knowledge using the pipeline of software engines, wherein the pipeline of software engines generates a set of features extracted from the question, the one or more candidate answers, or the corpus of knowledge for each question; and assigning a weight for each feature in the set of features for each question to map the set of features to the assigned weights for scaling the difficulty score. 15. The computer program product of claim 11, wherein the computer readable program further causes the computing device to: 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 score within the threshold of the target difficulty level. 16. An apparatus comprising: a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor 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; and 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. 17. The computer program product of claim 16, wherein the plurality of features comprise an inverse document frequency measure, wherein the inverse document frequency measure is an inverse of a term frequency measure, wherein the term frequency measure specifies a frequency that a fact or concept appears in the corpus of knowledge. 18. The computer program product of claim 16, wherein the plurality of features comprises one or more features from the set consisting of: a number of times a target concept is referenced in the corpus of knowledge; a feature indicating a topicality or centrality of a topic; syntactic clues; intersentential discourse clues; discourse structure attributes; a frequency of a predicate/argument structure in the corpus of knowledge; a position in the corpus of knowledge of an initial mention of a concept; whether a definition of a term is contained within the corpus of knowledge; a degree to which a term is used in a sentence in an unexpected context compared to a typical context within the corpus of knowledge. 19. The computer program product of claim 16, wherein the instructions further cause the processor to train the machine learning model using supervised machine learning, wherein training the machine learning model comprises: providing a set of training question/answer pairs with associated known difficulty scores; generating one or more candidate answers for each question in set of training question/answer pairs from the corpus of knowledge using the pipeline of software engines, wherein the pipeline of software engines generates a set of features extracted from the question, the one or more candidate answers, or the corpus of knowledge for each question; and assigning a weight for each feature in the set of features for each question to map the set of features to the assigned weights for scaling the difficulty score. 20. The computer program product of claim 16, wherein the instructions further cause the processor to: 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 score within the threshold of the target difficulty level.