Advanced search and document retrieval for development and verification system prototypes

Aspects of the invention include a method for providing a master computing environment containing a master repository. The method periodically conducts a search of proprietary data repositories and causes the master computing environment to create a merged collection in the master repository after the periodical conducted search of the proprietary data repositories. The method correlates metadata with the proprietary data repositories and puts the correlated metadata into the master repository. The method sets up a question feeder server to receive queries and to pass the queries to the master computing environment. The method causes the master computing environment to provide results in response to a query, where the master computing environment acts as an autonomous information provider that finds and sorts subject matter on a proprietary development project.

BACKGROUND

The present invention generally relates to document search systems, and more specifically relates to advanced search and document retrieval for development and verification system prototypes.

SUMMARY

Embodiments of the present invention are directed to advanced search and document retrieval for development and verification system prototypes. A non-limiting example computer-implemented method includes providing a master computing environment containing a master repository. The method periodically conducts a search of proprietary data repositories and causes the master computing environment to create a merged collection in the master repository after the periodically conducted search of proprietary data repositories. The method correlates metadata with the proprietary data repositories and stores the correlated metadata into the master repository. The method sets up a question feeder server to receive queries and to pass the queries to the master computing environment. The method then causes the master computing environment to provide results in response to a query, where the master computing environment acts as an autonomous information provider that finds and sorts subject matter on a proprietary development project.

Additional technical features and benefits are realized through the techniques of one or more embodiments of the present invention. Embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, refer to the detailed description and to the drawings.

DETAILED DESCRIPTION

One or more embodiments of the present invention provide an autonomous information locator/information provider that finds and sorts relevant subject matter on a proprietary development project and allows an authorized user to access the information in real-time to aid in resolving an issue being investigated. The authorized user can access the information via an interface of a messaging platform, such as, but not limited to a SLACK® messaging application from Slack Technologies, Inc. One or more embodiments of the present invention is autonomous because it is designed to periodically query, format and upload documents to a master computing environment from approved internal documents, ticketing and messaging systems. The documents are then handled by the master computing environment and placed into a master database, also referred to as a master repository or master data repository. Ticketing can refer to the creation of defect tracking tickets that are logged to track defects and other issues which may be detected during testing or other operations.

Current processes of resolving an issue in a computing environment during development and testing can be a tedious and manual endeavor. Testers and developers can hit a variety of known and unknown issues daily. When the testers and developers encounter said issues they may query a ticketing system, query a documentation database and/or message the appropriate party for an answer. This querying, gathering of information and filtering of results is currently done manually by a person who is interested in or has encountered the issue of interest.

One or more embodiments of the present invention can eliminate the current manual and tedious labor of querying, finding, and filtering documents for the interested party. Instead, an overarching program can monitor systems under test. As a system under test encounters an issue, warning or exception, the overarching program is notified and can issue a query to one or more embodiments of the present invention. The query will then be processed by one or more embodiments of the present invention and in response thereto can further query, filter, and return appropriate documentation to a user of the system under test. This documentation can include proprietary documents, messages from a messaging system and ticket information.

One or more embodiments of the present invention provide a comprehensive approach to search and display proprietary documentation for consumption by humans and artificial intelligence systems. For proprietary documentation databases, one or more embodiments of the present invention can perform: security checks, term relevancy checks, optional display types, JavaScript Object Notation (JSON) style output, and voice, telephone query, or machine learning options. Examples of systems under test can include proprietary development projects such as, but not limited to, central processing unit (CPU) design and/or computer system architecture. Examples of proprietary documentation can include but are not limited to: principles of operation, design specifications, internal test program execution instructions, and instructions specifying steps to debug various types of problems. Further, examples of proprietary documentation databases can include, but are not limited to, IBM Connections, GITHUB® from Github, Inc., Rational Team Concert (RTC) Defect Tracking, and the like.

Development system prototypes and verification system prototypes can be part of a new development and testing process when creating a new mainframe/computing system or other such system under test. Developers and testers can migrate to a new development and testing process to help improve efficiency with resolving and identifying issues. Developers and testers who are working on various test systems can use this process to discover or encounter failures. They can analyze the relevant documents, tickets, or discussions related to failures or other defects discovered in the process.

