
Each class has been designed to contain certain kinds of data consistent with its theme. For example, the Sequence class is configured to contain data from the GenBank and EMBL features tables, as well as other information that is typically associated with sequences. The Contact class might be configured to contain addresses, phone and fax numbers, e-mail addresses, and so forth.
The specifications for each class are contained within an editable text file called models.wrm. A specification for a particular class is called its "model" and collectively, for all the classes in the database, "models". A class definition is a template, i.e., an abstract representation of all potential members of the class. Another way to think of a model is as a blank form. When actual data is entered into the database, the software in some sense clones the template and fills it in. This creates real class members, also called "objects" or "instances" of the class.
To illustrate further what is meant by "instance", suppose we want to enter information into the database about the researchers "Paul Smith" and "John Doe", creating two members of the Contact class. Although both members must conform to the Contact template, they may use different parts of it. For example, even though the model might provide a field for FAX numbers and e-mail addresses, "Paul Smith" has no FAX number and "John Doe" does not use e-mail. Furthermore, although "Paul Smith" and "John Doe" both have phone numbers, the numbers are different:

The Person model supports differences both in the kinds and details of what is known about real-world people. Though the model may allow you to enter all sorts of information about a person, you are not required to fill in everything.
The model may not support all possible information, for instance a person's age or height. To enter this information, the Person model would have to be modified. Much of this tutorial describes how to approach this task.
Back to Table of Contents