В общем случае это очень сложный открытый вопрос исследования. Тем не менее, вы можете избежать простого решения, если ваши «факты» следуют довольно простой грамматике.
Вы можете написать довольно простое решение, создав набор правил преобразования, которые действуют на деревья разбора. Поэтому, если вы увидели структуру, которая соответствует грамматике для «X был Y в Z», вы можете преобразовать ее в «Была ли XY в Z?» И т. Д. Тогда все, что вам нужно будет сделать, - это проанализировать факт, преобразовать и прочитать вопрос, который производится.