# Patent

## Title
Managing contact groups from subset of user contacts

## Abstract

Systems, methods, and computer-readable mediums for managing a subset of user contacts on a telecommunications device are provided. In one embodiment, a software application executed by a processor of a telecommunications device determines at least two contact groups from a subset of contacts accessible by a telecommunications device. The software application executed by the processor of the telecommunications device also generates a contact display including at least one contact group associated with the subset of contacts based on a current context of a user of the telecommunications device. The current context can include, for example, one or more of a location, time, date, and the like.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 12/413,373, filed on Mar. 27, 2009, entitled MANAGING CONTACT GROUPS FROM SUBSET OF USER CONTACTS, the disclosure of which is incorporated herein by reference.


BACKGROUND
Generally described, telecommunications devices and communication networks facilitate the collection and exchange of information. Utilizing a communication network and relevant communication protocols, a telecommunications device can engage in audio and/or data communications with other telecommunications devices, such as voice calls, video calls, messaging (e.g., short message service (“SMS”) or multimedia messaging service (“MMS”), content streaming, instant messaging, resource browsing (e.g., Web browsing), and the like.
To facilitate communications, telecommunications devices can be associated with software and hardware components that allow the telecommunications device to maintain contact information, such as telephone numbers, email addresses, messaging addresses, etc., utilized to establish and engage in communications via available communication channels. Typically, such contact information is maintained as contact information in which all known contact information for an identified entity, such as user, can be presented to a telecommunications device user. For example, a telecommunications device may present a user interface in which the contact information associated with a selected individual is presented in a list-based format. In another example, a telecommunications device with voice calling capabilities may maintain a “last call list” that keeps track of telephone numbers of the most recent incoming calls to or outgoing calls from the telecommunications device.
Although contact management user interfaces and software can facilitate the input and management of contact information for a larger set of contacts, typical contact management approaches can become deficient as the set of entities associated with a user grows. In one example, typical call list approaches are limited in the number of contacts identified in the user interfaces (e.g., the last 4 numbers called). Accordingly, such approaches can become deficient as the number of incoming or outgoing communications (e.g., voice calls) increases because potentially desired contacts are removed from the display based on order of the most recent incoming or outgoing communications.
In another example, typical contact management approaches relate to the presentation of the entire set of contacts that are associated with a user, such as in alphabetical order. As the number of contacts maintained in the telecommunications device, or on behalf of the telecommunications device, grows, users may have increased difficulty in identifying the contact information of specific entities. Additionally, for each contact, the typical contact management approach identifies all known contact information (e.g., phone numbers, IM aliases, email addresses, etc.) without regard to a desired, or preferred, communication method. Additionally, typical contact management approaches are inefficient in the accessibility of select contact information and the establishment of options or actions that can be initiated by the telecommunications device user via a number of user interfaces.



DESCRIPTION OF THE DRAWINGS
The foregoing aspects and many of the attendant advantages of the present disclosure will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
FIG. 1 is a block diagram illustrative of one embodiment of a telecommunications environment including a number of telecommunications devices and a contact management service;
FIG. 2 is a block diagram illustrative of components of a telecommunications device for use in generation, management, and display of user contact information;
FIG. 3 is a flow diagram illustrative of a contact management routine implemented by a telecommunications device and/or within the telecommunications environment of FIG. 1 for managing a subset of user contacts and generating a contact display on a telecommunications device based on a current context of the telecommunications device user;
FIGS. 4A-4B are illustrative user interfaces generated on a telecommunications device for presenting user contact information for editing;
FIGS. 5A and 5B are illustrative user interfaces generated on a telecommunications device for presenting a group of contacts from the subset of user contacts based on a current context of the telecommunications device user;
FIG. 6A is a diagram illustrating a logical association of contacts into a plurality of contact groups;
FIG. 6B is another embodiment of an illustrative user interface generated on a telecommunications device for presenting a group of contacts from the subset of user contacts based on a current context of the telecommunications device user;
FIG. 7A is an illustrative user interface generated on a telecommunications device for presenting contacts from the subset of user contacts with one or more divider display objects; and
FIG. 7B is an illustrative user interface generated on a telecommunications device for creating and/or modifying contact groups using at least one divider display object.



DETAILED DESCRIPTION
Generally described, the present disclosure is directed to managing a subset of user contacts on a telecommunications device. Specifically, in one embodiment, aspects of the disclosure will be described with regard to determining at least two contact groups from a subset of contacts accessible by a telecommunications device and generating a contact display including at least one contact group from the subset based on a current context of a user of the telecommunications device. The current context may, for example, be one or more of a location, time, date, and the like. In one embodiment, the user of the telecommunications device can initially select the members of each of the contact groups from the subset of contacts. In this case, the user of the telecommunications device may also select and associate a context with each of the user-selected groups. Alternatively, a context associated with each of the user-selected groups may be determined automatically based on communication events between the user and the members of each group. In another embodiment, rather than being user-selected, the members of the at least two contact groups may be determined automatically based on a context associated with the user of the telecommunications device and a plurality of user communication events associated with the context.
In another embodiment, aspects of the disclosure will be described with regard to determining at least two contact groups from a subset of contacts accessible by a telecommunications device and generating a contact display including a representation of at least a portion of the first and second contact groups and a divider display object. Illustratively, the at least two contact groups can be determined in response to an add divider input initiated by a user of the telecommunications device. The divider display object generated in the contact display partitions the first contact group from the second contact group. In other embodiments, the divider display object can be repositioned to modify members of the contact groups. In still further embodiments, a plurality of divider display objects can be generated for visually partitioning other additional contact groups from the subset of contacts.
Although aspects of the present disclosure will be described with regard to an illustrative telecommunications environment and component interactions, telecommunications protocols, flow diagrams, and user interfaces, one skilled in the relevant art will appreciate that the disclosed embodiments are illustrative in nature and should not be construed as limiting. Specifically, although the term telecommunications device is used in this document, the term represents any type of device having a component for communicating with one or more other devices via one or more communication paths. Such communication paths can include wireless communication paths (via infra-red, RF, optical, terrestrial, or satellite communication media) and wired communication paths.
With reference now to FIG. 1, a block diagram illustrative of a telecommunications environment 100 for managing a subset of user contacts, and particularly for managing at least two contact groups from the subset of user contacts, will be described. A contact may correspond to an individual person, an identifier associated with a person such as a telephone number, a group of people, an identifier associated with a group of people, and the like. The telecommunications environment 100 can include a contact management service 102. In an illustrative embodiment, the contact management service 102 may be utilized to provide, maintain, or transmit contact group information to one or more telecommunications devices, as will be described below.
For each telecommunications device user, the contact group information may correspond to information associated with the generation of contact groups from a subset of user contacts accessible by a telecommunications device. The contact group information may be generated, at least in part, from information corresponding to interaction with individual users of telecommunications devices and maintained in a data store 110. Additionally, the contact management service 102 may obtain additional information from external sources, such as network-based data sources 120. The additional information may become part of the contact group information. Even further, the additional information may be used by the contact management service 102 to generate or process the contact group information. Such network-based data sources may include web sites, location based services, social network services, telecommunications services, message publication services, etc. While the data store 110 is depicted in FIG. 1 as being local to the contact management service 102, those skilled in the art will appreciate that the data store 110 may be remote to the contact management service 102 and/or may be a network based service itself.
While the contact management service 102 is depicted in FIG. 1 as implemented by a single computing device in the telecommunications environment 100, this is illustrative only. The contact management service 102 may be embodied in a plurality of computing devices, each executing an instance of the contact management service. A server or other computing device implementing the contact management service 102 may include memory, processing unit(s), and computer readable medium drive(s), all of which may communicate with one another by way of a communication bus. The network interface may provide connectivity over the network 118 and/or other networks or computer systems. The processing unit(s) may communicate to and from memory containing program instructions that the processing unit(s) executes in order to operate the contact management service 102. The memory generally includes RAM, ROM, and/or other persistent and auxiliary memory.
As illustrated in FIG. 1, the contact management service 102 can include an external data source interface component 104 for obtaining external information from network data sources 120, such as location data, contact data, and other supplemental data that can be incorporated, directly or indirectly, into the contact group information. Examples of external information can include user contact information, user communication events, contextual data associated with a telecommunications device user and with user communication events, such as time, date, location, and the like; contextual data associated with contacts of the user and with user contact communication events, such as time, date, location, and the like; social networking information; current status information associated with the user and/or user contacts; and the like. The contact management service 102 can also include a device interface component 106 for obtaining information from one or more telecommunication devices (e.g., location data for telecommunications device(s), IP addresses assigned to computing device(s), etc.). The contact management service 102 can further include a contact management component 108 for processing telecommunications device information and external information in determining at least two contact groups from a subset of contacts accessible by a telecommunications device and in further processing such contact group information, as will be further described further below in reference to FIG. 3.
One skilled in the relevant art will appreciate that the contact management service 102 may correspond to a number of computer devices, such as server computing devices. Additionally, the external data source interface component 104, device interface component 106, and contact management component 108 may be implemented in a single computing device or across multiple computing devices. Likewise, although the contact management data store 110 is illustrated as local to the contact management service 102, the data store 110 can correspond to a distributed data store and/or network-based data store. One skilled in the relevant art will also appreciate that the contact management service 102 may include any one of a number of additional hardware and software components that would be utilized in the illustrative computerized network environment to carry out the illustrative functions of the service 102 and/or any of the individually identified components.
With continued reference to FIG. 1, the telecommunications environment 100 can include a number of telecommunications devices 112 or other computing devices 122, each associated with a user. The telecommunication devices 112 or other computing devices 122 can generate the displays that facilitate interaction of a user with other users. The telecommunications devices 112 can correspond to a wide variety of devices or components that are capable of initiating, receiving, or facilitating communications over a communication network including, but not limited to, personal computing devices, hand held computing devices, integrated components for inclusion in computing devices, home electronics, appliances, vehicles, machinery, landline telephones, VoIP telephones, cordless telephones, cellular telephones, smart phones, modems, personal digital assistants, laptop computers, gaming devices, media players, and the like. In an illustrative embodiment, the telecommunications devices 112 include a wide variety of software and hardware components for establishing communications over one or more communication networks, including cellular telecommunications network 114, a wired telecommunications network (not shown) and/or an IP-based telecommunications network (not shown). Illustrative components of a telecommunications device 112 will be described in greater detail with regard to FIG. 2.
In an illustrative embodiment, the telecommunications environment 100 can include a number of additional components, systems, and/or subsystems for facilitating communications with the telecommunications devices 112 and/or the contact management service 102. The additional components can include one or more switches or switching centers 116 (in GSM embodiments, Mobile Switching Centers or MSCs) for establishing communications with the telecommunications devices 112 via the telecommunication network 114, such as a cellular radio access network, an IP-based telecommunications network based on the family of IEEE 802.11 technical standards (“WiFi”) or IEEE 802.16 standards (“WiMax”), a converged wireless telecommunications network such as Unlicensed Mobile Access (UMA) or General Access Network (GAN), and other wired and wireless networks. The operation of telecommunication networks, such as telecommunication network 114 are well known and will not be described in greater detail. As illustrated in FIG. 1, the switching center 116 includes interfaces for establishing various communications via a communication network 118, such as the Internet, intranets, private networks and point to point networks, generally referred to as the “network.” Although the telecommunications network 114 is illustrated as a single communication network, one skilled in the relevant art will appreciate that the communication network can be made up of any number of public or private communication networks and/or network connections.
With reference now to FIG. 2, illustrative components of a telecommunications device 112 for use in the creation and display of contact group displays will be described. The telecommunications device 112 may include one or more processing units 202, such as one or more CPUs. The telecommunications device 112 may also include system memory 204, which may correspond to any combination of volatile and/or non-volatile storage mechanisms. The system memory 204 may store information which provides an operating system component 206, various program modules 208, program data 210, a contact management module 222, and/or other components. As will be explained in greater detail below, the contact management module 222 stored in system memory of the telecommunications device 112 may perform all or some of the functions described above in connection with the contact management component 108 of the contact management service 102 (FIG. 1). The above-enumerated list of components is representative and is not exhaustive of the types of functions performed, or components implemented, by the telecommunications device 112. One skilled in the relevant art will appreciate that additional or alternative components may also be included in the telecommunication device 112 to carry out other intended functions such as a mobile telephone functions.
The telecommunications device 112 performs functions by using the processing unit(s) 202 to execute instructions provided by the system memory 204. The telecommunications device 112 may also include one or more input devices 212 (keyboard, mouse device, specialized selection keys, etc.) and one or more output devices 214 (displays, printers, audio output mechanisms, etc.). Illustrative user interfaces for a telecommunications device 112 will be described with regard to FIGS. 4A-4B, FIGS. 5A-5B, FIG. 6B, and FIGS. 7A-7B below.
With continued reference to FIG. 2, the telecommunications device 112 may also include one or more types of removable storage 216 and one or more types of non-removable storage 218. Still further, the telecommunications device 112 can include communication components 220 for facilitating communication via wired and wireless telecommunications networks, such as telecommunications network 114 and network 118 (FIG. 1). In an illustrative embodiment, the communication components 220 can facilitate the bi-lateral transfer of data between the telecommunications device 112 and the contact management system 102 (FIG. 1). Examples of various communication protocols include, but are not limited to, Bluetooth, the family of IEEE 802.11 technical standards (“WiFi”), the IEEE 802.16 standards (“WiMax), short message service (“SMS”), voice over IP (“VoIP”) as well as various generation cellular air interface protocols (including, but not limited to, air interface protocols based on CDMA, TDMA, GSM, WCDMA, CDMA2000, TD-SCDMA, WTDMA, LTE, OFDMA, and similar technologies).
As previously described, in accordance with an aspect of the present disclosure, a telecommunications device 112 can generate one or more displays on a user interface via an output device 214. In an illustrative embodiment, the displays include various display objects that represent user contacts, identifiers of contact groups, contact dividers, or combinations thereof. In an illustrative embodiment, display objects may be selectable by a user via any one of a variety of input methods and devices. Additionally, the determination of the display objects that are included in the displays may be predetermined, automatically determined (in real time or semi-real time), or manually configured/managed according to user-specified criteria. Further, the display and formatting of the display objects and the illustrative displays may be specified according to specific telecommunication device capabilities, service provider specifications, or user configurations.
With reference now to FIG. 3, one embodiment of a contact management routine 300 implemented by a contact management service 102 of the telecommunications device 112 to generate a contact group display will be described. Routine 300 will be described as being generally performed by the contact management service 102. However, one skilled in the relevant art will appreciate that actions/steps outlined for routine 300 may be implemented by one or many computing devices/components that are associated with the telecommunications environment 100. Accordingly, any functionality described in reference to routine 300 could be generally performed by any component in the telecommunications environment 100, including contact management module 222 of the telecommunications device 112, other modules, or combinations thereof. Thus, the following illustrative embodiments should not be construed as limiting.
At block 302, the contact management service 102 identifies a subset of user contacts from a set of user contacts. As similarly set forth above, a user contact may correspond to an individual person, an identifier associated with a person such as a telephone number, a group of people, an identifier associated with a group of people, and the like. In some embodiments, the set of user contacts from which the subset is identified is not limited and, in others, it may be limited such that only those contacts that the device has access to without requiring further input by user are included in the set. In other embodiments, the set from which the subset is identified may be further limited to contacts known to the user, contacts identified in one or more electronic address books, contacts having user-specified characteristics, and the like.
Additionally, in one illustrative embodiment, the subset of contacts can be selected by the user and subsequently maintained, for example, in data store 110 for future identification and access by the contact management service 102.
In another embodiment, a portion of the subset of contacts can be selected by the user of the telecommunications device 112, while a remaining portion of the subset of contacts are selected automatically based on one or more other factors. In one example, the factor used to select the remaining portion of the subset of contacts can be a frequency of communication between the user and one or more user contacts accessible by the telecommunications device 112. In this example, the contact management service 102 monitors communications between the user and each of the user's contacts accessible by the telecommunications device 112 and maintains data associated with the monitored communications. Based on the monitored communications and corresponding maintained data, the contact management service 102 may determine a frequency of communication between the user and each of the user's contacts. This information can then be used to determine the remaining portion of the subset of contacts. In one illustrative embodiment, the remaining portion of the subset of contacts can be selected based on the user contacts that have been in communication with the user the most number of times. In other embodiments, the contact management service 102 may track the types of communications between the user and the user's contacts, such as SMS messages, MMS messages, emails, voice calls, and the like, and then select the remaining portion of the subset of contacts based on the frequency of one type of communication or an aggregation of some or all types of communications. In addition, if aggregated, one type of communication can be weighted over other types. Even further, in other embodiments, the contact management service 102 may track only those communications initiated by the user to select the remaining portion of the subset of contacts based on the user's frequency of initiating communication with each of the user's contacts. Yet further, the contact management service 102 may track the frequency of communication between the user and each of the user's contacts during any period of time.
Additionally or alternatively, in a further embodiment, the identified subset of user contacts can be associated with a special rate plan offered by a telecommunications carrier providing communication services to the telecommunications device 112. Specifically, the user may be provided a special rate associated with any communications made between the user and any of the contacts identified in the subset. In addition to a special rate, the rate plan may have a variety of other parameters that may affect selection of the contacts to be included in the subset. For example, in one embodiment, the subset of contacts may be limited in number to correspond to a number of contacts with whom communications will be provided at a special rate. As another example, the subset of contacts may be editable only after a specified period of time has elapsed from initial selection (whether by the user or partially by automated selection based on other factors such as frequency of communication information).
With continued reference to FIG. 3, at block 304, a test is performed by the contact management service 102 to determine whether context information should be used to determine at least two groups of contacts from the identified subset of user contacts. Generally described, context information can correspond to information that is published, or otherwise made available, about events associated with the telecommunications device user, any one or more of the user's contacts, the telecommunications environment 100, or any combination thereof. By way of example, context information as used in determining contact groups includes, but is not limited to, location, time of day, individual travel designations (e.g., stationary, moving, velocity, heading, etc.), manual designations (e.g., location, status, mood, etc.), cost information (e.g., rate plans, location), and the like. Additionally, context information may be expressly published by an identified entity, or on behalf of such an entity, or determined by reference to various information sources, such as calendaring information, location information, etc.
If, at block 304, the contact management service 102 determines that context information should taken into consideration in the creation of contact groups, the contact management service 102 determines at least two contact groups from the identified subset of user contacts based on context information at block 306. In one embodiment, the contact management service 102 uses a context of the user of the telecommunications device and a plurality of user communication events associated with the context to determine contact groups. For example, the contact management service 102 may determine that any user contacts from the identified subset and with whom the user communicates using the user's telecommunications device at a particular geographic location, such as the user's place of employment, should be associated to form a first contact group, such as a work contact group. In another example, the contact management service 102 may determine that any user contacts from the identified subset and with whom the user communicates during particular times and dates, such as from 8 a.m. to 9 a.m. and 5 p.m. to 6 p.m. on Mondays through Fridays, should be associated to form a second contact group, such as a commuting contact group. In addition or alternatively, in another embodiment, the contact management service 102 uses a context of the user's contacts from the identified subset to determine a contact group. For example, the contact management service 102 may determine that two or more of the user's contacts are located in a single geographic region from 1 p.m. to 5 p.m. on Saturdays and that these user contacts should thus be associated to form a third contact group, such as a basketball contact group. In yet another example, the context information can include user preference information indicating preferred contacts for the user such as based on overall frequency of communication. The contact management service 102 may determine that these contacts form a V.I.P. contact group.
In one illustrative embodiment, the contact management service 102 may determine at least two contact groups based on context information such that each user contact from the subset may only belong to a single contact group. Alternatively, a user contact may be allowed to belong to more than one contact group. For example, while a spouse may be a member of a family contact group based on context information, the user may regularly communicate with the spouse at work and thus the spouse may also be a member of a work contact group based on other context information.
In another illustrative embodiment, the contact management service 102 may also determine an identifier for each determined contact group. In one embodiment, the contact group identifier may be determined based on context information associated with the corresponding group. For example, the context information may include information published or otherwise made available about members of the contact group, such as a subject line of calendar information for each of the members indicating that from 1 p.m. to 5 p.m. on Saturdays the contacts are at a basketball game. Accordingly, this contact group may be associated with a basketball identifier. In some embodiments, a user may be able to edit identifiers which were previously automatically determined by the contact management service 102. Alternatively, a user may provide the identifiers. In this embodiment, the contact management service 102 is configured to associate an identifier with each determined contact group, but requires user input to provide the specific corresponding identifier. The contact management service 102 may accordingly request such user input upon generation of the contact groups. In yet another embodiment, the contact management service 102 can associate a priority to the determined contact group based on preferences identified in or associated with the context information.
In a still further illustrative embodiment, the contact groups may be predetermined based on context information and maintained in the data store 110 (FIG. 1). For example, contact groups may be determined as part of an off-line process that is scheduled by the content management service 102. In another example, the contact management service 102 may store information associated with the formation of contact groups formed during previous iterations of routine 300. Accordingly, the determination of contact groups based on context information by the contact management service 102 relates to recalling and processing the predetermined data. Alternatively, the contact management service 102, or other component or service, may dynamically determine the contact groups based on the currently available context information at the time routine 300 is being implemented.
With continued reference to FIG. 3, after the contact management service 102 determines at least two contact groups from the identified subset based on context information, processing continues at block 312 as will be explained further below. Returning to block 304, if the contact management service 102 alternatively determines that context information is not to be used to determine contact groups from the identified subset, processing continues at block 308. Specifically, in this embodiment, the contact management service 102 determines at least two contact groups without the use of context information at block 308. For example, the contact groups may be user selected. A variety of methodologies may be utilized to present users of a telecommunications device 112 with contact groups for selection. Illustrative user interfaces for facilitating user selection of contact groups are provided in FIGS. 4A and 4B. In an illustrative embodiment, the selection of a contact group by a user of the telecommunications device 112 may be achieved utilizing a variety of input methods and hardware or software components in the telecommunications device 112. Examples include, but are not limited to, touch screen interfaces, specialized keys, stylus or other input devices, software based menus, voice commands, and the like. In a further illustrative embodiment, a number of contact groups may be made available for user selection. Such available contact groups may be predetermined or otherwise statically determined and maintained in the data store 110 (FIG. 1). In addition or alternatively, the user may create new personalized contact groups associated with a subset of contacts.
In yet another embodiment, the contact management service 102 can determine at least two contact groups from the subset of user contacts based on other user-created groups of contacts. Such user-created groups may include contacts other than those included in the subset of user contacts currently being processed. For example, a user may have previously created groups of work contacts, school contacts, and family contacts. Additionally, the subset of user contacts currently being processed may correspond to a group of favorite contacts. In this example, there may be additional contacts in each of the work, school, and family contact groups that are not included in the user's favorites contact group. Nonetheless, the contact management service 102 may use these other user-created work, school, and family contacts to determine contact groups from the favorite contacts subset. For example, a portion of the contacts in the favorite contacts subset may also belong to the user-created work contact group. Accordingly, the contact management service 102 may determine a first contact group from the favorite contacts subset to be a “favorite work” contact group based on the intersection of members between the favorite contacts subset and the user-created work contact group.
Next, at block 310, the contact management service 102 optionally predetermines context information for association with each of the at least two contact groups select by a user of the telecommunications device 112. As similarly, set forth above, the context information can correspond to information that is published, or otherwise made available, about events associated with the telecommunications device user, any one or more of the user's contacts, the telecommunications environment 100, or any combination thereof. By way of example, context information as used in determining contact groups includes, but is not limited to, location, time of day, individual travel designations (e.g., stationary, moving, velocity, heading, etc.), manual designations (e.g., location, status, mood, etc.), cost information (e.g., rate plans, location), and the like. In an illustrative embodiment, the context information associated with the contact group may be a selected from the same context information that is available in the formation of contact groups. Alternatively, the contact management service 102 may limit, or otherwise specify, context information that can be associated with a determined contact group.
In one embodiment, the contact management service 102 uses context information associated with the telecommunications device user and/or the members of each user-selected contact group to determine a context associated with the respective contact group. For example, the contact management service 102 may determine that the telecommunications device user always communications with user contacts in a “work” contact group while the user is at a particular geographic location, such as the user's place of employment. The contact management service 102 may thus associate this geographic location with the “work” contact group. In another example, the contact management service 102 may determine that the telecommunications device user always communicates with user contacts in a “commuting” contact group during particular times and dates, such as from 8 a.m. to 9 a.m. and 5 p.m. to 6 p.m. on Mondays through Fridays. The contact management service 102 may thus associate this time and date information with the “commuting” contact group. As another example, the contact management service 102 may determine that user contacts in a “basketball” contact group are all located in a single geographic region from 1 p.m. to 5 p.m. on Saturdays. The contact management service 102 may thus associate this location, day of the week, and time information with the “basketball” contact group.
In another embodiment, the contact management service 102 may identify a context for association with each contact group based on manual determination of the context associated with the formed content group. A variety of methodologies may be utilized to present users of a telecommunications device 112 with context information for selection and association with a particular contact group. Additionally, the selection and association of a context with a particular contact group by a user of the telecommunications device 112 may be achieved utilizing a variety of input methods and hardware or software components in the telecommunications device 112. In one illustrative embodiment, the telecommunications device user may generate a user interface for allowing a user to input, or otherwise select, a context, to be associated with a particular contact group. Additionally, the communication management service 102 may provide a telecommunications device user with the ability to edit dynamically determined context information, to modify the context information, or otherwise add/remove context information.
In yet another embodiment, rather than the contact management service 102 automatically determining a context associated with each of the contact groups based on context information and rather than providing for user selection of the context, a context may be predefined as being associated with a particular contact group. For example, a work contact group may be predefined as being associated with a geographic location corresponding to the telecommunications device user's place of employment. As also further explained below, one skilled in the relevant art will appreciate that block 310 may be omitted altogether or partially implemented in accordance with user preferences for example.
With continued reference to FIG. 3, after determination of at least two contact groups associated with a subset of user contacts via either block 306 or block 308 and optional block 310, the contact management service 102 generates a contact display based on a current context of the telecommunications device user at block 312. More particularly, the contact management service 102 selects a first contact group from the at least two contact groups for display in the contact display based on a current context of the telecommunications device user. Accordingly, the contact management service 102 first determines a current context associated with the user of the telecommunications device. Examples of context information have been previously provided. After identifying the user's current context, the contact management service 102 determines whether the user's current context corresponds to a context associated with any of the at least two contact groups. Continuing with the foregoing example, the contact management service 102 may correlate the “Work” contact group with the user's current context since the “Work” contact group is associated with context information about contacts the user communicates with while at work. Given that the user is now located at work, the contact management service 102 determines that the “Work” contact group should be displayed to the user.
While the contact management service 102 may compare the user's current context with context information previously associated with each of the contact groups, the contact management service 102 may also dynamically determine context information associated with each of the contact groups for comparison with the user's current context. For example, the contact management service 102 may determine that the user is currently located at a park. The contact management service 102 may then dynamically determine that user contacts in a “family” contact group are also located in the park or are on their way to the park. This context information may not be previously associated with the “family” contact group as the picnic may be a recently planned event. The contact management service 102 may thus dynamically determine that the “family” contact group corresponds to the user's current context and generate a display in which the “family” contact group is presented to user based on the user's current context.
In some embodiments, more than one contact group may correspond to the user's current context. In this case, the contact management service 102 may prioritize the identified contact groups based on one or more additional criteria. Such criteria may be predetermined by the service 102 or provided by the user of the telecommunications device. In one example, location based context information may be prioritized over date and time based context information. In another example, user provided context information, such as an “at work” designation, may be prioritized over any real time context information.
After identifying a contact group based on a user's current context, the contact management service 102 generates a display in which the identified contact group is presented. Illustrative user interfaces for displaying a contact group from the subset of user contacts based on a user's current context are provided in FIGS. 5A-5B and FIG. 6B and will be described further below. In an illustrative embodiment, the contact management service 102 may generate a contact display in which only the identified contact group is presented. Alternatively, the contact display may include other contacts or contact groups, but the identified contact group based on the user's current context may be otherwise emphasized. For example, the identified contact group may be presented on the display with an associated contact group identifier, while other contacts or contact groups are not. In another example, the identified contact group may be more prominently displayed in comparison to other contacts or contact groups. In yet another example, each of the contacts in the identified contact group may be emphasized, such as through highlighting, increased dimensions of corresponding graphical identifiers, and the like, as compared to other displayed contacts or contact groups. After the contact management service 102 generates the contact display based on the user's current context, the routine 300 ends at block 314.
It will be appreciated by those skilled in the art and others that the determination at block 304 is optional in some embodiments. For example, the routine 300 may be implemented without determining members of each of the contact groups based on context information at block 306. Alternatively, the routine 300 may be implemented only where the contact groups are created based on context information and thus, in this case, blocks 308 and 310 may be omitted. It will also be appreciated by one skilled in the art and others that the functionality at block 310 may also be optional. For example, in some embodiments, the contact management service 102 alternatively dynamically determines context information associated with each contact groups.
With reference now to FIGS. 4A-4B, illustrative user interfaces generated on a telecommunications device for presenting information associated with a user contact for editing will be described. The user interfaces illustrated in FIGS. 4A-4B correspond to displays generated on a display screen 400 corresponding to an output device 214 (FIG. 2). One skilled in the relevant art will appreciate that the screen displays are illustrative in nature and should not be construed as limiting.
With reference to FIG. 4A, one embodiment of a user interface generated on the telecommunications device 112 for facilitating user selection of contact groups will be described. In this embodiment, the user interface corresponds to a display screen 400 that includes a display 402 for displaying a contact information record associated with a first contact of the telecommunications device user. The contact information record includes a plurality of display objects 406, 408, 410 for identifying characteristics associated with the first contact, such as an image, a name, and a contact number, respectively. The contact information record further includes a display object 412 which identifies that the first contact as a member of a subset of contacts. In this example, the subset of contacts corresponds to a “favorites” subset of contacts. Display object 412 can also be selectable to add or remove the first contact as a member of the “favorites” subset. For contacts that are members of the “favorites” subset of contacts, the contact information record further includes a display object 414 which identifies contact groups to which the contact also belong. In this example, the first contact is associated with “work” and “basketball” contact groups. The contact information record also includes a display object 416 which is selectable for adding and/or otherwise editing the contact groups to which the first contact belongs.
With reference now to FIG. 4B, another embodiment of a user interface generated on the telecommunications device 112 for facilitating user selection of contact groups will be described. In this embodiment, the user interface corresponds to a display screen 400 that includes a display 432 provided in response to selection of the display object 416 in the display 402 of FIG. 4A for adding and/or otherwise editing the contact groups to which the first contact belongs. Display 432 in FIG. 4B provides various contact groups to which the first contact may belong. As shown in the illustrative embodiment in FIG. 4B, the contact groups can include a family contact group 436, a work contact group 438, a basketball contact group 440, and a commuting contact group 442. In accordance with the prior example, the first contact is currently identified as belonging to the “work” and “basketball” contact groups. Each of the contact groups identified in the display 432 can be selected to include the first contact as a member or deselected to remove the first contact as a member of the respective contact group. The display 432 also includes a display object 434 for selecting the first contact to be a member of all contact groups associated with the “favorites” subset of contacts. Additionally, the display 432 includes a display object 444 for facilitating the creation of a new contact group by the user of the telecommunications device 112.
With reference now to FIGS. 5A-5B, illustrative user interfaces generated on a telecommunication device for presenting a first contact group based on a current context of a user of the telecommunications device will be described. One skilled in the relevant art will appreciate that the screen displays are illustrative in nature and should not be construed as limiting. With reference to FIG. 5A, one embodiment of a user interface generated on the telecommunications device 112 for presenting a first contact group based on a current context of a user and for facilitating the selection of contacts associated with the first contact group will be described. In this embodiment, a display screen 500 includes a first portion 502 for displaying movement of a set of graphical identifiers about an axis external to the telecommunications device 112. The graphical identifiers can be considered display objects 504 in which each display object corresponds to a specific contact. In this embodiment, the display objects 504 correspond to contacts that are members of a first contact group associated with a subset of user contacts. For example, the subset of user contacts may have been identified by the user as “favorites” or may be associated with a special service provider rate plan. In this example, the first contact group from this subset determined based on a user's current context is a “work” contact group. As the rotation of the display objects 504 is emulated, one display object is manipulated to be the focal point of the interface, as illustrated on display object 506. Accordingly, the user can select the contact associated with the focal point display object 506. The first portion 502 of the display screen 500 further includes a display object 508 corresponding to contact group identifier (e.g., a “Work” identifier). Additionally, a control 510 is further presented in the display screen 500 and can be manipulated to identify and select other contact groups from the subset of user contacts for display. Depending on the capabilities of the telecommunication device 112, other display objects may also be selectable.
With reference to FIG. 5B, another embodiment of a user interface generated on the telecommunications device 112 for presenting a first contact group based on a current context of a user and for facilitating the selection of contacts associated with the first contact group will be described. In this embodiment, a display screen 500 includes a first portion 530 for displaying movement of a set of graphical identifiers about an axis. The graphical identifiers can be considered display objects 532 in which each display object corresponds to a specific contact. In this embodiment, the display objects 532 correspond to contacts that are members of a first contact group associated with a subset of user contacts. For example, the subset of user contacts may have been identified by the user as “favorites” or may be associated with a special service provider rate plan. In this example, the first contact group from this subset determined based on a user's current context is a “work” contact group. As the rotation of the display objects 532 is emulated, a user can select any of the display objects 532. Alternatively, the size and formatting of one or more of the display objects 632 may also be varied to facilitate focus on a particular display object 632. The first portion 530 of the display screen 500 further includes a display object 508 corresponding to contact group identifier (e.g., a “Work” identifier). Additionally, a control 510 is further presented in the display screen 500 and can be manipulated to identify and select other contact groups from the subset of user contacts for display. Depending on the capabilities of the telecommunication device 112, other display objects may also be selectable.
With reference now to FIGS. 6A-6B, yet another embodiment of an illustrative user interface generated on a telecommunication device for presenting a first contact group based on a current context of a user of the telecommunications device will be described. In particular, in this embodiment, as will be described further below, the illustrative user interface as shown in FIG. 6B presents a first contact group based on a current context of a user. Additionally, the user interface also displays one or more contacts not included in the first contact group. One skilled in the relevant art will appreciate that the screen display as shown in FIG. 6B is illustrative in nature and should not be construed as limiting.
With reference to FIG. 6A, a diagram 600 illustrating a logical association of contacts into a plurality of contact groups will first be described. The diagram 600 illustrates a subset of user contacts 604, 614, 624. These contacts 604, 614, 624 are further distinguished by a plurality of contact groups 602, 612, 622. In particular, contacts 604 are associated with a first contact group 602. In this example, the first contact group is a “family” contact group and is thus associated with “Family” contact group identifier 628. Contacts 612 are associated with a second contact group 612. In this example, the second contact group is a “commuting” contact group and is thus associated with “Commuting” contact group identifier 630. Finally, contacts 622 are associated with a third contact group 622. In this example, the third contact group is a “work” contact group and is thus associated with “Work” contact group identifier 632. The diagram 600 also includes a number of contact group dividers 658 for logically identifying and further displaying how the contacts 604, 630, 632 are divided into contact groups. Accordingly, a first of the dividers 658 separates the “Family” contacts 604 from the “Commuting” contacts 614, while a second of the dividers 658 separates the “Commuting” contacts 614 from the “Work” contacts 624. As similarly mentioned above, an individual contact may belong to more than one contact group. Alternatively, each contact may be limited to inclusion in a single contact group.
With reference to FIG. 6B, another embodiment of a user interface generated on the telecommunications device 112 for presenting a first contact group based on a current context of a user will be described. In this embodiment, a display screen 652 includes a first portion 654 for displaying movement of a set of graphical identifiers about an axis external to the telecommunications device 112. The graphical identifiers can be considered display objects 614, 624 in which each display object corresponds to a specific contact. In this embodiment, the display screen 652 presents a contact group identified based on a current context of a user in a second portion 662 of the display. Additionally, the identified contact group is displayed with an associated identifier 622. Continuing with the prior example discussed above with respect to FIG. 6A, the identified contact group may be a “Work” contact group. Accordingly, contacts 624 from the “Work” contact group 622 are displayed on the display screen 652 in FIG. 6B with a “Work” identifier 632.
In one embodiment, while the “Work” contact group is identified and displayed based on the user's current context, other contacts from different contact groups may be simultaneously presented on the display screen 652. Accordingly, the “Work” contact group may be presented to a user of the telecommunications device as the contact group of relevance (i.e., the contact group identified based on the user's current context) in accordance with a number of methodologies, such as by providing a contact group identifier for only the identified contact group, prominently displaying only contacts from the identified contact group, providing any other emphasis for only those contacts in the identified contact group, and the like. In the current example, while one of the contacts 614 from the “Commuting” contact group (FIG. 6A) is presented in another portion 664 of the display screen 652, the identified contact group (i.e., the “Work” contact group) is associated with a “Work” contact group identifier 632 to provide the user with an indication that the “Work” contact group is the contact group selected based on the user's current context. Additionally, controls 660 are further presented in the display screen 652 and can be manipulated to emulate rotation of the contact groups in order to identify and select other contacts from different contact groups. The display screen 652 further includes divider display objects 658 for delineation between contacts in different contact groups. The divider display objects 658 also emulate rotation together with the contacts about the axis external to the display.
With reference now to FIGS. 7A-7B, illustrative user interfaces generated on a telecommunication device for presenting contacts included in a subset of contacts with one or more divider display objects will be described. In particular, in one embodiment, as will be described further below, contacts groups formed from the subset of user contacts in any manner can be displayed in a user interface with divider display objects to delineate one contact group from another. Additionally, in another embodiment, the contact groups may be created using divider display objects. One skilled in the relevant art will appreciate that the screen displays presented in FIGS. 7A-7B are illustrative in nature and should not be construed as limiting.
With reference now to FIG. 7A, one embodiment of a user interface generated on the telecommunications device 112 for presenting contact groups formed from a subset of user contacts will be described. This embodiment is virtually identical to the user interface described in reference to FIG. 6B with a few exceptions. First, the embodiments associated with the user interfaces depicted in FIGS. 7A-7B do not require that the contact groups be selected based on context information. Instead, the contact groups may be formed in any manner. Moreover, as will be described further in reference to FIG. 7B, the contact groups may be formed by a user by adding divider display objects between contacts on a display. Additionally, the contact groups may be modified by a user by moving divider display objects between different contacts on the display. Second, the displays presented in the illustrative user interfaces depicted in FIGS. 7A-7B are not generated in response to or based on a user's current context. Instead, the user interfaces may be presented to a user at any time. In one embodiment, the user interfaces may be presented automatically on a home page, a start screen, or an idle screen; upon selection by a user of the telecommunications device; and the like.
With further reference to FIG. 7A, in one embodiment, a display screen 700 includes a first portion 702 for displaying movement of a set of graphical identifiers about an axis external to the telecommunications device 112. The graphical identifiers can be considered display objects 722 and 724 in which each display object corresponds to a specific contact. In this embodiment, the display screen 700 further includes at least one divider display object 704 for delineation between contacts in different contact groups. Specifically, in the example illustrated in FIG. 7A, the divider display object 704 partitions display objects 722 from display objects 724. Accordingly, display objects 722 are included in a first contact group, while display objects 724 are included a second contact group. In one embodiment, the at least one divider display object 704 can also be moveable together with the contacts to emulate rotation about the axis external to the display. Accordingly, additional contacts from the subset of contacts and/or additional divider display objects (and thus additional contact groups) may come into view on the display screen 700 in response to a number of various different types of user inputs. For example, in one illustrative embodiment, controls 712 are presented in the display screen 700 and can be manipulated to emulate rotation of the contact groups and divider display objects in order to identify and select other contacts from different contact groups.
With reference now to FIG. 7B, one embodiment of a user interface generated on the telecommunications device 112 for creating and/or modifying contact groups using divider display objects will be described. The user interface depicted in FIG. 7B is virtually identical to the user interface described in reference to FIG. 7A with a few exceptions. First, the divider display object 704 is selected as indicated by a selection display object 726. The divider display object 704 may be selected in a number of ways to cause the divider display object to be presented together with the selection display object on the display screen 700. As set forth above, display objects, including the divider display object 704, may be selectable by a user via any one of a variety of input methods and devices. Examples include, but are not limited to, touch screen interfaces, specialized keys, stylus or other input devices, software based menus, voice commands, and the like. In one embodiment, the divider display object 704 may be selectable by a user in such a way that a divider display object is added to the display screen 700 where there was previously no divider display object, such as in response to an add divider input. In another embodiment, a user may select a divider display object already presented on the display screen 700, such as by touching a displayed divider display object 704, to modify the contact groups delineated by the divider display objects. The user interface depicted in FIG. 7B is illustrative of a display screen 700 which may be presented to a user of the telecommunication device in response to any of the foregoing described selection inputs associated with the divider display object.
As further illustrated in FIG. 7B, in one embodiment, the display screen 700 may also include controls 714 which can be manipulated by a user to cause the divider display object 704 to be positioned between different contacts on the display. In this way, contact groups may be modified based on the repositioning of the divider display object between different contacts from the subset of user contacts. In one embodiment, manipulation of the controls may cause the divider display object to move on the display screen 700 relative to the displayed contacts in the subset of contacts. In addition or alternatively, manipulation of the controls may cause the display objects associated with the contacts to move on the display relative to the divider display object 704. In either case or combination, as controls 714 are manipulated, other contacts in the subset of user contacts and/or other divider display objects may be presented on the display, while some of the previously presented contacts and/or divider display objects may appear to rotate off the display screen 700. Once the divider display object 704 is repositioned, new contact groups are formed.
In another embodiment, the display objects 722, 724 which are associated with the user contacts may be individually selectable and moveable to reposition the selected display object in a different contact group. In this embodiment, movement of a display object from the portion 706 on the display screen 700 (on the right side of the divider display object 704), for example, to the portion 708 on the display screen 700 (on the left side of the divider display object) causes the moved display object to become a member of a different contact group.
In yet another embodiment, contact groups, at least a part of which are displayed in the display screen 700, may be modified based on deleting a divider display object 704. In one example, selection of the divider display object 704 illustrated in FIG. 7B may facilitate selection of additional actions, such as a delete divider action, provided by a user of the telecommunications device.
In a still further embodiment, upon addition of a first divider display object between contacts in the subset, the contact management service 102 may automatically generate one or more additional dividers to further define the group, or groups, formed by the insertion of the first divider display object. Specifically, the contact management service 102 can automatically generate a start divider display object, an end divider display object, or both in addition to the requested divider display object. This embodiment may be particularly applicable to embodiments in which the subset of contacts emulate rotation about an axis external to the telecommunications device display. By way of example, assume the contact management service 102 displays a subset of contacts that emulate rotation about an axis. In one aspect, the user may want to be able to visually distinguish between the first and last contact in the subset (or a start and an end of the subset). Accordingly, the contact management service 102 can automatically add a display object (e.g., a start or end divider) adjacent to contacts in a first and/or last logical position, respectively, in the subset. Accordingly, in the embodiment in which the subset of contacts emulate rotation about the external axis, the start and/or end divider display object provides the user with an indication that the user has cycled through to the first and/or last contact in the subset.
In one embodiment, start and/or end divider display objects may be automatically generated and displayed in response to a user's request to add a first divider display object. In another embodiment, the contact management service 102 may always initially generate a start and/or end divider display object for display with the subset of contacts without requiring user input.
In yet another embodiment, the contact management service 102 may provide additional functionality so that a user can cause the display to scroll immediately to the next divider positioned between contacts. In particular, the contact management service 102 may be able to immediately cause a next divider display object (previously positioned between contacts) and at least one contact adjacent to the next divider display object to be presented on the telecommunications device display in response to a user input. In this way, rather than displaying each contact from the subset in sequence via emulated rotation of the contacts, the contact management service 102 can bypass display of select contacts in the sequence (and which are not currently of interest to the user) by immediately advancing the display to a next divider display object in response to a user input. Accordingly, the contact management service 102 can advance the contacts displayed in increments defined by the positioning of the divider display objects.
In any of the foregoing embodiments, rather than the display objects 722, 724 corresponding exclusively to contacts from a subset of contacts, the display objects 722, 724 can correspond to individual contacts, groups of contacts each represented by a single graphical identifier, applications, other executable components, or any combination thereof, determined from a larger set. For example, instead of creating contact groups within a user's favorite set of contacts (which is a subset of all of the user's contacts), a user may create a favorite set of applications or a favorite set of executable components from which groups may be created, modified, and displayed using the divider display object 704 as described above.
Additionally, rather than being exclusively applicable to user contacts, any of the other foregoing embodiments, such as those described in reference to FIGS. 3-6B, may be equally applicable to individual contacts, groups of contacts each represented by a single graphical identifier, applications, other executable components, or any combination thereof, determined from a larger set.
All of the processes described herein may be embodied in, and fully automated via, software code modules executed by one or more general purpose computers or processors. The code modules may be stored in any type of computer-readable medium or other computer storage device. Some or all the methods may alternatively be embodied in specialized computer hardware. In addition, the components referred to herein may be implemented in hardware, software, firmware or a combination thereof.
Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

