Patent ID: 8862458

Claim:
A computer implemented method performed by one or more processors for providing a natural language interface for searching a database, the method comprising the following steps: receiving a natural language query; identifying one or more tokens contained in the natural language query; generating a set of sentences based on the identified tokens, each sentence representing a possible logical interpretation of the natural language query and including a combination of at least one of the identified tokens; selecting at least one sentence in the set of sentences for searching the database based on an interpretation ranking comprising a sentence ranking and a token ranking, each of the sentence ranking, the token ranking, and the interpretation ranking based at least in part on the identified tokens, where: the sentence ranking is determined with a sentence ranking formula defined at least in part by a phrase length for each of the sentences in the set of sentences, the token ranking is determined with a token ranking formula defined at least in part by lexical information obtained from an index of metadata, the token ranking formula defined by: ln(hits in index+1.0), where hits in index comprises a number of times that a particular token appears in the index of metadata and the logarithm is applied to the set of sentences, and the interpretation ranking is determined with an interpretation ranking formula defined at least in part by a summation of the sentence ranking and the token ranking that is performed over the set of sentences, the interpretation ranking formula defined by: ln(Σ(token ranking))+2*(ln(sentence ranking)), where the summation is performed over the set of sentences; building a database-compatible query to search the database based on the at least one sentence, the database comprising a relational database that comprises a plurality of columns; and executing the query against the database by mapping the sentence to at least one of the plurality of columns.