This section uses terminology described in the Glossary.
Figure 1 shows the fully expanded "Filter by..." palette. This palette gives the user filtering options for restricting what questions from the database are displayed. Question filtering is done in two places: from the question database and when creating or editing a test. Filtering works the same in both of these cases. To expand the palette or any section within the palette, the user clicks the [+] icon at the top of the palette or section. To hide any section the user clicks the [-].
![]() |
Figure 2 - Filter by... palette.
|
Filters are a way for the user to view only a specific set of questions from a question database. Once a filter is applied, the user's view of a question database is automatically updated. A user can build filters out of three filter object types: Characteristics (eg length), user defined tags, and boolean operators. These are available under their respective headers in the Filters palette. These primitives are dragged into the a filter box as highlighted below (The Database Panel has a similar filter box.)
![]() |
Figure 2 - Filter by... palette.
|
Each filter object type is described in detail below.
Characteristics:
Six Characteristics are defined:
To apply a characteristic filter object such as to a filter, the user enters the desire values and drags the filter object into the filter box. For example, if the user wants to filter out all questions used this year when generating a test, he/she selects "before" in the Last Used characteristic and enter in a date 1 year previous. He/she then drags the filter object into the filter box on the test generation panel. The system automatically filters out all questions used after the specified date.
Tags:
Tags are user defined key:value pairs. The user creates tags to group question together, to create sections or something similar as they see fit. Tags are used just as characteristics and they can be mixed and matched as the user see fit (see advanced filtering below). The user created a tag for subject : hardware stacks when creating questions and wants to generate a section of those questions. Under Tags the user selects subject on the left and hardware stacks on the right which automatically builds the filter object in the box below. The user then drags the created tag filter object into the test generation filter box, which hides all question not tagged as subject: hardware Stacks.
Tags also support regular expressions. Suppose the user wants to generate a test the covers several different markup languages such as HTML, UML, and XML. He/she selects the subject on the left under Tags then types in *ML directly in the Tag Filter object where prompted by "enter regex or select above." The user then drags the filter object in the test generation filter box. All questions tagged matching the regular expression are displayed. Note that both simple, *, ? wildcards and advanced Perl style regular expressions are supported.
Booleans
Five boolean filter objects are provided:
Advanced Filtering
Using the above primitive, the user can create complex filters with ease. For example, to view only questions from the courses CPE 129 or CPE 169 and between 5 and 10 minutes in length that have not been used since September 17 2007, the filter would look like "'(' 'Course: CPE 129' 'OR' 'Course: CPE 169' ')' 'AND' 'Length from 5 minutes to 10 minutes' 'AND' 'NOT' 'Last Used after 9/17/207'". To build this filter, the user drags the "(" operator onto the main window, followed by the "Course: CPE 129" tag. The user then drags the following filters in order: "OR", "Course: CPE 169", ")", "AND". The user enters the values "5 minutes" and "10 minutes" into the length characteristic filter before dragging the filter onto the window. When in a complex filter and not the first item in the filter, the "NOT" operator must be preceded by either the "AND" operator or the "OR" operator. This more complicated filter is an example of how the user views a very specific set of questions and will display questions from either CPE 129 or CPE 169, but only the questions from those courses that are between 5 and 10 minutes in length that have not been used since September 17 2007. No other characteristics or tags from the questions are considered when determining what questions the Test Tool program will display.