## Claims

1. A tangible non-transitory computer-readable medium having a computer-executable component for displaying user contacts on a display of a mobile telecommunications device, the computer-executable component comprising:
a contact management component operative to:
identify a subset of contacts associated with a user of the mobile telecommunications device, wherein the subset of user contacts includes a portion of contacts accessible by the mobile telecommunications device and wherein the subset of contacts includes a plurality of contacts;
determine at least two contact groups from the identified subset of contacts, wherein membership of one or more members in each of the at least two contact groups is automatically determined from the identified subset of contacts based on information maintained in a data store, the information including a context of the user and a plurality of user communication events associated with the context of the user, and wherein each contact of the identified subset of contacts is determined to be a member of at least one of the at least two contact groups;
store information associated with formation of the at least two contact groups in the data store;
automatically determine a current context of the user of the mobile telecommunications device;
compare the current context of the user with the stored information associated with the formation of the at least two contact groups in the data store; and
cause the generation of a contact display on the mobile telecommunications device, wherein the contact display includes a representation of a first contact group from the at least two contact groups and a first contact group identifier, the first contact group for display on the mobile telecommunications device automatically selected from the at least two contact groups stored in the data store based on the current context of the user.

2. The tangible non-transitory computer-readable medium as recited in claim 1, wherein the subset of contacts is selected at least in part by the user of the mobile telecommunications device.

