Intelligence is built into various parts of the system and in multiple forms to improve usage experience and reduce possible errors. They are designed to be intelligent but not “smart”, namely they are there to provide guidance for the user but not there to make decisions on behalf of the same. Therefore all options are presented to the user at present. Smartness can be imposed at a higher layer, e.g. the bottom part of Figure 3 has some of it, however. The three most used ones are
Path intelligence. All visual hierarchic file system on a desktop computer has a folder tree view on left which can be used to go from one folder to another inside of the system. If the target folder tree is too deep or for some other reasons, like on a tablet or even a smart phone, a tree view could be un-available to begin with, the user could choose to use the breadcrumbs navigator on top of the file browser. In our system, it has two modes: 1) visual modes in which a user selects available sub-folder of a folder to select the path; 2) “text” mode in which a user input the path by typing a path in. The build in path “code generator” can be used to specify the path using just four keys, namely the right, up and down arrow keys and the back delete key to select or delete without actually typing anything. The node of breadcrumb of the present system can also be clicked to have only the sub-folder tree starting with the folder been clicked to be displayed on the folder tree view. For a deep folder, this can be very useful for cleaning up an otherwise messy user interface. This feature seems to be a unique one of our products, unseen in other similar products on the market, so far (2012-07-01).
For the entities in the file family (see Figure 4), there are short cuts on some column headers for the corresponding file list. The second way of query is simple to use: just open the query box on the corresponding header, select the operations and input the value to be queried. It is simplified because it does not allow building complex query expression and if more than one column query box have non-empty value, they are all “AND” jointed.
There is a text based query expression editor for very entity set inside the virtual database (namely the ones corresponding to the 61 virtual tables). The query expression editor can be used to build arbitrarily complex query expressions. The said editor is backed by a sub-SQL DSL generator that can guide the user to construct expressions without been too smart (namely make decisions for the user). Most of the input inside the query expression editor can be accomplished by using four keys, namely the right, up and down arrow keys and the back delete key to select or delete. The expression constructed can be saved and recalled later to re-used or edited.
The future version of the system will contain a graphic expression “designer” using which a user can use mouse (or touch finger) to drag, group and choose logic operators to construct equally complex filter predict expressions as in b).
Sorting intelligence. An important part of query a database is to control how the output list is to be ordered. The system provide a visual intelligent user interface using which any combination of sorting options can be performed. There are also simplified mode and complete mode to use. A subset of all sorting operations can be performed in the simplified mode using controls on selected column header.
Paging mechanism. Paging under an arbitrary combination of sorting specification and query filter expression is not easy to handle when it is required to load only a particular page is allowed at a time. The later requirement is important for querying a large data set because it is either un-practical or is a long process to wait to load the entire set into memory before the paging operation. A systematic solution to the problem does require a non-trivial design of the system.