Patent ID: 9466294
Filing Date: 2016-10-11
CPC Classification: G06F,G10L

Claim Text:
1. A computer program product for responding to natural language input using a knowledge base including structured data, the computer program product comprising one or more non-transitory computer-readable media having computer program instructions stored therein, the computer program instructions being configured such that, when executed, the computer program instructions cause one or more computing devices to: receive a natural language question entered as input by a user; generate a plurality of queries from the natural language question, the queries including a guard query, first fallback query, and a second fallback query, the guard query being configured to determine unknown information represented by a first variable of the guard query using a first information source other than the user, the first fallback query being configured to determine the unknown information represented by the first variable using a second information source other than the user, and the second fallback query being configured to determine the unknown information represented by the first variable by generating a natural language request to the user if the guard query and the first fallback query fail; execute the guard query thereby generating a value for a second variable of the guard query; determine that the unknown information represented by the first variable cannot be retrieved from the first information source based on a failure to resolve the first variable of the guard query; substitute the value generated by execution of the guard query into the first fallback query; determine by executing the first fallback query, that the unknown information represented by the first variable cannot be retrieved from the second information source; generate, by executing the second fallback query, the natural language request for presentation to the user requesting the unknown information represented by the first variable; receive responsive information corresponding to the natural language request; determine the unknown information represented by the first variable from the responsive information; and generate a definitive answer to the natural language question.