We implemented a sample DQI using range sliders. The interface consisted of a starfield display, a preview bar (to show aggregate information about the query that is being formed), and a number of range sliders depending on the number of attributes in the input dataset. The starfield display and the points in the starfield display can have variable sizes. Also the range slider sizes can vary.
We used a SUN SPARC Station 5 with 32MB of RAM that runs a standard UNIX operating system for our experiments. Motif and C were used in our implementations.
We timed the setup, selection, and querying separately by considering CPU time spent for each operation (to avoid defects that might come from a multiuser environment). File read, data structure setup, and similar sub-setup and sub-selection times were also measured. Also all the experiments were repeated without a preview bar and a starfield display to measure the querying time (without giving any visual output to the user, this is the ``pure'' querying time).
We varied the number of attributes, the number of records, the starfield size, the point sizes on the starfield, the range slider sizes, and the jump sizes (the displacements in a single side (arrow) of a range slider in terms of pixels made by the user in each single drag attempt). The implementation is designed in a way that everything is controlled by a batch process. This was crucial to get accurate timings using exact jump sizes.
We generated random numbers according to a uniform distribution for our datasets in our experiments. This was crucial because the starfield display has its slowest performance when there are many pixels to be updated on the screen. To achieve this goal we tried to reduce the number of overlaps on the display (although this might eliminate some of the computations for updating the overlapping points, which is minimal with respect to the starfield update times).
We considered the worst case that might occur in a single selection operation. This occurs when m is equal to r (that might not occur very frequently in real applications). So our experiments show some over-estimated times for querying, selection, and setup. In real-life applications we expect to observe better performances from our implementations.