For Linear CRFs, dynamic programming is used to compute the maximum a posteriori (MAP) of y given x.
sVM, can be employed, where each pair of question and candidate context will be treated as an instance.