Computer Implemented Method (CIM) (Tracking computer user navigation to generate new navigation paths)

The method addresses inefficiencies in computer software navigation by using machine learning to suggest alternative paths, reducing support tickets and enhancing user experience.

JP7795264B2Active Publication Date: 2026-01-07INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022189821
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-12-03
Filing Date
2022-11-29
Publication Date
2026-01-07
Estimated Expiration
2042-11-29

AI Technical Summary

Technical Problem

Existing systems face inefficiencies in guiding users through computer software navigation paths, leading to high volumes of support tickets due to users encountering navigation issues, especially when they cannot complete tasks due to system failures.

Method used

A method and system that utilizes machine logic to analyze user navigation patterns, create a directed weighted graph, and suggest alternative paths using unsupervised and supervised machine learning to reduce manual intervention and ticket generation.

Benefits of technology

Reduces the number of support tickets by providing real-time guidance based on user patterns, improving user experience and allowing developers to focus on higher priority issues.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007795264000001
    Figure 0007795264000001
  • Figure 0007795264000002
    Figure 0007795264000002
  • Figure 0007795264000003
    Figure 0007795264000003
Patent Text Reader

Abstract

To generate "navigation paths" to be selected by human users when they traverse physical space or traverse computer software.SOLUTION: Some embodiments of the present invention are directed to machine logic for identifying a favorable navigation path by monitoring physical paths or computer software navigation paths used by human users as they use a set of computer programs. This favorable navigation path, through physical space or the logic of the set of computer programs, can then be suggested to future users who want to navigate from a similar starting point to a similar end point.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates generally to the field of providing "navigation" support to users of computer software. [Background technology]

[0002] It is well known that users use computer programs. As they do so, they "navigate" within the computer program. That is, the user makes various appropriate inputs to perform data access and / or data processing operations that the user wishes to accomplish. For example, consider a user working on a text-based document within a word processing program. The user wishes to navigate through the process of saving the document they are working on. The navigation path for doing this might be (i) hitting the CONTROL+S keyboard combination once, (ii) using the keyboard and mouse to adjust the default document title in the "Save window" as appropriate, and (iii) using the mouse to click on the on-screen button (labeled "Save") located within the Save window. Summary of the Invention [Problem to be solved by the invention]

[0003] It is further known that machine logic (e.g., software-based bots) can help users find the navigation path they want to follow. As of November 4, 2021, the Wikipedia entry for "Office Assistant" reads, in part: "Office Assistant is a discontinued intelligent user interface for Microsoft® Office that assisted users through an interactive animated character linked to Office Help content. ...The default assistant in the English version was named Clippit after a paperclip (commonly nicknamed Clippy). ...In July 2021, Microsoft announced a redesign of Clippit. ...They later announced the resumption of use of the redesigned Clippit." (Footnotes omitted.) Note that Clippit is what the art refers to as a "front end" for providing navigation help to users. User navigation help is also provided to users through other types of interfaces. This document does not go into detail about all possible front ends that may be used, but rather deals with navigation paths for computer users without regard to front ends that convey navigation help to the user. [Means for solving the problem]

[0004] It was noted above that software can provide user assistance in navigating within a "computer program." In this document, a "computer program" through which a computer user is navigating may include several programs or other types of software portions. For example, a navigation journey may include navigation through several independent websites using several different web browsers. In that example, the collection of websites combined with the collection of browsers through which the user is navigating are collectively considered a "computer program" in this document.

[0005] Navigation within a set of computer programs is one type of navigation addressed in this document. Another type of navigation is navigation within physical space, such as when a driver is helped to navigate along roads with the help of a GPS (Global Positioning System) unit in a vehicle and a remote GPS server in wireless communication with the GPS unit in the vehicle. An example of navigation in physical space is the following: After traveling 6 miles (9.656.064 meters) west on Phyllis Boulevard, turn left onto Avon Court and stop at the third house on the right (the one with the green light on the front porch).

[0006] According to one aspect of the present invention, there is a method, computer program product, or system, or combination thereof, for use in conjunction with a set of one or more computer programs used by a human user to provide input for performing computer software navigation within the set of one or more computer programs, the method, computer program product, or system, or combination thereof, performing the following operations (not necessarily in this order): (i) receiving a computer software navigation target dataset including information indicating a start point for a computer software navigation path and an endpoint for the computer software navigation path; (ii) receiving a user computer software navigation journey dataset including information indicating a plurality of monitored computer software navigation paths taken by the human user while using the set of one or more computer programs, each monitored computer software navigation path beginning at the start point and ending at the endpoint; and (iii) determining from the plurality of monitored software navigation paths by machine logic a preferred computer software navigation path for navigating within the set of one or more computer programs from the start point to the endpoint.

