An abstract engine for interpreting user input and matching it against records in a database.