The basic functionality of the Ergo platform is to analyze natural language queries and translate these to a computer instruction, usually in the form of a command, an url or a database query using the structured query language (SQL). It consists of the following software modules.
User interface: Contains the design of the actual user interface, and, in the case of a voice application, the speech recognition software.
Pre-processing module: Contains the algorithms for increasing speech-recognition hit-rate and query pre-processing.
Grammar plug-in: Contains the grammars for the language used in the application, e.g. English, ensuring that queries and commands can be formulated in a multitude of different ways.
Language analysis engine: Does all processing of the query, including the syntactic and semantic analysis, and SQL generation.
Post-processing module: Contains the logic for error handling, error messages, intelligent guessing, spell check, disambiguation, data value completion, the intelligent dialogue, a search function, and retrieval of related information
Data extractor: The extractor is a run-time tool extracting metadata from files and user data from native applications storing it in a database. This gives most of the information retrieval benefits of relational database storage.
These six modules make up the generic software components. In addition there are two additional modules, the domain model, which is specific for a particular application and a database (optional).
Domain model: The domain model contains the application-specific schema that is used by the language analysis engine to resolve the user’s query.
Database: Applications may include an internal database holding information about where the answers to user queries are held.