[0007] According to one aspect of the present invention, there is a method, computer program product, or system, or combination thereof, for use with a physical space used by human users traversing the physical space in various ways, the method, computer program product, or system, or combination thereof, performing the following operations (not necessarily in this order): (i) receiving a spatial navigation target dataset including information indicating a start point for a spatial navigation path and an endpoint for the spatial navigation path; (ii) receiving a user spatial navigation journey dataset including information indicating a plurality of monitored spatial navigation paths taken by a human user while using the set of one or more computer programs, each monitored spatial navigation path beginning at the start point and ending at the endpoint; and (iii) determining from the plurality of monitored spatial navigation paths by machine logic a preferred spatial navigation path for navigating within the set of one or more computer programs from the start point to the endpoint.

[0008] According to one aspect of the present invention, there is a method, computer program product, or system, or combination thereof, for use by a human user navigating a real space, or one or more computer programs, or both, the method, computer program product, or system, or combination thereof, performing the following operations (not necessarily in that order): (i) receiving a navigation target dataset including information indicating a start point for a navigation path and an endpoint for the navigation path; (ii) receiving a user navigation journey dataset including information indicating a plurality of monitored navigation paths taken by the human user while using the set of one or more computer programs, each monitored navigation path beginning at the start point and ending at the endpoint; and (iii) determining from the plurality of monitored navigation paths by machine logic a preferred navigation path for navigating within the set of one or more computer programs from the start point to the endpoint. [Brief explanation of the drawings]

[0009] [Figure 1] 1 is a block diagram of a first embodiment of a system according to the present invention;

[0010] [Figure 2] 3 is a flowchart illustrating a method of the first embodiment performed at least in part by the system of the first embodiment.

[0011] [Figure 3] FIG. 2 is a block diagram showing the machine logic (eg, software) portion of the system of the first embodiment.

[0012] [Figure 4] 1 is a directed weighted graph generated by the system of the first embodiment.

[0013] [Figure 5] FIG. 2 is a block diagram of a second embodiment of a system according to the present invention.

[0014] [Figure 6] 4 is a flow chart illustrating a second embodiment of the method according to the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0015] Some embodiments of the present invention are directed to machine logic that discovers computer user navigation paths for accomplishing data access, data storage, or data processing operations, or a combination thereof, on a computer by a human user. In some embodiments, the machine logic for discovering computer user navigation paths considers a series of factors, including (i) a comparison of tasks to be accomplished, (ii) a history of successfully performed tasks, and (iii) a directed weighted graph. The directed weighted graph compares execution steps, thereby automatically training an assistant using similarities between navigable execution steps, and a ticket generation monitoring system. This can eliminate the manual effort of human computer workers in generating, presenting, disseminating, or publishing alternative paths, or a combination thereof, by replacing it with intelligent software. In computer software navigation path embodiments, the use of the machine logic of the present invention can create an economically more efficient ticketing system because lightweight or few tickets automatically generate alternative paths and do not expose them to users when a bottleneck is detected in the user's efforts to accomplish them. While a failure may create an excessive new workload for the development team, preventing the development team from fixing the failure or the system, some embodiments of the present invention discover new navigation paths (e.g., navigation paths in physical space, computer software navigation paths) that help users accomplish the same or similar tasks based on what others have done.

[0016] This "Detailed Description of the Invention" section is divided into the following subsections: (i) Hardware and Software Environment, (ii) Exemplary Embodiments, (iii) Further Comments and / or Embodiments, and (iv) Definitions. I. Hardware and Software Environment

[0017] The present invention may be a system, method, or computer program product, or a combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium (or multiple computer-readable storage media) having computer-readable program instructions for causing a processor to perform aspects of the present invention. The computer program product may include a computer-readable storage medium (or multiple computer-readable storage media) having computer-readable program instructions for causing a processor to perform aspects of the present invention.

[0018] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves in which instructions are recorded, and any suitable combination of the foregoing. As used herein, the computer-readable storage medium itself is not considered to be a transitory signal such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through a fiber optic cable), or an electrical signal transmitted over a wire.

