Techniques for workflow analysis and optimization of design tasks

Through machine learning algorithms, analyzing and comparing CAD workflows of multiple users, generating workflow diagrams and optimizing workflows, the problem of inefficient workflow analysis and optimization in the existing technology is solved, and more efficient design task execution and data transmission are achieved.

CN113767388BActive Publication Date: 2025-03-25AUTODESK INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080032511.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-05
Filing Date
2020-04-30
Publication Date
2025-03-25
Estimated Expiration
2040-04-30

AI Technical Summary

Technical Problem

The prior art is difficult to effectively analyze and optimize workflows in CAD applications, resulting in inefficiency of users when performing design tasks and high costs and difficulties in data transmission and display.

Method used

By executing a similarity algorithm for machine learning functions, the similarity and differences between multiple user workflows are determined, and a workflow diagram is generated graphically representing the workflows of multiple users, and a modified current workflow is generated based on this comparison.

Benefits of technology

Graphical representation and comparison of multiple user workflows is realized, helping users discover more effective workflows, reducing network bandwidth consumption and congestion, and improving the efficiency of workflow analysis and optimization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113767388B_ABST
    Figure CN113767388B_ABST
Patent Text Reader

Abstract

A web graph system is provided that includes a server connected to multiple clients via a network. Each client / user performs a design task via a design application, while the server collects time-stamped event data. The server generates multiple web graphs for multiple tasks based on the collected event data. Each web graph includes one or more representative workflows, each representative workflow includes at least one merge node, and the at least one merge node represents a node of different workflows from different users performing the same task. The web graph of a task selected by a user can be viewed in a web graph GUI. The user can also select a web suggestion function to analyze the current workflow of a task for optimization based on a web graph generated for the same task. A modified current workflow is generated that highlights user techniques in the current workflow that are less efficient than the user techniques in the web graph.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority to U.S. Provisional Patent Application Serial No. 62 / 842,271, filed May 2, 2019, entitled “TEC HNIQUESFOR ENCODING CONVERGENCES AND DIVERGENCES AC ROSS USERS PERFORMING COMPUTER-BASED TASKS,” which also claims the benefit of priority to U.S. Patent Application Serial No. 16 / 705,133, filed December 5, 2019, entitled “TECHNIQUES FOR WORKFLOW ANALYSIS AND DESIGN TASKOPTIMIZATION,” and which claims the benefit of priority to U.S. Patent Application Serial No. 16 / 705,140, ​​filed December 5, 2019, entitled “TECHNIQUES FOR WORKFLOW ANALYSIS AND DESIGN TASKOPTIMIZATION.” The subject matter of these related applications is hereby incorporated herein by reference. Background of the Invention Technical Field

[0004] The present invention relates generally to computer science and, more particularly, to techniques for workflow analysis and design task optimization.

[0005] Description of Related Technology

[0006] Software applications, such as computer-aided design (CAD) applications, are commonly used by architects, engineers, and other design professionals to help create, modify, analyze, and / or optimize designs. Among other things, the use of software applications can significantly increase the productivity of designers and / or improve the overall quality of designs. For example, CAD applications can be used to build computer models that represent real-world structures, such as buildings, vehicles, appliances, furniture, etc. The output of software applications can also include electronic files, including 3D printable designs that can be exported to a three-dimensional (3D) manufacturing device to manufacture a physical product.

[0007] Advances in computers and software engineering have significantly increased the number and complexity of commands that a user may invoke when using a software application, such as a CAD application. Furthermore, when using a CAD application to perform a task, such as designing a chair model, most users typically implement the same or similar workflow when repeatedly performing the same or substantially similar tasks. As a result, a given user typically does not explore or implement different workflows when performing a task that the user previously performed. For novice users, this tendency may be because they are more focused on simply trying to understand the number and complexity of different commands available in a CAD application, rather than focusing on determining a new workflow for performing a particular task. For more advanced users, this tendency may be because they simply rely on "tried and true" workflows that the user already understands and knows how to perform. As a result, both novice and advanced users typically end up implementing workflows that are inefficient and suboptimal for specific tasks, without exploring other possible workflows that may be more effective for those tasks.

[0008] There are currently several problems with conventional systems that provide workflow information to users of CAD applications. First, conventional systems that include a server machine connected to multiple client / user machines can configure the server machine to record commands and resulting state changes (representing changes in the design) for the user when performing various modeling tasks via the CAD application. Data for the recorded commands and design states can be provided to the user or other users. However, it is quite difficult to determine or understand the workflow implemented by a given user by viewing the recorded data that may include unprocessed data, minimally processed data, and / or unstructured data. Therefore, when analyzing and exploring the workflow of a specific task and / or attempting to optimize the workflow of a specific task, the data recorded by the conventional system may be of limited use.

[0009] In addition, the data for the recorded commands and design states usually include a large amount of data. Therefore, the transmission of the recorded data from the server machine to the client machine usually generates high costs in terms of network bandwidth consumption and increased network congestion. In addition, when received at the client machine of the client, it is also quite difficult to effectively display the recorded data on a conventional display monitor because a large amount of data is involved. In particular, the size of a conventional display monitor is usually unable to display all the recorded data at the same time. Therefore, the user is forced to scroll through the recorded data about the data displayed on the display monitor in order to view all the recorded data. This method makes it extremely difficult for the user to determine or analyze the workflow based on the recorded data.

[0010] As the foregoing illustrates, there is a need in the art for more efficient techniques for analyzing and optimizing the workflow of CAD applications. Summary of the invention

[0011] Various embodiments include a computer-implemented method for analyzing a software application workflow. The computer-implemented method includes: performing one or more operations to determine at least two nodes, wherein each of the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are based on a similarity algorithm that implements one or more machine learning functions. The computer-implemented method also includes: generating a first workflow diagram for the first task that graphically represents multiple user workflows for performing the first task, wherein the first workflow diagram includes at least one representative workflow, and the at least one representative workflow includes a first merge node representing the two nodes. The computer-implemented method also includes: receiving a selection of the first task via the user interface presented on the client device; retrieving the first workflow diagram for the first task from a database; and causing the first workflow diagram to be displayed via the user interface.

[0012] At least one technical advantage of the disclosed technology over the prior art is that the disclosed technology is capable of generating and displaying a workflow diagram that provides a graphical representation of multiple workflows implemented by multiple users when performing the same design task. Among other things, the workflow diagram provides an aggregated illustration of multiple workflows that allows a user to easily view and understand different workflows implemented by other users who previously performed the same design task. In particular, the workflow diagram can illustrate how different workflows implemented by multiple other users converge with each other (indicating similarities) and diverge from each other (indicating differences). In this way, a user can explore different workflows that the user has not yet implemented or considered when performing a given design task, which allows the user to discover and implement more effective workflows for the design task. Another technical advantage over the prior art is that transmitting a workflow diagram between a server machine and a client machine involves much less transmitted data, thereby reducing network bandwidth consumption and congestion, as described above.

[0013] Various embodiments include a computer-implemented method for analyzing a software application workflow. The computer-implemented method includes receiving, via a user interface presented on a client device, a selection of a first task to be performed via a design application. The computer-implemented method also includes: performing one or more operations to determine a first edge and a second edge, wherein the first edge is associated with a first user workflow for performing the first task, the second edge is associated with a first workflow diagram that graphically represents multiple user workflows for performing the first task, and the one or more operations are based on a similarity algorithm that implements one or more machine learning functions. The computer-implemented method also includes: generating a modified first workflow based on a comparison between the first edge and the second edge; and causing the modified first workflow to be displayed via the user interface.

[0014] At least one technical advantage of the disclosed technology over the prior art is that a computer device is enabled to generate and display a modified current workflow based on a comparison between a workflow implemented by a current user when performing a design task and a workflow diagram that provides a graphical representation of multiple workflows implemented by other users when performing the same design task. In particular, the modified current workflow can indicate one or more user techniques implemented by the current user, which are determined to be less efficient than one or more corresponding user techniques implemented by other users. The current user can then implement more efficient user techniques when performing design tasks in the future. In this way, the current user can more easily analyze and optimize the workflow for performing a specific design task relative to previous methods. Another technical advantage over the prior art is that transmitting the modified workflow between a server machine and a client machine involves much less transmitted data, thereby reducing network bandwidth consumption and congestion, as described above.

[0015] In at least one practical application, the disclosed technology can be implemented in a company or other enterprise with a server-client architecture. When performing various design tasks, a central server can receive and record multiple clients ( For example , employees) and generate and provide workflow diagrams for various design tasks. Clients can use workflow diagrams to analyze, explore and / or optimize workflows for performing various tasks. In at least one other practical application, the disclosed technology can be implemented via a connection to multiple clients ( For example , a subscriber of the cloud-based service) is implemented outside the enterprise. When performing various design tasks, the cloud server can receive and record command usage data and the resulting design status of multiple clients, and generate and provide workflow diagrams for various design tasks. The client can use the workflow diagram to analyze, explore and / or optimize the workflow for performing various tasks. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The manner in which the above-described features of the various embodiments can be understood in more detail in the more particular description of the inventive concept briefly described above, by reference to various embodiments, some of which are illustrated in the accompanying drawings. It should be noted, however, that the drawings illustrate only typical embodiments of the inventive concept and are therefore not to be considered limiting of the scope in any way, and that there are other equally effective embodiments.

[0017] Figure 1 A system configured to implement one or more aspects of various embodiments is shown;

[0018] Figure 2 is a conceptual diagram of an event data table according to various embodiments;

[0019] Figure 3 is a flow chart of method steps for collecting event data according to various embodiments;

[0020] Figure 4 is a conceptual diagram of a set of primitive workflows according to various implementation schemes;

[0021] Figure 5 is a conceptual diagram of a set of connected lean workflows according to various embodiments;

[0022] Figure 6 is a conceptual diagram of a W diagram for accomplishing a particular task according to various implementation schemes;

[0023] Figure 7 is a flow chart of method steps for generating a W graph for a task according to various embodiments;

[0024] Figure 8 is a screen shot of a W-chart graphical user interface (GUI) for displaying and interacting with a W-chart according to various embodiments;

[0025] Fig. 9 According to various embodiments Figure 8 Screen shot of a selected W-graph displayed on the W-graph GUI;

[0026] Fig.10 According to various implementation schemes Figure 8 Screen shot of the W-Chart Data section of the W-Chart GUI;

[0027] Fig.11 is a flow chart of method steps for displaying and interacting with a W-map generated for a task, according to various embodiments;

[0028] Fig.12is a screenshot of a W suggestion GUI for displaying and interacting with a modified workflow according to various embodiments;

[0029] Fig.13 According to various embodiments Fig.12 Screen shot of the modified workflow shown on the W suggestion GUI;

[0030] Fig.14 According to various implementation schemes Fig.12 Screen shot of the Compare Data section of the W Suggest GUI;

[0031] Fig.15 is a flow chart of method steps for displaying and interacting with a W-map generated for a task, according to various embodiments;

[0032] Fig.16 It is shown that according to various embodiments, Figure 1 An exemplary server device implemented in the system of

[0033] Fig.17 It is shown that according to various embodiments, Figure 1 An exemplary client device implemented in the system. DETAILED DESCRIPTION

[0034] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to one skilled in the art that the inventive concept may be practiced without one or more of these specific details.

[0035] As used herein, a "workflow" such as an original workflow and a streamlined workflow may include a graphical representation of the entire process from a start state (blank design) to an end state (completed design / task) implemented by a single user to perform a design task. A workflow may include a sequence of events, each event including an edge and a corresponding node. A workflow may also be considered as a set of nodes connected by a set of directed edges from a start node (blank design) to an end node (completed design / task).

[0036] As used herein, an "event" may include a pairing between an edge (representing a user technique) and a corresponding node (representing a design state resulting from the user technique).

[0037] As used herein, "event data" may include any type of data that describes an event or data related to an event. Event data may be collected from individual users as they perform tasks via a design application. For example, event data may include command usage data, content snapshots, and screen recordings. Each item of event data may be time-stamped.

[0038] As used herein, an "edge" may represent a user technique that produces a corresponding state of a design / task, the corresponding state being represented by the corresponding node of the edge. An edge may include a directed edge that starts from a previous state / node and ends at a new state / node. Thus, an edge may also represent a state change from a previous state / node to a new state / node. In either the original workflow or the streamlined workflow, an edge represents a single user technique that causes a change from a previous state / node to a new state / node.

[0039] As used herein, a "node" may represent a state or condition of a task, such as a state or condition of a model design. The state of a design / task may be indicated by a content snapshot of the design / task, which is associated with a node representing the state.

[0040] As used herein, a "user technique" may include a specific set / sequence of commands invoked by a user that causes the state of a design / task to change from a first / previous state to a second / new state.

[0041] As used herein, an "original workflow" may include an initial workflow for a single user prior to combining similar nodes of the workflow.

[0042] As used herein, a "compacted workflow" may include a workflow for a single user after combining similar nodes of the workflow. A compacted workflow may include a combined set of nodes.

[0043] As used herein, a "combined node" may represent two or more similar nodes in an original workflow that are combined into a single combined node. Similar nodes are two or more nodes representing two or more design / task states that are determined to be similar within a threshold.

[0044] As used herein, a "workflow diagram" (W-diagram) includes a graphical representation of multiple workflows of multiple users performing the same design task. Each W-diagram includes one or more representative workflows. In other embodiments, a workflow diagram includes a graphical representation of multiple workflows of the same user performing the same design task at different times.

[0045] As used herein, a "representative workflow" refers to a different overall process / path from a starting state (blank design) to an end state (completed design / task). A representative workflow may include an ordered sequence of representative events, each representative event including a representative edge and a corresponding representative node. Each representative workflow may include at least one merge node representing multiple nodes from multiple different workflows of multiple different users performing the same task.