One or more embodiments of the present invention can conduct aggregation of multiple repository sources into a master computing environment containing a master repository. One or more embodiments of the present invention can create a merged collection by merging repository sources, including metadata, and retrieving and returning a result to a user or an artificial intelligence (AI) based system. One or more embodiments of the present invention can collect documents and/or conversations from multiple sources. One or more embodiments of the present invention can be built for use in a chat application framework. One or more embodiments of the present invention can capture failed searches such that administrators are able to debug why a search failed, and if necessary, add missing relevant documentation.

Turning now toFIG. 1, a block diagram of an advanced search and document retrieval system100for development and verification system prototypes is generally shown in accordance with one or more embodiments of the present invention. A master computing environment containing a master data repository105is set up to receive queries and supply the results. The initial training of the master computing environment containing a master data repository105will be described hereafter. The master computing environment containing the master data repository105receives additional proprietary data via periodic uploads115from a plurality of proprietary data repositories111,112,113. The additional proprietary data can include subject matter documents and metadata from data repositories from various project management programs and chat communications programs. Examples of metadata can include the name of the proprietary data repositories111-113from which a file or other data is uploaded, a file type, a data type, a channel identifier, a community identifier, an organization identifier, a defect identifier, a tracking identifier, a uniform resource locator link to underlying or related data and/or files, a file size, a data size, a modification date, an upload date, a creation date, an owner identification, a creator identification, permission information, various tags, keywords, and/or other such information. Although three proprietary data repositories111-113are depicted in the example ofFIG. 1, it will be understood that any number of proprietary data repositories can be incorporated is various embodiments of the present invention. The proprietary data repositories111-113may each include different types of data with different formatting and access interfaces. For example, proprietary data repository111may store defect tracking tickets in a first format, proprietary data repository112may store documents in a second format, and proprietary data repository113may hold messages in a third format.

Still referring toFIG. 1, the advanced search and document retrieval system100for development and verification system prototypes can be configured to receive a query from a user108at an interface application122. The interface application122can then pass the query to a server120(also referred to as a question feeder server120), which may adjust formatting of the query and pass the query to the master computing environment containing the master data repository105. The master computing environment containing the master data repository105can respond to the query by supplying results back to the server120. The server120can then format the results and send the results back to the user108via the interface application122. In an alternate embodiment, the query of the user108can take the form of a voice query and results can be received in the form of an audio playback of the results and/or visual depiction of the results. The interface application122can also receive queries from an artificial intelligence (AI) system130. The query of the AI system130can be passed to the master computing environment containing the master data repository105via the interface application122and server120. Similar to processing a user query input, the master computing environment containing the master data repository105can supply results in response to a query of the AI system130back through the server120and the interface application122. The AI system130can be configured to detect an anomaly from various sources.

The advanced search and document retrieval system100can also include an analyzer140configured to train the master computing environment containing a master data repository105as further described herein. The analyzer140may be part of the master computing environment containing a master data repository105or implemented separately. The analyzer140and/or master computing environment containing a master data repository105can include one or more underlying computer systems and/or cloud computing resources.

FIGS. 2A-2Cillustrate examples of displays showing results for the advanced search and document retrieval system100ofFIG. 1for development and verification system prototypes that are presented to a user in accordance with one or more embodiments of the present invention. InFIG. 2A, results210shown are sorted by type in a message. For example, multiple documentation results, multiple message results, and multiple tickets are each grouped by type in the example ofFIG. 2A. InFIG. 2B, results212shown are sorted by relevancy in a message. As can be seen inFIG. 2B, the results212alternate between tickets, documentation, and messages based on a confidence score. InFIG. 2C, results214shown are sorted by the number of times the keyword of “CPU” appears, which can differ from the confidence scores with tickets, documentation, and messages mixed based on the results.

Referring toFIG. 3, shown is an illustrated example of a result300of the advanced search and document retrieval system100ofFIG. 1for development and verification system prototypes in accordance with one or more embodiments of the present invention. A document result303can be received from the interface application122ofFIG. 1and presented to a user interface of the user108ofFIG. 1in response to a query from the user108. As shown inFIG. 3, the document result303refers to a single document and can include a community name305, document name307, document relevancy309and a preview of the relevant passage315. In addition, the document result303can include a link to the original document313and a user feedback button311. The community name305can refer to an organization that certain individuals may have proper authentication to access. The document relevancy309can be a value received from an entity that calculates relevancy scores. In accordance with one or more embodiments of the present invention, the relevant passage315can be determined based on usage of context from the original query, as well as previous training data to predict which passage will likely be most relevant. The user feedback button311can be used to avoid an individual using a mock-up of some basic training data and instead, utilizing real-time data. The user feedback button311can be implemented by using a mouse to select an on-screen button or a touch screen. Selecting the user feedback button311can result in logging data that may be used to determine relevance for making updates.