[0019] A "storage device" is hereby defined as anything configured or adapted to store computer code in a manner that allows the computer code to be accessed by a computer processor. A storage device generally includes a storage medium, which is a material in or on which computer code data is stored. A single "storage device" may (i) have multiple separate or distributed individual parts (e.g., a set of six solid-state storage devices located in six laptop computers that collectively store a single computer program), or (ii) use multiple storage media (e.g., a set of computer code partially stored in magnetic domains in a computer's non-volatile storage and partially stored in a set of semiconductor switches in a computer's volatile memory), or may satisfy both (i) and (ii). The term "storage medium" should be interpreted to encompass situations in which multiple different types of storage media are used.

[0020] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device, or may be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.

[0021] The computer-readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk® or C++, and conventional procedural programming languages ​​such as the “C” programming language or similar programming languages. The computer-readable program instructions may run entirely on the user's computer, as a standalone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) can execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the present invention.

[0022] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0023] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to create a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium capable of instructing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium having the instructions stored thereon comprises an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0024] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to create a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0025] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions, that implement a specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may possibly be executed in the reverse order, depending on the functional characteristics involved. It should also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations or executes a combination of special-purpose hardware and computer instructions.

[0026] 1, networked computer system 100 is one embodiment of a hardware and software environment for use with various embodiments of the present invention. Networked computer system 100 includes an IT (information technology) support subsystem 102 (sometimes more simply referred to herein as subsystem 102), a user computer 104, a word processing application 105, client subsystems 106, 108, 110, 112, and a communications network 114. Server subsystem 102 includes a server computer 200, a communications unit 202, a processor set 204, an input / output (I / O) interface set 206, memory 208, persistent storage 210, a display 212, an external device 214, random access memory (RAM) 230, a cache 232, and programs 300.

[0027] Subsystem 102 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smartphone, or any other type of computer (see the definition of "computer" in the "Definitions" section below). Program 300 is a collection of machine-readable instructions and / or data used to create, manage, and control certain software functions discussed in detail below in the "Illustrative Embodiments" subsection of this "Detailed Description of the Invention" section.

[0028] Subsystem 102 can communicate with other computer subsystems via communications network 114. Network 114 may be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, or fiber optic connections. In general, network 114 may be any combination of connections and protocols that support communication between server and client subsystems.

[0029] Subsystem 102 is shown as a block diagram with a number of double arrows. These double arrows (not having separate reference numbers) represent a communications fabric that provides communication between the various components of subsystem 102. This communications fabric may be implemented using any architecture designed to pass data and / or control information between processors (such as microprocessors, communications processors, and network processors), system memory, peripheral devices, and any other hardware components in a computer system. For example, the communications fabric may be implemented, at least in part, using one or more buses.

[0030] Memory 208 and persistent storage 210 are computer-readable storage media. In general, memory 208 may include any suitable volatile or non-volatile computer-readable storage medium. It is further noted that, currently or in the near future, or both, (i) external device 214 may be able to provide some or all of the memory for subsystem 102, or (ii) devices external to subsystem 102 may be able to provide memory for subsystem 102, or both (i) and (ii) may be satisfied. Both memory 208 and persistent storage 210 (i) store data in a form less transient than signals in transmission and (ii) store data on tangible media (such as the magnetic or optical domain). In this embodiment, memory 208 is volatile storage, and persistent storage 210 provides non-volatile storage. The media used by persistent storage 210 may be removable. For example, a removable hard drive could be used for persistent storage 210. Other examples include optical and magnetic disks, thumb drives, and smart cards inserted into a drive for transfer to other computer-readable storage media that are also part of persistent storage 210.

[0031] The communications unit 202 provides for communication with other data processing systems or devices external to the subsystem 102. In these examples, the communications unit 202 includes one or more network interface cards. The communications unit 202 may provide communication through the use of either or both physical and wireless communications links. Any software modules discussed herein may be downloaded to a persistent storage device (such as persistent storage 210) through a communications unit (such as communications unit 202).

[0032] The I / O interface set 206 enables input and output of data using other devices that may be locally connected in data communication with the server computer 200. For example, the I / O interface set 206 provides a connection to an external device set 214. The external device set 214 will generally include devices such as a keyboard, keypad, touch screen, or any other suitable input device, or a combination thereof. The external device set 214 may also include portable computer-readable storage media, such as thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, such as the program 300, may be stored on such portable computer-readable storage media. The I / O interface set 206 also connects in data communication with a display 212. The display 212 is a display device that provides a mechanism for displaying data to a user and may be, for example, a computer monitor or a smartphone display screen.