[0046] As used herein, a "representative edge" in a representative workflow may represent one or more different user techniques (one or more different sets / sequences of commands), each of which produces the same corresponding state of the design / task, the corresponding state being represented by the corresponding representative node of the representative edge.

[0047] As used herein, a "representative node" in a representative workflow may include an original node, a combined node, or a merged node.

[0048] As used herein, a "merged node" may represent two or more similar nodes, each of which originates from a different workflow (original or streamlined workflow) of a different user. For example, a first node from a first workflow of a first user may be merged with a second node from a second workflow of a second user to produce a single merged node, wherein the first node and the second node are determined to be similar nodes. Similar nodes are two or more nodes representing two or more design / task states that are determined to be similar within a threshold.

[0049] As used herein, a "table" may include any type of data container, such as a data file, a document, and the like.

[0050] As disclosed in the embodiments herein, a workflow diagram (W-diagram) system includes a server connected to multiple clients / users via a network. Each client / user executes a design application to perform a specific design task (such as designing a 3D model of a specific object). The W-diagram system operates in three phases: an event data collection phase, a W-diagram library construction phase, and a runtime phase using a W-diagram graphical user interface (GUI) and / or a W-suggestion GUI.

[0051] During the event data collection phase, the server collects event data for multiple clients / users performing / completing different design tasks. For each client / user performing a specific design task, the server can collect event data including command data, content snapshots, and screen recordings. Each item of event data can be time-stamped.

[0052] During the W graph library construction phase, the server generates multiple different W graphs for multiple different tasks based on the collected event data. A separate W graph can be generated for each specific task based on the event data collected from multiple clients / users performing the same specific task via the design application. For each user performing a specific task, the server can generate an original workflow that graphically represents the entire process that the user implements to perform / complete the specific task. The original workflow includes a sequence of events, each event including an edge representing a user technology (command set) and a corresponding node representing the state of the design / task generated by the user technology. The server can also generate a streamlined version of the original workflow (simplified workflow), and the streamlined workflow includes a set of zero or more original nodes and a set of zero or more combined nodes. Each combined node can represent two or more similar nodes from the original workflow. Similar nodes can include two or more nodes representing two or more design / task states that are determined to be similar within a threshold. The server can also generate a W graph for a specific task based on multiple streamlined workflows. The W graph can include one or more representative workflows. Each representative workflow may include at least one merge node representing multiple nodes of multiple different workflows originating from multiple different users performing the same task. Each W-graph may be stored in a database for storing a W-graph library.

[0053] During the runtime phase of using the web map GUI, the current user may wish to perform a specific task via the design application and view the web map of the specific task before performing the task. The server can receive a selection of a specific task via a user interface executed on the current client operated by the current user. In response, the server retrieves the web map of the selected task from the web map library and displays the web map at the current client via the web map GUI. The current user can interact with the web map GUI to request and receive more information related to the web map, such as command data information or screen recording. Advantageously, the web map of the task graphically represents a variety of different methods implemented by different users of various experience levels to complete the task, so that the commonalities and differences between the methods become apparent. Therefore, the web map allows the current user to easily view and understand different workflows implemented by other users who previously performed the design task, and explore different workflows that the current user had not previously considered when performing the task subsequently.

[0054] During the runtime phase of using the W suggestion GUI, the current user may perform a specific task via the design application and wish to analyze the entire process implemented by the current user for optimization (higher efficiency). In some embodiments, the W suggestion function includes analyzing the current workflow of the current user performing the task based on a comparison of the current workflow with a W graph generated for the same task. In these embodiments, the server may receive a selection of the W suggestion function and the specific task via a user interface executed on the current client operated by the current user.

[0055] In response, the server generates a current workflow for the current user to perform / complete a specific task. The current workflow may include a streamlined workflow comprising a combined node set. The server also retrieves a W-graph of a selected task from a W-graph library, and the W-graph includes one or more representative workflows for performing a task. The server determines the main representative workflows in the W-graph, including the shortest (most efficient) representative workflow in the W-graph. In other embodiments, the server determines the main representative workflows in the W-graph, including the most popular, most commonly used, most unique or most advanced representative workflows in the W-graph.

[0056] The server then compares the current workflow with the primary representative workflow to designate at least one edge of the current workflow as a highlighted edge. The at least one designated edge represents at least one user technique that is less efficient than the user technique represented by the corresponding representative edge in the primary representative workflow. The current workflow may be modified to highlight at least one designated edge to have a different appearance than the non-designated edges of the current workflow. The server may then cause the modified current workflow to be displayed at the current client via the W-suggestion GUI. The current user may interact with the W-suggestion GUI to request and receive more information related to the modified current workflow, such as command data information or screen recording associated with the highlighted / designated edge.

[0057] Advantageously, the modified current workflow may indicate one or more user techniques implemented by the current user that are determined to be less efficient than one or more corresponding user techniques implemented by other users. The current user may then implement a more efficient user technique when performing the same task in the future.

[0058] W-chart system

[0059] Figure 1 1 shows a system configured to implement one or more aspects of various embodiments. As shown, the W map system 100 includes a server 110 and a plurality of clients 130 ( For example, 130A to 130N). Each client 130 is associated with and corresponds to a specific user operating the client 130. The network 120 may include any technically feasible wired or wireless communication or information network that allows data exchange, such as a wireless (Wi-Fi) network, a personal area network (such as Bluetooth, wireless USB, IrDA, etc.), a wide area network (WAN), a local area network (LAN) and / or the Internet, etc.

[0060] Server 110 may include a computing device or machine, such as a server system, a desktop computer, a laptop computer, or any other type of computing device suitable for practicing various embodiments. Client 130 may include a computing device or machine, such as a desktop computer, a laptop computer, a mobile device, or any other type of computing device suitable for practicing various embodiments. Server 110 and client 130 include computer hardware components, such as memory for storing software applications and data and processors that execute software applications to provide processing engines that implement the operations and functions described herein. Figure 16 to Figure 17 The computer hardware components of server 110 and client 130 are discussed.

[0061] The server 110 executes a workflow engine 112 to execute the embodiments of the present invention. The workflow engine 112 may include an event data collection engine 114, a W map engine 116, a W suggestion engine 118, and a GUI engine 119. The server 110 may be connected to a database 125 that stores an event data repository 127 and a W map library 129 received from a client 130. Each client 130 executes an interface engine 131, a design application 133, and a GUI application 135.

[0062] During the data collection phase, the event data collection engine 114 may interact with the client 130 to receive event data 127 and store it to the database 125. The event data 127 may include data collected from the client 130 when a user operating the client 130 performs a task via the design application 133. The task may include any type of design or modeling task, such as designing a two-dimensional (2D) or three-dimensional (3D) model of a specific object (such as a table, coffee cup, vehicle, appliance, etc.). The collected event data may include command usage data, content snapshots, and screen recordings.

[0063] During the W-map library construction phase, the W-map engine 116 automatically and autonomously ( example like , without human intervention) to generate multiple different W graphs for multiple different tasks. A separate W graph can be generated for each specific task based on the collected event data 127.

[0064] During the runtime phase of implementing the W-chart GUI, the GUI engine 119 interacts with the GUI application 135 executed on the client 130. For example, the GUI engine 119 may receive a user selection of a particular task via the GUI application 135. In response, the GUI engine 119 may retrieve a W-chart corresponding to the selected task from the W-chart library 129 stored in the database 125. The GUI engine 119 then transmits the W-chart to the client 130 so that the W-chart is displayed within the W-chart GUI displayed by the GUI application 135.

[0065] During the runtime phase of implementing the W-suggestion GUI, the GUI engine 119 also interacts with the GUI application 135 executed on the client 130. For example, the GUI engine 119 can receive user selections of W-suggestion features and specific tasks via the GUI application 135. In response, the GUI engine 119 can cause the W-suggestion engine 118 to generate a modified current workflow for the current user corresponding to the selected task. The GUI engine 119 then transmits the modified current workflow to the client 130 so that the modified current workflow is displayed within the W-suggestion GUI displayed by the GUI application 135.

[0066] Each client / user 130 executes a design application 133 for performing a specific design task, such as designing a 3D model of a specific object (such as a chair, table, coffee cup, etc.). The design application 133 may include any type of computer-based software application or suite. For example, the design application 133 may include any type of design and / or engineering-based application, such as a computer-aided design (CAD) application, a computer-aided engineering (CAE) application, a simulator application, a modeler application, a geometry generator application, a software engineering suite, etc.

[0067] Each client / user 130 also executes an interface engine 131. The interface engine 131 can act as an interface between the workflow engine 112 executing on the server 110 and the design application 133 and GUI application 135 executing on the client 130 to perform the embodiments described herein. For example, during the event data collection phase, when a user performs a specific task via the design application 133, the interface engine 131 can generate event data and transmit the event data to the event data collection engine 114 of the workflow engine 112 via the network 120. Each item of event data can be time-stamped. For example, the interface engine 131 can generate command event data describing the command executed on the design application 133, and a content snapshot of the state of the design / task resulting from the executed command. The interface engine 131 can also generate a video screen recording of the design application 133 of the user performing the task from the start of the task to the completion of the task. Each event data item can be time-stamped and transmitted to the event data collection engine 114 of the workflow engine 112.

[0068] During the runtime phase, the GUI application 135 may interact with the workflow engine 112 via the network 120 to send user input received via the GUI application 135 to the workflow engine 112 and receive responses from the workflow engine 112. The GUI application 135 may generate and display a W diagram GUI and / or a W suggestion GUI.

[0069] During the runtime phase of implementing the wmap GUI, the GUI application 135 may send a user selection of a particular task to the workflow engine 112 and receive a wmap corresponding to the selected task from the workflow engine 112. The GUI application 135 may display the received wmap within the wmap GUI. The user may also interact with the wmap GUI to request and receive more information related to the displayed wmap, such as command data information or screen recording.

[0070] During the runtime phase of implementing the W-suggestion GUI, the GUI application 135 may send user selections of W-suggestion features and specific tasks to the workflow engine 112, and receive a modified current workflow corresponding to the selected task from the workflow engine 112. The GUI application 135 may display the received modified current workflow within the W-suggestion GUI. The user may also interact with the W-suggestion GUI to request and receive more information related to the displayed modified current workflow, such as command data information or screen recording.

[0071] Event data collection phase

[0072] During the data collection phase, the event data collection engine 114 may interact with the client 130 to receive event data 127 and store it to the database 125. The event data 127 may include data collected from the client 130 when a user operating the client 130 performs a task via the design application 133. The event data collection engine 114 may generate an event data table for each different task to store all received event data associated with the task. The event data collection engine 114 may store multiple different event data tables for multiple different tasks to the database 125, the multiple event data tables comprising the event data repository 127.

[0073] Figure 2 It is a conceptual diagram of an event data table according to various embodiments. Each event data table 200 can store event data received from a client 130 / user when performing / completing a specific task. For each user performing a specific task, an event can include a combination of a user technique (a command set called by the user) and a corresponding design / task state produced by the user technique. Event data can include any data related to or describing the execution of an event or task. In some embodiments, event data includes command usage data, content snapshots, and screen recordings. In other embodiments, event data can include data of any other type related to or describing the execution of an event or task.

[0074] The command usage data may include command log data indicating what commands a user invoked during the execution of a task. The command usage data indicates the user techniques (command sets) implemented by the user to produce changes in the state of the design / task. For each invoked command, the command usage data may specify a unique command identifier (command ID) for the invoked command and a timestamp when the command was invoked.

[0075] The content snapshot may include an image of a design state at a specific point in time (specified by an associated timestamp) generated by the corresponding user technology. The content snapshot may indicate the geometry of the design state generated by the corresponding user technology. For example, the content snapshot may include an image of the geometry of a 3D model of a chair generated by a specific user technology performed by a user. The execution of each user technology may trigger / start the generation of a content snapshot corresponding to the user technology. For example, at each client 130, a user may execute a user technology (command set) via a design application 133, which causes the interface engine 131 to trigger / start a content snapshot of the resulting state of the design task in the design application 133. The interface engine 131 may then transmit command usage data describing the user technology (command set) and the corresponding content snapshot to the event data collection engine 114. The interface engine 131 may repeat these operations for each user technology performed by the user when performing a task.

[0076] The interface engine 131 may also generate a screen recording of the design application 133 of the user performing the task from the start of the task to the completion of the task at each client 130. The screen recording may include a screen video recording showing the user techniques invoked by the user and the resulting state changes of the design task while performing the task. After the user completes the task, the interface engine 131 may then transmit the screen recording to the event data collection engine 114.

[0077] Each event data item received by the event data collection engine 114 can be stored in the event data table 200 corresponding to a specific task. As shown, the event data table 200 includes multiple entries 201 (such as 201a, 201b, 201c, etc.), and each entry 201 contains the event data of a specific user performing a task. In this regard, each entry 201 includes a user name / ID field 210 and an event data field 220. The user name 210 can include a unique user name or identifier of the user (such as user name_A, user name_B, user name_C, etc.). The event data 220 can include all event data received from the user, such as command usage data (such as C1_A, C2_A, C3_A, etc.), corresponding content snapshots (such as S1_A, S2_A, S3_A, etc.) and screen recording (such as R_A). Screen recording (such as R_A) can include the recording of the execution of the entire task. The screen recording may then be divided into recording segments / sub-portions (such as R1_A, R2_A, R3_A, etc.), each associated with a specific user technique (command set) and a corresponding content snapshot. Each item of event data 220 may be time-stamped.

