| CPC G06F 16/2428 (2019.01) [G06F 16/245 (2019.01); G06F 16/248 (2019.01); G06F 16/9024 (2019.01)] | 17 Claims |

|
1. A system for providing a search interface for databases, comprising:
a network interface,
a processor, and
a memory, wherein the memory stores instructions executable by the processor to:
generate, based on a string, a set of tokens of a database syntax, wherein the tokens are each matched to a respective fragment of the string;
generate a query graph for the set of tokens from a finite state machine representing a query grammar, wherein nodes of the finite state machine represent token types, directed edges of the finite state machine represent valid transitions between token types in the query grammar, vertices of the query graph correspond to respective tokens of the set of tokens, and directed edges of the query graph represent a transition between two tokens in a sequencing of the tokens;
remove one or more directed edges from the query graph to form an acyclic query graph;
determine, based on a tour of the acyclic query graph, a sequence of the tokens in the set of tokens to form a database query; and
invoke a search of the database using a query based on the database query to obtain search results.
|