[0033] In this embodiment, program 300 is stored in persistent storage 210 for access and / or execution by one or more computer processors in processor set 204, typically through one or more memories in memory 208. Those skilled in the art will appreciate that program 300 may be stored in a more highly distributed manner during execution, non-execution, or both. Program 300 may include both machine-readable and machine-executable instructions, or tangible data (i.e., the type of data stored in a database), or a combination thereof. In this particular embodiment, persistent storage 210 includes a magnetic hard disk drive. To name a few possible variations, persistent storage 210 may include a solid-state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.

[0034] The programs described herein are identified based on the applications for which they are implemented in particular embodiments of the invention. However, it should be understood that any specific program names herein are used merely for convenience, and therefore the present invention should not be limited to use with only any particular application identified or suggested by such names.

[0035] The description of various embodiments of the present invention is presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art that do not depart from the scope and spirit of the described embodiments. The terminology used herein has been selected to best explain the principles of the embodiments, practical applications of, or technical improvements to, the technology found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein. II. Illustrative Embodiments

[0036] As shown in Figure 1, networked computer system 100 is an environment in which an exemplary method in accordance with the present invention may be implemented. As shown in Figure 2, flowchart 250 illustrates an exemplary method in accordance with the present invention. As shown in Figure 3, program 300 performs or controls the execution of at least some of the method operations of flowchart 250. The method and associated software will now be discussed throughout the following paragraphs, with broad reference to the blocks of Figures 1, 2, and 3.

[0037] The method of flowchart 250 is a computer-implemented method (CIM) for use with a set of computer programs that are used by a human user to provide input for executing computer software navigation within the set of computer programs. Alternatively, the navigation path may be the path of a human user navigating a real physical space (e.g., a set of roads in a city). In the example of flowchart 250, a human user is navigating a computer program in the form of a word processing application 105 running on a user computer 104.

[0038] Processing begins at operation S255, where input module (“mod”) 302 receives a computer software navigation target dataset from user computer 104 over network 114, the data including information indicating a start point for a computer software navigation path and an endpoint for the computer software navigation path. In this example, the current status of the user's interaction with the word processing app is “edit doc status,” meaning that the computer program is waiting for a human to make edits to an open word processing document in the word processing application. This is the start point of the navigation in which the human user wishes to engage. The desired endpoint is saving the document. As shown in FIG. 4 , the start point and endpoint are depicted as nodes in directed weighted graph data structure 400. In this example, the CONTROL key on the user's keyboard is broken. Because the user normally saves word processing documents using the CONTROL-S keyboard combination, the user is unable to save their document. This path (which the user cannot use due to a broken keyboard) is shown in graph 400, traversed from the "hit CONTROL-S" node to the "save document" node. A human user desires an alternate path for saving their open word processing document.

[0039] Processing continues at S260, where mod 302 receives a user computer software navigation journey data set including information indicating a plurality of monitored computer software navigation paths taken by a human user while using a set of computer programs, each monitored computer software navigation path beginning at a start point and ending at an endpoint. In this example, these monitored historical navigation paths are received from various client subsystems 106, 108, 110, and 112.

[0040] Processing continues to operation S265 where process mod304 determines, by machine logic, a preferred computer software navigation path for navigating within the set of computer programs from a start point to an end point from the plurality of monitored software navigation paths. A human user desires an alternative path for saving their open word processing document.

[0041] Once a preferred navigation path is discovered, it can be presented or communicated to a human user in various ways, such as through a virtual assistant, live internet chat, email, or through a GPS unit interface. In this example, the alternative path is communicated to the user as audio through the user's headphones (not shown). The alternative path is shown in graph 400, traversing from the "Drop Down File Menu" node to the "Select Save" node. Despite the broken control keys, the user is able to save their document because other users have previously performed this navigation journey while being monitored, and because this data is structured to allow for the discovery of alternative paths, for example, using directed weighted graph 400. The number listed for each edge in graph 400 indicates the weight for that edge. The arrows on graph 400 indicate directionality. In various embodiments, edges can be unidirectional or bidirectional. III. Further Comments and / or Embodiments