[0078] Figure 3 is a flow chart of method steps for collecting event data according to various embodiments. Figure 1 to Figure 2 Although the method steps are described in terms of a system, those skilled in the art will appreciate that the method steps may be performed by any system in any order. In some embodiments, the method 300 may be performed by the server 110 in conjunction with multiple clients 130 to receive event data 127 and store it in the database 125. The method 300 may be implemented for each user who performs a specific task via a design application.

[0079] When client / user 130 For exampleThe method 300 begins when the server 110 is logged in (at step 310) with a username and password. The user begins (at step 320) performing a design task via the design application 133 executed on the client 130. The interface engine 131 may begin (at step 330) screen recording of the user performing the design task via the design application 133. As the user performs and completes the design task via the design application 133, the event data collection engine 114 may receive (at step 340) command usage data and content snapshots from the interface engine 131. The event data collection engine 114 also stores the received command usage data and content snapshots to the event data table 200 for the specific design task. After performing / completing the task, the event data collection engine 114 receives (at step 350) the screen recording from the interface engine 131 and stores the received screen recording to the event data table 200 for the specific design task. The event data collection engine 114 then stores (at step 360) the event data table 200 to the event data repository 127 stored on the database 125. The method 300 then ends.

[0080] W Library Construction Phase

[0081] During the W-map library building phase, the W-map engine 116 of the server 110 generates multiple different W-maps for multiple different tasks based on the collected event data 127. A separate W-map may be generated for each specific task based on the event data collected from multiple clients / users performing the same specific task via the design application 133.

[0082] Generating each W graph for a task may include three separate stages: a preprocessing stage, a node combination stage, and a node merging stage. For a specific task, the W graph engine 116 performs the preprocessing stage and the node combination stage to generate a streamlined workflow for each user to perform a specific task. Therefore, the preprocessing stage and the node combination stage produce multiple streamlined workflows, representing the entire process implemented by multiple users to perform the same task. The W graph engine 116 can then perform a node merging stage to merge similar nodes across multiple streamlined workflows to generate a W graph for the task. The W graph includes a graphical summary of multiple workflows for multiple users performing the same task.

[0083] In the preprocessing stage, the W-map engine 116 can preprocess the event data 127 received for each user who performs a task. In particular, the W-map engine 116 can use heuristics to preprocess the event sequence of each user to collapse the repeated or redundant commands called by the user. For example, multiple calls of the "arrow key" command for moving an object can be collapsed into one "object moved with keyboard" command. As another example, multiple calls of the "pan viewpoint" command can be collapsed into one "pan" command. The W-map engine 116 can then generate an original workflow for each user based on the preprocessed event data. Therefore, for multiple users who perform a specific task, the W-map engine 116 can generate an original workflow set, each of which graphically represents the entire process implemented by the user to perform / complete a specific task. The W-map engine 116 can also connect the original workflow set via a common start node (blank design) and a common end node (completed design / task).

[0084] Figure 4 4 is a conceptual diagram of a set of primitive workflows according to various embodiments. The set of primitive workflows 400 includes a plurality of primitive workflows, each of which starts at a common start node 401 (blank design) and ends at a common end node 450 (completed design / task). Figure 4 Only three original workflows are shown in the example of FIG. However, the original workflow set 400 will generally contain a large number of original workflows.

[0085] Each original workflow includes an ordered sequence of timestamped events 410 from a start node 401 to an end node 450. Each event 410 is represented by a directed edge 420 and a corresponding node 430. Directed edges 420 are sometimes referred to as original edges 420 and nodes 430 are sometimes referred to as original nodes 430. Directed edges 420 represent user technologies (call command sets) and corresponding nodes 430 represent the state of a design / task generated by implementing the user technology. As shown, each directed edge 420 points to a corresponding node 430. Each directed edge 420 is associated with timestamped command usage data for a user technology (call command set). Each corresponding node 430 is associated with a timestamped content snapshot of a design state / task generated by the user technology. Each original workflow is also associated with a screen recording of a user performing a task from the start state / node 401 to the end state / node 450. As shown in the original workflow set 400, each user can implement a different entire process / method to perform / complete a specific task.

[0086] The W graph engine 116 can then perform a node combination phase on the original workflow set 400 to generate a streamlined workflow set. In particular, the W graph engine 116 can generate a streamlined version (streamlined workflow) of each original workflow, and the streamlined workflow includes a set of zero or more original nodes and a set of zero or more combined nodes. Each combined node can represent two or more similar adjacent nodes from the same original workflow. Since the original workflow will usually contain a very large number of nodes, combining similar nodes into a single combined node is conducive to improving processing and storage efficiency. Similar nodes can include two or more adjacent nodes in the original workflow that represent two or more design / task states that are determined to be "similar" within a threshold.

[0087] In some embodiments, similar nodes include two or more adjacent nodes in the original workflow, which represent two or more design / task states that are determined to have "similar" geometry (within a threshold) based on a content snapshot associated with two or more adjacent nodes. In some embodiments, the W map engine 116 determines similar nodes for combining into a single combined node by adopting a selected similarity metric (and a corresponding threshold) in conjunction with a data clustering algorithm. As described below, the W map engine 116 can use various techniques for determining and defining similarity metrics. The W map engine 116 can implement a type of such technology to determine a specific similarity metric indicating the similarity level between the two or more adjacent nodes of two or more adjacent nodes. The W map engine 116 can then determine that two or more adjacent nodes are "similar" based on a predetermined threshold. For example, if the determined similarity metric of two or more adjacent nodes meets a predetermined threshold, the W map engine 116 can determine that two or more adjacent nodes are "similar".

[0088] The W graph engine 116 can also implement a data clustering algorithm to identify clusters of adjacent nodes in the original workflow. The data clustering algorithm then combines adjacent nodes of the same cluster into combined nodes based on a determined similarity metric and a predetermined threshold. In some embodiments, the data clustering algorithm includes a density-based spatial clustering (DBSCAN) algorithm for noisy applications. In these embodiments, the hyperparameters of the DBSCAN algorithm can be adjusted using the K nearest neighbor distance method. Given a set of points (nodes) in a certain space, the DBSCAN algorithm clusters closely packed points (points with many neighbors) together, while marking points located alone in low-density areas (whose nearest neighbors are too far away) as outlier points.

[0089] After the node combination phase is completed, the W-graph engine 116 generates a streamlined set of workflows. Figure 54 is a conceptual diagram of a connected streamlined workflow set according to various embodiments. The streamlined workflow set 500 includes multiple streamlined workflows, each of which starts at a common start node 401 (blank design) and ends at a common end node 450 (completed design / task). For illustration purposes, Figure 5 Only three streamlined workflows are shown in the example of FIG. However, the streamlined workflow set 500 will generally contain a large number of streamlined workflows.

[0090] As shown, each streamlined workflow includes a set / sequence of zero or more original nodes 430 and a set / sequence of zero or more combined nodes 530. It should be noted that when the set of original nodes 430 is combined into a single combined node 530, the set of original edges 420 corresponding to the set of original nodes 430 is also combined into a combined edge 520 corresponding to the combined node 530. The combined edge 520 can represent a combination of user technologies represented by the set of original edges 420. Therefore, the combined edge 520 represents a combined set / sequence of all call commands associated with the set of original edges 420. In addition, the set / sequence of original nodes 430 includes a final node as the last original node 430 in the sequence of original nodes 430. The combined node 530 can include the final node in the set / sequence of original nodes 430. The combined node 530 is associated with the content snapshot associated with the final node. Therefore, the combined node 530 represents the final state of the design within the set / sequence of original nodes 430, and the final state is illustrated by the content snapshot associated with the final node and the combined node 530.

[0091] For example, the set of original nodes 430 may include an ordered sequence, the ordered sequence including a first original node (with a corresponding first original edge), a second original node (with a corresponding second original edge), and a third original node (with a corresponding third original edge). The first original edge may represent a first user technology including commands c1 and c2, the second original edge may represent a second user technology including commands c3 and c4, and the third original edge may represent a third user technology including commands c5, c6, and c7. The set of original nodes 430 is combined into a first combined node with a corresponding first combined edge. Therefore, the first combined edge represents a first combined user technology including commands c1 to c7. In addition, the first combined node includes the third original node and is associated with a content snapshot associated with the third original node.

[0092] After the node combination phase, the W-graph engine 116 can then perform a node merging phase to merge similar nodes across multiple streamlined workflows to generate a W-graph for the task. Each merged node can represent two or more similar nodes (original nodes or combined nodes) from two or more different streamlined workflows. As in the node combination phase, similar nodes in the node merging phase can also include two or more nodes that represent two or more design / task states that are determined to be "similar" within a threshold.

[0093] In some embodiments, the W graph engine 116 determines similar node pairs for combining into a single merge node by adopting a selected similarity metric and a corresponding threshold value. As described below, the W graph engine 116 can use various techniques for determining and defining similarity metrics. The W graph engine 116 can implement a specific similarity metric of the similarity level between the indicating node pairs of a node pair to determine a node pair. The W graph engine 116 can then determine that the node pair is "similar" based on a predetermined threshold and a content snapshot associated with the node pair. For example, if the determined similarity metric of the node pair meets a predetermined threshold, the W graph engine 116 can determine that the node pair is "similar". In the node merging stage, the W graph engine 116 can analyze the streamlined workflow by processing the node pairs from two different streamlined workflows. Therefore, in the node merging stage, the W graph engine 116 may not need a data clustering algorithm for clustering node groups. However, in subsequent processing, the merged node can then be merged with another node from another workflow. Therefore, the merged node can represent two or more similar nodes.

[0094] After the node merging phase is completed, the W-graph engine 116 has generated a W-graph for the task. Figure 6 600 is a conceptual diagram of a W-graph for completing a particular task according to various embodiments. W-graph 600 graphically represents multiple workflows of multiple users performing the same task.

[0095] W-graph 600 may include one or more representative workflows. Each representative workflow starts at a common start node 401 (blank design) and ends at a common end node 450 (completed design / task). Each representative workflow represents a unique / different overall path from the start node 401 to the end node 450. Each representative workflow may be designated as a different sequence of nodes / states from the start node 401 to the end node 450. In this regard, each node in W-graph 600 may be associated with a label, such as A, B, C, D, and so on. Each representative workflow may then be defined as a different sequence of labeled nodes / states that uniquely identifies the representative workflow from other representative workflows in W-graph 600. Figure 6In the example of , W diagram 600 includes: a first representative workflow designated as A, B, D, F, and H; a second representative workflow designated as A, B, D, F, G, and H; a third representative workflow designated as A, B, F, and H; a fourth representative workflow designated as A, B, F, G, and H; and a fifth representative workflow designated as A, C, E, G, and H.

[0096] As shown, each representative workflow may include a set of zero or more original nodes 430, a set of zero or more combined nodes 530, and a set of zero or more merged nodes 630. A merged node 630 may represent a set of two or more similar nodes, each of which originates from a different streamlined workflow of a different user. Each merged node 630 has a corresponding merged edge 620. It should be noted that when a node set is combined into a single merged node 630, a corresponding merged edge 620 represents an edge set corresponding to the node set. An edge set represents a user technology set, wherein some user technologies in the user technology set may be unique / different and some user technologies may be the same. A merged edge 620 may represent each different user technology (different command set) in the user technology set represented by the edge set. Therefore, a merged edge 620 represents each different command set / sequence associated with an edge set. In addition, any node in the node set may be selected as a merged node 630. The merged node 630 is then associated with a content snapshot associated with the selected node.

[0097] For example, the node set may include a first node (with a corresponding first edge) from a first streamlined workflow, a second node (with a corresponding second edge) from a second streamlined workflow, and a third node (with a corresponding third edge) from a third streamlined workflow. The first edge may represent a first user technology including commands c1 and c2, the second edge may represent a second user technology including commands c1 and c2, and the third edge may represent a third user technology including commands c2 and c3. The node set is merged into a first merge node with a corresponding first merge edge. Therefore, the first merge edge represents two independent and different user technologies, including a first user technology (commands c1 and c2) and a third user technology (commands c2 and c3). Since the second user technology (commands c1 and c2) is the same as the first user technology (commands c1 and c2), the second user technology is not represented by the first merge edge. It should be noted that two different user technologies including the first user technology and the third user technology will both produce the same change in the design state (as represented by the first merge node).

[0098] In this regard, each edge in W diagram 600 can have the associated user technology counter that each different user technology represented by edge is counted.In this example, the user technology counter of the first merged edge will equal 2, because the first merged edge represents two different user technologies.It is not that the default user technology counter of the edge of the merged edge 630 in W diagram 600 equals 1, because the unmerged edge (original edge or combined edge) only represents a single different user technology.In addition, the first, second or third node can be selected as the first merged node, which is associated with the content snapshot associated with the selected node.

[0099] Each representative workflow in the W diagram 600 can also be characterized as a sequence of representative events from the start node 401 to the end node 450, each representative event including a representative edge and a corresponding representative node. The representative edge may include an original edge 420, a combined edge 520, or a merged edge 620. The representative edge represents one or more user techniques (command sets) that change the state of the design task from a previous state to a new state. If the representative edge includes an original edge 420 or a combined edge 520, the representative edge represents a single user technique (command set). If the representative edge includes a merged edge 620, the representative edge may represent one or more different user techniques (one or more different command sets), each of which leads to the same design state (as represented by the corresponding representative node). For example, a first representative edge may represent a first user technique (first command set) implemented by a first user and a second user technique (second command set) implemented by a second user, each of which produces the same change from the same previous state to the same new state. The representative node may include an original node 430, a combined node 530, or a merged node 630. Each representative node may represent a specific subtask in the entire task.

[0100] After the node merging stage, the W-graph engine 116 stores the W-graph generated for the task in the W-graph library 129 in the database 125. The above three processing stages can be repeated for each design task to generate multiple W-graphs for multiple tasks stored in the database 125. Each W-graph stored in the database 125 can be indexed by design task for accessing the W-graph in the database 125.

