MACHINE LEARNING OF CONTEXT OF DATA FIELDS FOR VARIOUS DOCUMENT TYPES

A method and system learns new forms to be incorporated into an electronic document preparation system. The method and system receive form data related to a new form having a plurality of data fields that expect data values based on specific functions. The method and system gather training set data including previously filled forms having completed data fields corresponding to the data fields of the new form. The method and system utilize machine learning in conjunction with the training set data to identify the correct function for each of the data fields of the new form.

BACKGROUND

Many people use electronic document preparation systems to help prepare important documents electronically. For example, each year millions of people use electronic tax return preparation systems to help prepare and file their tax returns. Typically, electronic tax return preparation systems receive tax related information from a user and then automatically populate the various fields in electronic versions of government tax forms. Electronic tax return preparation systems represent a potentially flexible, highly accessible, and affordable source of tax return preparation assistance for customers. However, the processes that enable the electronic tax return preparation systems to incorporate new tax forms into the tax return preparation systems often utilize large amounts of human and computing resources.

For instance, due to changes in tax laws, or due to updates in government tax forms, tax forms can change from year to year, or even multiple times in the same year. If a tax form changes, or a new tax form is introduced, it can be very difficult to efficiently update the electronic tax return preparation system to correctly populate the various fields of the tax forms with the requested values. For example, a particular line of a newly adjusted tax form may request an input according to a function that requires values from other lines of the tax form and/or values from other tax forms or worksheets. These functions range from very simple to very complex. Updating the electronic tax return preparation system often includes utilizing a combination of tax experts, software and system engineers, and large amounts of computing resources to incorporate the new form into the electronic tax return preparation system. This can lead to delays in releasing an updated version of the electronic tax return preparation system as well as considerable expenses. These expenses are then passed on to customers of the electronic tax return preparation system, as are the delays. Furthermore, these processes for updating electronic tax returns can introduce inaccuracies into the tax return preparation system.

These expenses, delays, and possible inaccuracies can have an adverse impact on traditional electronic tax return preparation systems. Customers may lose confidence in the electronic tax return preparation systems. Furthermore, customers may simply decide to utilize less expensive options for preparing their taxes.

These issues and drawbacks are not limited to electronic tax return preparation systems. Any electronic document preparation system that assists users to electronically fill out forms or prepare documents can suffer from these drawbacks when the forms are updated or new forms are released.

What is needed is a method and system that efficiently and accurately incorporates updated forms into an electronic document preparation system.

SUMMARY

Embodiments of the present disclosure address some of the shortcomings associated with traditional electronic document preparation systems by providing methods and systems for incorporating new or updated forms by utilizing machine learning in conjunction with training set data. In particular, embodiments of the present disclosure receive form data related to a new form that includes data fields to be completed in accordance with specific functions designated by the new form. Embodiments of the present disclosure determine one or more possible dependencies for each data field. Embodiments of the present disclosure utilize machine learning to quickly and accurately determine the correct function needed to complete each data field of the form. Embodiments of the present disclosure gather training set data that includes previously filled forms related to the new form in order to assist in the machine learning process. The machine learning process for learning and incorporating the new form includes generating candidate functions for each data field of the new form based on the possible dependencies. The candidate functions can include one or more operators selected from a set or superset of operators. The machine learning process applies the candidate functions to the training set data in order to determine the accuracy of the candidate functions. For each data field, embodiments of the present disclosure generate and apply candidate functions in successive iterations until a candidate function is found that produces test data that matches the data values in the corresponding completed data fields of the previously filled forms of the training set data within a threshold level of error. Embodiments of the present disclosure then output results data that indicates that the correct function for a particular data field has possibly been found. This process is repeated for each selected data field of the new form until all selected data fields of the new form have been learned and incorporated. In this way, embodiments of the present disclosure provide a more reliable electronic document preparation system that quickly, efficiently, and reliably learns and incorporates new forms.

In one embodiment, the dependencies for a given data field of the new form can include data values from one or more other data fields of the new form. In one embodiment, the dependencies for a given data field of the new form can include data values from other data fields of one or more other forms, worksheets, or other locations. In one embodiment, the dependencies can include one or more constants. A list of possible dependencies for a given data field of the new form can be provided to the system by a natural language parsing process, an analysis of software instructions related to previous versions of electronic document preparation systems, by experts, and/or in other suitable ways.

In one embodiment, the correct function for a given data field of the new form can include operators that operate on one or more of the dependencies in a particular manner. The operators can include arithmetic operators such as addition, subtraction, multiplication, or division operators. The operators can include exponential functions. The operators can include logical operators such as if-then operators. The operators can include existence condition operators that depend on the existence of a data value in another data field of new form, in a form other than the new form, or in some other location or data set. The operators can include string comparisons. The operators can include rounding or truncating operations.

In one embodiment, the machine learning process is able to generate and test thousands of candidate functions very rapidly in successive iterations. The machine learning process can utilize one or more algorithms to generate candidate functions based on the one or more possible dependencies and/or other factors. The machine learning process can generate new candidate functions based on previously tested candidate functions that trended toward being a better match for the test data set.

In one embodiment, the machine learning process can generate and test a selected number of candidate functions and then generate results data that indicates how closely the candidate functions match the training set data. The machine learning process can stop and await input from an expert or other personnel indicating that a correct function has been found or that further candidate functions should be generated and tested. The results data can indicate candidate functions that are likely correct based on the matching data. Additionally, or alternatively, the results data can indicate only a certain number of the candidate functions that best matched the training set data. Additionally, or alternatively, the results data can indicate the results from all the candidate functions that were tested.

In one embodiment, the electronic document preparation system includes an electronic tax return preparation system. When a state or federal government introduces a new or updated tax form, the tax return preparation system utilizes machine learning in conjunction with training set data that includes historical tax related data related to previously prepared tax returns in order to quickly and efficiently learn and incorporate the new or updated tax form into the tax return preparation system. The tax return preparation system generates, for each data field of the new or updated tax form, a plurality of candidate functions in order to find the correct function that provides the data requested for the data field. The tax return preparation system applies the candidate functions to the historical tax related data in order to find a correct function that provides data values that match the data values in the completed data fields of the historical tax return data. The historical tax return data can include historical tax returns that have been prepared and filed with a state or federal government. The historical tax return data can include historical tax returns that have been accepted by a state or federal government agency or otherwise validated.

In some cases, it may not be feasible to obtain relevant historical tax related data related to previously filed tax returns to assist in the machine learning process of a new tax form. In these cases, the training set data can include fabricated tax returns completed by professionals or other tax return preparation systems using real or fabricated financial data.

In one example related to learning the correct function for a single data field of a new tax form, the tax return preparation system generates a candidate function for a specific line of a new tax form. The tax return preparation system generates test data by applying the candidate function to the historical tax return data. In particular, the tax return preparation system applies the candidate function to the tax related data associated with each of a plurality of previously filled tax forms that are related to the new tax form. The test data includes a test value for the specific line for each of the previously filled forms. The tax return preparation system generates matching data that indicates the degree to which the test values match the actual data values in the specific line of each of the historical tax returns. If the test data matches the actual data values in the specific line of the historical tax returns beyond a threshold degree of accuracy, then the tax return preparation system concludes that the candidate function is correct or likely correct. The tax return preparation system generates results data indicating whether the candidate function is likely correct.

In one embodiment, the electronic document preparation system can include a financial document preparation system other than a tax return preparation system. The financial document preparation system can include an invoice preparation system, a receipt preparation system, a payroll document preparation system, or any other type of electronic document preparation system. Furthermore, principles of the present disclosure are not limited to electronic document preparation systems but can extend to other types of electronic document preparation systems that assist users in filling out forms or other types of documents.

Embodiments of the present disclosure address some of the shortcomings associated with traditional electronic document preparation systems that do not adequately and efficiently incorporate new forms. An electronic document preparation system in accordance with one or more embodiments provides efficient and reliable incorporation of new forms by utilizing machine learning in conjunction with training set data in order to quickly and accurately incorporate and learn new forms. The various embodiments of the disclosure can be implemented to improve the technical fields of data processing, resource management, data collection, and user experience. Therefore, the various described embodiments of the disclosure and their associated benefits amount to significantly more than an abstract idea. In particular, by utilizing machine learning to learn and incorporate new forms in an electronic document preparation system, users can save money and time and can better manage their finances.

Using the disclosed embodiments of a method and system for learning and incorporating new forms in an electronic document preparation system, a method and system for learning and incorporating new forms in an electronic document preparation system more accurately is provided. Therefore, the disclosed embodiments provide a technical solution to the long standing technical problem of efficiently learning and incorporating new forms in an electronic document preparation system.

In addition, the disclosed embodiments of a method and system for learning and incorporating new forms in an electronic document preparation system are also capable of dynamically adapting to constantly changing fields such as tax return preparation and other kinds of document preparation. Consequently, the disclosed embodiments of a method and system for learning and incorporating new forms in an electronic document preparation system also provide a technical solution to the long standing technical problem of static and inflexible electronic document preparation systems.

The result is a much more accurate, adaptable, and robust method and system for learning and incorporating new forms in an electronic document preparation system, but thereby serves to bolster confidence in electronic document preparation systems. This, in turn, results in: less human and processor resources being dedicated to analyzing new forms because more accurate and efficient analysis methods can be implemented, i.e., fewer processing and memory storage assets; less memory and storage bandwidth being dedicated to buffering and storing data; less communication bandwidth being utilized to transmit data for analysis.