[0042] Some embodiments of the present invention recognize the following facts, potential problems, or potential scope for improvement over the current state of the art, or a combination thereof: (i) there can be high volume of ticket generation related to assisting computer users with navigation, or (ii) high volume is more likely to occur when users are unable to accomplish tasks within a web or mobile application (i.e., users have what is referred to herein as a "computer navigation problem," or more simply, a "navigation problem"), or both (i) and (ii).

[0043] Some embodiments of the present invention may include one or more of the following operations, features, characteristics, or advantages, or combinations thereof: (i) providing a solution for guiding users in performing efforts to follow step sets approved by other users; (ii) keeping users using a running system while developers focus on higher priority efforts; (iii) being particularly relevant to creating MVPs (minimum viable products) or rapid testing of concept type projects; (iv) including a user guidance system to suggest currently working steps for a system under development; (v) the system relies on recording user steps, accessing the system, and creating a knowledge graph of step sets that can or cannot be followed; (vi) the graph can have weights to evaluate steps that can succeed or fail; (vii) navigable step sequences can be clustered using unsupervised machine learning; or (viii) using supervised machine learning to determine which navigation steps will or will not generate errors (ticket generation); or a combination of (i) through (viii).

[0044] Some embodiments of the present invention may include one or more of the following operations, features, characteristics, or advantages, or combinations thereof: (i) helping users in real time with the best path to follow based on user patterns; (ii) focusing on error problems; (iii) avoiding negative user experiences and ticket creation; (iv) detecting user-derived error requests; (v) performing error analysis; (vi) storing errors as they are encountered during the user's use of the computer system; (vii) including a system for performing tasks; (viii) providing alternatives from stored errors; (ix) providing information about those errors to other users; (x) learning from other users; (xi) saving other failure requests; or (xii) using graph techniques to track user navigation; or a combination of (i) through (xii).

[0045] Some embodiments of the present invention may include one or more of the following operations, features, characteristics, or advantages, or a combination thereof: (i) including a user guidance system to suggest currently working steps for a system under development; (ii) the system relies on recording user steps, accessing the system, and creating a knowledge graph of step sets that can or cannot be followed; (iii) the graph can have weights to evaluate steps that can succeed or fail; (iv) the graph is created automatically using unsupervised machine learning to cluster common navigation step sequences and unsupervised learning to consider which step sequences will or will not generate tickets (errors); or (v) reducing the number of tickets and user experience of a system under development or an unstable system; or a combination of (i) through (v).

[0046] As shown in FIG. 5, system diagram 500 includes Internet 501, other user devices 502, data files 504a through 504z, alternative navigation services 506, target services 508, solutions 550, and end users 560.

[0047] As shown in FIG. 6 , flowchart 600 includes a block S602 of continuous metrics collection, a block S604 of clustering all user navigation graphs, a block S606 of requesting a status greater than 400, a block S608 of saving the graph for retraining the model, a block S610 of selecting a graph similar to the error path, a block S612 of using a recommendation algorithm to choose the best path similar to the error path, a block S614 of suggesting an alternative path, a “did the user follow?” block S616, a block S618 where the user follows the alternative path, a “did it work?” block S620, a block S622 where the path is penalized, a block S624 where the path is promoted with a larger weight, a block S626 where the model is retrained with new weights for the path, a block S628 where the development team is notified, and a block S630 where the junction is established.

[0048] A method according to one embodiment of the present invention includes the following operations (see operation S602 in FIG. 6 ): Continuous metrics collection—collecting information about user actions, data obtained from requests, the user's location within the application, and what the user was doing before a request for the application was made (clicks and information registered by the user). All of this information is stored for further enhancement. This operation assumes that a model has already been generated. This model may be an unsupervised machine learning model such as k-means that is capable of clustering directed weighted graphs.

[0049] Furthermore, the method according to one embodiment of the present invention includes the following operations (see operation S604 in FIG. 6): Clustering all user navigation graphs - clustering all of the information collected in graph form and storing it for model training. The graph has its vertices (nodes) representing the information registered by the user and the information collected before the request is made, and edges (lines) receiving the user's position within the application. The path ends when there is a response from the application.

[0050] Furthermore, a method according to one embodiment of the present invention includes the following operations (see operation S606 in FIG. 6 ): Request with status greater than 400—After a request is made by a user, the response status is checked to see if there were any errors in the request. Any status response equal to or greater than 400 returns an error, which indicates whether there was something wrong with the request handler within the application (less than 500) or the server hosting the application (equal to or greater than 500). This successful path has its weight increased to be more likely to be chosen as the recommended path.