[0101] As described above, each W graph may include one or more representative workflows. Each representative workflow includes a sequence of representative events, and each representative event includes a representative edge and a corresponding representative node. Each W graph may include a data structure for storing W graph data, including data describing the W graph and one or more representative workflows and any data associated with the W graph. For example, the stored W graph data may include any event data associated with the W graph. For example, the stored W graph data may include an ordered sequence of representative events of each representative workflow and the position of any node connection (merge node) between one or more representative workflows. For each representative node, the W graph data may include a content snapshot associated with the representative node. For each representative edge, the W graph data may include a user technology counter and one or more command sets (user technology) associated with the representative node.

[0102] For each representative edge, the W graph data may also include one or more screen recordings associated with the representative edge, each screen recording including a video recording of a user executing a set of commands (user techniques) associated with the representative event. Figure 2 As described, event data for a workflow for a user to perform a task can include a screen recording of a user performing a task from the beginning (blank design) to the end (completed design). The screen recording can then be subdivided into recording segments, each recording segment being associated with a specific edge representing a user technique (command set). Therefore, each recording segment can include a video recording of a user performing a specific command set (user technique) associated with an edge. In these embodiments, for each representative edge in the W graph, the W graph engine 116 can store and associate separate recording segments for each different user technique represented by the representative edge. For example, if the representative edge represents two different user techniques, the W graph engine 116 can store and associate two recording segments of the representative edge.

[0103] Figure 7 is a flow chart of method steps for generating a W graph for a task according to various embodiments. Figure 1 to Figure 2 and Figures 4 to 6 The method steps are described with reference to a system of FIG. 1 , but those skilled in the art will appreciate that the method steps may be performed by any system in any order. In some embodiments, the method 700 may be performed by a W-map engine 116 executing on a server 110 connected to a database 125 storing event data 127. The method 700 may be implemented for each different design task performed via a design application.

[0104] Method 700 begins when W-map engine 116 retrieves (at step 710) an event data table 200 storing event data for a particular task. Event data table 200 includes event data for each of a plurality of different users performing a particular task via a design application. Each user's event data may include command data, content snapshots, and screen recordings.

[0105] The W graph engine 116 then performs (at step 720) a preprocessing phase to preprocess the event data of each user to generate the original workflow of each user. In particular, the W graph engine 116 can fold repeated or redundant commands called by the user to generate the original workflow of each user. Therefore, the W graph engine 116 generates a set of original workflows, each of which graphically represents the entire process implemented by the user to perform / complete a specific task. Each original workflow can include a sequence of original edges and original nodes. The W graph engine 116 can also connect the original workflow sets via a common start node (blank design) and a common end node (completed design / task).

[0106] The W graph engine 116 then performs (at step 730) a node combination phase to generate a set of streamlined workflows, each of which includes a streamlined version of an original workflow in the original workflow set. Each streamlined workflow may include a set of zero or more original nodes and a set of zero or more combined nodes. Each combined node may represent two or more similar adjacent nodes from the same original workflow. Similar nodes may include two or more adjacent nodes in the original workflow that represent two or more design / task states that are determined to be "similar" within a threshold. The W graph engine 116 may streamline each original workflow to generate a streamlined workflow by implementing a selected similarity metric (and a corresponding threshold) in conjunction with a data clustering algorithm (such as a DBSCAN algorithm).

[0107] The W-graph engine 116 then performs (at step 740) a node merging phase to generate a W-graph of the task. The W-graph may include one or more representative workflows. Each representative workflow may include at least one merge node, which represents multiple nodes of multiple different workflows of multiple different users performing the same task. Each representative workflow includes a different sequence of representative events from a start node to an end node, and each representative event includes a representative edge and a corresponding representative node. The representative edge may include an original edge, a combined edge, or a merged edge. The representative edge represents one or more different user techniques (command sets) that change the state of the design task from a previous state to a new state. The representative node may include an original node, a combined node, or a merged node. Each merged node may represent a set of two or more similar nodes, each of which originates from a different streamlined workflow of a different user. The W-graph engine 116 may determine similar node pairs for merging into a single merged node by using a selected similarity metric and a corresponding threshold.

[0108] The W-map engine 116 then stores (at step 750) the W-map of the task to the W-map library 129 stored in the database 125. The W-map may include a data structure for storing W-map data, including data describing the W-map and one or more representative workflows and any data associated with the W-map. The method 700 then ends. The W-map may be indexed in the database 125 by the corresponding design task for later access to the W-map in the database 125. The method 700 may be repeated for each task to generate multiple W-maps stored in the database 125 for multiple tasks.

[0109] Similarity Techniques and Metrics

[0110] As described above, in the node combination stage and the node merging stage, two nodes are determined to be "similar" based on the selected similarity metric and the corresponding threshold. The W graph engine 116 can use various techniques for determining and defining similarity metrics in the node combination stage and the node merging stage. In both stages, the W graph engine 116 can implement such a technique to determine a specific similarity metric / value of two nodes, which indicates the similarity level between the two nodes (i.e., the similarity level between the two content snapshots associated with the two nodes). The W graph engine 116 can then determine that the two nodes are "similar" based on a predetermined threshold.

[0111] For example, if the similarity metric / value determined for two nodes meets a predetermined threshold ( For example, similarity metric / value is equal to or greater than a predetermined threshold or similarity metric / value is equal to or less than a predetermined threshold), then the W graph engine 116 can determine that the two nodes are "similar". In these embodiments, two nodes determined to be similar indicate that the content snapshots associated with the two nodes are similar within a threshold. In particular, the content snapshot may include design geometries that are determined to be geometrically or semantically similar within a threshold. Therefore, two nodes determined to be similar can represent semantically similar design states. The criteria for determining which nodes / states are semantically similar depends on a predetermined threshold, which can be determined and adjusted by the user / designer.

[0112] In some embodiments, the similarity algorithm / technique for determining the similarity measure / value of two nodes includes an autoencoder algorithm / technique. Typically, the autoencoder technique can implement an autoencoder to represent the 3D geometry information of the content snapshot associated with the node, and then compare the 3D geometry information to detect the difference of the 3D geometry information. The autoencoder technique uses an autoencoder to define similarity to realize latent space embedding. The autoencoder for determining the similarity measure can be trained using machine learning techniques. In these embodiments, nodes are determined via a machine learning function, and these nodes are determined as "similar" nodes for being combined into a combined node and / or merged into a merged node. Therefore, in these embodiments, the combined node and the merged node can be determined via a machine learning function. Once trained, the autoencoder can generate a compact representation (such as a 512-dimensional vector) of the input data and compare these compact representations to quantify the similarity between the input data. The input data can include 3D point cloud data generated from the content snapshot associated with the node.

[0113] In machine learning training, the autoencoder learns a compact representation of the input data by learning to encode the training data set into a latent space of smaller dimensions (such as a vector). The autoencoder may include a type of artificial neural network for learning the representation (encoding) of the input data set by training the network to ignore signal noise for dimensionality reduction. In some embodiments, the potential model is trained with a PointNet autoencoder or a variant of the PointNet autoencoder for encoding 3D point clouds into vectors. The autoencoder is trained on a data set, such as a ShapeNet data set including 55 common object categories with more than 51,000 unique 3D models.

[0114] After training the autoencoder, the autoencoder can be used to process two nodes to be compared by first generating 3D point cloud data for a content snapshot (such as a 3D model) associated with each node. The autoencoder is then used to convert the 3D point cloud data for each content snapshot into a 512-dimensional vector. The 512-dimensional vectors generated for the content snapshots are then compared using cosine distance to quantify the similarity between the content snapshots.

[0115] Selecting an autoencoder technique as the similarity algorithm / technique may be advantageous because the autoencoder technique works using 3D point cloud data. Therefore, the autoencoder technique is not sensitive to how the 3D model in the content snapshot is generated, but only to the final geometry generated. In addition, the autoencoder technique may be more sensitive to semantically meaningful changes in the content snapshot than other similarity techniques. In addition, the autoencoder technique may require less tuning than other similarity techniques.

[0116] In other embodiments, the similarity algorithm / technique for determining the similarity metric / value of two nodes includes a tree comparison technique. The tree comparison technique can represent the content snapshots (3D models) of two nodes as a constructive solid geometry (CSG) tree. Each CSG tree includes geometric primitives ( For example , cubes, cylinders, cones), which use Boolean operations in a hierarchical structure ( For example , union, intersection, and difference) together. Tree comparison techniques can then quantify the differences between two content snapshots by directly comparing their respective CSG trees.

[0117] Choosing a tree comparison technique as a similarity technique may be advantageous because the tree comparison technique can simply and efficiently process two nodes to determine a similarity measure for the two nodes. However, different processes for designing / modeling the same resulting geometry in a content snapshot may produce significantly different CSG trees. Therefore, compared to autoencoder techniques, the tree comparison technique may be a less accurate method for judging semantic similarity between states that reach similar final result geometry through different processes.

[0118] In other embodiments, the similarity technique for determining the similarity metric / value of two nodes includes a mesh comparison technique. The mesh comparison technique can use a mesh comparison metric (such as Hausdorff distance) to compare the 3D meshes of the 3D models in the content snapshots of the two nodes. It may be advantageous to select the mesh comparison technique as the similarity technique because the mesh comparison technique can simply and efficiently process two nodes to determine the similarity metric of the two nodes. However, the distance generated by the mesh comparison metric is an absolute value, so that a small change in the concept of the 3D model may result in a huge change in the distance metric. In addition, the mesh comparison technique may require a lot of trial and error to set an appropriate threshold.

[0119] In other embodiments, the similarity technique for determining the similarity metric / value of two nodes includes a 2D image comparison technique. The image comparison technique may include comparing the two nodes from several different angles ( For example , 20 different angles) to render the geometry of each content snapshot, and then compare the resulting 2D images to quantify the differences between the content snapshots. Selecting an image comparison technique as a similarity technique may be advantageous because the image comparison technique is not sensitive to how the 3D models in the content snapshots are generated, but only to the final geometry generated. However, the image comparison technique may require a lot of trial and error to set an appropriate threshold.

[0120] After determining a similarity metric / value for two nodes using the selected similarity technique, the similarity metric / value is then compared to a predetermined threshold to determine whether the two nodes are "similar". Thus, the predetermined threshold comprises a threshold for semantic similarity between two nodes. The predetermined threshold may be manually adjusted depending on the level of granularity that the user / designer wishes to achieve. For example, the predetermined threshold may be varied to capture more or less granular variations in different overall processes of performing a task, as reflected in the W-graph generated for the task.

[0121] Runtime phase using W-chart GUI

[0122] After the W-chart library 129 is generated, the W-chart library 129 can be utilized during the runtime phase using the W-chart GUI and / or the W-suggestion GUI. During the runtime phase using the W-chart GUI, the current user may wish to perform a specific task via the design application and view a W-chart for the specific task before performing the task. The W-chart for the task graphically represents a variety of different methods implemented by different users of various experience levels to complete the task, making the commonalities and differences between the methods apparent. Therefore, the W-chart allows the current user to easily view and understand different workflows implemented by other users who previously performed the design task, and to explore different workflows that the current user had not previously considered when subsequently performing the task.

[0123] In these embodiments, the GUI engine 119 executed on the server 110 can interact with the GUI application 135 executed on the client 130. For example, the GUI engine 119 can receive a user selection of a specific task via the GUI application 135. In response, the GUI engine 119 can retrieve the map and map data corresponding to the selected task from the map library 129 stored in the database 125. The GUI engine 119 then transmits the map and map data to the client 130, which causes the map and map data to be displayed in the map GUI displayed by the GUI application 135. The map GUI can be generated by the GUI engine 119 and transmitted to the GUI application 135 for display. In other embodiments, the map GUI can be generated and displayed by the GUI application 135 on the client 130. The current user can also interact with the map and the map GUI to request and view more information (map data) related to the map, such as command data information and / or screen recording.

[0124] Figure 8 8 is a screen shot of a W-chart graphical user interface (GUI) for displaying and interacting with a W-chart according to various embodiments. The W-chart GUI 800 may include multiple parts, including a mode selection part 810, a task selection part 820, a W-chart part 850, and a W-chart data part 875.

[0125] Mode selection section 810 displays user selectable modes, including W-map mode and W-suggestion mode. W-map mode implements the W-map GUI discussed in this section. W-suggestion mode implements the W-suggestion GUI discussed in the following section. Assume that the current user currently selects W-map mode, such as Figure 8 . The task selection portion 820 displays a plurality of user-selectable tasks (e.g., Task_1, Task_2, Task_3, etc.). For example, selectable tasks may include designing a 3D model of a specific object (such as a chair, a table, a coffee cup, etc.). In other embodiments, selectable tasks may include other design tasks. The W-graph portion 850 displays a W-graph corresponding to the selected task. The W-graph shows one or more representative workflows, each representative workflow including a sequence of representative edges and representative nodes. The W-graph may include user-selectable components, such as selectable representative edges. The W-graph data portion 875 may display W-graph data for a selected representative edge, such as compiled metrics, command data, and screen recordings.

[0126] For example, the current user may select the first task (Task_1) to design a 3D model of a chair with four legs, such as Figure 8800. A first map for a first task in database 125 has previously been generated and stored. In response, GUI application t135 on client 130 may transmit a selection of the first task to GUI engine 119 executing on server 110. In response, GUI engine 119 may retrieve a first map corresponding to the first task from map library 129 stored in database 125. GUI engine 119 then transmits the first map to client 130 so that the first map is displayed within map GUI 800.

