User names are employed by a variety of different resources for a variety of different purposes. For example, users may employ user names to participate in instant messaging sessions to differentiate between the users, may employ user names to access resources over a network (e.g., online banking, email, travel websites, and so on), may employ user names to gain access to local resources (e.g., a personal computer, mobile phone), and so on.
A network service, for instance, may specify that each user that accesses the service is to have a unique user name, such as to provide resources specific to each of the users. However, a multitude of users may access that same resource. Therefore, the user names that are available may continue to diminish as more and more users continue to be added to the service. Consider an email service, for instance, in which users numbering in the hundreds of millions access the service to send and receive email. This sheer quantity of users that access the service may make determination of a unique user name by subsequent users a lengthy and frustrating task, which may even result in the users forgoing access to the service altogether.
User name generation techniques are described. In an implementation, one or more words are received to be used as a user name to access a resource. One or more characters of at least one of the words are modified such that the word having the one or more modified characters is available as a user name. The modifications may be performed in a variety of ways, such as to change one character to another, split a word into additional words, use a thesaurus lookup for similar words, and so on. Further, these modifications may be performed in real time as the characters and/or words are entered by a user to give real time feedback.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
Overview
User names, as previously described, may be utilized to access a vast number of resources for a variety of different purposes. Traditional techniques that were used to create user names, however, relied on the user entering potentially unique names, one at a time, and checking their availability after each one. This laborious and potentially frustrating process may therefore hinder the users from even accessing the resource altogether.
A user, for example, using traditional techniques may enter a word “bunny” into a user name box for a particular domain, e.g., “serviceprovider.com”. The user may then click a “check availability” box to determine if that name is available. If not, the user may then enter the words “bluebunny” into the user name box and again select the “check availability” box. If that name is not available, the user may enter the term “bigbluebunny” into the user name box and yet again select the “check availability” box. If available, a message may be displayed indicating this availability. As is readily apparent, this process may become frustrating when hundreds of millions of users access the resource, each having a unique user name.
Accordingly, techniques are described to generate user names. In an implementation, a technique is described in which modifications to one or more words supplied by a user are made to generate a user name that is available for use by the user. Following the previous example, for instance, a user may input the word “bluebunny”. A system may determine that although this combination is not available, the user name “blue_bunny” is available by splitting the Word. The system may also determine that “bluerabbit” is available through use of a thesaurus. Further, the suggested user names may be output in real time as the user enters the desired words and even characters within the words. A variety of other examples are also contemplated, further discussion of which may be found in the following discussion.
In the following discussion, an exemplary environment is first described that is operable to perform techniques to generate user names. Exemplary procedures and user interfaces are then described that may be employed in the exemplary environment, as well as in other environments.
The clients 104 may be configured in a variety of ways for network 106 access. For example, one or more of the clients 104 may be configured as a computing device, such as a desktop computer, a mobile station, an entertainment appliance, a set-top box communicatively coupled to a display device, a wireless phone, a game console, and so forth. Thus, the clients 104 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to low-resource devices with limited memory and/or processing resources (e.g., traditional set-top boxes, hand-held game consoles). The clients 104, in portions of the following discussion, may also relate to a person and/or entity that operate the clients. In other words, one or more of the clients 104 may describe logical clients that include users, software, and/or devices.
The service provider 102 is illustrated in
Although the network 106 is illustrated as the Internet, the network may assume a wide variety of configurations. For example, the network 106 may include a wide area network (WAN), a local area network (LAN), a wireless network, a public telephone network, an intranet, and so on. Further, although a single network 106 is shown, the network 106 may be configured to include multiple networks.
The client 104 is illustrated as executing a communication module 116 on the processor 110, which is also storable in memory 114. The communication module 116 is representative of an executable module that is configured to communicate with the service provider 102 over the network 106. For example, the communication module 116 may be configured as a web browser that allows the client 104 to “surf” the Internet. In another example, the communication module 116 is configured as a “smart” client module that is configured to provide other network functionality as a part of its operation, such as an instant messaging module, an email module, an online banking module, and so on. A wide variety of other examples are also contemplated.
Through use of the communication module 116 in the environment of
Each client account 120(k) in the environment 100 of
To generate the user names, the client 104 (through execution of the communication module 116) may interact with the service provider 102, such as the service manager module 118. The service manage module 118, for instance, may provide a utility to generate user names that may be used to interact with the service provider 102 and/or another service provider. For example, the client 104 may access the service provider 102 and be presented with a user interface 128 that instructs the user to enter one or more words that may be incorporated within the user name. If that user name is not available (e.g., the user name is already being used or is blocked from being used), the service manager module 118 may make one or more user name suggestions of user names that are available based on the input words.
For example, a user name dictionary 130 may be queried from storage 132 in the memory 112 to determine similar words or phrases that may be used instead of the supplied terms, such as through a thesaurus lookup. The user name dictionary 130 may also be used to present abbreviations, acronyms and so on based on the entered words, such as to suggest “blubunny” for the desired words “blue” and “bunny”. Further, the functionality to suggest user names may split and combine words, such as to split “trueblue” into “true_blue”, combine words “blue” and “bunny” into “bluebunny”, and so forth. Yet further, the functionality may present a larger set of potential choices by automatically generating a list of available user names across multiple domains, such as “blue_bunny@hotmail.com” and “bluebunny@live.com”. Thus, the functionality may provide a variety of suggestions to a user without forcing the user to engage in the previous trial and error process to locate a desirable user name. Further, this functionality may be performed in real time to provide feedback as the user enters words and characters, further discussion of which may be found in relation to
Although the previous examples described use of user names to access resources over a network, it should be readily apparent that this functionality may also be incorporated to access local resources, such as resources contained on the client 104 itself, without departing from the spirit and scope thereof.
Generally, any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The terms “module,” “functionality,” and “logic” as used herein generally represent software, firmware, hardware, or a combination thereof. In the case of a software implementation, for instance, the module, functionality, or logic represents program code that performs specified tasks when executed on a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices, e.g., memory 112, 114. The features of the techniques to generate user names described below are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
The overlay 202, as illustrated, includes a plurality of portions 204, 206 and 208, each of which is configured to accept one or more characters. The characters entered via the portions may be utilized to suggest user names, such as by changing characters, splitting and/or combining words, and so on as previously described. In an implementation, suggestions are output that are available, at the time of suggestion, for use as a user name to access the resource. In other words, the suggestions may be “checked” before output to determine if they are available, and if not, further suggestions may be generated and “checked” before output.
As shown in
The user may then choose one of the suggestions that are desirable, such as by highlighting the desired suggestion and “pressing” the “select” button 310. The overlay 202 may also include navigation functionality, such as “more” 312 and “back” 314 buttons to navigate through additional selections if the currently displayed suggestions are not desirable. If none of the suggestions are desirable, the user may continue to add additional terms, an example of which is shown in
User name suggestions 402, 404 and 406, for instance, are illustrated as “bobpainter1@live.com”, “bob_painter@live.com” and “bobspainting@live.com”, respectively, and therefore each of these suggestions incorporate aspects of character entered in both portions 204, 206. User name suggestion 408, however, is illustrated as “painter2006@live.com” and therefore uses characters from portion 206 but not from portion 204 to make the suggestion. In this way, “simplified” suggestions may still be provided even when multiple words are provided. A variety of techniques may be used to make the suggestions, further discussion of which may be found in relation to the following exemplary procedures.
The following discussion describes user name generation techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, or software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment 100 of
One or more characters of at least one of the words are modified such that a word having the one or more modified characters is available as a user name (block 504). The modifications may be performed in a variety of ways. For example, at least one of the characters in the word may be changed to one or more other characters (block 506). The service provider 102, for example, may change a word to an alternate spelling.
In another example, the word may be split (block 508). For instance, the word “bluepainter” may be received but is not available as a user name. However, the user name “blue_painter” may be available and therefore provided as a suggestion. A variety of punctuation may be used to “split” words, including dashes and so on.
In yet another example, at least one of the characters may be removed (block 510). The word “blue” for instance, may be changed to the word “blu”, such as to be used in “blupainter”.
In a further example, related words may be found (block 512). The service provider, for instance, may search a thesaurus for synonyms, antonyms, and so on of a word provided by a user.
The suggestions may then be filtered using a dictionary that references impermissible words (block 514). The dictionary, for instance, may indicate that the username “accountmanager” is not available, filter for profanity or disparaging names, and so on.
A determination may then be made as to whether the suggestions are available as a user name (block 516). The service provider 102, for instance, may check each of the suggestions with currently used user names 124(k) of client accounts 120(k) to ascertain whether they are currently being utilized. The user name suggestions that are available may then be output (block 518) such that an input may be received from a user to select one of the suggestions as the user name (block 520). In this way, suggestions that are currently available at the time of the determination may be output, thereby reducing and even eliminating the “back-and-forth” guessing that was encountered using traditional techniques. A variety of other examples are also contemplated.
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.