Most of the aims of SQ-HAL were implemented successfully. The program can translate simple natural language queries in to SQL. It can translate to different types of SELECT queries, which include retrieving data from single or two tables with or without a single condition. Learning capability of SQ-HAL is also been implemented with some success. It is not as efficient as expected because it can only detect table names, field names and conditions in the queries but cannot generalise other words such as determining which words can be optional and may omitted in queries.
SQ-HAL is almost database independent with the exception of ADO databases. The program successfully runs on both Win32 platforms and Linux (Unix) environments. Multiple user access is also supported as a new parser is created for each user and saves in different files.
SQ-HAL is known to have a few limitations and problems. First of all database table names and column names have to be valid English words. Multiple words of these names (eg. telephoneNo) will be treated as single word and may not produce expected results. SQ-HAL cannot determine synonyms for table names and column names and therefore user has to manually enter these words. Similarly program is not capable of determining relationships between tables and user assistance is expected to solve this problem. Even for a small grammar, parser is noticeably slow when loading and saving to a file (specially in Win32 platform). This problem is minimised by loading the parser only when the program starts and saving it when the program exists. Currently SQ-HAL does not support ADO (e.g. Microsoft Access) databases because the program cannot retrieve table names from an ADO database.
SQ-HAL parser can be improved significantly. More new grammar can be added to the parser to increase effectiveness. Adding a thesaurus is another suggestion, which could help automating the related words for table and column names. With the help of a thesaurus, the user input can be pre-processed to substitute related words with table or column names and also remove unwanted words. This pre-process could lead to smaller but more efficient parser. More work has to be done on the learning grammar functionality to make it more effective. Finally SQ-HAL can be given the ability to translate queries other than just selecting data from the database. SQ-HAL parser can be extend so that it can also add and delete data from tables, modify or create new tables or even create new databases.