3. The tangible non-transitory computer-readable medium as recited in claim 1, wherein the contact management component predetermines the membership of one or more members in each of the at least two contact groups.

4. The tangible non-transitory computer-readable medium as recited in claim 1, wherein the contact management component dynamically determines the membership of one or more members in each of the at least two contact groups.

5. The tangible non-transitory computer-readable medium as recited in claim 1, wherein the plurality of user communication events includes at least one of an event at a particular geographic location, an event on a particular day or date, an event during a particular time period, or an event associated with a context of one or more user contacts.

6. The tangible non-transitory computer-readable medium as recited in claim 1, wherein the information maintained in the data store further includes, for each contact of at least a portion of the identified subset of contacts, an overall frequency of communication with the contact.

7. The tangible non-transitory computer-readable medium as recited in claim 1, wherein comparing the current context of the user with the stored information associated with the formation of the at least two contract groups in the data store includes comparing, for each of the at least two contact groups, the current context with a user context associated with formation of the at least two contact groups.

8. A method comprising:
identifying a subset of contacts associated with a user of a mobile telecommunications device, wherein the subset of user contacts includes a portion of contacts accessible by the mobile telecommunications device and wherein the subset of contacts includes a plurality of contacts;
determining at least two contact groups from the identified subset of contacts, wherein membership of one or more members in each of the at least two contact groups is automatically determined from the identified subset of contacts based on information maintained in a data store, the information including a context of the user and a plurality of user communication events associated with the context of the user, and wherein each contact of the identified subset of contacts is determined to be a member of at least one of the two contact groups;
storing information associated with formation of the at least two contact groups in the data store;
automatically determining a current context of the user of the mobile telecommunications device;
comparing the current context of the user with the stored information associated with the formation of the at least two contact groups in the data store; and
causing the generation of a contact display on the mobile telecommunications device, wherein the contact display includes a representation of a first contact group and a first contact group identifier, the first contact group for display on the mobile telecommunications device automatically selected from the at least two contact groups stored in the data store based on the current context of the user,
wherein the method is implemented by a computing system.