The disclosed method and system for learning and incorporating new forms in an electronic document preparation system does not encompass, embody, or preclude other forms of innovation in the area of electronic document preparation system. In addition, the disclosed method and system for learning and incorporating new forms in an electronic document preparation system is not related to any fundamental economic practice, fundamental data processing practice, mental steps, or pen and paper based solutions, and is, in fact, directed to providing solutions to new and existing problems associated with electronic document preparation systems. Consequently, the disclosed method and system for learning and incorporating new forms in an electronic document preparation system, does not encompass, and is not merely, an abstract idea or concept.

DETAILED DESCRIPTION

Herein, the term “production environment” includes the various components, or assets, used to deploy, implement, access, and use, a given application as that application is intended to be used. In various embodiments, production environments include multiple assets that are combined, communicatively coupled, virtually and/or physically connected, and/or associated with one another, to provide the production environment implementing the application.

As specific illustrative examples, the assets making up a given production environment can include, but are not limited to, one or more computing environments used to implement the application in the production environment such as a data center, a cloud computing environment, a dedicated hosting environment, and/or one or more other computing environments in which one or more assets used by the application in the production environment are implemented; one or more computing systems or computing entities used to implement the application in the production environment; one or more virtual assets used to implement the application in the production environment; one or more supervisory or control systems, such as hypervisors, or other monitoring and management systems, used to monitor and control assets and/or components of the production environment; one or more communications channels for sending and receiving data used to implement the application in the production environment; one or more access control systems for limiting access to various components of the production environment, such as firewalls and gateways; one or more traffic and/or routing systems used to direct, control, and/or buffer, data traffic to components of the production environment, such as routers and switches; one or more communications endpoint proxy systems used to buffer, process, and/or direct data traffic, such as load balancers or buffers; one or more secure communication protocols and/or endpoints used to encrypt/decrypt data, such as Secure Sockets Layer (SSL) protocols, used to implement the application in the production environment; one or more databases used to store data in the production environment; one or more internal or external services used to implement the application in the production environment; one or more backend systems, such as backend servers or other hardware used to process data and implement the application in the production environment; one or more software systems used to implement the application in the production environment; and/or any other assets/components making up an actual production environment in which an application is deployed, implemented, accessed, and run, e.g., operated, as discussed herein, and/or as known in the art at the time of filing, and/or as developed after the time of filing.

As used herein, the terms “computing system”, “computing device”, and “computing entity”, include, but are not limited to, a virtual asset; a server computing system; a workstation; a desktop computing system; a mobile computing system, including, but not limited to, smart phones, portable devices, and/or devices worn or carried by a user; a database system or storage cluster; a switching system; a router; any hardware system; any communications system; any form of proxy system; a gateway system; a firewall system; a load balancing system; or any device, subsystem, or mechanism that includes components that can execute all, or part, of any one of the processes and/or operations as described herein.

In addition, as used herein, the terms computing system and computing entity, can denote, but are not limited to, systems made up of multiple: virtual assets; server computing systems; workstations; desktop computing systems; mobile computing systems; database systems or storage clusters; switching systems; routers; hardware systems; communications systems; proxy systems; gateway systems; firewall systems; load balancing systems; or any devices that can be used to perform the processes and/or operations as described herein.

As used herein, the term “computing environment” includes, but is not limited to, a logical or physical grouping of connected or networked computing systems and/or virtual assets using the same infrastructure and systems such as, but not limited to, hardware systems, software systems, and networking/communications systems. Typically, computing environments are either known environments, e.g., “trusted” environments, or unknown, e.g., “untrusted” environments. Typically, trusted computing environments are those where the assets, infrastructure, communication and networking systems, and security systems associated with the computing systems and/or virtual assets making up the trusted computing environment, are either under the control of, or known to, a party.

In various embodiments, each computing environment includes allocated assets and virtual assets associated with, and controlled or used to create, and/or deploy, and/or operate an application.

In various embodiments, one or more cloud computing environments are used to create, and/or deploy, and/or operate an application that can be any form of cloud computing environment, such as, but not limited to, a public cloud; a private cloud; a virtual private network (VPN); a subnet; a Virtual Private Cloud (VPC); a sub-net or any security/communications grouping; or any other cloud-based infrastructure, sub-structure, or architecture, as discussed herein, and/or as known in the art at the time of filing, and/or as developed after the time of filing.

In many cases, a given application or service may utilize, and interface with, multiple cloud computing environments, such as multiple VPCs, in the course of being created, and/or deployed, and/or operated.

As used herein, the term “virtual asset” includes any virtualized entity or resource, and/or virtualized part of an actual, or “bare metal” entity. In various embodiments, the virtual assets can be, but are not limited to, virtual machines, virtual servers, and instances implemented in a cloud computing environment; databases associated with a cloud computing environment, and/or implemented in a cloud computing environment; services associated with, and/or delivered through, a cloud computing environment; communications systems used with, part of, or provided through, a cloud computing environment; and/or any other virtualized assets and/or sub-systems of “bare metal” physical devices such as mobile devices, remote sensors, laptops, desktops, point-of-sale devices, etc., located within a data center, within a cloud computing environment, and/or any other physical or logical location, as discussed herein, and/or as known/available in the art at the time of filing, and/or as developed/made available after the time of filing.

In various embodiments, any, or all, of the assets making up a given production environment discussed herein, and/or as known in the art at the time of filing, and/or as developed after the time of filing, can be implemented as one or more virtual assets.

In one embodiment, two or more assets, such as computing systems and/or virtual assets, and/or two or more computing environments, are connected by one or more communications channels including but not limited to, Secure Sockets Layer communications channels and various other secure communications channels, and/or distributed computing system networks, such as, but not limited to: a public cloud; a private cloud; a virtual private network (VPN); a subnet; any general network, communications network, or general network/communications network system; a combination of different network types; a public network; a private network; a satellite network; a cable network; or any other network capable of allowing communication between two or more assets, computing systems, and/or virtual assets, as discussed herein, and/or available or known at the time of filing, and/or as developed after the time of filing.

As used herein, the term “network” includes, but is not limited to, any network or network system such as, but not limited to, a peer-to-peer network, a hybrid peer-to-peer network, a Local Area Network (LAN), a Wide Area Network (WAN), a public network, such as the Internet, a private network, a cellular network, any general network, communications network, or general network/communications network system; a wireless network; a wired network; a wireless and wired combination network; a satellite network; a cable network; any combination of different network types; or any other system capable of allowing communication between two or more assets, virtual assets, and/or computing systems, whether available or known at the time of filing or as later developed.

As used herein, the term “user” includes, but is not limited to, any party, parties, entity, and/or entities using, or otherwise interacting with any of the methods or systems discussed herein. For instance, in various embodiments, a user can be, but is not limited to, a person, a commercial entity, an application, a service, and/or a computing system.

As used herein, the term “relationship(s)” includes, but is not limited to, a logical, mathematical, statistical, or other association between one set or group of information, data, and/or users and another set or group of information, data, and/or users, according to one embodiment. The logical, mathematical, statistical, or other association (i.e., relationship) between the sets or groups can have various ratios or correlation, such as, but not limited to, one-to-one, multiple-to-one, one-to-multiple, multiple-to-multiple, and the like, according to one embodiment. As a non-limiting example, if the disclosed electronic document preparation system determines a relationship between a first group of data and a second group of data, then a characteristic or subset of a first group of data can be related to, associated with, and/or correspond to one or more characteristics or subsets of the second group of data, or vice-versa, according to one embodiment. Therefore, relationships may represent one or more subsets of the second group of data that are associated with one or more subsets of the first group of data, according to one embodiment. In one embodiment, the relationship between two sets or groups of data includes, but is not limited to similarities, differences, and correlations between the sets or groups of data.

HARDWARE ARCHITECTURE

FIG. 1illustrates a block diagram of a production environment100for learning and incorporating new forms in an electronic document preparation system, according to one embodiment. Embodiments of the present disclosure provide methods and systems for learning and incorporating new forms in an electronic document preparation system, according to one embodiment. In particular, embodiments of the present disclosure receive form data related to a new form having data fields to be completed according to functions set forth in the new form and utilize machine learning in order to correctly learn the functions for each data field and incorporate them into the electronic document preparation system. Embodiments of the present disclosure gather training set data including previously filled forms related to the new form. Embodiments of the present disclosure generate, for each data field to be learned, dependency data that indicates one or more possible dependencies likely to be included in a correct function for the data field. Embodiments of the present disclosure utilize machine learning systems and processes to generate a plurality of candidate functions for each data field to be learned. The candidate functions are based on the one or more possible dependencies and can include one or more operators selected from a set of operators. The operators can operate on one or more of the possible dependencies. Embodiments of the present disclosure generate test data for each candidate function by applying the candidate function to the training set data. Embodiments of the present disclosure compare the test data to the data values in the corresponding fields of the previously filled forms of the training set data. Embodiments of the present disclosure generate matching data indicating how closely the test data matches the values in the previously filled forms of the training set data. The machine learning processes can continue generating candidate functions and test data until a candidate function is found that provides test data that matches the completed fields of the training set data within a selected error tolerance percentage. Embodiments of the present disclosure can generate results data that indicates the correct functions for each data field of the new form. Embodiments of the present disclosure can output the results data for review by experts who can review and approve the correct functions. Additionally, or alternatively, embodiments of the present disclosure can determine when a correct candidate function has been found or when the new form has been entirely learned and can incorporate the new form into a user document preparation engine so that users or customers of the electronic document preparation system can utilize the electronic document preparation system to electronically prepare documents using the new form. By utilizing machine learning to learn and incorporate new forms, efficiency of the electronic document preparation system is increased.