[0127] Fig. 9 According to various embodiments Figure 8 860 and a representative node 865. Each representative node 865 in the W-map may be configured to display a snapshot of the content associated with the representative node 865. As shown, a first W-map is received and displayed in the W-map portion 850. The first W-map shows one or more representative workflows, each of which includes a different sequence of representative events from a start node 855 (indicating a start state) to an end node 870 (indicating a completed first task). Each representative event includes a representative edge 860 and a representative node 865. Each representative node 865 in the W-map may be configured to display a snapshot of the content associated with the representative node 865. Fig. 9 As shown in the example of , each representative node 865 displays a content snapshot that illustrates the status of a task for designing a chair.

[0128] Each representative edge 860 in the W figure may include a user-selectable edge. Each representative edge 860 represents one or more different user technologies (different command sets / sequences). In some embodiments, based on the quantity of different / unique user technologies represented by the representative edge 860, the representative edge 860 is configured with a specific visual appearance. For example, the line thickness of the representative edge 860 can change according to the quantity of the different user technologies represented by the representative edge 860, so that the representative edge 860 representing more number of user technologies is displayed with a line thickness greater than another representative edge 860 representing less number of user technologies. For example, the first representative edge 860 can represent the first quantity of different user technologies and the second representative edge 860 can represent the second quantity of different user technologies, and the second quantity is greater than the first quantity. Therefore, the second representative edge 860 can be displayed with a line thickness greater than the first representative edge 860. In other embodiments, the quantity of different user technologies represented by the representative edge 860 is indicated in another way. For example, a digital label can be displayed next to each representative edge 860, which specifies the quantity of different user technologies represented by the representative edge 860.

[0129] In response to the user selection of the first task, the GUI application 135 may also receive from the GUI engine 119 a web map data describing or associated with the first web map. In some embodiments, the GUI application 135 receives and displays the compiled metrics of the entire web map in the web map data portion 875. As shown, the compiled metrics of the entire web map may include metrics such as: the total number of different representative workflows, the average time to execute a representative workflow with a standard deviation (as indicated by the screen recording), and the average number of call commands to execute a representative workflow with a standard deviation. In other embodiments, other compiled metrics for the entire web map may be displayed in the web map data portion 875.

[0130] The current user can also interact with the map displayed in the map GUI 800 to request and view more map data. For example, the current user can select the first representative edge 860 representing 3 different user technologies (3 different call command sets / sequences) from 3 different workflows originating from 3 different users. In response, the GUI engine 119 can retrieve the map data of the selected first representative edge 860 stored in the database 125 and transmit the map data to the client 130, which causes the map data to be displayed in the map data portion 875 of the map GUI 800.

[0131] Fig.10 According to various implementation schemes Figure 8 8. As shown, the W-chart data portion 875 may include multiple sub-parts, including a compiled metrics portion 880, a command data portion 885, and a screen recording portion 890.

[0132] The W graph data for the first representative edge 860 may include compiled metrics for the selected first representative edge 860 displayed in the compiled metrics section 880. As shown, the compiled metrics for the selected first representative edge 860 may include the total number of different user techniques represented by the first representative edge 860, the average time to execute the user techniques with a standard deviation (as indicated by the screen recording), and the average number of call commands to execute the user techniques with a standard deviation. In other embodiments, other compiled metrics for the selected representative edge 860 may be displayed in the compiled metrics section 880.

[0133] The W-graph data of the first representative edge 860 may also include command data displayed in the command data section 885. The command data of each different user technology can be displayed separately in the command data section 885. As shown in the figure, the command data displayed for each different user technology includes command distribution and command sequence. Each user technology includes a command set / sequence. The command distribution of the user technology can indicate the total number of calls of each command in the command set. For example, the command distribution ("command_distribution_1") displayed for the first user technology can specify 3 calls of the "grouping" command, 3 calls of the "moving" command and 4 calls of the "resize" command. The command sequence can indicate an ordered command sequence for the user technology. For example, the display command sequence of the first user technology ("command_sequence_1") can specify an ordered command sequence including "grouping", "moving", "resize", "grouping", "moving", "resize", "grouping", "moving", "resize" and "resize". In other embodiments, other command data for the selected representative edge 860 can be displayed in the command data section 885.

[0134] The W graph data for the first representative edge 860 may also include a screen recording displayed in a screen recording portion 890. The recording segments for each different user technique may be displayed separately within the screen recording portion 890. For example, a first recording segment 891 may be displayed for a first user technique, a second recording segment 892 may be displayed for a second user technique, and a third recording segment 893 may be displayed for a third user technique associated with the selected first representative edge 680. The current user may then select any of the displayed recording segments to play back the recording segment.

[0135] Fig.11 is a flow chart of method steps for displaying and interacting with a W graph generated for a task according to various embodiments. Figure 1 to Figure 2 , Figures 4 to 6 as well as Figures 8 to 10 The method steps are described in detail with reference to the system of FIG. 1100, but it will be appreciated by those skilled in the art that the method steps may be performed in any order by any system. In some embodiments, the method 1100 may be performed by a GUI engine 119 executed on the server 110 in conjunction with a GUI application 135 executed on the client 130 displaying the W map GUI.

[0136] The method 1100 begins when the GUI application 135 receives (at step 1110) a user selection of a task via the W-chart GUI 800 and transmits the user selection of the selected task to the GUI engine 119. In response, the GUI engine 119 may retrieve (at step 1120) a W-chart and W-chart data corresponding to the selected task from the W-chart library 129 of the database 125. The GUI engine 119 transmits the W-chart and W-chart data to the GUI application 135.

[0137] The GUI application 135 displays (at step 1130) a map and map data in the map GUI. The map shows one or more representative workflows, each of which includes different sequences of representative events from the start node 855 to the end node 870. Each representative event includes a representative edge 860 and a representative node 865. Each representative node 865 displays a snapshot of the content associated with the representative node 865. Each representative edge 860 includes a user-selectable edge. Each representative edge 860 represents one or more different user technologies (different command sets). Based on the number of different user technologies represented by the representative edge 860, each representative edge 860 is displayed with a specific visual appearance (such as line thickness). The map data displayed in the map GUI may include compiled metrics for the entire map, such as the total number of different representative workflows, the average time to execute a representative workflow, and the average number of call commands to execute a representative workflow.

[0138] The GUI application 135 then receives (at step 1140) a user selection of a representative edge in the W-graph via the W-graph GUI 800 and transmits the user selection of the representative edge to the GUI engine 119. In response, the GUI engine 119 retrieves (at step 1150) W-graph data corresponding to the selected representative edge from the database 125 and transmits the W-graph data to the GUI application 135. The GUI application 135 displays (at step 1160) the W-graph data for the selected representative edge within the W-graph GUI. The displayed W-graph data may include compiled metrics for one or more user technologies represented by the selected representative edge, command data (such as command distribution and command sequence) for each different user technology represented by the selected representative edge, and recorded segments for each different user technology represented by the selected representative edge. The method 1100 then ends.

[0139] Use W to suggest the runtime phase of the GUI

[0140] After the W-map library 129 is generated, the W-map library 129 can also be utilized during the runtime phase using the W-suggestion GUI. During the runtime phase using the W-suggestion GUI, the current user can perform a specific task via the design application and hopes to analyze the entire process implemented by the current user for optimization (higher efficiency). In some embodiments, the W-suggestion function includes analyzing the current workflow (streamlining the workflow) of the current user performing the task based on the comparison of the current workflow with the W-map generated for the same task. In particular, the W-suggestion engine 118 can generate a modified current workflow including one or more highlighted / specified edges, each of which indicates a user technique that can be improved in terms of efficiency. The modified current workflow can be displayed in the W-suggestion GUI for the current user to view. The current user can also interact with the modified current workflow via the W-suggestion GUI to request and receive more information related to the modified current workflow, such as command data information or screen recording associated with the highlighted / specified edge. Advantageously, the modified current workflow can indicate one or more user techniques implemented by the current user, and the user technique is determined to be less efficient than one or more corresponding user techniques implemented by other users. The current user can then implement more efficient user techniques when performing the same task in the future.

[0141] In these embodiments, the GUI engine 119 executing on the server 110 may interact with the GUI application 135 executing on the client 130 that displays the W suggestion GUI. Fig.12 1 is a screenshot of a W-suggestion GUI for displaying and interacting with a modified workflow according to various embodiments. The W-suggestion GUI 1200 may include multiple parts, including a mode selection part 1210, a task selection part 1220, a modified current workflow part 1250, and a comparison data part 1275.

[0142] The mode selection section 1210 displays user selectable modes, including a W-map mode and a W-suggestion mode. The W-suggestion mode implements the W-suggestion GUI discussed in this section, and assumes that the current user has currently selected the W-suggestion mode, such as Fig.12 . The task selection section 1220 displays a plurality of user-selectable tasks (e.g., Task_1, Task_2, Task_3, etc.). The modified current workflow section 1250 displays a modified current workflow corresponding to the selected task. The modified current workflow may include user-selectable components, such as selectable edges. The comparison data section 1275 may display comparison information (event data) about the modified current workflow and the primary representative workflow, such as compiled metrics, command data, and screen recordings.

[0143] For example, the current user may select the W suggestion mode and the third task (task_3) to design a 3D model of a coffee cup, such as Fig.12 In response to the selection of the W suggestion mode and the selected task, the GUI engine 119 retrieves a W diagram corresponding to the selected task from the W diagram library 129 stored in the database 125. The GUI engine 119 can also obtain a current workflow for the current user to perform the selected task based on previous event data (if the current user has performed the selected task) or newly generated event data (if the current user has not performed the selected task).

[0144] If the current user has previously performed the selected task, the GUI engine 119 may retrieve previous event data corresponding to the user and the selected task from the event data table generated for the selected task, which is stored in the event data repository 127 in the database 125. Based on the previous event data, the GUI engine 119 may enable the W-map engine 116 to generate a current workflow (streamlined workflow) for the current user to perform the selected task. If the current user has not previously performed the selected task, the current user may perform the selected task via the design application 133 to generate new event data. Based on the new event data, the GUI engine 119 may then enable the W-map engine 116 to generate a current workflow (streamlined workflow) for the current user to perform the selected task. Figure 5 Techniques for generating streamlined workflows for users have been discussed and will not be discussed in detail here.

[0145] The GUI engine 119 then causes the W suggestion engine 118 to generate a modified current workflow based on a comparison between the current workflow and the W map of the selected task. As described above, the W map includes one or more different representative workflows. The W suggestion engine 118 can determine the main representative workflows within the W map, including the shortest (most efficient) representative workflow within the W map. In other embodiments, the W suggestion engine 118 determines the main representative workflows within the W map, including the most popular, most commonly used by a specific group (such as a mechanic), the most unique or the most advanced representative workflows within the W map.

[0146] The shortest (most efficient) representative workflow can be determined based on the total number of call commands and / or the total time required to complete the task. The total number of call commands can be determined by summing the command sets represented by each representative edge in the representative workflow. If the representative edge represents two or more command sets (user technology), the command set with the least number of commands can be used in the summation. The total time can be determined by summing the time of the recording segments associated with each representative edge in the representative workflow. If the representative edge is associated with two or more recording segments, the recording segment with the lowest time can be used in the summation. Therefore, the main representative workflow can include the representative workflow with the lowest total number of commands and / or the lowest total execution time among all representative workflows in the W graph.

[0147] The W suggestion engine 118 can then determine similar node pairs between the current workflow and the primary representative workflow. For example, the W suggestion engine 118 can implement the techniques of the node merging stage to determine similar nodes between the current workflow and the primary representative workflow. In particular, the W suggestion engine 118 can implement a selected similarity metric and a corresponding threshold to determine similar node pairs between the current workflow and the primary representative workflow. Therefore, a similar node pair can include two nodes representing two design / task states that are determined to be similar within a threshold.

[0148] For each node in a similar node pair, there is a corresponding edge that produces the node. Therefore, the first node in the similar node pair may include a first node in the current workflow with a corresponding first edge. The first edge represents a first user technology that produces the design state represented by the first node. The node in the current workflow is referred to as the "current node" in this article, and the corresponding edge of the current node in the current workflow is referred to as the "current edge" in this article. In addition, the second node in the similar node pair may include a second node in the main representative workflow with a corresponding second edge. The second edge represents a second user technology that produces the design state represented by the second node. The node in the main representative workflow is referred to as the "main representative node" in this article, and the corresponding edge of the main representative node in the main representative workflow is referred to as the "main representative edge" in this article. Therefore, the main representative workflow may include multiple main representative edges representing multiple user technologies, and each main representative edge in the main representative workflow corresponds to the current edge in the current workflow.

[0149] The W suggestion engine 118 can then compare the corresponding edges (current edge and primary representative edge) of similar node pairs (current node and primary representative node) based on the number of command calls associated with each corresponding edge. In particular, the W suggestion engine 118 can determine the first number of commands in the command set represented by the current edge, determine the second number of commands in the command set represented by the primary representative edge, and subtract the second number from the first number to determine the incremental value (i.e., the first number - the second number = the incremental value). A positive incremental value indicates that the current edge represents a larger number of commands than the primary representative edge. Therefore, a positive incremental value indicates that the user technology represented by the current edge is less efficient than the primary representative edge in terms of the number of command calls. A negative incremental value indicates that the current edge represents a smaller number of commands than the primary representative edge. Therefore, a negative incremental value indicates that the user technology represented by the current edge is more efficient than the primary representative edge in terms of the number of command calls. The incremental value can be associated with the current edge and the primary representative edge.