9. The method as recited in claim 8, wherein the subset of contacts is selected at least in part by the user of the mobile telecommunications device.

10. The method as recited in claim 8, wherein a portion of the one or more members of each of the at least two contact groups from the subset of contacts is determined based on selection by the user of the mobile telecommunications device.

11. The method as recited in claim 8 further comprising:
associating a context with each group of the at least two contact groups.

12. The method as recited in claim 11, wherein the context associated with each contact group includes at least one of date, time, and location.

13. The method as recited in claim 11, wherein the context associated with each contact group is a user-determined context.

14. The method as recited in claim 11, wherein the membership of one or more members in each of the at least two contact groups is determined from the identified subset of contacts prior to determining the current context of the user of the mobile telecommunications device.

15. The method as recited in claim 11, wherein the membership of one or more members in each of the at least two contact groups is determined from the identified subset of contacts dynamically upon determining the current context of the user of the mobile telecommunications device.

16. A system comprising:
a data store for maintaining subsets of contacts, wherein each subset of contacts is associated with a user of a mobile telecommunications device, wherein each subset of contacts includes a portion of contacts accessible by the respective mobile telecommunications device, and wherein the portion of contacts includes a plurality of contacts; and
at least one computing device in communication with the data store, the at least one computing device configured to:
identify a subset of contacts associated with a user of the mobile telecommunications device;
determine at least two contact groups from the identified subset of contacts, wherein membership of one or more members in each of the at least two contact groups is automatically determined from the identified subset of contacts based on information maintained in the data store, the information including at least a context of the user and a plurality of user communication events associated with the context of the user, and wherein each contact of the identified subset of contacts is determined to be a member of at least one of the at least two contact groups;
store information associated with formation of the at least two contact groups in the data store;
automatically determine a current context of the user of the mobile telecommunications device;
compare the current context of the user with the stored information associated with the formation of the at least two contact groups in the data store; and
cause the generation of a contact display on the mobile telecommunications device, wherein the contact display includes a representation of a first contact group from the at least two contact groups and a first contact group identifier, the first contact group for display on the mobile telecommunications device automatically selected from the at least two contact groups stored in the data store based on the current context of the user.

17. The system as recited in claim 16, wherein the at least one computing device is further configured to:
obtain a context associated with each contact group of the at least two contact groups; and
store the context associated with each contact group in the data store.

18. The system as recited in claim 17, wherein comparing the current context of the user with the stored information associated with the formation of the at least two contact groups in the data store comprises, for each of the at least two contact groups, comparing the current context of the user with the context associated with the contact group.

19. The system as recited in claim 16, wherein the plurality of user communication events includes at least one of an event at a particular geographic location, an event on a particular day or date, an event during a particular time period, or an event associated with a context of one or more user contacts.

20. The system as recited in claim 16, wherein the information maintained in the data store further includes, for each of at least a portion of the identified subset of contacts, an overall frequency of communication with the contact.