In addition, the disclosed method and system for learning and incorporating new forms in an electronic document preparation system provides for significant improvements to the technical fields of electronic financial document preparation, data processing, data management, and user experience.

In addition, as discussed above, the disclosed method and system for learning and incorporating new forms in an electronic document preparation system provide for the processing and storing of smaller amounts of data, i.e., more efficiently acquire and analyze forms and data; thereby eliminating unnecessary data analysis and storage. Consequently, using the disclosed method and system for learning and incorporating new forms in an electronic document preparation system results in more efficient use of human and non-human resources, fewer processor cycles being utilized, reduced memory utilization, and less communications bandwidth being utilized to relay data to, and from, backend systems and client systems, and various investigative systems and parties. As a result, computing systems are transformed into faster, more efficient, and more effective computing systems by implementing the method and system for learning and incorporating new forms in an electronic document preparation system.

The production environment100includes a service provider computing environment110, user computing environment140, third party computing environments150, and public information computing environments160, for learning and incorporating new forms in an electronic document preparation system, according to one embodiment. The computing environments110,140,150, and160are communicatively coupled to each other with one or more communication channels101, according to one embodiment.

The service provider computing environment110represents one or more computing systems such as a server, a computing cabinet, and/or distribution center that is configured to receive, execute, and host one or more electronic document preparation systems (e.g., applications) for access by one or more users, for learning and incorporating new forms in an electronic document preparation system, according to one embodiment. The service provider computing environment110represents a traditional data center computing environment, a virtual asset computing environment (e.g., a cloud computing environment), or a hybrid between a traditional data center computing environment and a virtual asset computing environment, according to one embodiment.

The service provider computing environment110includes an electronic document preparation system111, which is configured to provide electronic document preparation services to a user.

According to one embodiment, the electronic document preparation system111can be a system that assists in preparing financial documents related to one or more of tax return preparation, invoicing, payroll management, billing, banking, investments, loans, credit cards, real estate investments, retirement planning, bill pay, and budgeting. The electronic document preparation system111can be a tax return preparation systems or other type of electronic document preparation system. The electronic document preparation system111can be a standalone system that provides financial document preparation services to users. Alternatively, the electronic document preparation system111can be integrated into other software or service products provided by a service provider.

The electronic document preparation system111assists users in preparing documents related to one or more forms that include data fields to be completed by the user. The data fields request data entries in accordance with specified functions. Once the electronic document preparation system has learned the functions that produce the requested data entries for the data fields, the electronic document preparation system can assist individual users in electronically completing the form.

In many situations, such as in tax return preparation situations, state and federal governments or other financial institutions issue new or updated versions of standardized forms each year or even several times within a single year. Each time a new form is released, the electronic document preparation system111may need to learn the specific functions that provide the requested data entries for each data field in the new form. If these data fields are not correctly completed, there can be serious financial consequences for users. Furthermore, if the electronic document preparation system111does not quickly learn and incorporate new forms into the electronic document preparation system111, users of the electronic document preparation system111may turn to other forms of financial document preparation services. In traditional electronic document preparation systems, new forms are learned and incorporated by financial professionals and/or experts manually reviewing the new forms and manually revising software instructions to incorporate the new forms. In some cases, this can be a slow, expensive, and unreliable system. Thus, the electronic document preparation system111in accordance with principles of the present disclosure advantageously utilizes machine learning in addition to training second data in order to quickly and efficiently learn the functions related to each data field of a form and incorporate them into the electronic document preparation system111.

According to one embodiment, the electronic document preparation system111receives form data related to a new or updated version of a form. The electronic document preparation system111analyzes the form data and identifies data fields of the form. The electronic document preparation system111acquires training set data that is related to the new or updated version of the form. The training set data can include historical data related to previously prepared documents including copies of the form, or a related form, with completed data fields. The previously prepared documents can include previously prepared documents that have already been filed and approved with government or other institutions, or that were otherwise validated or approved. Additionally, or alternatively, the training set data can include fabricated data that includes previously prepared documents using fictitious data or real data that has been scrubbed of personal identifiers or otherwise altered. The electronic document preparation system111utilizes machine learning in combination with the training set data to learn the functions that provide the requested data entries for the data fields of the new form.

In one embodiment, the electronic document preparation system111can identify one or more possible dependencies for each data field to be learned. These possible dependencies can include one or more data values from other data fields of the new form, one or more data values from another related form or worksheet, one or more constants, or many other kinds of possible dependencies that can be included in a correct function for a particular data field. The electronic document preparation system111can identify the one or more possible dependencies based on natural language parsing of the descriptive text included in the new form and related to the data field. The electronic document preparation system can identify one or more possible dependencies by analyzing software from previous electronic document preparation systems that processed forms related to the new form. The electronic document preparation system111can identify possible dependencies by receiving data from an expert, from a third party, or from another source.

In one embodiment, the electronic document preparation system111generates, for each data field to be learned, a plurality of candidate functions based on the one or more dependencies and including one or more operators from a set or superset of operators. The electronic document preparation system111generates test data by applying the candidate functions to the training set data. The electronic document preparation system111then generates matching data that indicates how closely the test data matches the previously completed data fields of the training set data. When the electronic document preparation system111finds a candidate function that results in test data that matches the training set data within a selected error tolerance, electronic document preparation system111can determine that the candidate function is the correct function for the particular data field of the new form.

In one embodiment, the electronic document preparation system111can generate and output results data for review by an expert. The results data can include candidate functions that are determined to be the correct functions for respective data fields of the new form. The electronic document preparation system111can request input from the expert to approve the candidate function. Additionally, or alternatively, the electronic document preparation system111can determine that the candidate function is correct and update the electronic document preparation system111without review or approval by an expert. In this way, the electronic document preparation system can learn and incorporate new or revised forms into an electronic document preparation system111.

The electronic document preparation system111includes a user interface module112, a machine learning module113, a data acquisition module114, a natural language parsing module115, a historical form analysis module116, and a user document preparation engine117, according to one embodiment.

The interface module112is configured to receive form data119related to a new form. The interface module112can receive the form data119from an expert, from a government agency, from a financial institution, or in other suitable ways. According to one embodiment, when a new form or new version of a form is released, an expert or other personnel of the electronic document preparation system111can upload an electronic version of the form to the interface module112. The interface module112can also receive the form data in an automated manner such as by receiving automatic updates or in another way. The electronic version of the form is represented by the form data119. The form data119can include a PDF document, an HTML document, an accessible PDF document, or other types of electronic document formats. The form data can include data related the data fields, limiting values, tables, or other data related to the new form and its data fields that will be useful in the machine learning process.

The interface module112can also output results data120indicating the results of a machine learning process for particular candidate functions. The interface module112can also output learned form data121related to the finalized learned functions of the new form. An expert can obtain and review the results data120and the learned form data121from the interface module112. Results data120or other test data can also be utilized by an expert and/or an automated system to use for other purposes. For example: results data120or other test data can be used by electronic document preparation systems to test software instructions of the electronic document preparation system before making functionality associated with the software instructions available to the public.

The machine learning module113analyzes the form data119in order to learn the functions for the data fields of the new form and incorporate them into the electronic document preparation system111. The machine learning module113generates the results data120and the learned form data121.

In one embodiment, the machine learning module113is able to generate and test thousands of candidate functions very rapidly in successive iterations. The machine learning module113can utilize one or more algorithms to generate candidate functions based on many factors. The machine learning module113can generate new candidate functions based on previously tested candidate functions. The machine learning module113can utilize analysis of the form data and/or other data to learn the likely dependencies/components of the correct function for a particular data field and can generate candidate functions based on these likely components.

In one embodiment, the electronic document preparation system111uses the data acquisition module114to acquire training set data122. The training set data122includes previously prepared documents for a large number of previous users of the electronic document preparation system111or fictitious users of the electronic document preparation system111. The training set data122can be used by the machine learning module113in order to learn and incorporate the new form into the electronic document preparation system111.

In one embodiment, the training set data122can include historical data123related to previously prepared documents or previously filled forms of a large number of users. The historical data123can include, for each of a large number of previous users of the electronic document preparation system111, a respective completed copy of the new form or a completed copy of a form related to the new form. The completed copies of the form include data values in the data fields.

In one embodiment, the training set data122can include fabricated data124. The fabricated data124can include copies of the new form that were previously filled using fabricated data. The fabricated data can include real data from previous users or other people but that has been scrubbed of personal identifiers or otherwise altered.

In one embodiment, the historical data123and/or the fabricated data124also includes all of the related data used to complete the forms and to prepare the historical document. The historical data123can include previously prepared documents that include or use the completed form and which were filed with and/or approved by a government or other institution. In this way, the historical data123can be assured in large part to be accurate and properly prepared, though some of the data related to the previously prepared documents will inevitably include errors. Typically, the functions for computing or obtaining the proper data entry for a data field of a form can include data values from other forms resources related to each other and sometimes complex ways. Thus, the historical data123can include, for each historical user in the training set data, a final version of a previously prepared document, the form that is related to the new form to be learned, other forms used to calculate the values for the related form, and other sources of data for completing the related form.

