Object locators

FIG. 4

FIG. 4 shows the generic structure of a Locator 400, which is a system object with a specific Type_ID (5) 425, a unique Object_ID for each locator instance 420, and the corresponding Lang_ID 430 for the Name 460 and Description 465 of the user object 310, which is referred by the locator with the pair of fields Ref_Object_ID and Ref_Type_ID 480. Thus, the locator field 370 of each user object 310 contained in the Base of Objects 215 must set the Ref_Object_ID and Ref_Type_ID fields equal to the Object_ID field 320 and Type_ID field 325. The Lang_ID field 430 of the locator may be equal to the Lang_ID field 330 of the user object, but it is not strictly required (see the 'Babel bubbles' page).

Although it may seem redundant to define a specific field to refer to the object that contains it, locators are useful for referring the user object from other elements, like sets or frames. For example, a set (or subset) essentially defines a list of the locators of the objects contained in the set. In this manner, the viewers can display lists of objects without the need to access the content of the listed objects, if the {other fields} placeholder 440 provide the required metadata attributes, such as size, date and time of creation or modification, author identification, permissions, etc. If the viewer requires other attributes that are not part of the common ones, then the viewer will have to access the content of the objects. Since the content of the locators is relatively small in size, the viewer may well be able to load the whole list of locators into volatile memory, but it will not be able to load all objects into volatile memory, because the content of the objects may be significantly large.

Moreover, locators also provide means for tracking all linguistic versions of the user objects, through the {list of BBDs} field 450, which will be described in the following page.