[0150] The W suggestion engine 118 can determine the incremental value of each similar node pair to determine multiple incremental values ​​associated with multiple current edges in the current workflow. The W suggestion engine 118 can then designate one or more current edges with one or more highest associated incremental values ​​within the multiple incremental values ​​as one or more highlighted edges in the modified current workflow. For example, the W suggestion engine 118 can designate the current edge with the highest associated incremental value within the multiple incremental values ​​as the highlighted edge in the modified current workflow. For example, the W suggestion engine 118 can then designate two current edges with two highest associated incremental values ​​within the multiple incremental values ​​as two highlighted edges in the modified current workflow, and so on. Therefore, the current workflow now includes a set of one or more specified edges and a set of one or more non-specified edges. The one or more specified edges in the current workflow represent one or more user techniques that are determined to be the least efficient in the current workflow based on command calls compared to the main representative workflow.

[0151] The suggestion engine 118 then generates a modified current workflow that visually highlights one or more designated edges. The modified current workflow may include a current workflow comprising a sequence of edges and nodes. However, the modified current workflow may configure the visual appearance of one or more designated edges to have a display appearance different from other non-designated edges of the modified current workflow. The display appearance of the designated edges may differ from the display appearance of the non-designated edges in at least one display characteristic, such as color, texture, coloring, pattern, line form, etc.

[0152] In other embodiments, the W suggestion engine 118 can then compare the corresponding edges (current edge and main representative edge) of similar node pairs (current node and main representative node) based on the execution time associated with each corresponding edge. The execution time associated with the edge can be determined based on the recording segment associated with the edge. In particular, the W suggestion engine 118 can determine the first execution time of the first user technology represented by the current edge, determine the second execution time of the second user technology represented by the main representative edge, and subtract the second execution time from the first execution time to determine the incremental value (i.e., the first execution time-second execution time=incremental value). A positive incremental value indicates that the current edge represents a longer execution time than the main representative edge. Therefore, a positive incremental value indicates that the user technology represented by the current edge is less efficient than the main representative edge in terms of execution time. A negative incremental value indicates that the current edge represents a shorter execution time than the main representative edge. Therefore, a negative incremental value indicates that the user technology represented by the current edge is more efficient than the main representative edge in terms of execution time.

[0153] The W suggestion engine 118 may determine the delta value for each similar node pair to determine a plurality of delta values ​​associated with a plurality of current edges in the current workflow. The W suggestion engine 118 may then specify one or more current edges with one or more highest associated delta values ​​within the plurality of delta values. Thus, the one or more specified edges in the current workflow represent one or more user techniques that are determined to be the least efficient within the current workflow based on execution time compared to the primary representative workflow. The W suggestion engine 118 then generates a modified current workflow that highlights the one or more specified edges.

[0154] After the W suggestion engine 118 generates a modified current workflow for the selected task, the GUI engine 119 can transmit the modified current workflow and comparison data (event data) between the modified current workflow and the main workflow to the GUI application 135, which displays the modified current workflow and the comparison data within the W suggestion GUI 1200.

[0155] Fig.13 According to various embodiments Fig.12 1200. As shown, the modified current workflow is displayed in the modified workflow section 1250, and the comparison data (event data) is displayed in the comparison data section 1275 of the W suggestion GUI 1200. The modified current workflow includes a sequence of events from the start node 1255 (indicating the start state) to the end node 1270 (indicating the completed task). Each event includes an edge and a node 1265. Each node 1265 in the modified current workflow can be configured to display a snapshot of the content associated with the node 1265. Fig.13As shown in the example of , each node 1265 displays a content snapshot that illustrates the status of a task for designing a coffee cup.

[0156] Each edge in the modified current workflow may include a user-selectable edge. Each edge in the modified current workflow may include a designated / highlighted edge 1263 or an undesignated / unhighlighted edge 1260. Fig.13 In the example of , the modified current workflow includes one designated edge 1263. In other embodiments, the modified current workflow may include multiple designated edges 1263. Fig.13 In the example of , designated edge 1263 is displayed with a darker appearance than non-designated edge 1260. In other embodiments, designated edge 1263 is displayed with a different appearance than non-designated edge 1260 in at least one display characteristic (such as color, texture, shading, pattern, line form, etc.).

[0157] The comparison data (event data) is displayed in the comparison data section 1275 of the W suggestion GUI 1200. In some embodiments, the GUI application 135 receives and displays the compiled metrics of the current workflow and the main representative workflow in the comparison data section 1275. As shown, the compiled metrics can include the total number of commands called in the current workflow and the main representative workflow and the total execution time of the current workflow and the main representative workflow. In other embodiments, other compiled metrics of the current workflow and the main representative workflow can be displayed in the comparison data section 1275.

[0158] The current user may also interact with the modified current workflow displayed in the W-suggestion GUI 1200 to request and view more comparison data for the modified current workflow and the primary representative workflow, such as command data information or screen recordings associated with the edges of the modified current workflow. For example, the current user may select a designated / highlighted edge 1263 of the modified current workflow via the W-suggestion GUI 1200. In response, the GUI engine 119 may retrieve comparison data (event data) for the designated / highlighted edge 1263 and the corresponding representative edge in the primary representative workflow stored in the database 125, and transmit the comparison data to the client 130, which causes the comparison data to be displayed in the comparison data portion 1275 of the W-suggestion GUI 1200. In other embodiments, the user may select any edge (including non-designated edges) in the modified current workflow to view comparison data for the selected edge and the corresponding representative edge in the primary representative workflow.

[0159] Fig.14 According to various implementation schemes Fig.1212. A screenshot of the comparison data section of the W suggestion GUI. As shown, the comparison data section 1275 may include multiple subsections, including a compiled metrics section 1280, a command data section 1285, and a screen recording section 1290.

[0160] The comparison data for the selected edge may include compiled metrics for the selected edge in the modified current workflow and the corresponding representative edge in the primary representative workflow displayed in the compiled metrics section 1280. As shown, the compiled metrics may include the total number of call commands represented by the selected edge and the corresponding representative edge. The compiled metrics may also include the total execution time of the user technology represented by the selected edge and the corresponding representative edge (as indicated by the associated recording segment). In other embodiments, other compiled metrics for the selected edge in the modified current workflow and the corresponding representative edge in the primary representative workflow may be displayed in the comparison data section 1275.

[0161] The comparison data for the selected edge may also include command data displayed in the command data section 1285. The command data for the selected edge and the corresponding representative edge may be displayed separately in the command data section 1285. As shown, the command data displayed for each edge includes a command distribution and a command sequence. The command distribution of the selected edge ("command_distribution_SE") may indicate the total number of calls for each command in the command set represented by the selected edge. The command distribution of the corresponding representative edge ("command_distribution_RE") may indicate the total number of calls for each command in the command set represented by the corresponding representative edge. The command sequence of the selected edge ("command_sequence_SE") may specify an ordered sequence of commands in the command set represented by the selected edge. The command sequence of the corresponding representative edge ("command_sequence_RE") may specify an ordered sequence of commands in the command set represented by the corresponding representative edge. In other embodiments, other command data for the selected edge in the modified current workflow and the corresponding representative edge in the primary representative workflow may be displayed in the command data section 1285.

[0162] The comparison data for the selected edge may also include a screen recording displayed in the screen recording portion 1290. The recording segments associated with each edge may be displayed separately within the screen recording portion 1290. For example, a first recording segment 1291 may be displayed for the selected edge, and a second recording segment 1292 may be displayed for the corresponding representative edge. The current user may then select any displayed recording segment to play back the recording segment.

[0163] Fig.15 is a flow chart of method steps for displaying and interacting with a W graph generated for a task according to various embodiments. Figure 1 to Figure 2 , Figures 4 to 6 , Figures 8 to 10 as well as Figure 12 to Figure 14The method steps are described with reference to a system of FIG. 1 , but those skilled in the art will appreciate that the method steps may be performed by any system in any order. In some embodiments, the method 1500 may be performed by a GUI engine 119 and a W suggestion engine 118 executing on a server 110 in conjunction with a GUI application 135 executing on a client 130 displaying a W suggestion GUI.

[0164] The method 1500 begins when the GUI application 135 receives (at step 1510) a user selection of a W-suggestion mode and a particular task via the W-suggestion GUI 800 and transmits the user selection to the GUI engine 119. In response, the GUI engine 119 may retrieve (at step 1520) a W-chart and event data corresponding to the selected task from the W-chart library 129 of the database 125.

[0165] The GUI engine 119 obtains (at step 1525) the current workflow (streamlined workflow) for the current user to perform the selected task based on the previous event data (if the current user has performed the selected task) or the newly generated event data (if the current user has not performed the selected task). If the current user has previously performed the selected task, the GUI engine 119 can retrieve the previous event data corresponding to the user and the selected task from the database 125, and start / cause the GUI engine 116 to generate the current workflow (streamlined workflow) for the current user to perform the selected task. If the current user has not previously performed the selected task, the current user can perform the selected task via the design application 133 to generate new event data. Based on the new event data, the GUI engine 119 can then start / cause the GUI engine 116 to generate the current workflow (streamlined workflow) for the current user to perform the selected task.

[0166] The GUI engine 119 then starts / causes the W suggestion engine 118 to generate (at step 1527) a modified current workflow, the modified current workflow including a modified version of the current workflow with one or more highlighted edges. The modified current workflow can be generated based on a comparison between the current workflow and the main representative workflow of the W graph of the selected task, the main representative workflow including the most efficient representative workflow in terms of the number of commands and / or execution time within the W graph. Each highlighted edge of the modified current workflow can represent a user technology that is less efficient than the user technology represented by the corresponding representative edge in the main representative workflow in terms of the number of commands and / or execution time. As described above, a user technology can include a set of commands called by a user, and based on a comparison between the number of commands and / or the length of time of the screen recording associated with the user technology, it can be determined that the efficiency of the first user technology is lower than that of the second user technology.

[0167] The GUI engine 119 transmits (at step 1529) the modified current workflow and the comparison data (event data) to the GUI application 135. The GUI application 135 displays (at step 1530) the modified current workflow and the comparison data within the W suggestion GUI. One or more highlighted edges in the modified current workflow are displayed with a different appearance than the non-highlighted edges in the modified current workflow. Each edge in the modified current workflow can be user-selectable. The W suggestion GUI also displays comparison data, such as compiled metrics for the modified current workflow and the primary representative workflow.

[0168] The GUI application 135 then receives (at step 1540) a user selection of an edge in the modified current workflow via the W suggestion GUI 800 and transmits the user selection to the GUI engine 119. In response, the GUI engine 119 retrieves (at step 1550) comparison data (event data) for the selected edge in the modified current workflow and the corresponding representative edge in the primary representative workflow from the database 125 and transmits the comparison data to the GUI application 135.

[0169] The GUI application 135 displays (at step 1560) the comparison data within the W suggestion GUI. The displayed comparison data may include compiled metrics, command data (such as command distribution and command sequence), and recording segments for both the selected edge in the modified current workflow and the corresponding representative edge in the primary representative workflow. The method 1500 then ends.

[0170] Server and Client Machines

[0171] Fig.16 It is shown that according to various embodiments, Figure 1 16. The server 110 may include a computing device or machine, such as a server system, a desktop computer, a laptop computer, or any other type of computing device suitable for practicing various embodiments. The server 110 includes at least one processor 1602, an input / output (I / O) device 1604, and a memory unit 1606 coupled together. The server 110 is coupled to the network 120 via a network interface (not shown). The network 120 may include any technically feasible wired or wireless communication or information network that allows data exchange, such as a wireless (Wi-Fi) network, a personal area network (such as Bluetooth, wireless USB, IrDA, etc.), a wide area network (WAN), a local area network (LAN), and / or the Internet, etc.

[0172] In general, the processor 1602 can be any technically feasible processing device or hardware unit capable of processing data and executing software applications and program codes. The processor 1602 executes software and performs the functions and operations set forth in the embodiments described herein. For example, the processor 1602 may include a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination of different processing units, such as a CPU configured to operate in conjunction with a GPU.

[0173] Memory unit 1606 may include a hard disk, a random access memory (RAM) module, a flash memory unit or any other type of memory unit or a combination thereof. Processors and I / O devices read data from memory 1606 and write data to memory 1606. Memory unit 1606 is configured to store software applications and data. Instructions from the software structure in memory unit 1606 are executed by the processor to enable the operations and functions described herein. In various embodiments, memory unit 1606 is configured to store workflow engine 112, which includes event data collection engine 114, map engine 116, map engine 118 and GUI engine 119 for executing the embodiments herein. Server 110 may be connected to a database 125 (not shown) storing event data 127 received from client 130. Processor 1602 is configured to execute workflow engine 112 to provide the underlying functions of the map system as described in various embodiments herein.

[0174] I / O devices 1604 are also coupled to memory 1606 and may include devices capable of receiving input, such as a keyboard, mouse, trackball, etc., and devices capable of providing output, such as a display, speakers, etc. In addition, I / O devices may include devices capable of both receiving input and providing output, such as a touch screen, a universal serial bus (USB) port, etc.

[0175] Fig.17 It is shown that according to various embodiments, Figure 1 Client 130 may include a computing device or machine, such as a desktop computer, a laptop computer, a mobile device, or any other type of computing device suitable for practicing various embodiments.

[0176] The client 130 includes at least one processor 1702, an input / output (I / O) device 1704, and a memory unit 1706 coupled together. The client 130 is coupled to the network 120 via a network interface (not shown). In general, the processor 1702 can be any technically feasible processing device or hardware unit capable of processing data and executing software applications and program codes. The processor 1702 executes software and performs the functions and operations set forth in the embodiments described herein. For example, the processor 1702 may include a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or any combination of other programmable logic devices, discrete gates or transistor logic, discrete hardware components, or different processing units, such as a CPU configured to operate in conjunction with a GPU.