[0051] Furthermore, the method according to one embodiment of the present invention includes the following operation (see operation S608 in FIG. 6 ): Save the graph for retraining the model—if the response status returns a success message, the graph was on the success path and receives a positive weight and can be further recommended. This operation executes an algorithm for classifying graph similarity within the cluster to which the graph belongs, such as cosine similarity.

[0052] Furthermore, the method according to one embodiment of the present invention includes the following operations (see operation S610 in FIG. 6): Selection of graphs similar to the error path - If there was any error in the request, graphs similar to the one sent are selected and verified if any of them are successful paths. All successful paths encountered are selected and sent to a recommendation algorithm to choose the best alternative path for the user. This operation requires a recommendation algorithm for directed weighted graphs that uses an adjacency matrix to find new paths to follow.

[0053] Further, the method according to one embodiment of the present invention includes the following operations (see operation S612 in FIG. 6): Selecting the best path similar to the error path using a recommendation algorithm—Based on the set of successful graphs found from operation S610, a recommendation algorithm is executed to find the best navigation graph to be suggested to the user.

[0054] Furthermore, a method according to an embodiment of the present invention includes the following operations (see operation S614 in FIG. 6 ): Suggesting an alternative path—Once a new navigation graph is found, the system uses a virtual assistant to interactively guide the user to follow the successful path. The virtual assistant helps the user with the goal of reducing the number of support tickets created and improving the user experience, as the user has real-time responses to guide them and complete their request. Here, supervised machine learning can be used, where sequences of operations can be featurized and ticket generation due to errors can be labels.

[0055] Furthermore, the method according to an embodiment of the present invention comprises the following actions (see action S616 in Figure 6): Did the user follow? - It is checked whether the user followed or did not follow the proposed path (using the same method as in action S602 above) to understand if the proposed path is a successful proposal aimed at increasing or not increasing this particular path in the graph.

[0056] Further, a method according to an embodiment of the present invention includes the following actions (see action S618 in Figure 6): User follows an alternative path - If the user follows a suggested alternative path, the system will remember that the user followed the suggested path and will continue to monitor the generated route to verify whether the path was satisfactory, using the same metrics as in initial action S602 above.

[0057] Furthermore, the method according to an embodiment of the present invention includes the following actions (see action S620 in Figure 6): Did it work? - Finally, using the same method as in action S606 above, it will be verified whether the proposed alternative path actually worked.

[0058] Furthermore, the method according to one embodiment of the present invention includes the following actions (see action S622 in Figure 6): Penalize the path - if an alternative path fails, this path is penalized and weight is subtracted from the graph in order to rebalance the graph used by this path.

[0059] Furthermore, a method according to an embodiment of the present invention includes the following actions (see action S624 in FIG. 6): Boost the path with a higher weight - If an alternative path works, this path is boosted and a higher weight is assigned to the graph used by this path to ensure further use.

[0060] Furthermore, a method according to an embodiment of the present invention includes the following actions (see action S626 in FIG. 6): Retraining the model with new weights—The system will retrain the model with new path weights to gain more insight and rebalance the graph. This action is important to keep the model updated and ensure that paths with higher weights are the best ones to suggest.

[0061] Furthermore, a method according to an embodiment of the present invention includes the following actions (see action S628 in FIG. 6): Notify Development Team—The development team is notified of the error with their respective collected metrics to help make the fix faster and more accurate. This allows the development team to stay focused on the priority problem and have more time to fix it.

[0062] A method for creating alternative effective service navigation steps according to one embodiment of the present invention includes (i) in response to collecting metrics related to usage information, including (a) user actions, (b) data obtained from the request, (c) the user's location within the application and what the user was doing before the request for the application was made, and (d) storing the collected information, (ii) clustering the collected information to form a graph with vertices (nodes), i.e., (a) representing the collected information registered by the user, (b) representing the collected information gathered before the request was made, and (c) including edge lines receiving the user's location within the application; (iii) storing the graph for model training; (iv) in response to receiving a request by the user, determining whether the response status is at least equal to a predetermined threshold; and (v) in response to determining that the response status exceeds the predetermined threshold, indicating an error response (not necessarily in this order).