In one embodiment, the electronic document preparation system111is a financial document preparation system. In this case, the historical data123can include historical financial data. The historical financial data can include, for each historical user of the electronic document preparation system111, information, such as, but not limited to, a name of the user, a name of the user's employer, an employer identification number (EID), a job title, annual income, salary and wages, bonuses, a Social Security number, a government identification, a driver's license number, a date of birth, an address, a zip code, home ownership status, marital status, W-2 income, an employer's address, spousal information, children's information, asset information, medical history, occupation, information regarding dependents, salary and wages, interest income, dividend income, business income, farm income, capital gain income, pension income, IRA distributions, education expenses, health savings account deductions, moving expenses, IRA deductions, student loan interest, tuition and fees, medical and dental expenses, state and local taxes, real estate taxes, personal property tax, mortgage interest, charitable contributions, casualty and theft losses, unreimbursed employee expenses, alternative minimum tax, foreign tax credit, education tax credits, retirement savings contribution, child tax credits, residential energy credits, and any other information that is currently used, that can be used, or that may be used in the future, in a financial document preparation system or in the preparation of financial documents such as a user's tax return, according to various embodiments.

In one embodiment, the data acquisition module114is configured to obtain or retrieve historical data123from a large number of sources. The data acquisition module114can retrieve, from databases of the electronic document preparation system111, historical data123that has been previously obtained by the electronic document preparation system111from a plurality of third-party institutions. Additionally, or alternatively, the data acquisition module114can retrieve the historical data123afresh from the third-party institutions.

In one embodiment, the data acquisition module114can also supply or supplement the historical data123by gathering pertinent data from other sources including the third party computing environment150, the public information computing environment160, the additional service provider systems135, data provided from historical users, data collected from user devices or accounts of the electronic document preparation system111, social media accounts, and/or various other sources to merge with or supplement historical data123, according to one embodiment.

The data acquisition module114can gather additional data including historical financial data and third party data. For example, the data acquisition module114is configured to communicate with additional service provider systems135, e.g., a tax return preparation system, a payroll management system, or other electronic document preparation system, to access financial data136, according to one embodiment. The data acquisition module114imports relevant portions of the financial data136into the electronic document preparation system111and, for example, saves local copies into one or more databases, according to one embodiment.

In one embodiment, the additional service provider systems135include a personal electronic document preparation system, and the data acquisition module114is configured to acquire financial data136for use by the electronic document preparation system111in learning and incorporating the new or updated form into the electronic document preparation system111. Because the services provider provides both the electronic document preparation system111and, for example, the additional service provider systems135, the service provider computing environment110can be configured to share financial information between the various systems. By interfacing with the additional service provider systems135, the data acquisition module114can supply or supplement the historical data123from the financial data136. The financial data136can include income data, investment data, property ownership data, retirement account data, age data, data regarding additional sources of income, marital status, number and ages of children or other dependents, geographic location, and other data that indicates personal and financial characteristics of users of other financial systems, according to one embodiment.

The data acquisition module114is configured to acquire additional information from various sources to merge with or supplement the training set data122, according to one embodiment. For example, the data acquisition module114is configured to gather from various sources historical data123. For example, the data acquisition module114is configured to communicate with additional service provider systems135, e.g., a tax return preparation system, a payroll management system, or other financial management system, to access financial data136, according to one embodiment. The data acquisition module114imports relevant portions of the financial data136into the training set data122and, for example, saves local copies into one or more databases, according to one embodiment.

The data acquisition module114is configured to acquire additional financial data from the public information computing environment160, according to one embodiment. The training set data can be gathered from public record searches of tax records, public information databases, property ownership records, and other public sources of information. The data acquisition module114can also acquire data from sources such as social media websites, such as Twitter, Facebook, LinkedIn, and the like.

The data acquisition module114is configured to acquire data from third parties, according to one embodiment. For example, the data acquisition module114requests and receives third party data from the third party computing environment150to supply or supplement the training set data122, according to one embodiment. In one embodiment, the third party computing environment150is configured to automatically transmit financial data to the electronic document preparation system111(e.g., to the data acquisition module114), to be merged into training set data122. The third party computing environment150can include, but is not limited to, financial service providers, state institutions, federal institutions, private employers, financial institutions, social media, and any other business, organization, or association that has maintained financial data, that currently maintains financial data, or which may in the future maintain financial data, according to one embodiment.

In one embodiment, the electronic document preparation system111utilizes the machine learning module113to learn the data fields of the new form in conjunction with training set data122. The machine learning module113generates a plurality of candidate functions for each data field of the new form to be learned and applies the candidate functions to the training set data122in order to find a candidate function that produces data values that match the corresponding data values in the completed data fields of the training set data122. The machine learning module113can continue to generate new candidate functions until the machine learning module113finds a candidate function that, when applied to the training set data122, produces data values that match the data values in the completed data fields of the training set data.

In one embodiment, the electronic document preparation system111identifies dependency data129including one or more possible dependencies for each data field to be learned. These possible dependencies can include one or more data values from other data fields of the new form, one or more data values from another related form or worksheet, one or more constants, or many other kinds of possible dependencies that can be included in a correct function for a particular data field.

In one embodiment, the machine learning module113generates candidate functions based on the dependency data129and one or more operators selected from a set or superset of operators. The operators can include arithmetic operators such as addition, subtraction, multiplication, or division operators. The operators can include logical operators such as if-then operators. The operators can include existence condition operators that depend on the existence of a data value in another data field of new form, in a form other than the new form, or in some other location or data set. The operators can include string comparisons. Each candidate function can include one or more of the operators operating on one or more of the possible dependencies.

In one embodiment, the machine learning module113learns the correct function for the data fields one at a time. In other words, if the form data119indicates that a form has10data fields to be learned, the machine learning module113will begin by learning the correct function for a first data field of the new form. In particular, the machine learning module113will generate candidate function data125corresponding to a plurality of candidate functions for the first data field of the new form as represented by the form data119. The machine learning module113also receives training set data122from the data acquisition module114. The training set data122includes data related to previously completed copies of the form to be learned or previously completed copies of a form closely related to the new form to be learned. In particular, the training set data122includes copies of the form that have a data entry in the data field that corresponds to the data field of the new form currently being analyzed and learned by the machine learning module113. The training set data122also includes data that was used to calculate the data values in the data field for each copy of the form or for each copy of the related form, e.g. W-2 data, income data, data related to other forms such as tax forms, payroll data, personal information, or any other kind of information that was used to complete the copies of the form or the copies of the related form in the training set data122. The machine learning module113generates test data126by applying each of the candidate functions to the training set data for the particular data field currently being learned. In particular, for each copy of the form or related form in the training set data122, the machine learning module113applies the candidate function to the training set data related to that copy of the form in order to generate a test data value for the data field. Thus, if the training set data122includes 1000 completed copies of the new form or a related form, then machine learning module113will generate test data126that includes one test data value for the particular data field being analyzed for each of the thousand completed copies. In one embodiment, the machine learning module113then generates matching data127by comparing the test data value for each copy of the form to the actual data value from the completed data field of that copy of the form. The matching data127indicates how many of the test data values match their corresponding completed data value from the training set data122. If the candidate function is correct, then the test data values will match the completed data values for nearly every copy of the form or related form in the training set data122.

It is expected that the training set data122may include some errors in the completed data values for the data field under test. Thus, the correct function may result in test data126that does not perfectly match the completed data fields in the training set data122. Thus, the correct candidate function will result in test data that matches the training set data within an error tolerance. In one embodiment, the machine learning module113will continue to generate and test candidate functions until a candidate function has been found that results in test data that matches the training set data122within the error tolerance. When the correct function has been found for the first data field of the new form, the machine learning module113can repeat this process for the second data field of the new form to be learned. The machine learning module113can continue in this manner until the correct function for each data field of the new form has been found.

In one embodiment, the machine learning module113generates and tests candidate functions one at a time. Each time the matching data127for a candidate function does not indicate that the candidate function is correct, the machine learning module113generates a new candidate function and tests the new candidate function. The machine learning module113can continue this process until the correct candidate function has been found. In this way, the machine learning module113generates a plurality of candidate functions sequentially for each data field under test.

In one embodiment, the machine learning module113can first generate a plurality of candidate functions and then test each of the candidate functions. If the matching data127indicates that none of the candidate functions is the correct candidate function, then the machine learning module113can generate a second plurality of candidate functions and apply them to the training set data122. The machine learning module113can continue generating candidate functions and applying them to the training set data until the correct function has been found.

In one embodiment, the machine learning module113generates candidate functions in successive iterations based on one or more algorithms. The successive iterations can be based on whether the matching data indicates that the candidate functions are becoming more accurate. The machine learning module113can continue to make adjustments to the candidate functions in directions that make the matching data more accurate until the correct function has been found.

In one embodiment, the machine learning module113generates confidence score data122based on the matching data127. The confidence score data128can indicate, for each candidate function, how confident the machine learning module113is that the candidate function is the correct function. The confidence score data128can be based on the matching data127and recurrence data.

In one embodiment, the machine learning module113generates results data120. The results data120can include matching data127and/or confidence score data128for each candidate function that has been tested for particular data field of the new form to be learned. Alternatively, the results data120can include data indicating that one or more of the candidate functions is possibly correct based on the matching data127and/or the confidence score128. Alternatively, the results data120can indicate that the correct function has been found. The results data120can also indicate what the correct function is. The results data120can be provided to the interface module112. The interface module112can output the results data120to an expert or other personnel for review and/or approval.

In one embodiment, the machine learning module113outputs results data120indicating that a candidate function has been found that is likely correct. The results data120can indicate what the candidate function is, the matching data127or confidence score data128related to the candidate function, or any other information that will be useful for review by an expert. The machine learning module113can cause the interface module112to prompt an expert to review the results data120and to approve the candidate function as correct or to indicate that the candidate function is not correct and that the machine learning module113should continue generating candidate functions for the data field currently under test. The machine learning module113awaits input from the expert or other personnel approving the candidate function. If the candidate function is approved by the expert or other personnel, the machine learning module113determines that the correct function has been found and moves on to finding the correct function the next data field of the new form.

