"infomat.vectorspace" is the central data structure package of infomat.

Infomat deals with objects that are called IObjects. Each IObject has a string and an id number that uniquely identifies it. It has also, when applicable, a reference to a location where the actual object is stored (like a actual text file). In this manual they often will be called objects, for short.

Several IObjects can be stored in an IObjectGroup, and several IObjectGroups consitutes an IObjectGrouping. Through this manual these are also called groups and groupings for short. Right now each IObject can belong to only one IObjectGroup in every IObjectGrouping.

The main data structure in Infomat is a matrix, called an IMatrix. It is an implementation of a sparse matrix. The objects along the axes of the matrix, rows and columns, corresonds to IObjects. Each axes has a special IObjectGroup called an IObjectSet. The IObjectSet also keeps track of all IObjectGroupings of it. An IObjectGrouping can only contain IObjects from one IObjectSet.

The IMatrix stores several IMatrixCells which holds information of the relation between two IObjects, one from each IObjectSet. The basic information is a count, and a derived information is called a weight.

For a typical Information Retrieval scenario the row IObjects may consitute texts, with titles and locations in the file system, and the columns words that appear in the texts. For each word that appear in a particular text an IMatrixCell with the number of appearances is stored as the count. The weight of the IMatrixCell can be calculated through a weighting scheme. An IObjectGrouping of the texts (rows) could be a clustering or a categorization of the texts.