1. Technical Field
The present invention relates in general to computer logic. Still more particularly, the present invention relates to a predictive logic for autonomously completing web forms based on user defined preferences and conditions.
2. Description of the Related Art
When browsing on the Internet, especially on registration/shopping/download web sites, users are often prompted to perform selection on a form element, such as a checkbox, radio button or drop-down list, in order to indicate their preference. When a user is registering on a website, there are typically several form elements requesting general information of the user, each element requiring manual entry. Additionally, there may be license acceptance/agreement fields that a user must acknowledge in order to proceed to a subsequent page. HyperText markup language (HTML) pages may mandate users manually complete or select multiple form elements on each visit to that webpage. In most cases a user may not circumvent this manual interaction on a web site, which may inconvenience the user.
Disclosed are a method, system, and computer program product for autonomously completing a web form based on preferences and conditions established by a user. A predictive logic autonomously completes a web form by determining a requested data type of one or more form objects in the web form. The predictive logic determines a form preference corresponding to an identifier of a selected form object and selects or inserts data of the form preference into the form object. The form preference may be predefined by a user and stored within a form preference database which contains data selections and/or insertions for specific form objects for web forms. The form preference may also specify conditions for triggering events or actions of a web browser, such as changing the display focus of the web browser or automatically clicking an acceptance element of a web form. The predictive logic monitors user insertions of a web form and prompts a user to define additional form preferences.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, will best be understood by reference to the following detailed descriptions of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The illustrative embodiments provide a method, system, and computer program product for autonomously completing a web form based on preferences and conditions established by a user, in accordance with one embodiment of the invention.
In the following detailed description of exemplary embodiments of the invention, specific exemplary embodiments in which the invention may be practiced are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, architectural, programmatic, mechanical, electrical and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
It is understood that the use of specific component, device and/or parameter names are for example only and not meant to imply any limitations on the invention. The invention may thus be implemented with different nomenclature/terminology utilized to describe the components/devices/parameters herein, without limitation. Each term utilized herein is to be given its broadest interpretation given the context in which that term is utilized.
With reference now to
As shown, Computer 102 also comprises system memory 118. System memory 118 also comprises web form logic (WFL) 120 for autonomously completing a web form based on preference and conditions established by a user. WFL 120 includes code for implementing the processes described in
Computer 102 also comprises storage 124, which is connected to system bus 106. Storage 124 includes a web browser 126 that interfaces directly with a Web Form Plug-in (WFP) 128. WFP 128 is a software instance that interfaces with web browser 126. This interfacing may allow WFL 120 to interface directly with web browser 126. WFP may interface with web browser 126 through a plug-in tool, or through logical coding of a programming language (e.g., JavaScript, HTML, Dynamic HTML, HTML with Document Object Model (DOM), Ajax) used by web browser 126. WFP 128 also contains a form preference database 130. Form preference database 130 may contain one or more form preferences 132a-n. Form preferences 132a-n specify settings and conditions established by a user of computer 102 for autonomously completing form elements of a web form. Additionally, form preferences 132a-n may contain identifying information of the user (e.g., first name, last name, home address, passwords), or information of a preferred layout or view of a web form. In one embodiment, computer 102 is able to utilize WFL 120 to autonomously analyze and complete a web form by implementing form preferences 132a-n, as described in greater detail below in
As illustrated and described herein, computer 102 may be a computer system or server having the required hardware components and programmed with WFL 120, executing on the processor to provide the functionality of the invention. However, computer 102 may also be a device that is specifically designed to include the functionality of WFL 120, as described herein. The hardware elements depicted in computer 102 are not intended to be exhaustive, but rather are representative to highlight essential components required by and/or utilized to implement the present invention. For instance, computer 102 may include alternate memory storage devices such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These alternate configurations of components and other variations are intended to be within the spirit and scope of the present invention.
With reference now to
Web form 206 may contain one or more form elements 207a-n. A form element 207a-n (e.g., a check box, radio button, drop-down list, text field) is a query portion of the web form 206 which may require the user to insert data (e.g., last name, address, credit card number) or tender a selection or a response. A form element may also contain an identifier (e.g., identifier 302a-n,
When WFL 120 is unable to determine a matching form preference for a form element 207a-n, WFL 120 may prompt the user to manually complete the form element 207a-n. Manually entered data of a form element 207a-n along with currently satisfied criteria (e.g., web form location, current user, OS focus) may be autonomously stored into a new or existing form preference of the form preference database to improve future prediction. In an alternate embodiment, computer 102 may also prompt the user to manually define or update a form preference for the selected form element, instead of manually entering the data. By manually defining a form preference, the user may establish additional criteria of the form preference (e.g., when identifier type is “Login Name” AND website is “IBM”, substitute “johndoe”). A newly created form preference may be utilized by the logic to insert intended information in form elements 207a-n for the current session, and for future sessions.
WFL 120 may also prepare a preview of the web form (e.g., web form preview 210). A preview may display matching form preferences inserted to, or selected of, form elements 207a-n. WFL 120 may prompt the user to tender approval of the suggested changes of the preview before WFL 120 will insert the matching form preference data in corresponding form elements 207a-n of the web form 206. WFL 120 may also determine a confidence level of the insertions made to form elements 207a-n. The confidence level is a value assigned to the overall substitutions made by WFL 120 of the preview. The confidence level may be calculated based on user defined ratings, historical acceptance data of preview web forms, historical confidence levels of a form preference. The confidence level may be displayed to the user, or may be a value utilized by WFL 120 in making intelligent substitutions. When WFL 120 determines that a user has rejected the preview, WFL 120 may prompt the user to manually enter data into one or more form elements 207a-n. In an alternate embodiment, a user may select accept a preview and manually change data of one or more form elements 207a-n. WFL 120 may monitor user made changes of form elements 207a-n, and update corresponding form preferences. WFL 120 may increase or decrease future confidence ratings based on user rejections and acceptances of previews. In an alternate embodiment, WFL 120 may prompt the user to manually define a unique form preference for one or more form elements 207a-n.
WFL 120 may also determine if the web form 206 contains an acceptance element (e.g., acceptance element 310,
WFL 120 may additionally determine when web form 206 contains an installation component 208. Installation component 208 is a software component for interfacing or displaying data of a web-server 204 on computer 102. Upon detecting that a web form 206 does contain installation component 208, WFL 120 may determine if a form preference has been established that specifies preferences for an installation components 208. A form preference may allow WFL 120 to autonomously install or reject installation of an installation component 208. In response to determining that a form preference has not been established for a specific installation component 208, WFL 120 may prompt the user to manually define a unique form preference for installation component 208. After determining that the form preference database does contain a form preference (e.g., specifying an autonomous install for installation component 208), WFL 120 may autonomously install the installation component 208 without interaction by the user.
With reference now to
With reference now to
With reference now to
When WFL determines that the user of the computer has rejected the web form preview, WFL decreases the confidence level of the matching form preferences (block 530). The process then moves to block 532 where WFL prompts the user to define form preference rules for the web form. Additionally, when WFL determines that the form preference database does not contain matching form elements for the selected web form, the process continues to block 532.
When WFL determines that the user of the computer has opted against defining form preference rules for the web form (block 532), WFL instructs the user to manually complete the web form (block 534). After the user has manually completed the web form, WFL may prompt the user to automatically save form preference data for the manually completed web form (block 536). After determining that the user has declined to save form preference data (block 536), the process then ends at terminator block 550. When WFL determines that the user has elected to save the form preference data, WFL saves the form preference data for the manually completed web form to the form preference database (block 538). The process then ends at terminator block 550.
When WFL determines that the user of the computer has selected to define form preference rules for the web form, the computer instructs the user to complete form preferences for the web form (block 540). After WFL has received a completed form preferences for the web form (block 542), WFL saves the form preferences to the form preference database (block 544). The computer may then populate the web form with the data of the user-created form preferences for the web form (block 546). The process then ends at terminator block 550.
In the flow charts above, one or more of the methods are embodied such that a series of steps are performed when the computer readable code is executed on a computing device. In some implementations, certain steps of the methods are combined, performed simultaneously or in a different order, or perhaps omitted, without deviating from the spirit and scope of the invention. Thus, while the method steps are described and illustrated in a particular sequence, use of a specific sequence of steps is not meant to imply any limitations on the invention. Changes may be made with regards to the sequence of steps without departing from the spirit or scope of the present invention. Use of a particular sequence is therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
Although aspects of the present invention have been described with respect to a computer processor and program application/logic, it should be understood that at least some aspects of the present invention may alternatively be implemented as a program product for use with a data storage system or computer system. Programs defining functions of the present invention can be delivered to a data storage system or computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g. CD-ROM), writable storage media (e.g. network attached storages, hard disk drive, read/write CD-ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore, that such signal-bearing media, when carrying or encoding computer readable instructions that direct method functions of the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
Having thus described the invention of the present application in detail and by reference to illustrative embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims. In addition, many modifications may be made to adapt a particular system, device or component thereof to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another.