UserPreferences

collections and indexes


Managing Collections and Indexes

Most UUIDs are relatively long and arbitrary looking strings of characters, which do not in themselves tell us anything about the information held in their corresponding u-form. In order to find information in the commons, we don't try to remember individual UUIDs and type them in manually every time we want them. Instead, we gather UUIDs together in special collections and indexes.

Collections

At its simplest, a collection is a list of UUIDs that can be iterated through. There is a special role for collection which just has one special attribute, called members. This attribute contains a list of UUIDs that refer to the u-forms that are contained in the collection. The collection role also inherits from the entity role, so a collection may have a name, label and description.

A more detailed structure is the annotated collection, which contains extra metadata about the members in a parallel list called child_properties.

The roles for collection and annotated collection are here:

[WWW]Collection UUID: ~fd000a02510bfd17204424
[WWW]Annotated Collection UUID: ~fd000a02510bfdad92deec

To some extent, the use of both the 'members' and 'children' metaphors signifies some ovelap over whether collections are representing Boolean (set-theoretic) or Aristotelean (taxonomic) ideas of containment and inheritance. The answer for now is 'both'. Remember, roles are a guideline for interpretation of attribute names, not a strict ontology. However, there is some danger that calling too many attributes 'members' may enable a program to follow too many links in the Information Commons, which could reproduce many of the dangerous problems of a poorly-written web-spider.

Scalable Collections

[WWW]Scalable Collection Head Segment UUID: ~01b8b8d720d01e11d8a50d487872f16706
[WWW]Scalable Collection Segment UUID: ~01d2021300d01d11d8932f026153455feb

Indexes

[WWW]Hierarchical Index UUID: ~0154e6e38690b311d893802e51302e71a3
[WWW]Name Index UUID: ~01db1c7e4297bf11d8ae2942932ee37e3a

One important class of indexes is the hierarchical index.

Implementations

These structures are very important in any applications that involve querying and retreival of data (which covers pretty much anything).

To understand how they might be implemented in practice, see (to begin with) the following threads:

To be continued ...


Back to CiviumDocumentation