[0063] A method for creating alternative effective service navigation steps according to one embodiment of the present invention further comprises the following operations (not necessarily in this order): (i) indicating a positive response in response to determining that the response status is less than a predetermined threshold; (ii) assigning a positive weight to each graph in response to indicating a positive response; (iii) verifying, for each identified graph similar to the current graph of the error response, whether any of the identified similar graphs is a successful path; (iv) identifying, by the predetermined recommendation algorithm, the navigation graph with the highest weight for suggestion to the user using the assigned respective weight values ​​in response to sending all encountered successful paths to a predetermined recommendation algorithm; and (v) interactively guiding the user using a virtual assistant to follow the successful path of the navigation graph suggested as the alternative path.

[0064] A method for creating alternative valid service navigation steps according to one embodiment of the present invention further comprises (i) an operation of storing information indicating that the user followed an alternative path while continuing to monitor the created route in response to determining that the user followed an alternative path; (ii) an operation of adding a predetermined weight to each graph used by the alternative path in response to determining that the alternative path worked; (iii) an operation of marking the alternative path to warrant further use; (iv) an operation of subtracting a predetermined weight from each graph used by the alternative path in response to determining that the alternative path did not work; (v) an operation of retraining the model using the new path weights to enable new insights and rebalance the respective graphs; and (vi) an operation of notifying the respective developer of the error using the respective metrics collected (not necessarily in this order).

[0065] Some embodiments of the present invention may include one or more of the following operations, features, characteristics, or advantages, or combinations thereof: (i) preventing users from opening tickets due to system problems; (ii) guiding users by providing currently working navigation steps for a system under development (or a system with some functionality issues); (iii) relying on recording user steps, accessing the system, and creating a knowledge graph of step sets that can or cannot be followed; (iv) the graph can have weights to evaluate steps that may succeed or fail; and (v) creating navigable step sequences using a knowledge graph. (vi) being able to cluster using unsupervised machine learning; (vi) using supervised machine learning to determine which navigation steps will generate errors and which will not (ticket generation); (vii) significantly preventing or reducing ticket generation due to service / system malfunctions; (viii) providing a better user experience through possible navigable steps within the system / service; (ix) focusing on monitoring user requests and preventing them from generating tickets due to system issues; or (x) preventing users from opening tickets when an error occurs when they make a request; or a combination of (i) through (x).

[0066] Some embodiments of the present invention may include user guidance services in the context where a user needs help to physically navigate (travel via roads, routes) based on geography, traffic, weather, etc. Some embodiments help a user execute a set of steps within a software system that has a fault at a particular step, generating additional workload due to the fault. IV. Definition

[0067] The present invention: The subject matter described by the term "the present invention" should not be considered an absolute indication that it is the subject of the claims as filed or as may ultimately be issued after patent prosecution. The term "the present invention" is used to help the reader get an overall feel for the potentially novel nature of the disclosure herein, but this understanding implied by use of the term "the present invention" is tentative and provisional, and is subject to change during the course of patent prosecution as relevant information evolves and as claims are, if applicable, amended.

[0068] Embodiments: See definition of "present invention" above. Similar considerations apply to the term "embodiments."

[0069] "and / or": inclusive disjunction. For example, "A, B, or C, or a combination thereof (A, B "and / or" C)" means that at least one of A or B or C is true and applicable.

[0070] Including / include / includes: Unless otherwise specified, means "including, but not necessarily limited to."

[0071] Module / Sub-Module: Any set of hardware, firmware, or software, or a combination thereof, operable to perform some type of function, regardless of whether the modules are (i) in a single local proximity, (ii) distributed over a wide area, (iii) in a single proximity within a larger software code, (iv) located within a single software code, (v) located within a single storage device, memory, or medium, (vi) mechanically connected, (vii) electrically connected, or (viii) connected by data communication, or whether all of (i) through (viii) are met.

[0072] Computer: Any device having significant data processing capabilities or machine-readable instruction reading capabilities, or both, including, but not limited to, desktop computers, mainframe computers, laptop computers, field programmable gate array (FPGA)-based devices, smartphones, personal digital assistants (PDAs), body-worn or body-insertable computers, embedded device-style computers, and application-specific integrated circuit (ASIC)-based devices.

Claims