Turning now toFIG. 4, an advanced search and document retrieval system400for development and verification system prototypes is generally shown in accordance with one or more embodiments of the present invention. The system400may also include other elements, such as previously described with respect to the system100ofFIG. 1. A master computing environment containing the master data repository406can receive queries from a data gathering program408and can supply a response in the form of ticketing information data to the data gathering program408. The data gathering program408can also receive failed error query messages from machines410and412. The data gathering program408can refer to a higher-level application used to monitor each individual machine410,412. If the machine410,412receives an error/issue, it can notify a corresponding higher-level application of the error. The machines410,412are examples of systems under test, such as mainframe computer systems.

One or more embodiments of the invention can replace the manual and tedious labor of querying, finding and filtering documents for an interested party with an overarching program that monitors each machine410,412. As a machine410,412encounters an issue, warning or exception, the overarching program (e.g., the data gathering program408) can be informed and issue a query to the master computing environment containing a master data repository406. The query can be processed, and the appropriate documentation is returned to the user of the machine410,412. The documentation can include proprietary documents, messages from a messaging system and/or ticket information.

Turning now toFIG. 5, a flow diagram500for initial and continued training for a master computing environment containing a master data repository105ofFIG. 1is generally shown in accordance with an embodiment of the present invention. The flow diagram500shown inFIG. 5can be utilized to train the master computing environment without requiring manual relevancy determination from the owners(s)/developer(s). The process depicted in flow diagram500can provide a user with relevant results from the master computing environment in response to a query. The user can review the results and provide feedback to the master computing environment through the usage of various interfaces, such as a button, which can be displayed in messages. A server can log associated information in a log file for utilization and statistics. The process depicted in the flow diagram500can be performed, for example, by the analyzer140and other elements ofFIG. 1.

Still referring toFIG. 5, after the master computing environment creates a log file with the user's identification of what is relevant, other users can extract this information. In addition, the process can update the master data repository's base training data set. An analyzer, such as analyzer140, which may be part of the master computing environment, can access the master computing environment's log file and the specified collection's base training data set. Many user-crafted queries may have a lot of “noise”, meaning words which for the most part are not useful to the query. Examples of such words include “what”, “where” and many other commonly used words. Therefore, the analyzer utilizes some common libraries to filter out those words in both the base data set and the log file. This is important because users can utilize some common libraries to aid in identifying which queries have already been added to the collection's base data set. If the query was already in the collection's base data set, then the analyzer checks if the same document was already identified as relevant for this query. If the document has been identified as relevant, then the analyzer updates the relevancy value associated with the document. Otherwise, the document is then associated with the query as relevant. This process continues until queries with relevant documents have been updated or added to the collection's base data set.

The process of using the analyzer in the training of the master computing environment starts at block501ofFIG. 5by having a user identify that a result is relevant. In block503, the event is logged in a log file. In block505, the analyzer retrieves the log file and base data set. In block507, the analyzer filters the information in both files. In block509, the analyzer compares existing filters queries from both files. In a decision block511, there is a check to see if the query is already in base data set. If the answer is “no”, then in block513, the analyzer adds the query and result to the base data set. Then in block523, the analyzer terminates any further processing. If the answer is “yes” from the decision block511, the analyzer compares the associated results in block515. In decision block517, the process checks to see if the results are already associated with the query. If the answer is “no”, then in block519, the analyzer associates the result with the query in the base data set. Then in block523, the analyzer terminates any further processing. If the answer is “yes” at decision block517, then in block521, the analyzer updates the results relevancy value in the base data set. Then in block523, the analyzer terminates any further processing.

Turning now toFIG. 6, a computer system600for advanced search and document retrieval is generally shown in accordance with one or more embodiments of the present invention. The methods described herein can be implemented in hardware, software (e.g., firmware), or a combination thereof. In an exemplary embodiment, the methods described herein are implemented in hardware as part of the microprocessor of a special or general-purpose digital computer, such as a personal computer, workstation, minicomputer, or mainframe computer. The system600therefore may include general-purpose computer or mainframe601capable of running multiple instances of an O/S simultaneously.

