BACKGROUND INFORMATION1. FieldThe present disclosure relates generally to an improved computer system and, in particular, to a method and apparatus for managing reports. Still more particularly, the present disclosure relates to a method and apparatus for creating new reports for applications.
2. BackgroundInformation systems are used for many different purposes. The different operations performed using the information system may be referred to as transactions. For example, an information system may be used to process payroll to generate paychecks for employees in an organization. The different operations performed to generate paychecks for a pay period using the information system may be referred to as a transaction.
Additionally, an information system also may be used by a human resources department to maintain benefits and other records about employees. For example, a human resources department may manage health insurance, wellness plans, and other programs in an organization using an employee information system. As yet another example, an information system may be used to determine when to hire new employees, assign employees to projects, perform reviews for employees, and other suitable operations for the organization.
Other uses of information systems include purchasing equipment and supplies for an organization. In yet another example, information systems may be used to plan and rollout a promotion of a product for an organization.
Often times, an operator may desire to generate a report for a particular type of transaction. Currently, the operator may use report generator software to generate reports that are human readable from different sources such as databases in the information systems. Currently available report generator software are often more difficult to use than desired.
This type of software requires the operator to have knowledge about how information is stored to select what information to use in a report. For example, the operator may need to know what fields, tables, or columns in the database should be selected for including desired information in the report.
As a result, an operator may need to have experience or training with respect to report generator software and databases in addition to the experience and training to perform the transaction for which the report is being generated. This additional skill may limit the number of operators who are able to generate reports. Additionally, operators who do not generate reports very often may find that report generating may take more time and may be more difficult than desired.
Therefore, it would be desirable to have a method and apparatus that take into account at least some of the issues discussed above, as well as other possible issues. For example, it would be desirable to have a method and apparatus that overcome the technical problem with operators being unable to generate reports as efficiently as desired without knowledge about how the information is stored.
SUMMARYAn embodiment of the present disclosure provides a computer-implemented a method for generating reports. Existing reports are collected and modeled to determine a number of contexts. An index of the existing reports is generated according the contexts determined by the modeling. a predicted context of a new report is predicted according to the modeling. According to the index, suggested reports are identified based on the predicted context for the new report. The suggested reports are presented in a graphical user interface.
Another embodiment of the present disclosure provides a system for generating reports. The system comprises a bus system and a storage device connected to the bus system. The storage device stores program instructions that are executed by a number of processors. The number of processors execute the program instructions to collect existing reports. The number of processors further execute the program instructions to model the existing reports to determine a number of contexts of the existing reports. The number of processors further execute the program instructions to generate an index of the existing reports according the contexts determined by the modeling. The number of processors further execute the program instructions to predict, according to the modeling, a predicted context of a new report. The number of processors further execute the program instructions to identify, according to the index, suggested reports based on the predicted context for the new report. The number of processors further execute the program instructions to present the suggested reports in a graphical user interface.
Another embodiment of the present disclosure provides a computer program product for managing reports. The computer program product comprises a computer readable storage media and program code stored thereon. The program code includes code for collecting existing reports. The program code further includes code for modeling the existing report to determine a number of contexts of the existing reports. The program code further includes code for generating an index of the existing reports according to the contexts determined by the modeling. The program code further includes code for predicting, according to the modeling, a predicted context of the new report. The program code further includes code for identifying, according to the index, suggested reports based on the predicted context for the new report. The program code further includes code for presenting the suggested reports in a graphical user interface.
The features and functions can be achieved independently in various embodiments of the present disclosure or may be combined in yet other embodiments in which further details can be seen with reference to the following description and drawings.
BRIEF DESCRIPTION OF THE DRAWINGSThe novel features believed characteristic of the illustrative embodiments are set forth in the appended claims. The illustrative embodiments, however, as well as a preferred mode of use, further objectives and features thereof, will best be understood by reference to the following detailed description of an illustrative embodiment of the present disclosure when read in conjunction with the accompanying drawings, wherein:
FIG. 1 is a pictorial representation of a network of data processing systems depicted in which illustrative embodiments may be implemented;
FIG. 2 is a block diagram of report processing environment depicted in accordance with an illustrative embodiment;
FIG. 3 is a data flow diagram for modeling existing reports in the context of a human resources system according to an illustrative embodiment;
FIG. 4 is a flowchart illustrating a process for managing reports depicted in accordance with an illustrative embodiment;
FIG. 5 is a process for modeling existing reports depicted according to an illustrative example;
FIG. 6 is a process for scoring features of existing reports depicted according to an illustrative example;
FIG. 7 is a process for predicting a context for a new report depicted according to an illustrative example;
FIG. 8 is a process for generating a new report is depicted according to an illustrative example; and
FIG. 9 an illustration of a block diagram of a data processing system is depicted in accordance with an illustrative embodiment.
DETAILED DESCRIPTIONThe illustrative embodiments recognize and take into account one or more different considerations. For example, the illustrative embodiments recognize and take into account that the process currently used to generate reports may be more cumbersome and difficult than desired. For example, an operator, who desires to generate a report for a transaction being performed using an application, exits or leaves the application and starts a new application for generating reports, such as currently used report generator software.
The illustrative embodiments also recognize and take account that currently available report generator software uses the names of columns, fields, tables, or other data structures in presenting selections to an operator. The illustrative embodiments recognize and take into account that often times, the names used in a database may not be the same as the name of the field as displayed in the application used by the operator to perform the transaction.
Thus, those embodiments provide a method and apparatus for managing reports. In particular, a method may be present that helps an operator generate a new report more quickly and easily as compared to currently available report generator software.
In one illustrative example, a method is present a computer-implemented a method for generating reports. Existing reports are collected and modeled to determine a number of contexts. An index of the existing reports is generated according the contexts determined by the modeling. a predicted context of a new report is predicted according to the modeling. According to the index, suggested reports are identified based on the predicted context for the new report. The suggested reports are presented in a graphical user interface.
As used herein, “a group of,” when used with reference to items, means one or more items. For example, “a group of reports” is one or more reports. Further, “a number of,” when used with reference to items, means one or more items. For example, “a group of contexts” is one or more contexts.
A field is a space that holds a piece of data. The space may be, for example, in a location in a record for a database. As another example, the space may be in a location of memory of a computer system. When the space is in an application, the space may be in a data structure in the application.
With reference now to the figures and, in particular, with reference toFIG. 1, a pictorial representation of a network of data processing systems is depicted in which illustrative embodiments may be implemented. Networkdata processing system100 is a network of computers in which the illustrative embodiments may be implemented. Networkdata processing system100 containsnetwork102, which is the medium used to provide communications links between various devices and computers connected together within networkdata processing system100.Network102 may include connections, such as wire, wireless communication links, or fiber optic cables.
In the depicted example,server computer104 andserver computer106 connect to network102 along withstorage unit108. In addition,client devices110 connect to network102. As depicted,client devices110 includeclient computer112,client computer114, andclient computer116.Client devices110 can be, for example, computers, workstations, or network computers. In the depicted example,server computer104 provides information, such as boot files, operating system images, and applications toclient devices110. Further,client devices110 can also include other types of client devices such asmobile phone118,tablet computer120, andsmart glasses122. In this illustrative example,server computer104,server computer106,storage unit108, andclient devices110 are network devices that connect to network102 in whichnetwork102 is the communications media for these network devices. Some or all ofclient devices110 may form an Internet-of-things (IoT) in which these physical devices can connect to network102 and exchange information with each other overnetwork102.
Client devices110 are clients toserver computer104 in this example. Networkdata processing system100 may include additional server computers, client computers, and other devices not shown.Client devices110 connect to network102 utilizing at least one of wired, optical fiber, or wireless connections.
Program code located in networkdata processing system100 can be stored on a computer-recordable storage medium and downloaded to a data processing system or other device for use. For example, the program code can be stored on a computer-recordable storage medium onserver computer104 and downloaded toclient devices110 overnetwork102 for use onclient devices110.
In the depicted example, networkdata processing system100 is the Internet withnetwork102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers consisting of thousands of commercial, governmental, educational, and other computer systems that route data and messages. Of course, networkdata processing system100 also may be implemented using a number of different types of networks. For example,network102 can be comprised of at least one of the Internet, an intranet, a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN).FIG. 1 is intended as an example, and not as an architectural limitation for the different illustrative embodiments.
As used herein, “a number of,” when used with reference to items, means one or more items. For example, “a number of different types of networks” is one or more different types of networks.
Further, the phrase “a set of” or “at least one of,” when used with a list of items, means different combinations of one or more of the listed items can be used, and only one of each item in the list may be needed. In other words, “at least one of” means any combination of items and number of items may be used from the list, but not all of the items in the list are required. The item can be a particular object, a thing, or a category.
For example, without limitation, “at least one of item A, item B, or item C” may include item A, item A and item B, or item B. This example also may include item A, item B, and item C or item B and item C. Of course, any combinations of these items can be present. In some illustrative examples, “at least one of” can be, for example, without limitation, two of item A; one of item B; and ten of item C; four of item B and seven of item C; or other suitable combinations.
In this illustrative example,user124 can useclient computer112 to interact with report management system126. Report management system126 is an application for creating and managing reports. Every report created by report management system126 has a purpose and an objective, which leads to the intention of the report owner.
In this illustrative example, report management system126 collects existingreports128. Existingreports128 have been previously generated from a large data set. Existingreports128 can be generated from one or more fields in the large data set.
Fields are spaces for pieces of data. For example, in a relational database table, the columns of the table are the fields. The rows of the table are records. The records in the table are values for the fields. Fields are spaces where pieces of data are located. These pieces of data are used to perform transactions. For example, in a payroll application, the fields can include at least one of salary, tax information, or other suitable types of payroll data.
The sheer number of fields, such as at least one other field134, in some data sets sometimes makes the users struggle with traditional reporting applications, and could lead them to be confused about which fields, filters, derived or calculated fields they should select. However, users typically know their report subject (context) and what kind of information they want put into a report.
Usingartificial intelligence system136, report management system126models existing reports128 to determine a number ofcontexts132 of the existing reports128.Contexts132 provide relevant information about the entire report, about the other fields (or features) of the report.Contexts132 are the intents of existingreports128.Contexts132 characterize the intention of Existingreports128, based only for the fields within the existing reports128.
In this illustrative example, Report management system126 generates anindex138 of the existingreports128 according thecontexts132 determined by the modeling.index138 provides a well defined set of context and indexes, that enable report management system126 to search existingreports128, and to recommend other fields to a user when composing or completing a in-progress report.
In this illustrative example, Report management system126 uses the modeling to predict the context of anew report142. Based on theindex138, report management system126 identifies suggestedreports144 from the existingreports128, and presents the suggested reports in a graphical user interface.
Whenartificial intelligence system136 is included in Report management system126, report management system126 overcomes a technical problem of quickly and easily generating new reports. Report management system126 characterizes the context of the existingreports128, enabling those reports to be searched based on their intended purpose and objective.
As a result, this technical solution to the technical problem of generating reports provides a technical effect in which a new reports are generated more easily and quickly while requiring less knowledge or training from an operator.
With reference now toFIG. 2, a block diagram of report processing environment is depicted in accordance with an illustrative embodiment. In this illustrative example,report management environment200 includes components that can be implemented in hardware such as the hardware shown in networkdata processing system100 inFIG. 1.
In this illustrative example,report management system202 operates to generatereports206 usingartificial intelligence204. In this illustrative example,artificial intelligence204 can be used to more efficiently generatereports206 as compared to other report management systems that do not haveartificial intelligence204.
An artificial intelligence system is a system that has intelligent behavior and can be based on function of the human brain. An artificial intelligence system comprises at least one of an artificial neural network, and artificial neural network with natural language processing, a cognitive system, a Bayesian network, a fuzzy logic, an expert system, a natural language system, a cognitive system, or some other suitable system.
Machine learning is used to train the artificial intelligence system. Machine learning involves inputting data to the process and allowing the process to adjust and improve the function of the artificial intelligence system.
A cognitive system is a computing system that mimics the function of a human brain. The cognitive system can be, for example, IBM Watson available from International Business Machines Corporation.
In this illustrative example,artificial intelligence204 is located incomputer system210 and comprises modeling218 for training a set of artificial intelligence models. When trained, each of these artificial intelligence models be used to characterize the context ofreports206.
Computer system210 is a physical hardware system and includes one or more data processing systems. When more than one data processing system is present incomputer system210, those data processing systems are in communication with each other using a communications medium. The communications medium may be a network. The data processing systems may be selected from at least one of a computer, a server computer, a tablet, or some other suitable data processing system. When a number of processors execute instructions for a process, the number of processors can be on the same computer or on different computers incomputer system210. In other words, the process can be distributed between processors on the same or different computers incomputer system210.
As depicted, modeling218 in artificial intelligence training system214 incomputer system210 operates to trainartificial intelligence204 for use in characterizing the context ofreports206. In other words, modeling218 artificial intelligence training system214 trains one or more artificial intelligence models.
Modeling218 can be implemented in software, hardware, firmware or a combination thereof. When software is used, the operations performed by modeling218 can be implemented in program code configured to run on hardware, such as a processor unit. When firmware is used, the operations performed by modeling218 can be implemented in program code and data and stored in persistent memory to run on a processor unit. When hardware is employed, the hardware may include circuits that operate to perform the operations inmodeling218.
In the illustrative examples, the hardware may take a form selected from at least one of a circuit system, an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware configured to perform a number of operations. With a programmable logic device, the device can be configured to perform the number of operations. The device can be reconfigured at a later time or can be permanently configured to perform the number of operations. Programmable logic devices include, for example, a programmable logic array, a programmable array logic, a field programmable logic array, a field programmable gate array, and other suitable hardware devices. Additionally, the processes can be implemented in organic components integrated with inorganic components and can be comprised entirely of organic components excluding a human being. For example, the processes can be implemented as circuits in organic semiconductors.
As depicted, modeling218 identifies existingreports216. Modeling218 trainsartificial intelligence204 by creating one or more models of existingreports216. As depicted, the training is performed using a set of machine learning algorithms.]
In this illustrative example, each existingreport216 includesfields220. As depicted,fields220 includetitle field222,description field224, and at least one other field infields226.
Modeling218models existing reports216 by generatingannotations228 for the existingreports216 according to atitle field222 and adescription field224. Modeling218 then determines a number ofcontexts230 for the number of existingreports216 according to theannotations228.
In one exemplary algorithm, modeling218 generatesannotations228 for existingreports216, considering only thetitle field222 anddescription field224. As part of the annotation process, two or more (M) contexts (like classes, C) are defined with a unique key term (the label, L) for each context and a set of exclusive terms (T) that represent the respective context:
Ci={Li,Ti}
Ti={t1,t2, . . . tN}
for i-th context.
Fromfields220 of existingreports216, with text typed fields, like title, tags, description etc., modeling218 cheeses N relevant fields (f), in general title and description, to annotate each report. The label is defined to context with more terms matched:
with NTf(⋅) the number of terms in Ti matched in field f of report j.
In one illustrative example, when a plurality offields220 are used for annotation (two or three), modeling218 sum the labels L, defining new labels. The final annotated label (L(Rj)) for a j-th report may be achieved with a combined of the labels Lffor f=1, . . . N:
in other words, each of existingreports216 may be of one ormore contexts230.
In one illustrative example,artificial intelligence204 may comprise a heuristic that provides a desired level of intelligence when generatingannotations228 for existingreports216. For example:
|
| Result: Report label |
| Heuristic Annotation (Text, C) is |
| | | M = size (C); |
| | | s = Vector [M]; |
| | | for j in {1,..., M} do |
| | | | s[j] = 0; |
| | | | T = C[j].T; |
| | | | N = size(T); |
| | | | for n in {1,..., N} do |
| | | | | | s[j] = s[j] + matches (Text,T) // partial or full matching times of T |
| | | end |
| | | //Return the label of the context with more matches (s[i*]=max(s), i*: |
| return C[s.indexOf(max(s))].L |
|
After generatingannotations228, modeling218 defines the features232 of existingreports216. For example, in the case of human resources reports, other fields infields226 may include fields such as First Name, Last Name, Job Description, Job position, and First Address, as well as other suitable fields. The at least one other field infields226 of each existingreport216 characterize the context of the report, for example, a Head Count, Turnover, Performance, and Payroll, as well as other suitable fields. Features232 may include names of theother fields226. Additionally, features232 may include a category of the field, type of aggregation, possible type of filters, and type of aggregation. In one illustrative example, modeling218 considers features232 of: a name of the field (such as for example, first name, last name), a category of the field (such as, for example, profile, earnings) and a filter type (such as, for example, by job position, by department).
In this illustrative example, modeling218 can represent a j-th report (Rj) as:
Rj={Lj,Fj,FCj,FTj}
Fj={fn1,fn2, . . . ,fnn}
FCj={fc1,fc2, . . . ,fcp}
FTj={ft1,ft2, . . . ,fcp}
with label Ljgiven during annotation process, a set Fj of unique names of the fields in Rj, a set FCjof unique categories from the fields are grouped and the unique set FTjof filters.
In one illustrative example, For each context (label) annotated, modeling218 applies a scoring method of counting unique occurrences for each value inother fields226. Modeling218 then normalizes the total number of occurrences, ranking it and choosing the max sum of values.
Defined the structure of features, the ranking is build using a set of annotated reports. The scores φ, γ and δ area a normalization of theirs counting occurrences for each labelled context. The model (M(⋅)) have the ranks (Ψ) of each feature (F, FC and FT) for each i-th label:
Ψi={Li,Φi,Γi,Δi}
Φi={(fn1,ϕ1),(fn2,ϕ2), . . . ,(fnn,ϕn)}
Γi={(fc1,γ1),(fc2,γ2), . . . ,(fcm,γm)}
Δi={(ft1,δ1),(ft2,δ2), . . . ,(ftp,δp)}
Modeling218 insurers the maximum probability of an annotated label for given values. To consider a possible difference of relevance between the fields, for example, features232, each ranked field is weighted by a value between 0 and 1. In one illustrative example, modeling218 uses a parameter optimizer To achieve these weights. The parameter optimizer can be, for example, a genetic algorithm, a gradient boost, as well as other suitable optimizers.
Modeling218 predictscontexts230 of a given existingreport216, returning the label (context) that maximizes the probability of this report have the predicted label:
Modeling218 can use any suitable method to achieve the scores, such as simply counting, tf-idf, and Lift, as well as other suitable methods. In one illustrative example, modeling218 adds the scores of the matched terms for each label and chooses the label with the highest sum.
In this illustrative example, modeling218 can validate training performed onartificial intelligence204 using validation data, which can include in and use subset of existingreports216. Modeling218 analyzes the process and results of validation data to determine whetherartificial intelligence204 performs with a desired level of accuracy.
When a desired level of accuracy is reached,report management system202 generates index234 of the existing reports according thecontexts230 determined by themodeling218. Frommodeling218,report management system202 can predict predictedcontext244 of anew report240. According to the index234,Report management system202 can identify suggestedreports242 from the existingreports216 based on the predictedcontext244 for thenew report240. The suggested reports242 can be presented in agraphical user interface227 of adisplay system229 of a client device, such as one or more ofclient devices110 ofFIG. 1.
Computer system210 can be configured to perform at least one of the steps, operations, or actions described in the different illustrative examples using software, hardware, firmware or a combination thereof. As a result,computer system210 operates as a special purpose computer system in whichmodeling218 incomputer system210 enables training an artificial intelligence system to generate new reports. In the illustrative example, the use ofartificial intelligence204 incomputer system210 integrates processes into a practical application for a method of training an artificial intelligence system that increases the performance ofcomputer system210. In other words,artificial intelligence204 into incomputer system210 is directed towards a practical application of processes integrated intomodeling218 incomputer system210 that identifies intentions from previously generated reports.
In this illustrative example,artificial intelligence system204 for incomputer system210 utilizes annotations to train an artificial intelligence system using one or more machine learning algorithms in a manner that that results in an artificial intelligence system that is capable of identifying report intentions with a desired level of accuracy. In this manner,artificial intelligence system204 for incomputer system210 provides a practical application of a method for training an artificial intelligence system to characterize a report such that the functioning ofcomputer system210 is improved when using the trained artificial intelligence system.
FIG. 3 depicts a data flow diagram for modeling existing reports in the context of a human resources system according to an illustrative embodiment. The data flow ofFIG. 3 is one example in which reportmanagement system202 ofFIG. 2 can be implemented in a human resources environment.
In this illustrative example, reports310 consider two sets of human resources reports with size of N (e.g.: 1000 reports) each set, well randomised. Consider two samples of a HR reports:headcounts312 and benefits314.
In this illustrative example,headcounts312 includes the following fields, values, and applied filters:
Description: This report shows the headcount for engineering dept.
Fields: Name, Department and Status.
Filters: Department=engineering and Status=Active. Report B: Title: Benefits.
In this illustrative example, benefits314 includes the following fields, values, and applied filters:
Description: This report shows the benefits for all employees from construction dept.
Fields: Name, Department, 401k Status, ACA Status.
Filters: Department=construction and Status=Active.
Despite the fact that each ofreports310 have a title, the intention or context of each reports310 it is not clearly defined. Using all available text from title anddescription annotation320 extracts possible contexts fromreports310.
The context are extracted with a annotation heuristic (1). The annotation process considers only the title and description fields, running for this two reports. For report A, the label is HEADCOUNT; and for report B, the label is BENEFITS. In this cases, each label may have one or more key words, based on the title and description fields. All labels are given a priori.
Generate Model M(⋅)330, for each label, calculates the frequency of fields and filters. In the current example, given the two labels:
- Label HEADCOUNT: Label (L): HEADCOUNT.
- Fields (F): f1=(Name, 0.98), f2=(Department, 0.94), . . . .
- Field cat. (FC): fc1=(Employee Profile, 0.89), fc2=(Job Profile, 0.87), . . . .
- Filters (FT): tf1=(Status=VALUE, 0.83), tf2=(Department=VALUE, 0.76), . . . Label
- BENEFITS: Label (L): BENEFITS.
- Fields (F): f1=(401k Status, 0.98), f2=(Status, 0.94), . . . .
- Field cat. (FC): fc1=(Benefit Types, 0.89), fc2=(Job Profile, 0.87), . . . .
- Filters (FT): tf1=(Status=VALUE, 0.90), tf2=(Department=VALUE, 0.86), . . . .
Test Step340 uses the model generated atstep330, to predict a context for all reports in dataset passed byannotation350. In this illustrative example, the context of reports passed byannotation350 is a label predicted using only the fields, field categories and filters as features of the model.Test step340 does not consider the title and description ofannotation350 data set.
Annotation350 is the same asannotation320. Basically, both dataset of train training and testing pass by same process. This process is a labelling process, which can use a heuristic, such. as that discussed above.
For a given report,Test Step340 computes scores given for each feature. In this illustrative example,test step340 determines a score for each label, and returns the label with highest score.Annotation350 is verified by comparing the labels predicted by model M(⋅) against the labels given in the process ofannotation320.
With reference next toFIG. 4, a flowchart illustrating a process for managing reports is depicted in accordance with an illustrative embodiment. The process ofFIG. 4 can be implemented in one or more components ofcomputer system210 ofFIG. 2.
The process begins by collecting existing reports (step410). Each existing report can include a number of fields, such as a title field, a description field, and at least one other field. The process models the existing reports to determine a number of contexts of the system reports (step420). The process generates an index of the existing reports according to the context determined (step430).
The process predicts, according to the modeling, a predicted context of a new report (step340). According to the index generated, the process identifies suggested reports based on the predicted context of the new report (step350). The process then presents the suggested reports in a graphical user interface (step360) and terminates thereafter.
With reference next toFIG. 5, a process for modeling existing reports is depicted according to an illustrative example. The process ofFIG. 5 is an example of one embodiment in whichprocess step420 ofFIG. 4 can be implemented.
Continuing fromstep410, the process generates annotations for the existing reports according to a title field and description field (step510). The process determines a number of contexts for the number of existing reports according to the annotations (step520). Thereafter, the process continues to step430 ofFIG. 4.
With reference next toFIG. 6, a process for scoring features of existing reports is depicted according to an illustrative example. The process ofFIG. 6 can be implemented in conjunction with process500 ofFIG. 5, as part ofprocess step420 ofFIG. 4.
Continuing fromstep520, the process determines, according to the at least one other field of the existing reports, a number of features (step610). For each context, the process weighs the number of features based on a normalized accounting of the features within the context (step620). Thereafter, the process continues to step430 ofFIG. 4.
With reference next toFIG. 7, a process for predicting a context for a new report is depicted according to an illustrative example. The process ofFIG. 7 is an example of one embodiment in whichprocess step440 ofFIG. 4 can be implemented.
The process determines features for the new report (step710). For each context, the process scores the new report according to weights for the features of the existing reports (step720). The process then identifies the context having the highest score (step730). Thereafter, the process continues to step450 ofFIG. 4.
With reference next toFIG. 8, a process for generating a new report is depicted according to an illustrative example. The process ofFIG. 8 can be implemented in conjunction with the process ofFIG. 4.
Continuing fromstep460, the process generates the new report according to suggested the reports (step810). The new report can be generated in response to receiving an indication from the user that selects one or more of the suggested reports. The process terminates thereafter.
Turning now toFIG. 9, an illustration of a block diagram of a data processing system is depicted in accordance with an illustrative embodiment.Data processing system900 may be used to implement one or more computers andclient computer112 inFIG. 1. In this illustrative example,data processing system900 includescommunications framework902, which provides communications betweenprocessor unit904,memory906,persistent storage908,communications unit910, input/output unit912, anddisplay914. In this example,communications framework902 may take the form of a bus system.
Processor unit904 serves to execute instructions for software that may be loaded intomemory906.Processor unit904 may be a number of processors, a multi-processor core, or some other type of processor, depending on the particular implementation. In an embodiment,processor unit904 comprises one or more conventional general-purpose central processing units (CPUs). In an alternate embodiment,processor unit904 comprises one or more graphical processing units (CPUs).
Memory906 andpersistent storage908 are examples ofstorage devices916. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, at least one of data, program code in functional form, or other suitable information either on a temporary basis, a permanent basis, or both on a temporary basis and a permanent basis.Storage devices916 may also be referred to as computer-readable storage devices in these illustrative examples.Memory906, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device.Persistent storage908 may take various forms, depending on the particular implementation.
For example,persistent storage908 may contain one or more components or devices. For example,persistent storage908 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used bypersistent storage908 also may be removable. For example, a removable hard drive may be used forpersistent storage908.Communications unit910, in these illustrative examples, provides for communications with other data processing systems or devices. In these illustrative examples,communications unit910 is a network interface card.
Input/output unit912 allows for input and output of data with other devices that may be connected todata processing system900. For example, input/output unit912 may provide a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Further, input/output unit912 may send output to a printer.Display914 provides a mechanism to display information to a user.
Instructions for at least one of the operating system, applications, or programs may be located instorage devices916, which are in communication withprocessor unit904 throughcommunications framework902. The processes of the different embodiments may be performed byprocessor unit904 using computer-implemented instructions, which may be located in a memory, such asmemory906.
These instructions are referred to as program code, computer-usable program code, or computer-readable program code that may be read and executed by a processor inprocessor unit904. The program code in the different embodiments may be embodied on different physical or computer-readable storage media, such asmemory906 orpersistent storage908.
Program code918 is located in a functional form on computer-readable media920 that is selectively removable and may be loaded onto or transferred todata processing system900 for execution byprocessor unit904.Program code918 and computer-readable media920 formcomputer program product922 in these illustrative examples. In one example, computer-readable media920 may be computer-readable storage media924 or computer-readable signal media926.
In these illustrative examples, computer-readable storage media924 is a physical or tangible storage device used to storeprogram code918 rather than a medium that propagates or transmitsprogram code918. Alternatively,program code918 may be transferred todata processing system900 using computer-readable signal media926.
Computer-readable signal media926 may be, for example, a propagated data signal containingprogram code918. For example, computer-readable signal media926 may be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals may be transmitted over at least one of communications links, such as wireless communications links, optical fiber cable, coaxial cable, a wire, or any other suitable type of communications link.
The different components illustrated fordata processing system900 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated fordata processing system900. Other components shown inFIG. 9 can be varied from the illustrative examples shown. The different embodiments may be implemented using any hardware device or system capable of runningprogram code918.
The illustrative embodiments described herein provide a computer-implemented a method, computer system, and computer program product for generating reports. Existing reports are collected and modeled to determine a number of contexts. An index of the existing reports is generated according the contexts determined by the modeling. a predicted context of a new report is predicted according to the modeling. According to the index, suggested reports are identified based on the predicted context for the new report. The suggested reports are presented in a graphical user interface.
Therefore, the illustrative embodiments described herein provide a technical solution to the technical problem of generating reports provides a technical effect in which a new reports are generated more easily and quickly while requiring less knowledge or training from an operator.
The flowcharts and block diagrams in the different depicted embodiments illustrate the architecture, functionality, and operation of some possible implementations of apparatuses and methods in an illustrative embodiment. In this regard, each block in the flowcharts or block diagrams may represent at least one of a module, a segment, a function, or a portion of an operation or step. For example, one or more of the blocks may be implemented as program code.
In some alternative implementations of an illustrative embodiment, the function or functions noted in the blocks may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be performed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending upon the functionality involved. Also, other blocks may be added in addition to the illustrated blocks in a flowchart or block diagram.
The description of the different illustrative embodiments has been presented for purposes of illustration and description and is not intended to be exhaustive or limited to the embodiments in the form disclosed. The different illustrative examples describe components that perform actions or operations. In an illustrative embodiment, a component may be configured to perform the action or operation described. For example, the component may have a configuration or design for a structure that provides the component an ability to perform the action or operation that is described in the illustrative examples as being performed by the component. Many modifications and variations will be apparent to those of ordinary skill in the art. Further, different illustrative embodiments may provide different features as compared to other desirable embodiments. The embodiment or embodiments selected are chosen and described in order to best explain the principles of the embodiments, the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.