In one embodiment, the machine learning module113does not wait for the approval of an expert before determining that the correct candidate function test and found. Instead, when the machine learning module113determines that the correct function has been found based on the matching data, the confidence score data128, and/or other criteria, the machine learning module113moves onto the next data field of the new form under test.

In one embodiment, when the machine learning module113has learned the correct function for each data field of the new form, then the machine learning module113generates learned form data121. The learned form data121indicates that the new form has been learned. The learned form data121can also indicate what the correct functions are for each of the data fields of the new form. The interface module112can output the learned form data121for review and/or approval by expert. In one embodiment, once the expert or other personnel has approved the learned form data121, the machine learning module113ceases analysis of the new form and awaits form data119related to another form to be learned.

In one embodiment, the financial preparation system111includes a user document preparation engine117. The document preparation engine117is the engine that assists users of the electronic document preparation system111to prepare a financial document based on or including the newly learned form as well as other forms. The user document preparation engine117includes current document instructions data131. The current document instructions data131includes software instructions, modules, engines, or other data or processes used to assist users of the electronic document preparation system111in electronically preparing a document.

In one embodiment, once the machine learning module113has fully learned the correct functions for the data fields of a new form, the machine learning module113incorporates the newly learned form into the electronic document preparation system111by updating the current document instructions data131. When the current document instructions data131has been updated to include and recognize the new form, then users of the electronic document preparation system can electronically complete the new form using the electronic document preparation system111. In this way, the electronic document preparation system111quickly provides functionality that electronically complete the data fields of the new form as part of preparing a financial document.

In one embodiment, the user computing environment140is a computing environment related to a user of the electronic document preparation system111. The user computing environment140includes input devices141and output devices142for communicating with the user, according one embodiment. The input devices141include, but are not limited to, keyboards, mice, microphones, touchpads, touchscreens, digital pens, and the like. The output devices142include, but are not limited to, speakers, monitors, touchscreens, and the like. The output devices142can display data related to the preparation of the financial document.

In one embodiment, the machine learning module113can also generate interview content to assist in a financial document preparation interview. As a user utilizes the electronic document preparation system111to prepare a financial document, the user document preparation engine117may guide the user through a financial document preparation interview in order to assist the user in preparing the financial document. The interview content can include graphics, prompts, text, sound, or other electronic, visual, or audio content that assists the user to prepare the financial document. The interview content can prompt the user to provide data, to select relevant forms to be completed as part of the financial document preparation process, to explore financial topics, or otherwise assist the user in preparing the financial document. When the machine learning module113learns the correct function for each data field of a form, the machine learning module113can also generate text or other types of audio or video prompts that describe the function and that can prompt the user to provide information that the user document preparation engine117will use to complete the form. Thus, the machine learning module113can generate interview content to assist in a financial document preparation interview.

In one embodiment, the machine learning module113updates the current document instructions data131once a new form has been entirely learned without input or approval of an expert or other personnel. In one embodiment, the machine learning module113updates the current document instructions data131only after an expert has given approval that the new form has been properly learned.

In one embodiment, the machine learning module113only learns the candidate function for selected fields of a new form. For example, the machine learning module113may be configured to perform machine learning processes to learn the correct functions for certain types of data fields. Some types of data fields may not be as conducive to machine learning processes or for other reasons the machine learning module113may be configured to learn only particular data fields of a new form. In these cases, the machine learning module113will only learn certain selected data fields of the new form. In some cases, the machine learning module113may determine that it is unable to learn the correct function for one or more data fields after generating and testing many candidate functions for the one or more data fields. The results data120can therefore include data indicating that the correct function for a particular data field of the new form cannot be learned by the machine learning module113.

In one embodiment, once the form data119has been provided to the electronic document preparation system111, the expert or other personnel can input an indication of which data fields of the new form should be learned by the machine learning module113. The machine learning module113will then only learn the correct functions for those fields of the new form that have been indicated by the expert or other personnel. In one embodiment, the form data119can indicate which data fields the machine learning module113should learn. In this way, the machine learning module113only attempt to learn selected data fields of a new form.

In one embodiment, the correct function for a data field may be simple or complex. A complex function may require that multiple data values be gathered from multiple places within other forms, the same form, from a user, or in other locations. A complex function may also include mathematical relationships that will be applied to the multiple data values in complex ways in order to generate the proper data value for the data field. A function may include finding the minimum data value among two or more data values, finding the maximum data value among two or more data values, addition, subtraction, multiplication, division, exponential functions, logic functions, existence conditions, string comparisons, etc. The machine learning module113can generate and test complex candidate functions until the correct function has been found for a particular data field.

In one embodiment, new forms may include data fields that expect data values that are alphabetical such as a first name, a last name, a middle name, a middle initial, a company name, a name of a spouse, a name of a child, a name of a dependent, a home address, a business address, a state of residence, the country of citizenship, or other types of data values that are generally alphabetic. In these cases, the correct function may include a person, a lasting, a middle name, a middle initial, a company name, a name of a spouse, a name of a child, a name of a defendant, a home address, a business address, a state residence, the country citizenship, or other types of alphabetic data values as the case may be. The correct function can also include a location from which these alphabetic data values may be retrieved in other forms, worksheets, or financial related data otherwise provided by users or gathered from various sources. The forms may also include data fields that expect data values that are numeric by nature. These a values may include incomes, tax withholdings, Social Security numbers, identification numbers, ages, loan payments, interest payments, charitable contributions, mortgage payments, dates, or other types of data values that are typically numeric in nature.

In one embodiment, the machine learning module113can generate candidate functions for a particular data field by referring to the dependency data that can provide an indication of the types of data that are likely to be included in the correct function and their likely location in other forms or data. For example, the machine learning module113can utilize historical document instructions data130, natural language parsing data132, current document instruction data131, and other types of contextual clues or hints in order to find a likely starting place for generating candidate functions. For this reason, the electronic document preparation system111can include a natural language parsing module115and the historical form analysis module116.

In one embodiment, the natural language parsing module115analyzes the form data119with a natural language parsing process. In particular, the natural language parsing module analyzes the text description associated with each data field of the new form on the analysis. For example, the form data119may include text descriptions for the various data fields of the new form. The natural language parsing module115analyzes these text descriptions and generates natural language parsing data132indicating the type of data value expected in each data field based on the text description. The natural language parsing module115provides the natural parsing data132to the machine learning module113. The machine learning module113generates candidate functions for the various data fields based on the natural language parsing data132. In this way, the machine learning module113utilizes the natural language parsing data132to assist in the machine learning process.

In one embodiment, the historical form analysis module116analyzes the form data119in order to determine if it is likely that previous versions of the electronic document preparation system111included software instructions that computed data values for data fields of historical forms that are similar to the new form. Accordingly, the historical form analysis module116analyzes the historical document instructions data130that includes software instructions from previous versions of the electronic document preparation system111. Because it is possible that the previous versions of the electronic document preparation system utilized software languages or structures that are now obsolete, the historical document instructions data130cannot easily or simply be analyzed or imported into the current document instructions data131. For this reason, the historical form analysis module116can analyze the historical document instructions data130related to historical forms that are similar to the new form. Such historical forms may include previous versions of the new form. The historical form analysis module116can identify from the outdated software language the correct functions related to data fields of the historical forms and can generate historical instruction analysis data that indicates the correct functions for the previous version of the form. The machine learning module113can utilize these instructions in order to find a starting point for generating the candidate functions in order to learn the data fields of the new form.

In some cases, a new form may be nearly identical to a previous known version of the form. In these cases, the training set data122can include historical data123that relates to previously prepared, filed, and/or approved financial documents that included or based on the previous known form. In these cases, the data acquisition module114will gather a training set data122that includes a large number of previously completed copies of the previous version of the form. The machine learning module113generates the candidate functions and applies them to the training set data as described previously.

In some cases, a new form may include data fields that are different enough that no analogous previously prepared financial documents are available to assist in the machine learning process. In one embodiment, the data acquisition module114gathers training set data122that includes fabricated financial data124. The fabricated financial data124can include copies of the new form prepared with fabricated financial data by a third-party organization or a processor system associated with the service provider computing environment110. The fabricated financial data124can be used by the machine learning module113in the machine learning process for learning the correct functions associated with the data fields of the new form. In such a case the machine learning module113generates candidate functions and applies them to the training set data122including the fabricated financial data124as described previously.

In one embodiment, the training set data122can include both historical data123and fabricated financial data124. In some cases, the historical data123can include previously prepared documents as well as previously fabricated financial documents based on fictitious or real financial data.

In one embodiment, the data acquisition module114gathers new training set data122each time a new data field of the new form is to be analyzed by the machine learning module113. The data acquisition module114can gather a large training set data122including many thousands or millions of previously prepared or previously fabricated financial documents. When a new data field of a new form is to be learned by the machine learning module113, the data acquisition module114will gather training set data122, or subset of the training set data122, that includes a selected number of previously prepared financial documents that each have a data value in a data field of a form that corresponds to the data field of the new form that is currently being learned by the machine learning module113. In some cases, the training set data122can include millions of previously prepared financial documents, not only a few hundred or thousands of the previously prepared documents are needed for analysis by the machine learning module113. Thus, the data acquisition module114can gather training set data that is appropriate and efficient for the machine learning module113to use the learning the current data field of the new form.