In an exemplary embodiment, in terms of hardware architecture, as shown inFIG. 6, the computer601includes one or more processors605, memory610coupled to a memory controller615, and one or more input and/or output (I/O) devices640,645(or peripherals) that are communicatively coupled via a local input/output controller635. The input/output controller635can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art. The input/output controller635may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface may include address, control, and/or data connections to enable appropriate communications among the aforementioned components. The input/output controller635may include a plurality of sub-channels configured to access the output devices640and645. The sub-channels may include fiber-optic communications ports.

The processor605is a hardware device for executing software, particularly that stored in storage620, such as cache storage, or memory610. The processor605can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the computer601, a semiconductor-based microprocessor (in the form of a microchip or chip set), a macro processor, or generally any device for executing instructions.

The instructions in memory610may include one or more separate programs, each of which comprises an ordered listing of executable instructions for implementing logical functions. In the example ofFIG. 6, the instructions in the memory610a suitable operating system (OS)611. The operating system611essentially controls the execution of other computer programs and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.

The memory610may include multiple logical partitions (LPARs)612, each running an instance of an operating system. The LPARs612may be managed by a hypervisor, which may be a program stored in memory610and executed by the processor605.

In an exemplary embodiment, a conventional keyboard650and mouse655can be coupled to the input/output controller635. Other output devices such as the I/O devices640,645may include input devices, for example but not limited to a printer, a scanner, microphone, and the like. Finally, the I/O devices640,645may further include devices that communicate both inputs and outputs, for instance but not limited to, a network interface card (NIC) or modulator/demodulator (for accessing other files, devices, systems, or a network), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, and the like. The system600can further include a display controller625coupled to a display630. In an exemplary embodiment, the system600can further include a network interface660for coupling to a network665. The network665can be an IP-based network for communication between the computer601and any external server, client and the like via a broadband connection. The network665transmits and receives data between the computer601and external systems. In an exemplary embodiment, network665can be a managed IP network administered by a service provider. The network665may be implemented in a wireless fashion, e.g., using wireless protocols and technologies, such as WiFi, WiMax, etc. The network665can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment. The network665may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN) a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system and includes equipment for receiving and transmitting signals.

If the computer601is a PC, workstation, intelligent device or the like, the instructions in the memory610may further include a basic input output system (BIOS) (omitted for simplicity). The BIOS is a set of essential software routines that initialize and test hardware at startup, start the OS611, and support the transfer of data among the hardware devices. The BIOS is stored in ROM so that the BIOS can be executed when the computer601is activated.

When the computer601is in operation, the processor605is configured to execute instructions stored within the memory610, to communicate data to and from the memory610, and to generally control operations of the computer601pursuant to the instructions.

FIG. 7is a flow diagram that depicts a process700for advanced search and document retrieval for development and verification system prototypes according to one or more embodiments of the present invention. The process700can be performed by the advanced search and document retrieval system100ofFIG. 1, the advanced search and document retrieval system400ofFIG. 4, and/or other system variations. For purposes of explanation, process700is described primarily with respect to advanced search and document retrieval system100and with reference toFIGS. 1-6.

At block702, a master computing environment that includes a master data repository105is provided. The master computing environment can manage identifications and authenticates users, such as user108. At block704, a search of proprietary data repositories111-113is periodically conducted. At block706, in response to conducting the search, the master computing environment can create a merged collection in the master repository. At block708, metadata can be correlated with the proprietary data repositories111-113, and the correlated metadata can be stored in the master repository. At block710, a question feeder server, such as server120, is set up to receive queries and to pass the received queries to the master computing environment that includes the master data repository105. At block712, the master computing environment is caused to provide results in response to a query, where the master computing environment acts as an autonomous information provider that finds and sorts subject matter on a proprietary development project. The provided results can be sorted by relevancy.

Embodiments can also include providing an interface to allow an authorized user to provide the query and receive the results, such as through interface application122. The interface can further interface with other machine learning applications to provide further information on error events, such as AI system130. The interface can receive the query as a voice input and supply the results as a voice output. Embodiments can also include receiving user feedback regarding the relevancy of the provided results.

The process flow diagram ofFIG. 7is not intended to indicate that the operations of the process700are to be executed in any particular order, or that all of the operations of the process700are to be included in every case. Additionally, the process700can include any suitable number of additional operations.