[0177] Memory unit 1706 may include a hard disk, a random access memory (RAM) module, a flash memory unit or any other type of memory unit or a combination thereof. Processors and I / O devices read data from memory 1706 and write data to memory 1706. Memory unit 1706 is configured to store software applications and data. Instructions from the software structure in memory unit 1706 are executed by the processor to enable the operations and functions described herein. In various embodiments, memory unit 1706 is configured to store interface engines 131, design applications 133, and GUI applications 135 for performing the embodiments herein. Processor 1702 is configured to execute interface engine 131, design applications 133, and GUI applications 135 to provide the underlying functions of the W map system as described in various embodiments herein.

[0178] I / O devices 1704 are also coupled to memory 1706 and may include devices capable of receiving input, such as a keyboard, mouse, trackball, etc., and devices capable of providing output, such as a monitor / display, speakers, etc. In addition, the I / O devices may include devices capable of both receiving input and providing output, such as a touch screen, a universal serial bus (USB) port, etc. In particular, the I / O devices may also include a display monitor that displays a graphical GUI, a suggestion GUI, or any other type of GUI.

[0179] In summary, the embodiments described herein are directed to a W-map system comprising a server connected to a plurality of clients / users via a network. Each client / user executes a design application to perform a specific design task (such as designing a 3D model of a specific object). The W-map system operates in three phases: an event data collection phase, a W-map library construction phase, and a runtime phase using a W-map graphical user interface (GUI) and / or a W-suggestion GUI.

[0180] During the event data collection phase, the server collects time-stamped event data for multiple clients / users performing different design tasks. During the W graph library construction phase, the server generates multiple different W graphs for multiple different tasks based on the collected event data. Based on the event data collected from multiple clients / users performing the same task, a separate W graph is generated for each task. For each user, the server generates an original workflow representing the entire process implemented by the user to perform the task. The server also generates a streamlined workflow based on the original workflow, and the streamlined workflow includes a set of combined nodes. Each combined node can represent a similar node from the original workflow that is determined to be a similar design state within a threshold. The server can also generate a W graph including one or more representative workflows. The representative workflow can include at least one merge node, and the merge node represents similar nodes of different workflows originating from different users. Each W graph can be stored in a database for storing a W graph library.

[0181] During the runtime phase of using the web map GUI, the current user may wish to perform a specific task via the design application and view a web map for the specific task before performing the task. The server can receive a selection of a specific task via a user interface executed on a current client operated by the current user. In response, the server retrieves a web map for the selected task from the web map library and causes the web map to be displayed at the current client via the web map GUI. The current user can interact with the web map GUI to request and receive more information related to the web map, such as command data information or screen recording.

[0182] At least one technical advantage of the disclosed technology over the prior art is that the disclosed technology is capable of generating and displaying a workflow diagram that provides a graphical representation of multiple workflows implemented by multiple users when performing the same design task. Among other things, the workflow diagram provides an aggregated illustration of multiple workflows that allows a user to easily view and understand different workflows implemented by other users who previously performed the same design task. In particular, the workflow diagram can illustrate how different workflows implemented by multiple other users converge with each other (indicating similarities) and diverge from each other (indicating differences). In this way, a user can explore different workflows that the user has not yet implemented or considered when performing a given design task, which allows the user to discover and implement more effective workflows for the design task.

[0183] Another technical advantage over the prior art is that the transmission of workflow graphs between a server machine and a client machine involves far less data transmission than the prior art which transmits large amounts of record data to the client (specifying commands and resulting states for each user when performing a particular task). Thus, the disclosed technology reduces network bandwidth consumption and network congestion relative to prior methods.

[0184] In other embodiments, during the runtime phase of using the W suggestion GUI, the current user can perform a specific task via the design application, and hopes to analyze the entire process implemented by the current user for optimization (higher efficiency). The W suggestion function includes analyzing the current workflow for the current user to perform the task based on the comparison of the current workflow with the W graph generated for the same task. In these embodiments, the server can obtain the current workflow (streamlined workflow) for the current user to perform a specific task. The server also retrieves the W graph of the selected task from the W graph library, and the W graph includes one or more representative workflows. The server determines the main representative workflow in the W graph, including the shortest (most efficient) representative workflow in the W graph. The server then compares the current workflow with the main representative workflow to designate at least one edge of the current workflow as a highlighted edge. Each designated edge represents a user technology, and its efficiency is lower than the user technology represented by the corresponding representative edge in the main representative workflow. The current workflow can be modified to highlight at least one designated edge as having an appearance different from the non-designated edge of the current workflow. The server can then display the modified current workflow at the current client via the W suggestion GUI. The current user can interact with the W suggestion GUI to request and receive more information related to the modified current workflow, such as command data information or screen recording.

[0185] At least one technical advantage of the disclosed technology over the prior art is that a computer device is enabled to generate and display a modified current workflow based on a comparison between a workflow implemented by a current user when performing a design task and a workflow diagram that provides a graphical representation of multiple workflows implemented by other users when performing the same design task. In particular, the modified current workflow can indicate one or more user techniques implemented by the current user that are determined to be less efficient than one or more corresponding user techniques implemented by other users. The current user can then implement more efficient user techniques when performing design tasks in the future. In this way, the current user can more easily analyze and optimize the workflow for performing a particular design task relative to previous methods.

[0186] Another technical advantage over the prior art is that the transmission of modified current workflows between the server machine and the client machine involves far less transmission data than the prior art that transmits large amounts of record data to the client (specifying commands and resulting states for each user when performing a particular task). Thus, the disclosed technology reduces network bandwidth consumption and network congestion relative to prior methods.

[0187] Various aspects of the subject matter described herein are set out in the following numbered clauses.

[0188] 1. In some embodiments, a computer-implemented method for analyzing a software application workflow, the method comprising: performing one or more operations to determine at least two nodes, wherein each of the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are based on a similarity algorithm that implements one or more machine learning functions; generating a first workflow diagram for the first task that graphically represents multiple user workflows for performing the first task, wherein the first workflow diagram includes at least one representative workflow, the at least one representative workflow including a first merge node representing two nodes; receiving a selection of the first task via a user interface presented on a client device; retrieving the first workflow diagram for the first task from a database; and causing the first workflow diagram to be displayed via the user interface.

[0189] 2. A computer-implemented method according to clause 1, wherein: the first task includes modeling a first object; and each node in the at least one representative workflow represents a state of the modeling of the first object.

[0190] 3. A computer-implemented method according to any one of clauses 1 to 2, wherein the at least two nodes are associated with a first workflow and a second workflow, the first workflow comprising a graphical representation of a first process implemented by a first user for performing the first task, and the second workflow comprising a graphical representation of a second process implemented by at least one of the first user and the second user for performing the first task.

[0191] 4. A computer-implemented method according to any one of clauses 1 to 3, wherein the one or more operations include determining that the at least two nodes are similar within a threshold.

[0192] 5. A computer-implemented method according to any one of clauses 1 to 4, wherein: the first merge node represents a first node from a first workflow and a second node from a second workflow; and the at least one representative workflow also includes a merge edge corresponding to the merge node, the merge edge representing a first user technology that generated the first node and a second user technology that generated the second node.

[0193] 6. A computer-implemented method as described in any of clauses 1 to 5, wherein the first user technology includes a first call command set and the second user technology includes a second call command set different from the first call command set.

[0194] 7. A computer-implemented method according to any one of clauses 1 to 6, wherein the first workflow diagram includes multiple representative workflows, and the method further includes: causing graphical information associated with the first workflow diagram to be displayed at the client device via the user interface, wherein the graphical information includes at least one of the following items: the total number of representative workflows included in the multiple representative workflows, the average time to execute one of the representative workflows included in the multiple representative workflows, and the average number of call commands of one of the representative workflows included in the multiple representative workflows.

[0195] 8. A computer-implemented method according to any one of clauses 1 to 7, wherein: the at least one representative workflow includes a plurality of representative edges, each representative edge representing one or more different user technologies; and for each representative edge in the first workflow diagram displayed via the user interface, the visual appearance is based on the number of different user technologies represented by the representative edge.

[0196] 9. A computer-implemented method according to any one of clauses 1 to 8, wherein the at least one representative workflow includes multiple representative edges, each edge representing one or more user technologies, and the method further includes: receiving a user selection of a first representative edge included in the at least one representative workflow from the client device via the user interface; retrieving edge information associated with the first representative edge from a database; and causing the edge information to be displayed at the client device via the user interface.

[0197] 10. A computer-implemented method according to any of clauses 1 to 9, wherein the edge information includes at least one of the following: compiled metrics, command data, and screen recordings associated with the one or more user technologies represented by the first representative edge.

[0198] 11. In some embodiments, one or more non-transitory computer-readable media, comprising instructions, which when executed by one or more processors cause the one or more processors to perform the following steps: performing one or more operations to determine at least two nodes, wherein each of the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are based on a similarity algorithm that implements one or more machine learning functions; generating a first workflow diagram for the first task that graphically represents multiple user workflows for performing the first task, wherein the first workflow diagram includes at least one representative workflow, and the at least one representative workflow includes a first merge node representing two nodes; receiving a selection of the first task via a user interface presented on a client device; retrieving the first workflow diagram for the first task from a database; and displaying the first workflow diagram via the user interface.

[0199] 12. One or more non-transitory computer-readable media according to clause 11, wherein: the first task includes modeling a first object; and each node in the at least one representative workflow represents a state of the modeling of the first object.

[0200] 13. One or more non-transitory computer-readable media according to any one of clauses 11 to 12, wherein the at least two nodes are associated with a first workflow and a second workflow, the first workflow comprising a graphical representation of a first process implemented by a first user for performing the first task, and the second workflow comprising a graphical representation of a second process implemented by a second user for performing the first task.

[0201] 14. One or more non-transitory computer-readable media as recited in any one of clauses 11 to 13, wherein the one or more operations comprise determining that the at least two nodes are similar within a threshold.

[0202] 15. One or more non-transitory computer-readable media according to any one of clauses 11 to 14, wherein: the at least one representative workflow comprises a sequence of representative edges and representative nodes; a first representative edge represents two different user technologies implemented by two different users; and a first representative node corresponding to the first representative edge represents the same state of the first task produced by the two different user technologies.

[0203] 16. One or more non-transitory computer-readable media as recited in any one of clauses 11 to 15, wherein the two different user technologies comprise two different sets of call commands.

[0204] 17. One or more non-transitory computer-readable media according to any one of clauses 11 to 16, wherein: the at least one representative workflow comprises a sequence of representative edges and corresponding representative nodes; each representative edge represents one or more user technologies; and the corresponding representative nodes of the representative edges represent the state of the task generated by the one or more user technologies.

[0205] 18. One or more non-transitory computer-readable media according to any one of clauses 11 to 17, wherein: the at least one representative workflow comprises a plurality of representative edges, each representative edge representing one or more different user technologies; and for each representative edge in the first workflow diagram displayed via the user interface, the visual appearance is based on the number of different user technologies represented by the representative edge.

[0206] 19. One or more non-transitory computer-readable media according to any one of clauses 11 to 18, wherein the at least one representative workflow includes multiple representative edges, each edge representing one or more user technologies, and the one or more non-transitory computer-readable media also include the following steps: receiving a user selection of a first representative edge included in the at least one representative workflow from the client device via the user interface; retrieving edge information associated with the first representative edge from a database; and causing the edge information to be displayed at the client device via the user interface.

[0207] 20. In some embodiments, a computing system comprises: a memory comprising instructions; and a processor coupled to the memory and performing the following steps when executing the instructions: performing one or more operations to determine at least two nodes, wherein each of the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are based on a similarity algorithm that implements one or more machine learning functions; generating a first workflow diagram for the first task that graphically represents multiple user workflows for performing the first task, wherein the first workflow diagram comprises at least one representative workflow, and the at least one representative workflow comprises a first merge node representing two nodes; receiving a selection of the first task via the user interface presented on a client device; retrieving the first workflow diagram for the first task from a database; and displaying the first workflow diagram via the user interface.

[0208] Any and all combinations of any of the claim elements of any of the claims and / or any elements described in this application in any manner fall within the contemplated scope of the invention and protection.

[0209] The description of the various embodiments has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.

[0210] Aspects of embodiments of the present invention may be embodied as systems, methods, or computer program products. Therefore, aspects of the present disclosure may take the form of a complete hardware implementation, a complete software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software aspects and hardware aspects, which may generally all be referred to as "modules" or "systems" herein. In addition, any hardware and / or software technology, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or a group of circuits. In addition, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media, and the one or more computer-readable media have a computer-readable program code embodied thereon.

[0211] Any combination of one or more computer-readable media may be utilized. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) would include the following media: an electrical connection with one or more conductors, a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus.

[0212] Aspects of the present disclosure are described with reference to the flowchart illustrations and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It will be understood that each frame in the flowchart illustration and / or block diagram and the combination of frames in the flowchart illustration and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to produce a machine. The instructions enable the function / action specified in one or more frames of the flowchart and / or block diagram to be realized when executed by the processor of a computer or other programmable data processing device. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, special-purpose processors or field programmable gate arrays.

[0213] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations of possible implementations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each frame in the flowchart or block diagram may represent a module, a fragment or a portion of a code including one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the frame may not occur in the order indicated in the accompanying drawings. For example, the two frames shown in succession may actually be executed substantially simultaneously, or the frames may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each frame in the block diagram and / or the flowchart illustration and the combination of frames in the block diagram and / or the flowchart illustration may be implemented by a combination of a dedicated hardware-based system or dedicated hardware and computer instructions that performs a specified function or action.

[0214] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be envisaged without departing from the basic scope of the disclosure, and the scope of the disclosure is determined by the claims that follow.

Claims