In one embodiment, the electronic document preparation system111is a tax return preparation system. Preparing a single tax return can require many government tax forms, many internal worksheets use by the tax return preparation system in preparing a tax return, W-2 forms, and many other types of forms or financial data pertinent to the preparation of a tax return preparation system. For each tax return that is prepared for a user, the tax return preparation system maintains copies of all of the various tax forms, internal worksheets, data provided by the user and any other relevant financial data used to prepare the tax return. Thus, the tax return preparation system maintains historical tax return data related to millions of previously prepared tax returns. The tax return preparation system can utilize the historical tax return data to gather or generate relevant training set data122that can be used by the machine learning module113.

In one embodiment, a state or federal agency releases a new tax form that is simply a new version of a previous tax form during tax return preparation season. an expert upload form data119to the interface module112. The form data119corresponds to an electronic version of the new tax form. Many or all of the data fields of the new tax form may be similar to those of the previous tax form. The machine learning module113begins to learn the new tax form starting with a first selected data field of the new tax form. The first selected data field corresponds to a first selected line of the new tax form, not necessarily line1of the new tax form. The machine learning module113causes the data acquisition module114to gather training set data122that includes a large number of previously prepared tax returns and the tax related data associated with the previously prepared tax returns. In particular, the training set data122will include previously prepared tax returns that use the previous version of the new form. The machine learning module113generates a plurality of candidate functions for the first selected data field and applies them to the training set data122. For each candidate function, the machine learning module113generates matching data127and/or confidence score data128indicating how well the test data126matches the training set data122. The machine learning module113generates results data120indicating the matching data127and/or the confidence score data128of one or more of the candidate functions. The results data120can also indicate whether a candidate function is deemed to be the correct function for the first selected data field.

The machine learning module113moves onto a second selected data field after the correct function has been found for the first selected data field. The data fields correspond to selected lines of the new tax form. The machine learning module113continues in this manner until all selected data fields of the new tax form have been found. When all selected data fields of the new tax form have been learned, the machine learning module113generates learned form data121indicating that all selected fields of the new form have been learned. The interface module112can present results data120or learned form data121for review and/or approval by an expert or other personnel. Alternatively, the machine learning module113can move from one data field to the next data field without approval or review by an expert.

In one embodiment, the tax return preparation system receives form data119corresponding to a new form for which an adequate previously known form cannot be found. In this case, the data acquisition module114gathers training set data that can include fabricated financial data124. The fabricated financial data124can include fictitious previously prepared tax returns and the fabricated financial data that was used to prepare them. The data acquisition module114can obtain the fabricated financial data124from one or more third parties, one or more associated tax return preparation systems, or in any other way. For example, the tax return preparation system can generate fabricated financial data and provided to one or more third parties to prepare a fabricated tax return using the new tax form. The fabricated financial data can include data related to real users of the tax return preparation system, a script of actual identifiers such as real names, real Social Security numbers, etc. The third parties can then prepare tax returns from the fabricated financial data using the new form. The third parties can then provide the fabricated tax returns to the tax return preparation system. The tax return preparation system can then utilize the fabricated financial data124in conjunction with the machine learning module113to learn the correct functions for the data fields of the new form.

In one example, the tax return preparation system receives form data119related to any tax form. The data acquisition module114gathers training set data122that includes historical tax return data related to previously prepared tax returns and or fabricated historical tax return data related to fabricated tax returns using the new form. The machine learning module113undertakes to learn the correct function for generating the data value to be entered into line3of the new tax form. The machine learning module113refers to the dependency data that indicates that the correct function for line3is possibly based on the values of line31, line2c, and the constants 3000 and 6000. The training set data122includes numerous previously completed copies of the new form or a related form each having a data value in line3. The training set data122also includes all the financial tax related data that were used to prepare the real or fabricated tax returns. The machine learning module113generates a candidate function for line3of the new form. The machine learning module113applies the candidate function to the training set data122. In particular, the machine learning module113generates test data126by generating test values for line3of each of the previously completed copies of the new or related form. The machine learning module113generates matching data by comparing the test values to the actual completed data values from the training set data122for line3. The matching data127indicates how well the test values match the actual values in line3of the previously completed forms. If the matching data127indicates that the test data126matches the training set data122within a selected error tolerance, then the machine learning module113determines that the candidate function is correct or may be correct. After many iterations of generating and testing candidate functions, the machine learning module113concludes that the correct function for line3is that if line31exists, then line3will be the same as line31. If line31does not exist, then line3is the minimum of 6000 or 3000 multiplied by the value from line2c.

In one embodiment, the machine learning module113can also generate confidence score data128indicating a level of confidence that the candidate function is correct. The machine learning module113generates results data120that indicate that the candidate function is likely the correct function. The interface module112outputs the results data120for review and/or approval by expert or other personnel. The expert or other personnel can approve the candidate function, causing the machine learning module113to move to the next selective line of the new tax form. Alternatively, the machine learning module113can decide that the candidate function is correct without approval from an expert or other personnel and can move onto the next selective line of the new tax form. If the matching data127indicates that the candidate function does not match the training set data well, then the machine learning module113generates one or more other candidate functions and generates test data126by applying the one or more candidate functions to the training set data122in the same way. The machine learning module113can continue to generate candidate functions in successive iterations until the correct candidate function has been found. The machine learning module113can continue from one line of the new tax form to the next until all selected lines of the tax form have been correctly learned by the machine learning module113.

In one embodiment, when all selected lines of the new tax form have been learned, the machine learning module113generates learned form data121that indicates that the new tax form has been learned. The learned form data121can also include the correct functions for each selected line of the new tax form. The interface module112can output the learned form data121for review by an expert or other personnel.

In one embodiment, when the tax form has been learned by the machine learning module113, the machine learning module113updates the current document instructions data131to include software instructions for completing the new tax form as part of the tax return preparation process.

While the present disclosure describes a process for finding a correct candidate function, a correct candidate function can correspond to an acceptable candidate function that is not necessarily entirely correct. Therefore, it is possible that a correct candidate function may be an acceptable candidate function even if there is not complete surety that candidate function is entirely correct. A correct candidate function can be a candidate function that produces matching data that is accurate within an acceptable error threshold. Thus, embodiments of the present disclosure can identify acceptable candidate functions.

Embodiments of the present disclosure address some of the shortcomings associated with traditional electronic document preparation systems that do not adequately learn and incorporate new forms into the electronic document preparation system. An electronic document preparation system in accordance with one or more embodiments provides more reliable financial management services by utilizing machine learning and training set data to learn and incorporate new forms into the electronic document preparation system. The various embodiments of the disclosure can be implemented to improve the technical fields of data processing, data collection, resource management, and user experience. Therefore, the various described embodiments of the disclosure and their associated benefits amount to significantly more than an abstract idea. In particular, by utilizing machine learning to learn and incorporate new forms in the electronic document preparation system, electronic document preparation system can more efficiently learn and incorporate new forms into the electronic document preparation system.

PROCESS

FIG. 2illustrates a functional flow diagram of a process200for learning and incorporating new forms in an electronic document preparation system, in accordance with one embodiment.

At block202the user interface module112receives form data related to a new form having a plurality of data fields that expect data values in accordance with specific functions, according to one embodiment. From block202the process proceeds to block204.

At block204the data acquisition module114gathers training set data related to previously filled forms having completed data fields that each correspond to a respective data field of the new form, according to one embodiment. From block204the process proceeds to block206.

At block206the machine learning module113generates candidate function data including, for each data field of the new form, a plurality of candidate functions for providing the expected data value for the data field, according to one embodiment. From block206the process proceeds to block208.

At block208the machine learning module113generates test data by applying the candidate functions to the training set data, according to one embodiment. From block208the process proceeds to block210.

At block210the machine learning module113generates matching data indicating how closely each candidate function matches the test data, according to one embodiment. From block210the process proceeds to block212.

At block212, the machine learning module113identifies a respective correct function for each data field of the new form based on the matching data. From block212the process proceeds to block214.

At block214the machine learning module113generates results data indicating the correct function for each data field of the new form, according to one embodiment. From block214the process proceeds to block216.

At block216, the interface module112outputs the results data for review by an expert or other personnel, according to one embodiment.

Although a particular sequence is described herein for the execution of the process200, other sequences can also be implemented. For example, the data acquisition module can gather training set data each time a new data field of the new form as to be learned. The machine learning module113can generate a single candidate function at a time and can generate test data and matching data for that candidate function and determine if the candidate function is correct based on the matching data. If the candidate function is not correct, the machine learning module113returns to step206and generates a new candidate function and repeats the process until the correct function has been found for the data field currently being learned. When the correct function is found for a particular data field, the data acquisition module can again gather training set data for the next data field and the machine learning module113can generate, test, and analyze candidate functions until the correct function has and found. The machine learning module113can generate candidate functions based on dependency data that indicates one or more possible dependencies for the correct function a given data field. The machine learning module113can generate candidate functions by selecting one or more operators from a set of operators. Other sequences can also be implemented.

FIG. 3illustrates a flow diagram of a process300for learning and incorporating new forms in an electronic document preparation system, according to various embodiments.

In one embodiment, process300for learning and incorporating new forms in an electronic document preparation system begins at BEGIN302and process flow proceeds to RECEIVE FORM DATA RELATED TO A NEW FORM HAVING A PLURALITY OF DATA FIELDS304.

In one embodiment, at RECEIVE FORM DATA RELATED TO A NEW FORM HAVING A PLURALITY OF DATA FIELDS304process300for learning and incorporating new forms in an electronic document preparation system receives form data related to a new form having a plurality of data fields.

