A profile repository definition is a list of all the profile properties that you want to track for users. Since a SQL profile repository is just a way of using the SQL repository, the profile repository definition is an instance of a SQL repository definition, and each profile property is a property of a repository item in the profile repository. For example, you can define a profile repository to track the first name, last name, and address for site members. The Personalization module uses the profile repository definition to create profiles for all the users of your sites. The Personalization module also gathers profile information and maintains a single profile for a user across multiple site visits.

You can set values for your users’ profile properties explicitly, from information the users provide through a registration form, a preferences page, or another personal information source, or implicitly, from sensors triggered by user behavior on your sites. Before you can track user profiles, you must define your profile repository definition both in your profile database and in the profile repository.

The Personalization module includes a standard profile repository definition, located in the configuration path at /atg/userprofiling/userProfile.xml. You can use this standard profile repository definition as is if it meets the user profiling requirements of your ATG application. More likely, you will want to either use it as a model, or extend it, as seems appropriate. See the Standard User Profile Repository Definition section of this chapter for a description of this repository definition. See Extending the Standard User Profile Repository Definition for information about how to modify it, and see Replacing the Standard User Profile Repository Definition for information about how to replace the standard repository definition with an entirely new profile repository definition.