1. A computer-implemented method for analyzing a software application workflow, the method comprising: performing one or more operations to determine at least two nodes, wherein each node included in the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are determined based on a similarity algorithm implementing one or more machine learning functions that generate, for each node included in the at least two nodes, a vector representing three-dimensional 3D data associated with the node; merging the at least two nodes into a first merged node based on a comparison between a plurality of vectors generated for a plurality of nodes included in the at least two nodes; generating a first workflow graph of the first task that graphically represents a plurality of user workflows for performing the first task, wherein the first workflow graph includes at least one representative workflow, and the at least one representative workflow includes the first merge node; receiving, via a user interface presented on a client device, a selection of the first task; Retrieving the first workflow diagram of the first task from a database; and The first workflow diagram is caused to be displayed via the user interface.

2. The computer-implemented method of claim 1 , wherein: The first task includes modeling a first object; and Each node in the at least one representative workflow represents a state of the modeling of the first object.

3. A computer-implemented method according to claim 1, wherein the at least two nodes are associated with a first workflow and a second workflow, the first workflow comprising a graphical representation of a first process implemented by a first user for performing the first task, and the second workflow comprising a graphical representation of a second process implemented by at least one of the first user and the second user for performing the first task. 4 . The computer-implemented method of claim 1 , wherein the one or more operations include determining that the at least two nodes are similar within a threshold.

5. The computer-implemented method of claim 1 , wherein: The first merged node represents a first node from a first workflow and a second node from a second workflow; as well as The at least one representative workflow also includes a merge edge corresponding to the first merge node, the merge edge representing a first user technology that generated the first node and a second user technology that generated the second node. 6 . The computer-implemented method of claim 5 , wherein the first user technology comprises a first call command set and the second user technology comprises a second call command set different from the first call command set.

7. The computer-implemented method of claim 1 , wherein the first workflow diagram comprises a plurality of representative workflows, the method further comprising: Graphic information associated with the first workflow diagram is displayed at the client device via the user interface, wherein the graphical information includes at least one of the following: the total number of representative workflows included in the multiple representative workflows, the average time to execute a representative workflow included in the multiple representative workflows, and the average number of call commands for a representative workflow included in the multiple representative workflows.

8. The computer-implemented method of claim 1 , wherein: The at least one representative workflow includes a plurality of representative edges, each representative edge representing one or more different user techniques; as well as For each representative edge in the first workflow graph displayed via the user interface, a visual appearance is based on a number of different user skills represented by the representative edge.

9. The computer-implemented method of claim 1 , wherein the at least one representative workflow comprises a plurality of representative edges, each representative edge representing one or more user techniques, the method further comprising: receiving, from the client device via the user interface, a user selection of a first representative edge included in the at least one representative workflow; retrieving edge information associated with the first representative edge from the database; as well as The side information is caused to be displayed at the client device via the user interface.

10. The computer-implemented method of claim 9, wherein the edge information comprises at least one of: compiled metrics, command data, and screen recordings associated with the one or more user techniques represented by the first representative edge.

11. One or more non-transitory computer-readable media comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the following steps: performing one or more operations to determine at least two nodes, wherein each node included in the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are determined based on a similarity algorithm implementing one or more machine learning functions that generate, for each node included in the at least two nodes, a 3D data vector representing data associated with the node; merging the at least two nodes into a first merged node based on a comparison between a plurality of vectors generated for a plurality of nodes included in the at least two nodes; generating a first workflow graph of the first task that graphically represents a plurality of user workflows for performing the first task, wherein the first workflow graph includes at least one representative workflow, and the at least one representative workflow includes the first merge node; receiving, via a user interface presented on a client device, a selection of the first task; Retrieving the first workflow diagram of the first task from a database; and The first workflow diagram is caused to be displayed via the user interface.

12. One or more non-transitory computer-readable media according to claim 11, wherein: The first task includes modeling a first object; and Each node in the at least one representative workflow represents a state of the modeling of the first object.

13. One or more non-transitory computer-readable media according to claim 11, wherein the at least two nodes are associated with a first workflow and a second workflow, the first workflow comprising a graphical representation of a first process implemented by a first user for performing the first task, and the second workflow comprising a graphical representation of a second process implemented by a second user for performing the first task.

14. The one or more non-transitory computer-readable media of claim 11, wherein the one or more operations include determining that the at least two nodes are similar within a threshold.

15. The one or more non-transitory computer-readable media of claim 11, wherein: The at least one representative workflow includes a sequence of representative edges and representative nodes; A first representative edge represents two different user techniques implemented by two different users; and A first representative node corresponding to the first representative edge represents a same state of the first task generated by the two different user techniques.

16. The one or more non-transitory computer-readable media of claim 15, wherein the two different user technologies include two different call command sets.

17. The one or more non-transitory computer-readable media of claim 11, wherein: The at least one representative workflow includes a sequence of representative edges and corresponding representative nodes; Each representative edge represents one or more user technologies; and The corresponding representative node of the representative edge represents the state of the first task generated by the one or more user technologies.

18. The one or more non-transitory computer-readable media of claim 11, wherein: The at least one representative workflow includes a plurality of representative edges, each representative edge representing one or more different user techniques; as well as For each representative edge in the first workflow graph displayed via the user interface, a visual appearance is based on a number of different user skills represented by the representative edge.

19. The one or more non-transitory computer-readable media of claim 11, wherein the at least one representative workflow comprises a plurality of representative edges, each representative edge representing one or more user techniques, the one or more non-transitory computer-readable media further comprising the steps of: receiving, from the client device via the user interface, a user selection of a first representative edge included in the at least one representative workflow; retrieving edge information associated with the first representative edge from the database; as well as The side information is caused to be displayed at the client device via the user interface.

20. A computing system comprising: a memory including instructions; and A processor is coupled to the memory and performs the following steps when executing the instructions: performing one or more operations to determine at least two nodes, wherein each node included in the at least two nodes is associated with a different user workflow for performing a first task via a design application, and the one or more operations are determined based on a similarity algorithm implementing one or more machine learning functions that generate, for each node included in the at least two nodes, a 3D data vector representing data associated with the node; merging the at least two nodes into a first merged node based on a comparison between a plurality of vectors generated for a plurality of nodes included in the at least two nodes; generating a first workflow graph of the first task that graphically represents a plurality of user workflows for performing the first task, wherein the first workflow graph includes at least one representative workflow, and the at least one representative workflow includes the first merge node; receiving, via a user interface presented on a client device, a selection of the first task; Retrieving the first workflow diagram of the first task from a database; and The first workflow diagram is caused to be displayed via the user interface.

21. A computer-implemented method for analyzing a software application workflow, the method comprising: receiving, via a user interface presented on the client device, a selection of a first task to be performed via the design application; performing one or more operations to determine a first edge and a second edge, wherein the first edge is associated with a first user workflow for performing the first task, the second edge is associated with a first workflow graph graphically representing a plurality of user workflows for performing the first task, and the one or more operations are based on a similarity algorithm implementing one or more machine learning functions that receive as input three-dimensional 3D geometric information associated with the first user workflow and the first workflow graph; generating a modified first user workflow based on a comparison between the first edge and the second edge; as well as The modified first user workflow is caused to be displayed via the user interface.

22. The computer-implemented method of claim 21 , wherein: The first task includes modeling a first object; and The modified first user workflow includes a sequence of edges and nodes, and each node in the modified first user workflow represents a state of the modeling of the first object.

23. The computer-implemented method of claim 21, wherein: The first workflow graph includes a plurality of representative workflows, the plurality of representative workflows including a primary representative workflow, the primary representative workflow having a lowest total number of call commands relative to all other representative workflows included in the plurality of representative workflows; The first user workflow includes a plurality of edges representing a plurality of user techniques; and The modified first user workflow includes a modified version of the first user workflow and includes a first highlighted edge representing a first user technique that has been determined to be less efficient than all other user techniques included in the plurality of user techniques based on a comparison between the first user workflow and the primary representative workflow.

24. The computer-implemented method of claim 21, wherein: The first user workflow includes a plurality of edges representing a plurality of user techniques; The first workflow graph includes a main representative workflow, the main representative workflow includes a plurality of representative edges representing a plurality of user technologies, each representative edge in the main representative workflow corresponds to an edge in the first user workflow; as well as The modified first user workflow includes a modified version of the first user workflow and includes a first highlighted edge representing a first user technique that has been determined to be less efficient than a corresponding user technique represented by a corresponding representative edge in the primary representative workflow.

25. The computer-implemented method of claim 24, wherein: The first workflow diagram includes a plurality of representative workflows; and The primary representative workflow has a lowest total number of call commands relative to all other representative workflows included in the plurality of representative workflows.

26. The computer-implemented method of claim 24, wherein: The first workflow diagram includes a plurality of representative workflows; and The primary representative workflow has a lowest execution time relative to all other representative workflows included in the plurality of representative workflows.

27. The computer-implemented method of claim 24, wherein the first user technology is associated with a first call command quantity, the corresponding representative edge is associated with a second call command quantity, and the first call command quantity is greater than the second call command quantity.

28. The computer-implemented method of claim 24, wherein the first user technology is associated with a first execution time, the corresponding representative edge is associated with a second execution time, and the first execution time is greater than the second execution time.

29. The computer-implemented method of claim 21 , wherein the modified first user workflow comprises a plurality of edges, and the computer-implemented method further comprises: receiving, from the client device via the user interface, a user selection of a first edge included in the modified first user workflow; retrieving edge information associated with the first edge; and The side information is caused to be displayed at the client device via the user interface.

30. The computer-implemented method of claim 29, wherein the edge information comprises at least one of: compiled metrics, command data, and a screen recording associated with a user skill represented by the first edge.

31. One or more non-transitory computer-readable media comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the following steps: receiving, via a user interface presented on the client device, a selection of a first task to be performed via the design application; performing one or more operations to determine a first edge and a second edge, wherein the first edge is associated with a first user workflow for performing the first task, the second edge is associated with a first workflow graph graphically representing a plurality of user workflows for performing the first task, and the one or more operations are based on a similarity algorithm implementing one or more machine learning functions that receive as input three-dimensional 3D geometric information associated with the first user workflow and the first workflow graph; generating a modified first user workflow based on a comparison between the first edge and the second edge; as well as The modified first user workflow is caused to be displayed via the user interface.

32. One or more non-transitory computer-readable media according to claim 31, wherein: The first task includes modeling a first object; and The modified first user workflow includes a sequence of edges and nodes, and each node in the modified first user workflow represents a state of the modeling of the first object.

33. The one or more non-transitory computer-readable media of claim 31 , wherein: The first workflow graph includes a plurality of representative workflows, the plurality of representative workflows including a primary representative workflow, the primary representative workflow having a lowest total number of call commands relative to all other representative workflows included in the plurality of representative workflows; The first user workflow includes a plurality of edges representing a plurality of user techniques; and The modified first user workflow includes a modified version of the first user workflow and includes a first highlighted edge representing a first user technique that has been determined to be less efficient than all other user techniques included in the plurality of user techniques based on a comparison between the first user workflow and the primary representative workflow.

34. The one or more non-transitory computer-readable media of claim 31 , wherein: The first user workflow includes a plurality of edges representing a plurality of user techniques; The first workflow graph includes a main representative workflow, the main representative workflow includes a plurality of representative edges representing a plurality of user technologies, each representative edge in the main representative workflow corresponds to an edge in the first user workflow; as well as The modified first user workflow includes a modified version of the first user workflow and includes a first highlighted edge representing a first user technique that has been determined to be less efficient than a corresponding user technique represented by a corresponding representative edge in the primary representative workflow.

35. The one or more non-transitory computer-readable media of claim 34, wherein: The first workflow diagram includes a plurality of representative workflows; and The primary representative workflow has a lowest total number of call commands relative to all other representative workflows included in the plurality of representative workflows.

36. The one or more non-transitory computer-readable media of claim 31 , wherein: The first user workflow includes a plurality of edges representing a plurality of user techniques; and The modified first user workflow includes a modified version of the first user workflow, the modified version including a first highlighted edge determined to represent a first user technique, the first user technique including a least efficient user technique among the multiple user techniques based on a comparison between the first workflow and the first workflow graph.

37. The one or more non-transitory computer-readable media of claim 36, wherein the first highlighted edge is determined to represent the least efficient of the plurality of user techniques based on a total number of call commands associated with the first user technique.

38. The one or more non-transitory computer-readable media of claim 36, wherein the first highlighted edge is determined to represent the least efficient of the plurality of user techniques based on a total execution time associated with the first user technique.

39. The one or more non-transitory computer-readable media of claim 31 , wherein the modified first user workflow comprises a plurality of edges, the one or more non-transitory computer-readable media further comprising the steps of: receiving, from the client device via the user interface, a user selection of a first edge included in the modified first user workflow; retrieving edge information associated with the first edge; and The side information is caused to be displayed at the client device via the user interface.

40. A computing system comprising: a memory including instructions; and A processor is coupled to the memory and performs the following steps when executing the instructions: receiving, via a user interface presented on the client device, a selection of a first task to be performed via the design application; performing one or more operations to determine a first edge and a second edge, wherein the first edge is associated with a first user workflow for performing the first task, the second edge is associated with a first workflow graph graphically representing a plurality of user workflows for performing the first task, and the one or more operations are based on a similarity algorithm implementing one or more machine learning functions that receive as input three-dimensional 3D geometric information associated with the first user workflow and the first workflow graph; generating a modified first user workflow based on a comparison between the first edge and the second edge; as well as The modified first user workflow is caused to be displayed via the user interface.

Citation Information

Patent Citations

  • Techniques for representing and comparing workflows

    US20130311927A1

  • Systems and methods for efficient workflow similarity detection

    US20140129285A1

  • System and Method for Deploying and Versioning Machine Learning Models

    US20190279114A1