The history mechanism of SQUID records automatically the queries that the user has already executed and the queries that are still under construction. The user can navigate through the recorded history and thus re-visit older queries, edit them to create new ones, or copy and paste annotations between them. In what follows, we present the navigational features of the history mechanism; copy/paste functionality is described in a different section .
The current history is shown in a panel on the right side of the interface window. Each recorded query is represented with a node, that contains the name of the query, and two queries are connected with an arrow if the user constructed the destination query by editing the starting query. Figure 17 shows a simple example. We assume that the user first constructs and executes the query shown in Figure 17(a) and then adds one more projection, as shown in Figure 17(b). SQUID intercepts that action, and creates one more entry in the history panel to indicate that this is a new query; furthermore, this new query is linked to the first query in order to indicate their "structural" relationship. Note that the user can change the assigned name of a query by double-clicking on the corresponding node and editing the text.
(a) First Query | (b) Second Query |
SQUID allows the user to actively navigate through the queries in the history. When the user clicks on a node in the history panel, that node is highlighted and the corresponding query is shown in the main window. Figure 18(a) shows an example where the user has clicked on Query(1). At this point, the user can modify the currently shown query, which will effectively create a "branch" in the history window. An example is shown in Figure 18(b), where the user has added one more projection. Again, SQUID intercepts the action and a branch is created in the history under Query(1). Note that the user can edit any previous query, and thus branches can appear at any point in the history and they can even be nested.
(a) Selecting a previous query | (b) Editing a previous query |