1. 1. A Computer Implemented Method (CIM) for use with a set of one or more computer programs used by a human user to provide input for executing computer software navigation within the set of one or more computer programs, the method comprising: receiving a computer software navigation target data set including information indicating a start point for a computer software navigation path and an endpoint for the computer software navigation path; receiving a user computer software navigation journey data set including information indicative of a plurality of monitored computer software navigation paths taken by a human user while using the set of one or more computer programs, each monitored computer software navigation path beginning at the start point and ending at the endpoint; determining, by machine logic, from the plurality of monitored software navigation paths, a preferred computer software navigation path for navigating within the set of one or more computer programs from the start point to the endpoint; CIM equipped with.

2. wherein the determining step: creating a directed weighted graph; comparing the execution steps and automatically training the assistant using the similarities between the navigable execution steps and the ticket generation monitoring system; The CIM of claim 1 , comprising:

3. wherein the determining step: representing the information registered by a user as a plurality of nodes in the directed weighted graph; representing information gathered before a request is made as a node in the directed weighted graph; representing user locations as edges in the directed weighted graph; The CIM of claim 2 further comprising:

4. 4. The CIM of claim 1, further comprising sending the preferred computer software navigation path to a first human user who is using the set of one or more computer programs and who is currently at the starting point.

5. The CIM of claim 1 , further comprising running an unsupervised machine learning model using a K-means algorithm to cluster the directed weighted graph.

6. clustering the navigation graphs to obtain a plurality of clusters; performing model training using the plurality of clusters; The CIM of claim 5 further comprising:

7. 1. A computer implemented method (CIM) for use with a physical space used by human users traversing the space in various ways, comprising: receiving a spatial navigation target dataset including information indicating a start point for a spatial navigation path and an endpoint for the spatial navigation path; receiving a user spatial navigation journey data set including information indicative of a plurality of monitored spatial navigation paths taken by a human user while using a set of one or more computer programs, each monitored spatial navigation path beginning at the start point and ending at the endpoint; determining, by machine logic, from the plurality of monitored spatial navigation paths, a preferred spatial navigation path for navigating within the set of one or more computer programs from the start point to the endpoint; CIM equipped with.

8. wherein the determining step: creating a directed weighted graph; A stage where the execution steps are compared and the assistant is automatically trained.

8. The CIM of claim 7, wherein:

9. wherein the determining step: representing the information registered by a user as a plurality of nodes in the directed weighted graph; representing information gathered before a request is made as a node in the directed weighted graph; representing user locations as edges in the directed weighted graph; The CIM of claim 8 further comprising:

10. 10. A CIM as claimed in any one of claims 7 to 9, further comprising sending the preferred spatial navigation path to a first human user who is using the set of one or more computer programs and who is currently at the start point.

11. The CIM of claim 7 , further comprising running an unsupervised machine learning model using a K-means algorithm to cluster the directed weighted graph.

12. clustering the navigation graphs to obtain a plurality of clusters; performing model training using the plurality of clusters; The CIM of claim 7 further comprising:

13. A computer-implemented method (CIM) for use by a human user navigating a real space, or one or more computer programs, or both, comprising: receiving a navigation object data set including information indicating a start point for a navigation path and an end point for the navigation path; receiving a user navigation journey data set including information indicative of a plurality of monitored navigation paths taken by human users while using the set of one or more computer programs, each monitored navigation path beginning at the start point and ending at the endpoint; determining, by machine logic, from the plurality of monitored navigation paths, a preferred navigation path for navigating within the set of one or more computer programs from the start point to the endpoint; CIM equipped with.

14. wherein the determining step: creating a directed weighted graph; A stage where the execution steps are compared and the assistant is automatically trained.

14. The CIM of claim 13, wherein:

15. wherein the determining step: representing the information registered by a user as a plurality of nodes in the directed weighted graph; representing information gathered before a request is made as a node in the directed weighted graph; representing user locations as edges in the directed weighted graph; The CIM of claim 14 further comprising:

16. 16. A CIM as claimed in any one of claims 13 to 15, further comprising sending the preferred navigation path to a first human user who is using the set of one or more computer programs and who is currently at the start point.

17. The CIM of claim 13 , further comprising running an unsupervised machine learning model using a K-means algorithm to cluster the directed weighted graph.

18. clustering the navigation graphs to obtain a plurality of clusters; performing model training using the plurality of clusters; The CIM of claim 13 further comprising:

Citation Information

Patent Citations

  • Computer system, information gathering support apparatus, and information gathering support method

    JP2010033456A

  • Flow analysis instrumentation

    JP2016103299A