Categories are abstract entities used to organize sets of events. They have a location and size in the category plane and extend infinitely forward and backward in the time axis. The category plane is defined by the two non-time axes (x and y) in the imaginary space. Although categories are invisible, every event must be attached to at least one category and takes its non-time location and shape from that category. Events attached to more than one category are drawn in each with the position and size of that category. Events themselves carry the location and size (duration) in the time axis.


Nested categories


Category editor mode shows the category layout

Categories can be nested inside other categories. These nested categories usually have some relationship to their parent categories. This relationship is often something like: part-of, member-of, child-of, owned-by or details-of, but their meaning is left to the author of a timeline. Nested categories are drawn inside the area allocated for their parent.

Categories are given names, and the nesting of categories is defined by a set of category names separated by the backslash ('/') character. This works much like the file pathnames on many computer systems. The first category in the path contains the second, the second the third, and so on.

Categories and their attached events don't need to be defined in a single file or by a single author. Category names that match, or can be merged, are combined by the QViewer. This means it is possible to load files that add additional events or nested categories to a previously loaded category.

A category can be defined with a fixed x location, y location, width, and height, and the QViewer will place the category at that position in the category plane. Sometimes, the definition will specify only that the height and width keep a certain proportion. They are often defined without location and size. The QViewer will lay them out either by assigning locations starting near the center of the category plane or by nesting them inside previously loaded categories in the category's pathname. For example, loading a file that defines the US Census category on the /US History/US Census category path defines two categories: the US History category containing the US Census category. Loading the US Senate category on the US History/US Senate path will reuse the US History category and nest both US Census and US Senate inside it.

The category plane is bounded by large values in all directions. It is possible to have timeline files that define only high-level categories without events. These will allocate regions of the category plane by defining categories and assigning them names, locations, and dimensions. For example, there could be a region for historical timelines, another for the schedules of coworkers, and another for music playlists. Other categories of these kinds would nest inside the user-defined ones.

To avoid cluttering the display with currently extraneous events, the events of categories can be made to gradually disappear based on their size, their position, and the time scale in the display area. Support for data hiding is an important part of the use of the QViewer and the design of timeline files.

The category layout editor is a mode that replaces the display area with a representation of the category plane. This allows users to see and modify the layout of the (normally invisible) categories. Because categories extend infinitely along the time axis, the category layout editor is a simple two-dimensional representation of the category plane. The user can use this editor to temporarily move, resize, show, or hide categories.

Categories can be overlapped in the category plane to allow comparison or to collect the contents of multiple categories in a single place. This can also be done for decorative effect.


© 2011 Quotidian Incorporated