In one embodiment, once process300for learning and incorporating new forms in an electronic document preparation system receives form data related to a new form having a plurality of data fields at RECEIVE FORM DATA RELATED TO A NEW FORM HAVING A PLURALITY OF DATA FIELDS304process flow proceeds to GATHER TRAINING SET DATA RELATED TO PREVIOUSLY FILLED FORMS, EACH PREVIOUSLY FILLED FORM HAVING COMPLETED DATA FIELDS THAT EACH CORRESPOND TO A RESPECTIVE DATA FIELD OF THE NEW FORM306.

In one embodiment, at GATHER TRAINING SET DATA RELATED TO PREVIOUSLY FILLED FORMS, EACH PREVIOUSLY FILLED FORM HAVING COMPLETED DATA FIELDS THAT EACH CORRESPOND TO A RESPECTIVE DATA FIELD OF THE NEW FORM306, process300for learning and incorporating new forms in an electronic document preparation system gathers training set data related to previously filled forms, each previously filled form having completed data fields that each correspond to a respective data field of the new form.

In one embodiment, once process300for learning and incorporating new forms in an electronic document preparation system gathers training set data related to previously filled forms, each previously filled form having completed data fields that each correspond to a respective data field of the new form at GATHER TRAINING SET DATA RELATED TO PREVIOUSLY FILLED FORMS, EACH PREVIOUSLY FILLED FORM HAVING COMPLETED DATA FIELDS THAT EACH CORRESPOND TO A RESPECTIVE DATA FIELD OF THE NEW FORM306, process flow proceeds to GENERATE, FOR A FIRST SELECTED DATA FIELD OF THE PLURALITY OF DATA FIELDS OF THE NEW FORM, DEPENDENCY DATA INDICATING ONE OR MORE POSSIBLE DEPENDENCIES FOR A CORRECT FUNCTION THAT PROVIDES A PROPER DATA VALUE FOR THE FIRST SELECTED DATA FIELD308.

In one embodiment, at GENERATE, FOR A FIRST SELECTED DATA FIELD OF THE PLURALITY OF DATA FIELDS OF THE NEW FORM, DEPENDENCY DATA INDICATING ONE OR MORE POSSIBLE DEPENDENCIES FOR A CORRECT FUNCTION THAT PROVIDES A PROPER DATA VALUE FOR THE FIRST SELECTED DATA FIELD308, process300for learning and incorporating new forms in an electronic document preparation system generates, for a first selected data field of the plurality of data fields of the new form, dependency data indicating one or more possible dependencies for a correct function that provides a proper data value for the first selected data field.

In one embodiment, once process300for learning and incorporating new forms in an electronic document preparation system generates, for a first selected data field of the plurality of data fields of the new form, dependency data indicating one or more possible dependencies for a correct function that provides a proper data value for the first selected data field at GENERATE, FOR A FIRST SELECTED DATA FIELD OF THE PLURALITY OF DATA FIELDS OF THE NEW FORM, DEPENDENCY DATA INDICATING ONE OR MORE POSSIBLE DEPENDENCIES FOR A CORRECT FUNCTION THAT PROVIDES A PROPER DATA VALUE FOR THE FIRST SELECTED DATA FIELD308, process flow proceeds to GENERATE, FOR THE FIRST SELECTED DATA FIELD, CANDIDATE FUNCTION DATA INCLUDING A PLURALITY OF CANDIDATE FUNCTIONS BASED ON THE DEPENDENCY DATA AND ONE OR MORE OPERATORS SELECTED FROM A SET OF OPERATORS310.

In one embodiment, at GENERATE, FOR THE FIRST SELECTED DATA FIELD, CANDIDATE FUNCTION DATA INCLUDING A PLURALITY OF CANDIDATE FUNCTIONS BASED ON THE DEPENDENCY DATA AND ONE OR MORE OPERATORS SELECTED FROM A SET OF OPERATORS310, process300for learning and incorporating new forms in an electronic document preparation system generates, for the first selected data field, candidate function data including a plurality of candidate functions based on the dependency data and one or more operators selected from a set of operators, according to one embodiment.

In one embodiment, once process300for learning and incorporating new forms in an electronic document preparation system generates, for the first selected data field, candidate function data including a plurality of candidate functions based on the dependency data and one or more operators selected from a set of operators at GENERATE, FOR THE FIRST SELECTED DATA FIELD, CANDIDATE FUNCTION DATA INCLUDING A PLURALITY OF CANDIDATE FUNCTIONS BASED ON THE DEPENDENCY DATA AND ONE OR MORE OPERATORS SELECTED FROM A SET OF OPERATORS310, process flow proceeds to GENERATE, FOR EACH CANDIDATE FUNCTION, TEST DATA BY APPLYING THE CANDIDATE FUNCTION TO THE TRAINING SET DATA312.

In one embodiment, at GENERATE, FOR EACH CANDIDATE FUNCTION, TEST DATA BY APPLYING THE CANDIDATE FUNCTION TO THE TRAINING SET DATA312the process300generates, for each candidate function, test data by applying the candidate function to the training set data.

In one embodiment, once process300generates, for each candidate function, test data by applying the candidate function to the training set data at GENERATE, FOR EACH CANDIDATE FUNCTION, TEST DATA BY APPLYING THE CANDIDATE FUNCTION TO THE TRAINING SET DATA312, process flow proceeds to GENERATE, FOR EACH CANDIDATE FUNCTION, MATCHING DATA BY COMPARING THE TEST DATA TO THE COMPLETED DATA FIELDS CORRESPONDING TO THE FIRST SELECTED DATA FIELD, THE MATCHING DATA INDICATING HOW CLOSELY THE TEST DATA MATCHES THE CORRESPONDING COMPLETED DATA FIELDS OF THE PREVIOUSLY FILLED FORMS314.

In one embodiment, at GENERATE, FOR EACH CANDIDATE FUNCTION, MATCHING DATA BY COMPARING THE TEST DATA TO THE COMPLETED DATA FIELDS CORRESPONDING TO THE FIRST SELECTED DATA FIELD, THE MATCHING DATA INDICATING HOW CLOSELY THE TEST DATA MATCHES THE CORRESPONDING COMPLETED DATA FIELDS OF THE PREVIOUSLY FILLED FORMS314the process300for learning and incorporating new forms in an electronic document preparation system generates, for each candidate function, matching data by comparing the test data to the completed data fields corresponding to the first selected data field, the matching data indicating how closely the test data matches the corresponding completed data fields of the previously filled forms.

In one embodiment, once the process300for learning and incorporating new forms in an electronic document preparation system generates, for each candidate function, matching data by comparing the test data to the completed data fields corresponding to the first selected data field, the matching data indicating how closely the test data matches the corresponding completed data fields of the previously filled forms at GENERATE, FOR EACH CANDIDATE FUNCTION, MATCHING DATA BY COMPARING THE TEST DATA TO THE COMPLETED DATA FIELDS CORRESPONDING TO THE FIRST SELECTED DATA FIELD, THE MATCHING DATA INDICATING HOW CLOSELY THE TEST DATA MATCHES THE CORRESPONDING COMPLETED DATA FIELDS OF THE PREVIOUSLY FILLED FORMS314, process flow proceeds to IDENTIFY, FROM THE PLURALITY OF CANDIDATE FUNCTIONS, A CORRECT CANDIDATE FUNCTION FOR THE FIRST DATA FIELD OF THE NEW FORM BY DETERMINING, FOR EACH CANDIDATE FUNCTION, WHETHER OR NOT THE CANDIDATE FUNCTION IS THE CORRECT FUNCTION FOR THE FIRST SELECTED DATA FIELD OF THE NEW FORM BASED ON THE MATCHING DATA316.

In one embodiment, at IDENTIFY, FROM THE PLURALITY OF CANDIDATE FUNCTIONS, A CORRECT CANDIDATE FUNCTION FOR THE FIRST DATA FIELD OF THE NEW FORM BY DETERMINING, FOR EACH CANDIDATE FUNCTION, WHETHER OR NOT THE CANDIDATE FUNCTION IS THE CORRECT FUNCTION FOR THE FIRST SELECTED DATA FIELD OF THE NEW FORM BASED ON THE MATCHING DATA316the process300for learning and incorporating new forms in an electronic document preparation system identifies, from the plurality of candidate functions, a correct candidate function for the first data field of the new form by determining, for each candidate function, whether or not the candidate function is the correct function for the first selected data field of the new form based on the matching data.

In one embodiment, once the process300for learning and incorporating new forms in an electronic document preparation system identifies, from the plurality of candidate functions, a correct candidate function for the first data field of the new form by determining, for each candidate function, whether or not the candidate function is the correct function for the first selected data field of the new form based on the matching data at IDENTIFY, FROM THE PLURALITY OF CANDIDATE FUNCTIONS, A CORRECT CANDIDATE FUNCTION FOR THE FIRST DATA FIELD OF THE NEW FORM BY DETERMINING, FOR EACH CANDIDATE FUNCTION, WHETHER OR NOT THE CANDIDATE FUNCTION IS THE CORRECT FUNCTION FOR THE FIRST SELECTED DATA FIELD OF THE NEW FORM BASED ON THE MATCHING DATA316, process flow proceeds to GENERATE, AFTER IDENTIFYING THE CORRECT FUNCTION FOR THE FIRST DATA FIELD, RESULTS DATA INDICATING THE CORRECT FUNCTION FOR THE FIRST SELECTED DATA FIELD OF THE NEW FORM318.

In one embodiment, at GENERATE, AFTER IDENTIFYING THE CORRECT FUNCTION FOR THE FIRST SELECTED DATA FIELD, RESULTS DATA INDICATING THE CORRECT FUNCTION FOR THE FIRST DATA FIELD OF THE NEW FORM318, the process300for learning and incorporating new forms in an electronic document preparation system generates, after identifying the correct function for the first data field, results data indicating the correct function for the first selected data field of the new form.

