The present invention relates to computer systems, and particularly relates to a processor-implemented method and system of customizing at least one computer software application for at least one user based on data associated with the user.
A computer software user interface may be designed for a large number of users. Thus, such an interface would have to accommodate many features that are not relevant to all of the users. Furthermore, such a user interface typically would be unaware of facts associated with a current user of the interface. Even if the interface were aware of some facts about the user, it would be difficult and time consuming for a designer of the interface to create an interface that adapts appropriately depending on the information that the interface would have about the user. In addition, the appropriate adaptation to apply could differ for each user, further complicating the task for the user interface designer.
One prior art system allows for the auto-completion of form fields in a user interface. Referring to
Another prior art system is a customized application. Referring to
Therefore, a processor-implemented method and system of customizing at least one computer software application for at least one user based on data associated with the user, is needed.
The present invention provides a processor-implemented method and system of customizing at least one computer software application for at least one user based on data associated with the user. In an exemplary embodiment, the method and system include, (1) allowing the user to specify the data, (2) permitting the user to associate the data with at least one field in the application, and (3) letting the user change the structure of the application based on at least one preference value stored in at least one preference database. In an exemplary embodiment, the method and system include (1) allowing the user to specify the data, (2) permitting the user to associate the data with at least one field in the application, and (3) letting the user change the content of the application based on at least one preference value stored in at least one preference database.
In an exemplary embodiment, the allowing includes allowing the user to set the value in the database. In an exemplary embodiment, the allowing includes allowing the user to set the value while interacting with at least one content page associated with the application. In an exemplary embodiment, the allowing includes allowing the user to set the value via an interface to a customization application in a customization system.
In an exemplary embodiment, the letting includes (a) identifying at least one content page associated with the application, (b) searching the database for at least one related value that is related to the page, thereby resulting in at least one found value, (c) inserting the found value into the page, and (d) removing the page based on the found value. In an exemplary embodiment, the letting includes (a) identifying at least one content page associated with the application, (b) searching the database for at one least related value that is related to the page, thereby resulting in at least one found value, (c) inserting the found value into the page, and (d) splitting the page into at least two other content pages based on the found value. In an exemplary embodiment, the letting includes (a) identifying at least one content page associated with the application, (b) searching the database for at least one related value that is related to the page, thereby resulting in at least one found value, (c) inserting the found value into the page, and (d) combining the page with at least one other content page based on the found value.
In an exemplary embodiment, the permitting includes permitting the user to make the application avoid displaying at least one field that is associated with the value. In an exemplary embodiment, the letting includes (a) identifying at least one content page associated with the application, (b) searching the database for at least one related value that is related to the page, thereby resulting in at least one found value, (c) inserting the found value into the page, and (d) removing at least one designated field on the page based on the found value.
The present invention also provides a computer program product usable with a programmable computer having readable program code embodied therein of customizing at least one computer software application for at least one user based on data associated with the user. In an exemplary embodiment, the computer program product includes (1) computer readable code for allowing the user to specify the data, (2) computer readable code for permitting the user to associate the data with at least one field in the application, and (3) computer readable code for letting the user change the structure of the application based on at least one preference value stored in at least one preference database.
The present invention provides a processor-implemented method and system of customizing at least one computer software application for at least one user based on data associated with the user. In an exemplary embodiment, the method and system include, (1) allowing the user to specify the data, (2) permitting the user to associate the data with at least one field in the application, and (3) letting the user change the structure of the application based on at least one preference value stored in at least one preference database. In an exemplary embodiment, the method and system include (1) allowing the user to specify the data, (2) permitting the user to associate the data with at least one field in the application, and (3) letting the user change the content of the application based on at least one preference value stored in at least one preference database. In an exemplary embodiment, the present invention is implemented as a second set of transformation algorithms separate from the transformations already in a proxy computer server.
Referring to
Referring to
Via the invention, the user submits a request for a page to customization system 224. Specifically, the user submits the request to proxy server 229. Then, customization system 224 obtains the requested page from a computer software application server 230. Specifically, proxy server 229 (i) acquires the requested page from computer software application server 230, (ii) obtains preference values from the requested page, (iii) stores the obtained preference values in preference database 228, (iv) modifies the structure of the page with respect to preference values in preference database 228, and (v) outputs the page with modified structure.
Allowing
Referring to
Referring to
In an exemplary embodiment, allowing step 312 further includes a step of allowing the user to provide at least one label for a plurality of preference values. For example, via the invention, another application or a user could provide high-level labels for preference values that the application or user specifies, respectively. Specifically, when entering an address (i.e., a preference value) in a field of an application, the user could indicate that the address is their “home address”. In addition, the other application might also specify that the value that should go in the application field is a “home address”. When using the application, if a preference value exists for the application field, then invention could offer the preference value as a suggestion to the user.
Letting
Referring to
Referring to
Referring to
For example, the invention would pass content on a content page to preference-based content transformation algorithms of the invention. The invention would then identify the content page and search the preference database for information related to the page. If any default values were found in the database, the invention would automatically insert them into the page. If the user had indicated that the user no longer wanted to see the page, then the invention would construct a web request based on the content on the page and return it to existing transformation algorithms. Via the invention, the existing transformation algorithms would observe that the user had interacted with the page and had returned some values, while in fact, the user would not have seen the current version of the page. In this way, the invention, via the preference-based transformation algorithms, could modify the structure of an application (e.g., a web site) that the user wants to see.
Referring to
Referring to
Via the invention, the user submits a request for a page to customization system 524. Specifically, the user submits the request to proxy server 529. Then, customization system 524 obtains the requested page from a computer software application server 530. Specifically, proxy server 529 (i) acquires the requested page from computer software application server 530, (ii) obtains preference values from the requested page, (iii) stores the obtained preference values in preference database 528, (iv) modifies the content of the page with respect to preference values stored in preference database 528, and (v) outputs the page with modified content.
Allowing
Referring to
Referring to
In an exemplary embodiment, allowing step 612 further includes a step of allowing the user to provide at least one label for a plurality of preference values. For example, via the invention, another application or a user could provide high-level labels for preference values that the application or user specifies, respectively. Specifically, when entering an address (i.e., a preference value) in a field of an application, the user could indicate that the address is their “home address”. In addition, the other application might also specify that the value that should go in the application field is a “home address”. When using the application, if a preference value exists for the application field, then invention could offer the preference value as a suggestion to the user.
Permitting
Referring to
Letting
Referring to
The present invention can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software elements. In an exemplary embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, and microcode.
Furthermore, the present invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer system or any instruction execution system. The computer program product includes the instructions that implement the method of the present invention. A computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid-state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W), and DVD.
A computer system suitable for storing and/or executing program code includes at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the computer system either directly or through intervening I/O controllers. Network adapters may also be coupled to the computer system in order to enable the computer system to become coupled to other computer systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters. The computer system can also include an operating system and a compute file-system.
Having fully described a preferred embodiment of the invention and various alternatives, those skilled in the art will recognize, given the teachings herein, that numerous alternatives and equivalents exist which do not depart from the invention. It is therefore intended that the invention not be limited by the foregoing description, but only by the appended claims.