In one embodiment, once the process300for learning and incorporating new forms in an electronic document preparation system generates, after identifying the correct function for the first selected data field, results data indicating the correct function for the first data field of the new form at GENERATE, AFTER IDENTIFYING THE CORRECT FUNCTION FOR THE FIRST SELECTED DATA FIELD, RESULTS DATA INDICATING THE CORRECT FUNCTION FOR THE FIRST DATA FIELD OF THE NEW FORM318proceeds to OUTPUT THE RESULTS DATA320.

In one embodiment, at OUTPUT THE RESULTS DATA320the process300for learning and incorporating new forms in an electronic document preparation system outputs the results data.

In one embodiment, once the process300for learning and incorporating new forms in an electronic document preparation system outputs the results data at OUTPUT THE RESULTS DATA320, process flow proceeds to END322.

In one embodiment, at END322the process for learning and incorporating new forms in an electronic document preparation system is exited to await new data and/or instructions.

As noted above, the specific illustrative examples discussed above are but illustrative examples of implementations of embodiments of the method or process for learning and incorporating new forms in an electronic document preparation system. Those of skill in the art will readily recognize that other implementations and embodiments are possible. Therefore, the discussion above should not be construed as a limitation on the claims provided below.

In one embodiment, a computing system implements a method for learning and incorporating new forms in an electronic document preparation system. The method includes receiving form data related to a new form having a plurality of data fields and gathering training set data related to previously filled forms. Each previously filled form has completed data fields that each correspond to a respective data field of the new form. The method also includes generating, for a first selected data field from the plurality of data fields of the new form, candidate function data including a plurality of candidate input functions for providing a proper data value for the first selected data field, generating, for each candidate function, test data by applying the candidate function to the training set data, and generating, for each candidate function, matching data by comparing the test data to the completed data fields corresponding to the first selected data field. The matching data indicates how closely the test data matches the corresponding completed data fields of the previously filled forms. The method also includes identifying, from the plurality of functions, a correct candidate function for the first data field of the new form by determining, for each candidate function, whether or not the candidate function is the correct function for the first selected data field of the new form based on the matching data. The method also includes generating, after identifying the correct function for the first data field, results data indicating the correct function for the first data field of the new form and outputting the results data.

In one embodiment, a non-transitory computer-readable medium has a plurality of computer-executable instructions which, when executed by a processor, perform a method for learning and incorporating new forms in an electronic document preparation system. The instructions include an interface module configured to receive form data representing to a new form having a plurality of data fields and a data acquisition module configured to gather training set data related to previously filled forms. Each previously filled form has completed data fields that each correspond to a respective data field of the new form. The instructions also include a machine learning module configured to identify a respective correct function for each of the data fields of the new form by generating candidate function data relating to a plurality of candidate functions, generating test data by applying the candidate functions to the training set data, and finding, for each of the data fields a respective correct function from the plurality of candidate functions based on a how closely the test data matches the candidate function data.

One embodiment is a system for learning and incorporating new forms in an electronic document preparation system. The system includes at least one processor and at least one memory coupled to the at least one processor, the at least one memory having stored therein instructions which, when executed by any set of the one or more processors, perform a process. The process includes receiving, with an interface module of a computing system, form data related to a new form having a plurality of data fields and gathering training set data related to previously filled forms. Each previously filled form has completed data fields that each correspond to a respective data field of the new form. The process also includes generating, with a data acquisition module of a computing system, for a first selected data field from the plurality of data fields of the new form, candidate function data including a plurality of candidate input functions for providing a proper data value for the first selected data field. The process also includes generating, with a machine learning module of a computing system, for each candidate function, test data by applying the candidate function to the training set data and generating, for each candidate function, matching data by comparing the test data to the completed data fields corresponding to the first selected data field. The matching data indicates how closely the test data matches the corresponding completed data fields of the previously filled forms. The process also includes identifying, with the machine learning module, from the plurality of functions, a correct candidate function for the first data field of the new form by determining, for each candidate function, whether or not the candidate function is the correct function for the first selected data field of the new form based on the matching data. The process also includes generating, with the machine learning module, after identifying the correct function for the first data field, results data indicating the correct function for the first data field of the new form and outputting, with the interface module, the results data.

One embodiment is a computing system implemented method for learning and incorporating new forms in an electronic document preparation system. The method includes receiving form data related to a new form having a plurality of data fields, gathering training set data related to previously filled forms. Each previously filled form has completed data fields that each correspond to a respective data field of the new form. The method also includes generating, for a first selected data field of the plurality of data fields of the new form, dependency data indicating one or more possible dependencies for a correct function that provides a proper data value for the first selected data field. The method further includes generating, for the first selected data field, candidate function data including a plurality of candidate functions based on the dependency data and one or more operators selected from a set of operators, generating, for each candidate function, test data by applying the candidate function to the training set data, and generating, for each candidate function, matching data by comparing the test data to the completed data fields corresponding to the first selected data field, the matching data indicating how closely the test data matches the corresponding completed data fields of the previously filled forms. The method also includes identifying, from the plurality of functions, the correct candidate function for the first selected data field of the new form by determining, for each candidate function, whether or not the candidate function is the correct function for the first selected data field of the new form based on the matching data, generating, after identifying the correct function for the first data field, results data indicating the correct function for the first data field of the new form, and outputting the results data.

One embodiment is a non-transitory computer-readable medium having a plurality of computer-executable instructions which, when executed by a processor, perform a method for learning and incorporating new forms in an electronic document preparation system. The instructions include an interface module configured to receive form data representing to a new form having a plurality of data fields. The instructions include a data acquisition module configured to gather training set data related to previously filled forms. Each previously filled form has completed data fields that each correspond to a respective data field of the new form. The instructions also include a machine learning module configured to identify a respective correct function for each of the data fields of the new form by generating candidate function data relating to a plurality of candidate functions based on dependency data indicating possible dependencies for each data field of the new form and including one or more operators from a set of operators, generating test data by applying the candidate functions to the training set data, and finding, for each of the data fields a respective correct function from the plurality of candidate functions based on a how closely the test data matches the candidate function data.

One embodiment is a system for learning and incorporating new forms in an electronic document preparation system. The system includes at least one processor at least one memory coupled to the at least one processor. The at least one memory has stored therein instructions which, when executed by any set of the one or more processors, perform a process. The process includes receiving, with an interface module of a computing system, form data related to a new form having a plurality of data fields, gathering, with a data acquisition module of a computing system, training set data related to previously filled forms. Each previously filled form has completed data fields that each correspond to a respective data field of the new form. The process also includes generating, with a machine learning module of a computing system, for a first selected data field of the plurality of data fields of the new form, dependency data indicating one or more possible dependencies for a correct function that provides a proper data value for the first selected data field. The process also includes generating, with the machine learning module, for the first selected data field, candidate function data including a plurality of candidate functions based on the dependency data and one or more operators selected from a set of operators, generating, with the machine learning module, for each candidate function, test data by applying the candidate function to the training set data, and generating, with the machine learning module, for each candidate function, matching data by comparing the test data to the completed data fields corresponding to the first selected data field, the matching data indicating how closely the test data matches the corresponding completed data fields of the previously filled forms. The process also includes identifying, with the machine learning module, from the plurality of functions, the correct candidate function for the first selected data field of the new form by determining, for each candidate function, whether or not the candidate function is the correct function for the first selected data field of the new form based on the matching data, generating, with the machine learning module and after identifying the correct function for the first data field, results data indicating the correct function for the first data field of the new form, and outputting, with the interface module, the results data.

As discussed in more detail above, using the above embodiments, with little or no modification and/or input, there is considerable flexibility, adaptability, and opportunity for customization to meet the specific needs of various parties under numerous circumstances.

Some portions of the above description present the features of the present invention in terms of algorithms and symbolic representations of operations, or algorithm-like representations, of operations on information/data. These algorithmic or algorithm-like descriptions and representations are the means used by those of skill in the art to most effectively and efficiently convey the substance of their work to others of skill in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs or computing systems. Furthermore, it has also proven convenient at times to refer to these arrangements of operations as steps or modules or by functional names, without loss of generality.

Unless specifically stated otherwise, as would be apparent from the above discussion, it is appreciated that throughout the above description, discussions utilizing terms such as, but not limited to, “activating”, “accessing”, “adding”, “aggregating”, “alerting”, “applying”, “analyzing”, “associating”, “calculating”, “capturing”, “categorizing”, “classifying”, “comparing”, “creating”, “defining”, “detecting”, “determining”, “distributing”, “eliminating”, “encrypting”, “extracting”, “filtering”, “forwarding”, “generating”, “identifying”, “implementing”, “informing”, “monitoring”, “obtaining”, “posting”, “processing”, “providing”, “receiving”, “requesting”, “saving”, “sending”, “storing”, “substituting”, “transferring”, “transforming”, “transmitting”, “using”, etc., refer to the action and process of a computing system or similar electronic device that manipulates and operates on data represented as physical (electronic) quantities within the computing system memories, resisters, caches or other information storage, transmission or display devices.

The present invention is well suited to a wide variety of computer network systems operating over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to similar or dissimilar computers and storage devices over a private network, a LAN, a WAN, a private network, or a public network, such as the Internet.

In addition, the operations shown in the FIG.s, or as discussed herein, are identified using a particular nomenclature for ease of description and understanding, but other nomenclature is often used in the art to identify equivalent operations.