用于工作流分析和设计任务优化的技术

文档序号:1942807 发布日期:2021-12-07 浏览:16次 >En<

阅读说明:本技术 用于工作流分析和设计任务优化的技术 (Techniques for workflow analysis and design task optimization ) 是由 T·格罗斯曼 G·菲茨莫里斯 B·拉弗伦尼尔 J·金 M·张 K·哈桑尼 于 2020-04-30 设计创作,主要内容包括:提供一种包括经由网络与多个客户端连接的服务器的W图系统。每个客户端/用户经由设计应用程序执行设计任务,同时服务器收集带时间戳的事件数据。服务器基于所收集的事件数据为多个任务生成多个W图。每个W图包括一个或多个代表性工作流,每个代表性工作流包括至少一个合并节点,所述至少一个合并节点表示来自执行同一任务的不同用户的不同工作流的节点。可以在W图GUI中查看用户选择的任务的W图。用户还可以选择W建议功能以基于为同一任务生成的W图来分析任务的当前工作流以进行优化。生成修改后的当前工作流,其突出显示当前工作流中比W图中的用户技术效率低的用户技术。(There is provided a W-map system including a server connected with a plurality of 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 a plurality of W-maps for the plurality of tasks based on the collected event data. Each W graph includes one or more representative workflows, each representative workflow including at least one merge node representing nodes of different workflows from different users performing the same task. The W-graph of the user-selected task may be viewed in a W-graph GUI. The user may also select the W-suggestion functionality to analyze the current workflow of the task for optimization based on the W-graph generated for the same task. A modified current workflow is generated that highlights user technologies in the current workflow that are less efficient than the user technologies in the W map.)

用于工作流分析和设计任务优化的技术

相关申请的交叉引用

本申请要求于2019年5月2日提交且序列号为62/842,271的题为“TEC HNIQUESFOR ENCODING CONVERGENCES AND DIVERGENCES AC ROSS USERS PERFORMING COMPUTER-BASED TASKS”的美国临时专利申请的优先权权益,本申请也要求于2019年12月5日提交且序列号为16/705,133的题为“TECHNIQUES FOR WORKFLOW ANALYSIS AND DESI GN TASKOPTIMIZATION”的美国专利申请的优先权权益,并且本申请要求于2019年12月5日提交且序列号为16/705,140的题为“TECHNIQUES FORWORKFLOW ANALYSIS AND DESIGN TASKOPTIMIZATION”的美国专利申请的优先权权益。这些相关申请的主题特此以引用方式并入本文。

发明背景

技术领域

本发明总体上涉及计算机科学,并且更具体地,涉及用于工作流分析和设计任务优化的技术。

相关技术的描述

软件应用程序(诸如计算机辅助设计(CAD)应用程序)通常被建筑师、工程师和其他设计专业人员用于帮助创建、修改、分析和/或优化设计。除其他外,使用软件应用程序可以显著提高设计人员的生产力和/或改进设计的整体质量。例如,CAD应用程序可用于构建表示真实世界构造(诸如建筑物、车辆、电器、家具等)的计算机模型。软件应用程序的输出还可以包括电子文件,包括可以导出到制造物理产品的三维(3D)制造装置的可3D打印设计。

计算机和软件工程的进步显著增加了用户在使用软件应用程序(诸如CAD应用程序)时可能调用的命令的数量和复杂性。此外,在使用CAD应用程序执行任务(诸如设计椅子模型)时,大多数用户通常会在重复执行相同或基本相似的任务时实现相同或相似的工作流。因此,给定用户在执行用户先前执行的任务时通常不会探索或实现不同的工作流。对于初学者用户来说,这种倾向可能是因为他们更专注于简单地尝试理解CAD应用程序中可用的不同命令的数量和复杂性,而不是专注于确定执行特定任务的新工作流。对于更高级的用户,这种趋势可能是因为他们简单地依赖用户已经理解并知道如何执行的“久经考验”的工作流。因此,初学者用户和高级用户通常最终都会实现对特定任务效率低下且次优的工作流,而没有探索可能对这些任务更有效的其他可能的工作流。

向CAD应用程序的用户提供工作流信息的常规系统当前存在若干问题。首先,包括与多个客户端/用户机器连接的服务器机器的常规系统可以将服务器机器配置为在经由CAD应用程序执行各种建模任务时为用户记录命令和所产生的状态变化(表示设计的变化)。针对所记录的命令和设计状态的数据可以提供给用户或其他用户。然而,通过查看可能包括未处理数据、最少处理数据和/或非结构化数据的所记录的数据来确定或理解由给定用户实现的工作流是相当困难的。因此,在分析和探索特定任务的工作流和/或尝试优化特定任务的工作流时,由常规系统记录的数据的用途可能有限。

此外,针对所记录的命令和设计状态的数据通常包括大量数据。因此,将所记录的数据从服务器机器传输到客户端机器通常在网络带宽消耗和增加的网络拥塞方面产生高成本。此外,当被接收在客户端的客户端机器处时,由于涉及大量数据,因此在常规显示监视器上有效地显示所记录的数据也是相当困难的。特别地,常规显示监视器的尺寸通常无法同时显示全部所记录的数据。因此,用户被迫滚动浏览关于在显示监视器上显示的数据的所记录数据,以便查看全部所记录的数据。这种方法使得基于所记录的数据确定或分析工作流对于用户来说极其困难。

如前述内容所说明,本领域中需要用于分析和优化CAD应用程序的工作流的更有效的技术。

发明内容

各种实施方案包括一种用于分析软件应用程序工作流的计算机实现的方法。所述计算机实现的方法包括:执行一个或多个操作以确定至少两个节点,其中所述至少两个节点中包括的每个节点与用于经由设计应用程序执行第一任务的不同用户工作流相关联,并且所述一个或多个操作是基于实现一个或多个机器学习功能的相似性算法。所述计算机实现的方法还包括:生成所述第一任务的以图形方式表示用于执行所述第一任务的多个用户工作流的第一工作流图,其中所述第一工作流图包括至少一个代表性工作流,所述至少一个代表性工作流包括表示所述两个节点的第一合并节点。所述计算机实现的方法还包括:经由呈现在客户端装置上的所述用户界面接收对所述第一任务的选择;从数据库中检索所述第一任务的所述第一工作流图;以及使所述第一工作流图经由所述用户界面显示。

所公开的技术相对于现有技术的至少一个技术优势在于,所公开的技术能够生成和显示工作流图,所述工作流图提供在执行同一设计任务时由多个用户实现的多个工作流的图形表示。除其他外,工作流图提供了多个工作流的汇总图示,其允许用户轻松查看和理解由先前执行同一设计任务的其他用户实现的不同工作流。特别地,工作流图可以说明由多个其他用户实现的不同工作流如何彼此聚合(指示相似性)和彼此偏离(指示差异性)。以这种方式,用户可以在执行给定的设计任务时探索用户尚未实现或考虑的不同工作流,这允许用户发现并实现用于设计任务的更有效的工作流。相对于现有技术的另一个技术优势在于,在服务器机器与客户端机器之间传输工作流图涉及的传输数据少得多,从而减少网络带宽消耗和拥塞,如上所述。

各种实施方案包括一种用于分析软件应用程序工作流的计算机实现的方法。所述计算机实现的方法包括经由呈现在客户端装置上的用户界面接收对经由设计应用程序执行的第一任务的选择。所述计算机实现的方法还包括:执行一个或多个操作以确定第一边和第二边,其中所述第一边与用于执行所述第一任务的第一用户工作流相关联,所述第二边与以图形方式表示用于执行所述第一任务的多个用户工作流的第一工作流图相关联,并且所述一个或多个操作是基于实现一个或多个机器学习功能的相似性算法。所述计算机实现的方法还包括:基于所述第一边与所述第二边之间的比较生成修改后的第一工作流;以及使所述修改后的第一工作流经由所述用户界面显示。

所公开的技术相对于现有技术的至少一个技术优势在于,使得计算机装置能够基于当前用户在执行设计任务时实现的工作流与提供其他用户在执行同一设计任务时实现的多个工作流的图形表示的工作流图之间的比较来生成和显示修改后的当前工作流。特别地,修改后的当前工作流可以指示由当前用户实现的一种或多种用户技术,所述用户技术被确定为比由其他用户实现的一种或多种对应用户技术效率低。当前用户然后可以在将来执行设计任务时实现更高效的用户技术。以这种方式,当前用户可以相对于先前方法更容易地分析和优化用于执行特定设计任务的工作流。相对于现有技术的另一个技术优势在于,在服务器机器与客户端机器之间传输修改后的工作流涉及的传输数据少得多,从而减少网络带宽消耗和拥塞,如上所述。

在至少一个实际应用中,所公开的技术可以在具有服务器-客户端架构的公司或其他企业内实现。当执行各种设计任务时,中央服务器可以接收和记录多个客户端(例如,雇员)的命令使用数据和所产生的设计状态,并生成和提供各种设计任务的工作流图。客户端可以利用工作流图来分析、探索和/或优化用于执行各种任务的工作流。在至少另一个实际应用中,所公开的技术可以经由实现连接到多个客户端(例如,基于云的服务的订户)的云服务器的基于云的服务在企业外部实现。当执行各种设计任务时,云服务器可以接收和记录多个客户端的命令使用数据和所产生的设计状态,并生成和提供各种设计任务的工作流图。客户端可以利用工作流图来分析、探索和/或优化用于执行各种任务的工作流。

附图说明

通过参考各种实施方案,可具有可详细地在对以上简述的本发明概念的更具体的描述中理解各种实施方案的上述特征的方式,所述各种实施方案中的一些在附图中示出。然而,应注意,附图仅示出本发明概念的典型实施方案并且因此不应被视为以任何方式限制范围,并且存在其他等效的实施方案。

图1示出了被配置来实现各种实施方案的一个或多个方面的系统;

图2是根据各种实施方案的事件数据表的概念图;

图3是根据各种实施方案的用于收集事件数据的方法步骤的流程图;

图4是根据各种实施方案的原始工作流集的概念图;

图5是根据各种实施方案的已连接精简工作流集的概念图;

图6是根据各种实施方案的用于完成特定任务的W图的概念图;

图7是根据各种实施方案的用于为任务生成W图的方法步骤的流程图;

图8是根据各种实施方案的用于显示W图并与之交互的W图图形用户界面(GUI)的屏幕截图;

图9是根据各种实施方案的在图8的W图GUI上显示的选定W图的屏幕截图;

图10是根据各种实施方案的图8的W图GUI的W图数据部分的屏幕截图;

图11是根据各种实施方案的用于显示为任务生成的W图并与之交互的方法步骤的流程图;

图12是根据各种实施方案的用于显示修改后的工作流并与之交互的W建议GUI的屏幕截图;

图13是根据各种实施方案的在图12的W建议GUI上显示的修改后的工作流的屏幕截图;

图14是根据各种实施方案的图12的W建议GUI的比较数据部分的屏幕截图;

图15是根据各种实施方案的用于显示为任务生成的W图并与之交互的方法步骤的流程图;

图16示出了根据各种实施方案的可以在图1的系统中实现的示例性服务器装置;以及

图17示出了根据各种实施方案的可以在图1的系统中实现的示例性客户端装置。

具体实施方式

在以下描述中,阐述许多具体细节以提供对各种实施方案的更透彻的理解。然而,对于本领域的技术人员将显而易见的是,可在没有这些具体细节中的一者或多者的情况下实践本发明概念。

如本文所用,诸如原始工作流和精简工作流的“工作流”可以包括由单个用户实现以执行设计任务的从开始状态(空白设计)到结束状态(已完成的设计/任务)的整个过程的图形表示。工作流可以包括一序列事件,每个事件包括边和对应节点。工作流也可以被认为是由从开始节点(空白设计)到结束节点(已完成的设计/任务)的有向边集连接的节点集。

如本文所用,“事件”可以包括边(表示用户技术)与对应节点(表示由用户技术产生的设计状态)之间的配对。

如本文所用,“事件数据”可以包括描述事件或与事件相关的数据的任何类型的数据。当各个用户经由设计应用程序执行任务时,可以从各个用户收集事件数据。例如,事件数据可以包括命令使用数据、内容快照和屏幕录制。事件数据的每一项都可以是带时间戳的。

如本文所用,“边”可表示产生设计/任务的对应状态的用户技术,对应状态由边的对应节点表示。边可以包括从先前状态/节点开始并在新状态/节点结束的有向边。因此,边也可以表示从先前状态/节点到新状态/节点的状态变化。在原始工作流或精简工作流中,边表示使从先前状态/节点改变为新状态/节点的单种用户技术。

如本文所用,“节点”可表示任务的状态或条件,诸如模型设计的状态或条件。设计/任务的状态可以由设计/任务的内容快照指示,内容快照与表示状态的节点相关联。

如本文所用,“用户技术”可以包括由用户调用的特定命令集合/序列,其使设计/任务的状态从第一/先前状态改变为第二/新状态。

如本文所用,“原始工作流”可以包括在组合工作流的相似节点之前针对单个用户的初始工作流。

如本文所用,“精简工作流”可以包括在组合工作流的相似节点之后针对单个用户的工作流。精简工作流可以包括组合节点集。

如本文所用,“组合节点”可以表示原始工作流中被组合成单个组合节点的两个或更多个相似节点。相似节点是表示在阈值内被确定为相似的两个或更多个设计/任务状态的两个或更多个节点。

如本文所用,“工作流图”(W图)包括执行同一设计任务的多个用户的多个工作流的图形表示。每个W图包括一个或多个代表性工作流。在其他实施方案中,工作流图包括在不同时间执行相同设计任务的同一用户的多个工作流的图形表示。

如本文所用,“代表性工作流”表示从开始状态(空白设计)到结束状态(已完成的设计/任务)的一个不同的整体过程/路径。代表性工作流可以包括代表性事件的有序序列,每个代表性事件包括代表性边和对应代表性节点。每个代表性工作流可以包括至少一个合并节点,所述合并节点表示源自执行相同任务的多个不同用户的多个不同工作流的多个节点。

如本文所用,代表性工作流中的“代表性边”可以表示一种或多种不同的用户技术(一个或多个不同的命令集合/序列),每种用户技术产生设计/任务的相同对应状态,对应状态由代表性边的对应代表性节点表示。

如本文所用,代表性工作流中的“代表性节点”可以包括原始节点、组合节点或合并节点。

如本文所用,“合并节点”可以表示两个或更多个相似节点,每个相似节点源自不同用户的不同工作流(原始或精简工作流)。例如,可以将来自第一用户的第一工作流的第一节点与来自第二用户的第二工作流的第二节点合并以产生单个合并节点,其中第一节点和第二节点被确定为相似节点。相似节点是表示在阈值内被确定为相似的两个或更多个设计/任务状态的两个或更多个节点。

如本文所用,“表格”可以包括任何类型的数据容器,诸如数据文件、文档等。

如本文实施方案中公开的,工作流图(W图)系统包括经由网络与多个客户端/用户连接的服务器。每个客户端/用户执行设计应用程序以执行特定设计任务(诸如设计特定对象的3D模型)。W图系统以三个阶段运行:事件数据收集阶段、W图库构建阶段和使用W图图形用户界面(GUI)和/或W建议GUI的运行时阶段。

在事件数据收集阶段期间,服务器为执行/完成不同设计任务的多个客户端/用户收集事件数据。对于执行特定设计任务的每个客户端/用户,服务器可以收集包括命令数据、内容快照和屏幕录制的事件数据。事件数据的每一项都可以是带时间戳的。

在W图库构建阶段期间,服务器基于所收集的事件数据为多个不同的任务生成多个不同的W图。可以基于从经由设计应用程序执行相同特定任务的多个客户端/用户收集的事件数据为每个特定任务生成单独的W图。对于执行特定任务的每个用户,服务器可以生成以图形方式表示用户为执行/完成特定任务而实现的整个过程的原始工作流。原始工作流包括一序列事件,每个事件包括表示用户技术(命令集)的边和表示由实现用户技术产生的设计/任务的状态的对应节点。服务器还可以生成原始工作流的精简版本(精简工作流),精简工作流包括零个或更多个原始节点的集合和零个或更多个组合节点的集合。每个组合节点可以表示来自原始工作流的两个或更多个相似节点。相似节点可以包括表示在阈值内被确定为相似的两个或更多个设计/任务状态的两个或更多个节点。服务器还可以基于多个精简工作流为特定任务生成W图。W图可以包括一个或多个代表性工作流。每个代表性工作流可以包括至少一个合并节点,所述合并节点表示源自执行相同任务的多个不同用户的多个不同工作流的多个节点。每个W图可以存储到用于存储W图库的数据库中。

在使用W图GUI的运行时阶段期间,当前用户可能希望经由设计应用程序执行特定任务并在执行任务之前查看特定任务的W图。服务器可以接收经由在当前用户操作的当前客户端上执行的用户界面对特定任务的选择。作为响应,服务器从W图库中检索选定任务的W图,并使W图经由W图GUI在当前客户端处显示。当前用户可以与W图GUI交互以请求和接收与W图相关的更多信息,诸如命令数据信息或屏幕录制。有利地,任务的W图以图形方式表示各种经验水平的不同用户为完成任务而实现的多种不同方法,使得方法之间的共性和差异变得显而易见。因此,W图允许当前用户轻松查看和理解由先前执行设计任务的其他用户实现的不同工作流,并在随后执行任务时探索当前用户先前未考虑的不同工作流。

在使用W建议GUI的运行时阶段期间,当前用户可以经由设计应用程序执行特定任务,并希望对当前用户实现的整个过程进行分析以进行优化(更高的效率)。在一些实施方案中,W建议功能包括基于当前工作流与为相同任务生成的W图的比较来分析当前用户执行任务的当前工作流。在这些实施方案中,服务器可以接收经由在当前用户操作的当前客户端上执行的用户界面对W建议功能和特定任务的选择。

作为响应,服务器生成用于当前用户执行/完成特定任务的当前工作流。当前工作流可以包括包含组合节点集的精简工作流。服务器还从W图库中检索选定任务的W图,所述W图包括用于执行任务的一个或多个代表性工作流。服务器确定W图内的主要代表性工作流,包括W图内最短(最高效)的代表性工作流。在其他实施方案中,服务器确定W图内的主要代表性工作流,包括W图内最流行、最常被特定组(诸如机械师)使用、最独特或最先进的代表性工作流。

服务器然后将当前工作流与主要代表性工作流进行比较以将当前工作流的至少一个边指定为突出显示边。至少一个指定边表示至少一种用户技术,其效率低于主要代表性工作流中的对应代表性边所表示的用户技术。可以修改当前工作流以使至少一个指定边突出显示为具有与当前工作流的非指定边不同的外观。服务器然后可以使修改后的当前工作流经由W建议GUI在当前客户端处显示。当前用户可以与W建议GUI交互以请求和接收与修改后的当前工作流相关的更多信息,诸如与突出显示/指定边相关联的命令数据信息或屏幕录制。

有利地,修改后的当前工作流可以指示由当前用户实现的一种或多种用户技术,所述用户技术被确定为比由其他用户实现的一种或多种对应用户技术效率低。当前用户然后可以在将来执行相同任务时实现更高效的用户技术。

W图系统

图1示出了被配置来实现各种实施方案的一个或多个方面的系统。如图所示,W图系统100包括经由网络120耦合的服务器110和多个客户端130(例如,130A至130N)。每个客户端130与操作客户端130的特定用户相关联和相对应。网络120可以包括允许数据交换的任何技术上可行的有线或无线通信或信息网络,诸如无线(Wi-Fi)网络、个人区域网(诸如蓝牙、无线USB、IrDA等)、广域网(WAN)、局域网(LAN)和/或互联网等。

服务器110可以包括计算装置或机器,诸如服务器系统、台式计算机、膝上型计算机或适合于实践各种实施方案的任何其他类型的计算装置。客户端130可以包括计算装置或机器,诸如台式计算机、膝上型计算机、移动装置或适合于实践各种实施方案的任何其他类型的计算装置。服务器110和客户端130包括计算机硬件部件,诸如用于存储软件应用程序和数据的存储器以及执行软件应用程序以提供实现本文描述的操作和功能的处理引擎的处理器。下面关于图16至图17讨论服务器110和客户端130的计算机硬件部件。

服务器110执行工作流引擎112以执行本文的实施方案。工作流引擎112可以包括事件数据收集引擎114、W图引擎116、W建议引擎118和GUI引擎119。服务器110可以连接到数据库125,所述数据库存储从客户端130接收的事件数据储存库127和W图库129。每个客户端130执行接口引擎131、设计应用程序133和GUI应用程序135。

在数据收集阶段期间,事件数据收集引擎114可以与客户端130交互以接收事件数据127并将其存储到数据库125。事件数据127可以包括当操作客户端130的用户经由设计应用程序133执行任务时从客户端130收集的数据。任务可以包括任何类型的设计或建模任务,诸如设计特定对象(诸如桌子、咖啡杯、车辆、器具等)的二维(2D)或三维(3D)模型。所收集的事件数据可以包括命令使用数据、内容快照和屏幕录制。

在W图库构建阶段期间,W图引擎116基于所收集的事件数据127自动且自主地( ,无需人工干预)为多个不同任务生成多个不同W图。可以基于所收集的事件数据127为每个特定任务生成单独的W图。

在实现W图GUI的运行时阶段期间,GUI引擎119与在客户端130上执行的GUI应用程序135交互。例如,GUI引擎119可以经由GUI应用程序135接收对特定任务的用户选择。作为响应,GUI引擎119可以从存储到数据库125的W图库129中检索对应于选定任务的W图。GUI引擎119然后将W图传输到客户端130以使W图显示在由GUI应用程序135显示的W图GUI内。

在实现W建议GUI的运行时阶段期间,GUI引擎119还与在客户端130上执行的GUI应用程序135交互。例如,GUI引擎119可以接收经由GUI应用程序135对W建议特征和特定任务的用户选择。作为响应,GUI引擎119可以使W建议引擎118为对应于选定任务的当前用户生成修改后的当前工作流。GUI引擎119然后将修改后的当前工作流传输到客户端130以使修改后的当前工作流显示在由GUI应用程序135显示的W建议GUI内。

每个客户端/用户130执行用于执行特定设计任务的设计应用程序133,诸如设计特定对象(诸如椅子、桌子、咖啡杯等)的3D模型。设计应用程序133可以包括任何类型的基于计算机的软件应用程序或套件。例如,设计应用程序133可以包括任何类型的基于设计和/或工程的应用程序,诸如计算机辅助设计(CAD)应用程序、计算机辅助工程(CAE)应用程序、模拟器应用程序、建模器应用程序、几何体生成器应用程序、软件工程套件等。

每个客户端/用户130还执行接口引擎131。接口引擎131可以充当在服务器110上执行的工作流引擎112与在客户端130上执行的设计应用程序133和GUI应用程序135之间的接口以执行本文描述的实施方案。例如,在事件数据收集阶段期间,当用户经由设计应用程序133执行特定任务时,接口引擎131可以生成事件数据,并经由网络120将事件数据传输到工作流引擎112的事件数据收集引擎114。事件数据的每一项都可以是带时间戳的。例如,接口引擎131可以生成描述在设计应用程序133上执行的命令的命令事件数据,以及由所执行的命令产生的设计/任务的状态的内容快照。接口引擎131还可以生成用户执行任务的设计应用程序133从任务开始到任务完成的视频屏幕录制。每个事件数据项可以是带时间戳的并传输到工作流引擎112的事件数据收集引擎114。

在运行时阶段期间,GUI应用程序135可以经由网络120与工作流引擎112交互以将经由GUI应用程序135接收的用户输入发送到工作流引擎112并从工作流引擎112接收响应。GUI应用程序135可以生成并显示W图GUI和/或W建议GUI。

在实现W图GUI的运行时阶段期间,GUI应用程序135可以向工作流引擎112发送对特定任务的用户选择,并从工作流引擎112接收对应于选定任务的W图。GUI应用程序135可以在W图GUI内显示所接收的W图。用户还可以与W图GUI交互以请求和接收与所显示的W图相关的更多信息,诸如命令数据信息或屏幕录制。

在实现W建议GUI的运行时阶段期间,GUI应用程序135可以向工作流引擎112发送对W建议特征和特定任务的用户选择,并且从工作流引擎112接收对应于选定任务的修改后的当前工作流。GUI应用程序135可以在W建议GUI内显示所接收的修改后的当前工作流。用户还可以与W建议GUI交互以请求和接收与所显示的修改后的当前工作流相关的更多信息,诸如命令数据信息或屏幕录制。

事件数据收集阶段

在数据收集阶段期间,事件数据收集引擎114可以与客户端130交互以接收事件数据127并将其存储到数据库125。事件数据127可以包括当操作客户端130的用户经由设计应用程序133执行任务时从客户端130收集的数据。事件数据收集引擎114可以为每个不同的任务生成事件数据表,以用于存储接收到的与任务相关联的所有接收到的事件数据。事件数据收集引擎114可以将多个不同任务的多个不同事件数据表存储到数据库125,多个事件数据表包括事件数据储存库127。

图2是根据各种实施方案的事件数据表的概念图。每个事件数据表200可以存储在执行/完成特定任务时从客户端130/用户接收的事件数据。对于执行特定任务的每个用户,事件可以包括用户技术(由用户调用的命令集)和由用户技术产生的对应设计/任务状态的组合。事件数据可以包括与事件或任务的执行相关或对其进行描述的任何数据。在一些实施方案中,事件数据包括命令使用数据、内容快照和屏幕录制。在其他实施方案中,事件数据可以包括与事件或任务的执行相关或对其进行描述的任何其他类型的数据。

命令使用数据可以包括指示用户在执行任务期间调用了什么命令的命令日志数据。命令使用数据指示由用户实现的用户技术(命令集)以产生设计/任务的状态的变化。对于每个调用的命令,命令使用数据可以为所调用的命令指定唯一的命令标识符(命令ID)和命令被调用时的时间戳。

内容快照可以包括由对应用户技术产生的在特定时间点(由相关联的时间戳指定)的设计状态的图像。内容快照可以指示由对应用户技术产生的设计状态的几何形状。例如,内容快照可以包括由用户执行的特定用户技术产生的椅子的3D模型的几何形状的图像。每种用户技术的执行可以触发/启动对应于用户技术的内容快照的生成。例如,在每个客户端130处,用户可以经由设计应用程序133执行用户技术(命令集),这使接口引擎131触发/启动设计应用程序133中的设计任务的所得状态的内容快照。接口引擎131然后可以将描述用户技术(命令集)的命令使用数据和对应内容快照传输到事件数据收集引擎114。接口引擎131可以针对用户在执行任务时执行的每种用户技术重复这些操作。

接口引擎131还可以在每个客户端130处生成用户执行任务的设计应用程序133从任务开始到任务完成的屏幕录制。屏幕录制可以包括显示由用户调用的用户技术以及在执行任务时设计任务的所得状态变化的屏幕视频录制。在用户完成任务后,接口引擎131然后可以将屏幕录制传输到事件数据收集引擎114。

事件数据收集引擎114接收到的每个事件数据项可以存储到与特定任务相对应的事件数据表200。如图所示,事件数据表200包括多个条目201(诸如201a、201b、201c等),每个条目201包含特定用户执行任务的事件数据。就此而言,每个条目201包括用户名/ID字段210和事件数据字段220。用户名210可以包括用户的唯一用户名或标识符(诸如用户名_A、用户名_B、用户名_C等)。事件数据220可以包含从用户接收到的所有事件数据,诸如命令使用数据(诸如C1_A、C2_A、C3_A等)、对应内容快照(诸如S1_A、S2_A、S3_A等)以及屏幕录制(诸如R_A)。屏幕录制(诸如R_A)可以包括对整个任务的执行的录制。然后可以将屏幕录制分成录制段/子部分(诸如R1_A、R2_A、R3_A等),每个录制段/子部分与特定用户技术(命令集)和对应内容快照相关联。事件数据220的每一项都可以是带时间戳的。

图3是根据各种实施方案的用于收集事件数据的方法步骤的流程图。尽管结合图1至图2的系统描述了方法步骤,但本领域技术人员将理解,方法步骤可由任何系统按任何次序执行。在一些实施方案中,方法300可以由服务器110结合多个客户端130来执行以接收事件数据127并将其存储到数据库125。可以对经由设计应用程序执行特定任务的每个用户实现方法300。

当客户端/用户130例如用用户名和口令登录(在步骤310)服务器110时,方法300开始。用户经由在客户端130上执行的设计应用程序133开始(在步骤320)执行设计任务。接口引擎131可以经由设计应用程序133开始用户执行设计任务的屏幕录制(在步骤330)。当用户经由设计应用程序133执行和完成设计任务时,事件数据收集引擎114可以从接口引擎131接收(在步骤340)命令使用数据和内容快照。事件数据收集引擎114还将接收到的命令使用数据和内容快照存储到用于特定设计任务的事件数据表200。在执行/完成任务之后,事件数据收集引擎114从接口引擎131接收(在步骤350)屏幕录制并将接收到的屏幕录制存储到用于特定设计任务的事件数据表200。事件数据收集引擎114然后将事件数据表200存储(在步骤360)到存储在数据库125上的事件数据储存库127。然后方法300结束。

W图库构建阶段

在W图库构建阶段期间,服务器110的W图引擎116基于所收集的事件数据127为多个不同的任务生成多个不同的W图。可以基于从经由设计应用程序133执行相同特定任务的多个客户端/用户收集的事件数据为每个特定任务生成单独的W图。

为任务生成每个W图可以包括3个单独的阶段:预处理阶段、节点组合阶段和节点合并阶段。对于特定任务,W图引擎116执行预处理阶段和节点组合阶段以生成用于每个用户执行特定任务的精简工作流。因此,预处理阶段和节点组合阶段产生多个精简工作流,表示由多个用户为执行相同任务而实现的整个过程。W图引擎116然后可以执行节点合并阶段以合并跨多个精简工作流的相似节点以生成任务的W图。W图包括执行相同任务的多个用户的多个工作流的图形摘要。

在预处理阶段,W图引擎116可以预处理为执行任务的每个用户接收的事件数据127。特别地,W图引擎116可以使用启发法来预处理每个用户的事件序列以折叠由用户调用的重复或冗余命令。例如,用于移动对象的“箭头键”命令的多次调用可以被折叠为一个“用键盘移动的对象”命令。作为另一示例,“平移视点”命令的多次调用可被折叠为一个“平移”命令。W图引擎116然后可以基于预处理的事件数据为每个用户生成原始工作流。因此,对于执行特定任务的多个用户,W图引擎116可以生成原始工作流集,每个原始工作流以图形方式表示用户为执行/完成特定任务而实现的整个过程。W图引擎116还可以经由共同开始节点(空白设计)和共同结束节点(已完成的设计/任务)连接原始工作流集。

图4是根据各种实施方案的原始工作流集的概念图。原始工作流集400包括多个原始工作流,每个原始工作流在共同开始节点401(空白设计)处开始并在共同结束节点450(已完成的设计/任务)处结束。为了说明的目的,在图4的示例中仅示出了三个原始工作流。然而,原始工作流集400通常将包含大量原始工作流。

每个原始工作流包括带时间戳的事件410的从开始节点401到结束节点450的有序序列。每个事件410由有向边420和对应节点430表示。有向边420有时被称为原始边420并且节点430有时被称为原始节点430。有向边420表示用户技术(调用命令集)并且对应节点430表示由实现用户技术产生的设计/任务的状态。如图所示,每个有向边420都指向对应节点430。每个有向边420与用于用户技术(调用命令集)的带时间戳的命令使用数据相关联。每个对应节点430与由用户技术产生的设计状态/任务的带时间戳的内容快照相关联。每个原始工作流还与用户从开始状态/节点401到结束状态/节点450执行任务的屏幕录制相关联。如原始工作流集400所示,每个用户可以实现不同的整个过程/方法来执行/完成特定任务。

W图引擎116然后可以对原始工作流集400执行节点组合阶段以产生精简工作流集。特别地,W图引擎116可以生成每个原始工作流的精简版本(精简工作流),精简工作流包括零个或更多个原始节点的集合和零个或更多个组合节点的集合。每个组合节点可以表示来自相同原始工作流的两个或更多个相似的相邻节点。由于原始工作流通常会包含非常多的节点,因此将相似的节点组合为单个组合节点有利于提高处理和存储效率。相似节点可以包括原始工作流中表示在阈值内被确定为“相似”的两个或更多个设计/任务状态的两个或更多个相邻节点。

在一些实施方案中,相似节点包括原始工作流中的两个或更多个相邻节点,其表示基于与两个或更多个相邻节点相关联的内容快照被确定为具有“相似”几何形状(在阈值内)的两个或更多个设计/任务状态。在一些实施方案中,W图引擎116通过结合数据聚类算法采用选定相似性度量(和对应阈值)来确定用于组合成为单个组合节点的相似节点。如下所述,W图引擎116可以使用用于确定和定义相似性度量的各种技术。W图引擎116可以实现一种此类技术来确定两个或更多个相邻节点的指示所述两个或更多个相邻节点之间的相似性水平的特定相似性度量。W图引擎116然后可以基于预定阈值确定两个或更多个相邻节点是“相似的”。例如,如果两个或更多个相邻节点的所确定的相似性度量满足预定阈值,则W图引擎116可以确定两个或更多个相邻节点是“相似的”。

W图引擎116还可以实现数据聚类算法以识别原始工作流中相邻节点的聚类簇。数据聚类算法然后基于所确定的相似性度量和预定阈值将同一聚类簇的相邻节点组合成组合节点。在一些实施方案中,数据聚类算法包括有噪声应用的基于密度的空间聚类(DBSCAN)算法。在这些实施方案中,DBSCAN算法的超参数可以使用K最近邻距离方法来调整。给定某个空间中的点(节点)集,DBSCAN算法将紧密堆积在一起的点(具有许多近邻的点)聚类在一起,同时将单独位于低密度区域(其最近邻太远)中的点标记为异常值点。

在节点组合阶段完成之后,W图引擎116产生了精简工作流集。图5是根据各种实施方案的已连接精简工作流集的概念图。精简工作流集500包括多个精简工作流,每个精简工作流在共同开始节点401(空白设计)处开始并在共同结束节点450(已完成的设计/任务)处结束。出于说明的目的,图5的示例中仅示出了三个精简工作流。然而,精简工作流集500通常将包含大量精简工作流。

如图所示,每个精简工作流包括零个或更多个原始节点430的集合/序列和零个或更多个组合节点530的集合/序列。应注意,当原始节点430集被组合成单个组合节点530时,对应于原始节点430集的原始边420集也被组合成对应于组合节点530的组合边520。组合边520可以表示由原始边420集表示的用户技术的组合。因此,组合边520表示与原始边420集相关联的所有调用命令的组合集合/序列。此外,原始节点430的集合/序列包括作为原始节点430序列中的最后一个原始节点430的最终节点。组合节点530可以包括原始节点430的集合/序列中的最终节点。组合节点530与和最终节点相关联的内容快照相关联。因此,组合节点530表示原始节点430的集合/序列内的设计的最终状态,所述最终状态由与最终节点和组合节点530相关联的内容快照图示。

例如,原始节点430集可以包括一个有序序列,所述有序序列包括第一原始节点(具有对应第一原始边)、第二原始节点(具有对应第二原始边)和第三原始节点(具有对应第三原始边)。第一原始边可以表示包括命令c1和c2的第一用户技术,第二原始边可以表示包括命令c3和c4的第二用户技术,并且第三原始边可以表示包括命令c5、c6和c7的第三用户技术。原始节点430集被组合成具有对应第一组合边的第一组合节点。因此,第一组合边表示包括命令c1至c7的第一组合用户技术。此外,第一组合节点包括第三原始节点并且与和第三原始节点相关联的内容快照相关联。

在节点组合阶段之后,W图引擎116然后可以执行节点合并阶段以合并跨多个精简工作流的相似节点以生成任务的W图。每个合并节点可以表示来自两个或更多个不同精简工作流的两个或更多个相似节点(原始节点或组合节点)。如同在节点组合阶段,节点合并阶段中的相似节点也可以包括两个或更多个节点,这些节点表示在阈值内被确定为“相似”的两个或更多个设计/任务状态。

在一些实施方案中,W图引擎116通过采用选定相似性度量和对应阈值来确定用于组合成单个合并节点的相似节点对。如下所述,W图引擎116可以使用用于确定和定义相似性度量的各种技术。W图引擎116可以实现一种此类技术来确定节点对的指示节点对之间的相似性水平的特定相似性度量。W图引擎116然后可以基于预定阈值和与节点对相关联的内容快照来确定节点对是“相似的”。例如,如果节点对的所确定的相似性度量满足预定阈值,则W图引擎116可以确定节点对是“相似的”。在节点合并阶段,W图引擎116可以通过处理来自两个不同精简工作流的节点对来分析精简工作流。因此,在节点合并阶段,W图引擎116可能不需要用于对节点组进行聚类的数据聚类算法。然而,在随后的处理中,合并节点然后可以与来自另一个工作流的又一个节点合并。因此,合并节点可以表示两个或更多个相似节点。

在节点合并阶段完成之后,W图引擎116已经为任务产生了W图。图6是根据各种实施方案的用于完成特定任务的W图的概念图。W图600以图形方式表示执行相同任务的多个用户的多个工作流。

W图600可以包括一个或多个代表性工作流。每个代表性工作流在共同开始节点401(空白设计)处开始并在共同结束节点450(已完成的设计/任务)处结束。每个代表性工作流表示从开始节点401到结束节点450的唯一/不同的整体路径。每个代表性工作流可以被指定为从开始节点401到结束节点450的节点/状态的不同序列。就这点而言,W图600中的每个节点可以与标签相关联,诸如A、B、C、D等等。然后可以将每个代表性工作流定义为带标签节点/状态的不同序列,其从W图600中的其他代表性工作流中唯一地识别代表性工作流。在图6的示例中,W图600包括:指定为A、B、D、F和H的第一代表性工作流;指定为A、B、D、F、G和H的第二代表性工作流;指定为A、B、F和H的第三代表性工作流;指定为A、B、F、G和H的第四代表性工作流;以及指定为A、C、E、G和H的第五代表性工作流。

如图所示,每个代表性工作流可以包括零个或更多个原始节点430的集合、零个或更多个组合节点530的集合和零个或更多个合并节点630的集合。合并节点630可以表示两个或更多个相似节点的集合,每个相似节点源自不同用户的不同精简工作流。每个合并节点630具有对应合并边620。应注意,当节点集被组合成单个合并节点630时,对应合并边620表示对应于节点集的边集。边集表示用户技术集,其中用户技术集中的一些用户技术可以是唯一的/不同的并且一些用户技术可以是相同的。合并边620可以表示边集所表示的用户技术集中的每种不同用户技术(不同命令集)。因此,合并边620表示与边集相关联的每个不同命令集合/序列。此外,可以选择节点集中的任何节点作为合并节点630。合并节点630然后与和选定节点相关联的内容快照相关联。

例如,节点集可以包括来自第一精简工作流的第一节点(具有对应第一边)、来自第二精简工作流的第二节点(具有对应第二边)以及来自第三精简工作流的第三节点(具有对应第三边)。第一边可以表示包括命令c1和c2的第一用户技术,第二边可以表示包括命令c1和c2的第二用户技术,并且第三边可以表示包括命令c2和c3的第三用户技术。节点集被合并成具有对应第一合并边的第一合并节点。因此,第一合并边表示两种独立且不同的用户技术,包括第一用户技术(命令c1和c2)和第三用户技术(命令c2和c3)。由于第二用户技术(命令c1和c2)与第一用户技术(命令c1和c2)相同,因此第二用户技术不由第一合并边表示。应注意,包括第一用户技术和第三用户技术的两种不同的用户技术均会产生设计状态的相同变化(如第一合并节点所表示)。

就这点而言,W图600中的每个边可以具有对边所表示的每一种不同用户技术进行计数的相关联用户技术计数器。在该示例中,第一合并边的用户技术计数器将等于2,因为第一合并边表示两种不同的用户技术。不是W图600中的合并边630的边的默认用户技术计数器等于1,因为未合并边(原始边或组合边)仅表示单种不同用户技术。此外,可以选择第一、第二或第三节点作为第一合并节点,其与和选定节点相关联的内容快照相关联。

W图600中的每个代表性工作流还可以表征为从开始节点401到结束节点450的一序列代表性事件,每个代表性事件包括代表性边和对应代表性节点。代表性边可以包括原始边420、组合边520或合并边620。代表性边表示一种或多种用户技术(命令集),这些技术使设计任务的状态从先前状态改变为新状态。如果代表性边包括原始边420或组合边520,则代表性边表示单种用户技术(命令集)。如果代表性边包括合并边620,则代表性边可以表示一种或多种不同的用户技术(一个或多个不同的命令集),每一种用户技术都导致相同的设计状态(如对应代表性节点所表示)。例如,第一代表性边可以表示由第一用户实现的第一用户技术(第一命令集)和由第二用户实现的第二用户技术(第二命令集),每种用户技术产生从相同先前状态到相同新状态的相同变化。代表性节点可以包括原始节点430、组合节点530或合并节点630。每个代表性节点可以表示整个任务中的特定子任务。

在节点合并阶段之后,W图引擎116将为任务产生的W图存储到数据库125中的W图库129。可以对每个设计任务重复上述三个处理阶段,以为多个任务生成存储到数据库125的多个W图。存储到数据库125的每个W图可以按设计任务编索引以用于访问数据库125中的W图。

如上所述,每个W图可以包括一个或多个代表性工作流。每个代表性工作流包括一序列代表性事件,每个代表性事件包括代表性边和对应代表性节点。每个W图可以包括用于存储W图数据的数据结构,包括描述W图和一个或多个代表性工作流的数据以及与W图相关联的任何数据。例如,所存储的W图数据可以包括与W图相关联的任何事件数据。例如,所存储的W图数据可以包括每个代表性工作流的代表性事件的有序序列以及一个或多个代表性工作流之间的任何节点连接(合并节点)的位置。对于每个代表性节点,W图数据可以包括与代表性节点相关联的内容快照。对于每个代表性边,W图数据可以包括用户技术计数器和与代表性节点相关联的一个或多个命令集(用户技术)。

对于每个代表性边,W图数据还可以包括与代表性边相关联的一个或多个屏幕录制,每个屏幕录制包括用户执行与代表性事件相关联的命令集(用户技术)的视频录制。如上文关于图2所述,针对用于用户执行任务的工作流的事件数据可以包括用户从开始(空白设计)到结束(已完成设计)执行任务的屏幕录制。然后可以将屏幕录制细分为录制段,每个录制段与表示用户技术(命令集)的特定边相关联。因此,每个录制段可以包括用户执行与边相关联的特定命令集(用户技术)的视频录制。在这些实施方案中,对于W图中的每个代表性边,W图引擎116可以为代表性边所表示的每种不同的用户技术存储和关联单独的录制段。例如,如果代表性边表示两种不同的用户技术,则W图引擎116可以存储和关联代表性边的两个录制段。

图7是根据各种实施方案的用于为任务生成W图的方法步骤的流程图。尽管结合图1至图2和图4至图6的系统描述了方法步骤,但本领域技术人员将理解,方法步骤可以由任何系统按任何次序执行。在一些实施方案中,方法700可以由在连接到存储事件数据127的数据库125的服务器110上执行的W图引擎116来执行。可以对经由设计应用程序执行的每个不同的设计任务实现方法700。

当W图引擎116检索(在步骤710)存储特定任务的事件数据的事件数据表200时,方法700开始。事件数据表200包括经由设计应用程序执行特定任务的多个不同用户中的每一个的事件数据。每个用户的事件数据可以包括命令数据、内容快照和屏幕录制。

W图引擎116然后执行(在步骤720)预处理阶段以预处理每个用户的事件数据以生成每个用户的原始工作流。特别地,W图引擎116可以折叠由用户调用的重复或冗余的命令以生成每个用户的原始工作流。因此,W图引擎116生成原始工作流集,每个原始工作流以图形方式表示用户为执行/完成特定任务而实现的整个过程。每个原始工作流可以包括一序列原始边和原始节点。W图引擎116还可以经由共同开始节点(空白设计)和共同结束节点(已完成的设计/任务)连接原始工作流集。

W图引擎116然后执行(在步骤730)节点组合阶段以产生精简工作流集,每个精简工作流包括原始工作流集中的原始工作流的精简版本。每个精简工作流可以包括零个或更多个原始节点的集合和零个或更多个组合节点的集合。每个组合节点可以表示来自相同原始工作流的两个或更多个相似的相邻节点。相似节点可以包括原始工作流中表示在阈值内被确定为“相似”的两个或更多个设计/任务状态的两个或更多个相邻节点。W图引擎116可以通过结合数据聚类算法(诸如DBSCAN算法)来实现选定相似性度量(和对应阈值)来精简每个原始工作流以生成精简工作流。

W图引擎116然后执行(在步骤740)节点合并阶段以产生任务的W图。W图可以包括一个或多个代表性工作流。每个代表性工作流可以包括至少一个合并节点,所述合并节点表示源自执行相同任务的多个不同用户的多个不同工作流的多个节点。每个代表性工作流包括从开始节点到结束节点的代表性事件的不同序列,每个代表性事件包括代表性边和对应代表性节点。代表性边可以包括原始边、组合边或合并边。代表性边表示一种或多种不同用户技术(命令集),这些技术使设计任务的状态从以前状态改变为新状态。代表性节点可以包括原始节点、组合节点或合并节点。每个合并节点可以表示两个或更多个相似节点的集合,每个相似节点源自不同用户的不同精简工作流。W图引擎116可以通过采用选定相似性度量和对应阈值来确定用于合并成单个合并节点的相似节点对。

W图引擎116然后将任务的W图存储(在步骤750)到存储在数据库125中的W图库129。W图可以包括用于存储W图数据的数据结构,包括描述W图和一个或多个代表性工作流的数据以及与W图相关联的任何数据。然后方法700结束。W图可以在数据库125中按对应设计任务编索引,以用于以后访问数据库125中的W图。可以对每个任务重复方法700以为多个任务生成存储到数据库125的多个W图。

相似性技术和度量

如上所述,在节点组合阶段和节点合并阶段,基于选定相似性度量和对应阈值确定两个节点是“相似的”。W图引擎116可以在节点组合阶段和节点合并阶段使用用于确定和定义相似性度量的各种技术。在两个阶段中,W图引擎116可以实现一种此类技术来确定两个节点的特定相似性度量/值,所述相似性度量/值指示两个节点之间的相似性水平(即,与两个节点相关联的两个内容快照之间的相似性水平)。W图引擎116然后可以基于预定阈值确定两个节点是“相似的”。

例如,如果为两个节点确定的相似性度量/值满足预定阈值(例如,相似性度量/值等于或大于预定阈值或相似性度量/值等于或小于预定阈值),则W图引擎116可以确定两个节点是“相似的”。在这些实施方案中,确定为相似的两个节点指示与这两个节点相关联的内容快照在阈值内是相似的。特别地,内容快照可以包括被确定为在阈值内在几何上或语义上相似的设计几何图形。因此,确定为相似的两个节点可以表示语义上相似的设计状态。用于确定哪些节点/状态在语义上相似的标准取决于预定阈值,所述预定阈值可由用户/设计师确定和调整。

在一些实施方案中,用于确定两个节点的相似性度量/值的相似性算法/技术包括自动编码器算法/技术。通常,自动编码器技术可以实现自动编码器来表示与节点相关联的内容快照的3D几何形状信息,并且然后比较3D几何形状信息以检测3D几何形状信息的差异。自动编码器技术使用自动编码器定义相似性来实现潜在空间嵌入。用于确定相似性度量的自动编码器可以使用机器学习技术进行训练。在这些实施方案中,经由机器学习功能确定节点,这些节点被确定为用于组合成组合节点和/或合并成合并节点的“相似”节点。因此,在这些实施方案中,组合节点和合并节点可以经由机器学习功能来确定。一旦经过训练,自动编码器就可以生成输入数据的紧凑表示(诸如512维向量)并比较这些紧凑表示以量化输入数据之间的相似性。输入数据可以包括从与节点相关联的内容快照生成的3D点云数据。

在机器学习训练中,自动编码器通过学习将训练数据集编码到较小维度的潜在空间(诸如向量)来学习输入数据的紧凑表示。自动编码器可以包括一种类型的人工神经网络,所述人工神经网络用于通过训练网络忽略信号噪声来学习输入数据集的表示(编码)以用于降维。在一些实施方案中,潜在模型用PointNet自动编码器或PointNet自动编码器的变体进行训练,以用于将3D点云编码为向量。自动编码器在数据集上进行训练,诸如包括具有超过51,000个独特3D模型的55个常见对象类别的ShapeNet数据集。

在训练自动编码器之后,可以使用自动编码器通过首先为与每个节点相关联的内容快照(诸如3D模型)生成3D点云数据来处理待比较的两个节点。然后使用自动编码器将每个内容快照的3D点云数据转换为512维向量。然后使用余弦距离比较为内容快照产生的512维向量,以量化内容快照之间的相似性。

选择自动编码器技术作为相似性算法/技术可能是有利的,因为自动编码器技术使用3D点云数据工作。因此,自动编码器技术对如何产生内容快照中的3D模型不敏感,而仅对所产生的最终几何形状敏感。此外,与其他相似性技术相比,自动编码器技术可能对内容快照的语义上有意义的变化更敏感。此外,与其他相似性技术相比,自动编码器技术可能需要更少的调整。

在其他实施方案中,用于确定两个节点的相似性度量/值的相似性算法/技术包括树比较技术。树比较技术可以将两个节点的内容快照(3D模型)表示为构造立体几何(CSG)树。每个CSG树包括几何图元(例如,立方体、圆柱体、圆锥体),它们在分层结构中使用布尔运算(例如,并、交、差)组合在一起。树比较技术然后可以通过直接比较各自的CSG树来量化两个内容快照之间的差异。

选择树比较技术作为相似性技术可能是有利的,因为树比较技术可以简单高效地处理两个节点以确定两个节点的相似性度量。然而,在内容快照中设计/建模相同所得几何形状的不同过程可能会产生显著不同的CSG树。因此,与自动编码器技术相比,树比较技术可能是一种用于判断通过不同过程达到相似最终结果几何形状的状态之间的语义相似性的不太准确的方法。

在其他实施方案中,用于确定两个节点的相似性度量/值的相似性技术包括网格比较技术。网格比较技术可以使用网格比较度量(诸如豪斯多夫距离)来比较两个节点的内容快照中的3D模型的3D网格。选择网格比较技术作为相似性技术可能是有利的,因为网格比较技术可以简单高效地处理两个节点以确定两个节点的相似性度量。然而,由网格比较度量产生的距离是绝对值,使得对3D模型的概念上的微小变化可能会导致距离度量的巨大变化。此外,网格比较技术可能需要大量的试错来设置适当的阈值。

在其他实施方案中,用于确定两个节点的相似性度量/值的相似性技术包括2D图像比较技术。图像比较技术可以包括从若干不同角度(例如,20个不同角度)呈现每个内容快照的几何形状,并且然后比较所得的2D图像以量化内容快照之间的差异。选择图像比较技术作为相似性技术可能是有利的,因为图像比较技术对如何产生内容快照中的3D模型不敏感,而仅对所产生的最终几何形状敏感。然而,图像比较技术可能需要大量的试错来设置适当的阈值。

在使用选定相似性技术为两个节点确定相似性度量/值之后,然后将相似性度量/值与预定阈值进行比较以确定这两个节点是否“相似”。因此,预定阈值包括两个节点之间语义相似性的阈值。可以依据用户/设计师希望达到的粒度级别手动调整预定阈值。例如,可以改变预定阈值以捕获执行任务的不同整体过程中或多或少的粒度变化,如为任务生成的W图中所反映的。

使用W图GUI的运行时阶段

在产生W图库129之后,可以在运行时阶段期间使用W图GUI和/或W建议GUI来利用W图库129。在使用W图GUI的运行时阶段期间,当前用户可能希望经由设计应用程序执行特定任务并在执行任务之前查看特定任务的W图。任务的W图以图形方式表示各种经验水平的不同用户为完成任务而实现的多种不同方法,使得方法之间的共性和差异变得显而易见。因此,W图允许当前用户轻松查看和理解由先前执行设计任务的其他用户实现的不同工作流,并在随后执行任务时探索当前用户先前未考虑的不同工作流。

在这些实施方案中,在服务器110上执行的GUI引擎119可以与在客户端130上执行的GUI应用程序135进行交互。例如,GUI引擎119可以经由GUI应用程序135接收对特定任务的用户选择。作为响应,GUI引擎119可以从存储到数据库125的W图库129中检索对应于选定任务的W图和W图数据。GUI引擎119然后将W图和W图数据传输到客户端130,这使W图和W图数据显示在由GUI应用程序135显示的W图GUI内。W图GUI可以由GUI引擎119生成并且传输到GUI应用程序135以用于显示。在其他实施方案中,W图GUI可以由客户端130上的GUI应用程序135生成和显示。当前用户还可以与W图和W图GUI交互以请求和查看与W图相关的更多信息(W图数据),诸如命令数据信息和/或屏幕录制。

图8是根据各种实施方案的用于显示W图并与之交互的W图图形用户界面(GUI)的屏幕截图。W图GUI 800可以包括多个部分,包括模式选择部分810、任务选择部分820、W图部分850和W图数据部分875。

模式选择部分810显示用户可选择模式,包括W图模式和W建议模式。W图模式实现了本部分中讨论的W图GUI。W建议模式实现了以下部分中讨论的W建议GUI。假设当前用户当前选择了W图模式,如图8中的粗体文本所指示。任务选择部分820显示多个用户可选择任务(例如,任务_1、任务_2、任务_3等)。例如,可选择任务可以包括设计特定对象(诸如椅子、桌子、咖啡杯等)的3D模型。在其他实施方案中,可选择任务可以包括其他设计任务。W图部分850显示与选定任务相对应的W图。W图示出了一个或多个代表性工作流,每个代表性工作流包括一序列代表性边和代表性节点。W图可以包括用户可选择部件,诸如可选择代表性边。W图数据部分875可以显示选定代表性边的W图数据,诸如已编译度量、命令数据和屏幕录制。

例如,当前用户可以选择第一任务(任务_1)来设计具有四条腿的椅子的3D模型,如图8中的粗体文本所指示。先前已生成并存储用于数据库125中的第一任务的第一W图。作为响应,客户端130上的GUI应用程序t135可以将对第一任务的选择传输到在服务器110上执行的GUI引擎119。作为响应,GUI引擎119可以从存储到数据库125的W图库129中检索对应于第一任务的第一W图。GUI引擎119然后将第一W图传输到客户端130以使第一W图显示在W图GUI 800内。

图9是根据各种实施方案的在图8的W图GUI上显示的选定W图的屏幕截图。如图所示,第一W图被接收并显示在W图部分850中。第一W图示出了一个或多个代表性工作流,每个代表性工作流包括从开始节点855(表示开始状态)到结束节点870(表示已完成的第一任务)的代表性事件的不同序列。每个代表性事件包括代表性边860和代表性节点865。W图中的每个代表性节点865可以被配置为显示与代表性节点865相关联的内容快照。如图9的示例中所示,每个代表性节点865显示说明针对设计椅子的任务的状态的内容快照。

W图中的每个代表性边860可以包括用户可选择边。每个代表性边860表示一种或多种不同的用户技术(不同的命令集合/序列)。在一些实施方案中,基于代表性边860所表示的不同/独特用户技术的数量,代表性边860被配置有特定视觉外观。例如,代表性边860的线条粗细可以依据代表性边860所表示的不同用户技术的数量而变化,使得表示更多数量用户技术的代表性边860以比表示更少数量用户技术的另一个代表性边860更大的线条粗细来显示。例如,第一代表性边860可以表示不同用户技术的第一数量并且第二代表性边860可以表示不同用户技术的第二数量,第二数量大于第一数量。因此,第二代表性边860可以比第一代表性边860更大的线条粗细来显示。在其他实施方案中,以另一种方式指示代表性边860所表示的不同用户技术的数量。例如,可以在每个代表性边860旁边显示数字标签,其指定代表性边860所表示的不同用户技术的数量。

响应于对第一任务的用户选择,GUI应用程序135还可从GUI引擎119接收描述第一W图或与第一W图相关的W图数据。在一些实施方案中,GUI应用程序135在W图数据部分875中接收并显示整个W图的已编译度量。如图所示,整个W图的已编译度量可以包括诸如以下度量:不同代表性工作流的总数、执行具有标准偏差的代表性工作流的平均时间(如屏幕录制所指示)、以及执行具有标准偏差的代表性工作流的平均调用命令数。在其他实施方案中,可以在W图数据部分875中显示用于整个W图的其他已编译度量。

当前用户还可以与W图GUI 800中显示的W图交互以请求和查看更多W图数据。例如,当前用户可以选择表示源自3个不同用户的3个不同工作流的3种不同用户技术(3个不同的调用命令集合/序列)的第一代表性边860。作为响应,GUI引擎119可以检索存储到数据库125的选定第一代表性边860的W图数据并将W图数据传输到客户端130,这使W图数据显示在W图GUI 800的W图数据部分875内。

图10是根据各种实施方案的图8的W图GUI的W图数据部分的屏幕截图。如图所示,W图数据部分875可以包括多个子部分,包括已编译度量部分880、命令数据部分885和屏幕录制部分890。

第一代表性边860的W图数据可以包括在已编译度量部分880中显示的选定第一代表性边860的已编译度量。如图所示,选定第一代表性边860的已编译度量可以包括第一代表性边860所表示的不同用户技术的总数、执行具有标准偏差的用户技术的平均时间(如屏幕录制所指示)、以及执行具有标准偏差的用户技术的平均调用命令数。在其他实施方案中,选定代表性边860的其他已编译度量可以显示在已编译度量部分880中。

第一代表性边860的W图数据还可包括显示在命令数据部分885中的命令数据。可以在命令数据部分885内单独显示每种不同用户技术的命令数据。如图所示,针对每种不同用户技术显示的命令数据包括命令分布和命令序列。每种用户技术包括命令集合/序列。用户技术的命令分布可以指示命令集中每个命令的调用总数。例如,针对第一用户技术显示的命令分布(“命令_分布_1”)可以指定“分组”命令的3次调用、“移动”命令的3次调用和“调整大小”命令的4次调用。命令序列可以指示针对用户技术的有序命令序列。例如,第一用户技术(“命令_序列_1”)的显示命令序列可以指定包括“分组”、“移动”、“调整大小”、“分组”、“移动”、“调整大小”、“分组”、“移动”、“调整大小”和“调整大小”的有序命令序列。在其他实施方案中,可以在命令数据部分885中显示针对选定代表性边860的其他命令数据。

第一代表性边860的W图数据还可以包括在屏幕录制部分890中显示的屏幕录制。可以在屏幕录制部分890内单独显示每种不同用户技术的录制段。例如,可以针对第一用户技术显示第一录制段891,可以针对第二用户技术显示第二录制段892,并且可以针对与选定第一代表性边680相关联的第三用户技术显示第三录制段893。当前用户然后可以选择任何所显示的录制段来回放录制段。

图11是根据各种实施方案的用于显示为任务生成的W图并与之交互的方法步骤的流程图。尽管结合图1至图2、图4至图6以及图8至图10的系统描述了方法步骤,但本领域技术人员将理解,方法步骤可以由任何系统按任何次序执行。在一些实施方案中,方法1100可以由在服务器110上执行的GUI引擎119结合在显示W图GUI的客户端130上执行的GUI应用程序135来执行。

方法1100开始于GUI应用程序135经由W图GUI 800接收(在步骤1110)对任务的用户选择并将对选定任务的用户选择传输到GUI引擎119时。作为响应,GUI引擎119可以从数据库125的W图库129中检索(在步骤1120)对应于选定任务的W图和W图数据。GUI引擎119将W图和W图数据传输到GUI应用程序135。

GUI应用程序135在W图GUI内显示(在步骤1130)W图和W图数据。W图示出了一个或多个代表性工作流,每个代表性工作流包括从开始节点855到结束节点870的代表性事件的不同序列。每个代表性事件包括代表性边860和代表性节点865。每个代表性节点865显示与代表性节点865相关联的内容快照。每个代表性边860包括用户可选择边。每个代表性边860表示一种或多种不同的用户技术(不同的命令集)。基于代表性边860所表示的不同用户技术的数量,每个代表性边860以特定视觉外观(诸如线条粗细)来显示。W图GUI中显示的W图数据可以包括整个W图的已编译度量,诸如不同代表性工作流的总数、执行代表性工作流的平均时间、以及执行代表性工作流的平均调用命令数。

GUI应用程序135然后经由W图GUI 800接收(在步骤1140)对W图中的代表性边的用户选择并且将对代表性边的用户选择传输到GUI引擎119。作为响应,GUI引擎119从数据库125中检索(在步骤1150)对应于选定代表性边的W图数据并将W图数据传输到GUI应用程序135。GUI应用程序135在W图GUI内显示(在步骤1160)选定代表性边的W图数据。所显示的W图数据可以包括针对选定代表性边所表示的一种或多种用户技术的已编译度量、针对选定代表性边所表示的每种不同用户技术的命令数据(诸如命令分布和命令序列)、以及选定代表性边所表示的每种不同用户技术的录制段。然后方法1100结束。

使用W建议GUI的运行时阶段

在产生W图库129之后,还可以在运行时阶段期间使用W建议GUI来利用W图库129。在使用W建议GUI的运行时阶段期间,当前用户可以经由设计应用程序执行特定任务,并希望对当前用户实现的整个过程进行分析以进行优化(更高的效率)。在一些实施方案中,W建议功能包括基于当前工作流与为相同任务生成的W图的比较来分析当前用户执行任务的当前工作流(精简工作流)。特别地,W建议引擎118可以生成包括一个或多个突出显示/指定边的修改后的当前工作流,每个突出显示/指定边指示可以在效率方面改进的用户技术。修改后的当前工作流可以显示在W建议GUI中以供当前用户查看。当前用户也可以经由W建议GUI与修改后的当前工作流进行交互以请求和接收与修改后的当前工作流相关的更多信息,诸如与突出显示/指定边相关联的命令数据信息或屏幕录制。有利地,修改后的当前工作流可以指示由当前用户实现的一种或多种用户技术,所述用户技术被确定为比由其他用户实现的一种或多种对应用户技术效率低。当前用户然后可以在将来执行相同任务时实现更高效的用户技术。

在这些实施方案中,在服务器110上执行的GUI引擎119可以与在显示W建议GUI的客户端130上执行的GUI应用程序135进行交互。图12是根据各种实施方案的用于显示修改后的工作流并与之交互的W建议GUI的屏幕截图。W建议GUI 1200可以包括多个部分,包括模式选择部分1210、任务选择部分1220、修改后的当前工作流部分1250和比较数据部分1275。

模式选择部分1210显示用户可选择模式,包括W图模式和W建议模式。W建议模式实现了本部分中讨论的W建议GUI,并且假设当前用户当前已选择W建议模式,如图12中的粗体文本所指示。任务选择部分1220显示多个用户可选择任务(例如,任务_1、任务_2、任务_3等)。修改后的当前工作流部分1250显示与选定任务相对应的修改后的当前工作流。修改后的当前工作流可以包括用户可选择部件,诸如可选择边。比较数据部分1275可以显示关于修改后的当前工作流和主要代表性工作流的比较信息(事件数据),诸如已编译度量、命令数据和屏幕录制。

例如,当前用户可以选择W建议模式和第三任务(任务_3),以用于设计咖啡杯的3D模型,如图12中的粗体文本所指示。响应于W建议模式和选定任务的选择,GUI引擎119从存储到数据库125的W图库129中检索对应于选定任务的W图。GUI引擎119也可以基于先前的事件数据(如果当前用户已经执行选定任务)或新生成的事件数据(如果当前用户尚未执行选定任务)获得用于当前用户执行选定任务的当前工作流。

如果当前用户先前已经执行选定任务,则GUI引擎119可以从为选定任务生成的事件数据表中检索对应于用户和选定任务的先前事件数据,所述事件数据表被存储到数据库125中的事件数据储存库127。基于先前的事件数据,GUI引擎119可以使W图引擎116生成用于当前用户执行选定任务的当前工作流(精简工作流)。如果当前用户先前没有执行选定任务,则当前用户可以经由设计应用程序133执行选定任务以生成新的事件数据。基于新的事件数据,GUI引擎119然后可以使W图引擎116生成用于当前用户执行选定任务的当前工作流(精简工作流)。上面关于图5讨论了用于为用户生成精简工作流的技术,这里不再详细讨论。

GUI引擎119然后使W建议引擎118基于当前工作流与选定任务的W图之间的比较来生成修改后的当前工作流。如上所述,W图包括一个或多个不同的代表性工作流。W建议引擎118可以确定W图内的主要代表性工作流,包括W图内最短(最高效)的代表性工作流。在其他实施方案中,W建议引擎118确定W图内的主要代表性工作流,包括W图内最流行、最常被特定组(诸如机械师)使用、最独特或最先进的代表性工作流。

最短(最高效)的代表性工作流可以基于调用命令的总数和/或完成任务所需的总时间来确定。调用命令的总数可以通过对代表性工作流中的每个代表性边所表示的命令集求和来确定。如果代表性边表示两个或更多个命令集(用户技术),则可以在求和中使用具有最少命令数的命令集。总时间可以通过对与代表性工作流中的每个代表性边相关联的录制段的时间求和来确定。如果代表性边与两个或更多个录制段相关联,则可以在求和中使用具有最低时间的录制段。因此,主要代表性工作流可以包括在W图内的所有代表性工作流当中具有最低命令总数和/或最低总执行时间的代表性工作流。

W建议引擎118然后可以确定当前工作流与主要代表性工作流之间的相似节点对。例如,W建议引擎118可以实现节点合并阶段的技术,以用于确定当前工作流与主要代表性工作流之间的相似节点。特别地,W建议引擎118可以实现选定相似性度量和对应阈值来确定当前工作流与主要代表性工作流之间的相似节点对。因此,相似节点对可以包括表示在阈值内被确定为相似的两个设计/任务状态的两个节点。

对于相似节点对中的每个节点,都有产生所述节点的对应边。因此,相似节点对中的第一节点可以包括当前工作流中具有对应第一边的第一节点。第一边表示产生第一节点所表示的设计状态的第一用户技术。当前工作流中的节点在本文被称为“当前节点”,并且当前工作流中当前节点的对应边在本文被称为“当前边”。此外,相似节点对中的第二节点可以包括主要代表性工作流中具有对应第二边的第二节点。第二边表示产生第二节点所表示的设计状态的第二用户技术。主要代表性工作流中的节点在本文中被称为“主要代表性节点”,并且主要代表性工作流中主要代表性节点的对应边在本文中被称为“主要代表性边”。因此,主要代表性工作流可以包括表示多种用户技术的多个主要代表性边,主要代表性工作流中的每个主要代表性边对应于当前工作流中的当前边。

W建议引擎118然后可以基于与每个对应边相关联的命令调用的数量来比较相似节点对(当前节点和主要代表性节点)的对应边(当前边和主要代表性边)。特别地,W建议引擎118可以确定当前边所表示的命令集中的命令的第一数量,确定主要代表性边所表示的命令集中的命令的第二数量,并且从第一数量中减去第二数量以确定增量值(即,第一数量–第二数量=增量值)。正增量值指示当前边比主要代表性边表示更多数量的命令。因此,正增量值指示当前边表示的用户技术在命令调用的数量方面比主要代表性边的效率低。负增量值指示当前边比主要代表性边表示更少数量的命令。因此,负增量值指示当前边表示的用户技术在命令调用的数量方面比主要代表性边的效率高。增量值可以与当前边和主要代表性边相关联。

W建议引擎118可以确定每个相似节点对的增量值以确定与当前工作流中的多个当前边相关联的多个增量值。W建议引擎118然后可以将在多个增量值内具有一个或多个最高相关联增量值的一个或多个当前边指定为修改后的当前工作流中的一个或多个突出显示边。例如,W建议引擎118可以将多个增量值内具有最高相关联增量值的当前边指定为修改后的当前工作流中的突出显示边。例如,W建议引擎118然后可以将在多个增量值内具有两个最高相关联增量值的两个当前边指定为修改后的当前工作流中的两个突出显示边,等等。因此,当前工作流现在包括一个或多个指定边的集合和一个或多个非指定边的集合。当前工作流中的一个或多个指定边表示基于命令调用与主要代表性工作流相比在当前工作流内被确定为最低效的一种或多种用户技术。

W建议引擎118然后生成修改后的当前工作流,其在视觉上突出显示一个或多个指定边。修改后的当前工作流可以包括包含一序列边和节点的当前工作流。然而,修改后的当前工作流可以将一个或多个指定边的视觉外观配置为具有与修改后的当前工作流的其他非指定边不同的显示外观。指定边的显示外观可以与非指定边的显示外观在至少一种显示特性上不同,诸如颜色、纹理、着色、图案、线条形式等。

在其他实施方案中,W建议引擎118然后可以基于与每个对应边相关联的执行时间来比较相似节点对(当前节点和主要代表性节点)的对应边(当前边和主要代表性边)。与边相关联的执行时间可以根据与边相关联的录制段来确定。特别地,W建议引擎118可以确定当前边所表示的第一用户技术的第一执行时间,确定主要代表性边所表示的第二用户技术的第二执行时间,并且从第一执行时间减去第二执行时间以确定增量值(即第一执行时间–第二执行时间=增量值)。正增量值指示当前边比主要代表性边表示更长的执行时间。因此,正增量值指示当前边表示的用户技术在执行时间方面比主要代表性边的效率低。负增量值指示当前边比主要代表性边表示更短的执行时间。因此,负增量值指示当前边表示的用户技术在执行时间方面比主要代表性边的效率高。

W建议引擎118可以确定每个相似节点对的增量值以确定与当前工作流中的多个当前边相关联的多个增量值。W建议引擎118然后可以指定多个增量值内具有一个或多个最高相关联增量值的一个或多个当前边。因此,当前工作流中的一个或多个指定边表示基于执行时间与主要代表性工作流相比在当前工作流内被确定为最低效的一种或多种用户技术。W建议引擎118然后生成修改后的当前工作流,其突出显示一个或多个指定边。

在W建议引擎118为选定任务生成修改后的当前工作流之后,GUI引擎119可以将修改后的当前工作流以及针对修改后的当前工作流与主要工作流的比较数据(事件数据)传输到GUI应用程序135,所述GUI应用程序在W建议GUI 1200内显示修改后的当前工作流和比较数据。

图13是根据各种实施方案的在图12的W建议GUI上显示的修改后的工作流的屏幕截图。如图所示,修改后的当前工作流显示在修改后的工作流部分1250内,并且比较数据(事件数据)显示在W建议GUI 1200的比较数据部分1275内。修改后的当前工作流包括从开始节点1255(表示开始状态)到结束节点1270(表示已完成的任务)的一序列事件。每个事件包括一个边和一个节点1265。修改后的当前工作流中的每个节点1265可以被配置为显示与节点1265相关联的内容快照。如图13的示例中所示,每个节点1265显示说明针对设计咖啡杯的任务的状态的内容快照。

修改后的当前工作流中的每个边可以包括用户可选择边。修改后的当前工作流中的每个边包括指定/突出显示边1263或未指定/未突出显示边1260。在图13的示例中,修改后的当前工作流包括一个指定边1263。在其他实施方案中,修改后的当前工作流可以包括多个指定边1263。在图13的示例中,指定边1263以比非指定边1260更暗的外观显示。在其他实施方案中,指定边1263在至少一种显示特性(诸如颜色、纹理、着色、图案、线条形式等)中以与非指定边1260不同的外观来显示。

比较数据(事件数据)显示在W建议GUI 1200的比较数据部分1275内。在一些实施方案中,GUI应用程序135在比较数据部分1275中接收并显示当前工作流和主要代表性工作流的已编译度量。如图所示,已编译度量可以包括在当前工作流和主要代表性工作流中调用的命令总数以及当前工作流和主要代表性工作流的总执行时间。在其他实施方案中,可以在比较数据部分1275中显示当前工作流和主要代表性工作流的其他已编译度量。

当前用户也可以与显示在W建议GUI 1200中的修改后的当前工作流进行交互,以请求和查看针对修改后的当前工作流与主要代表性工作流的更多比较数据,诸如命令数据信息或与修改后的当前工作流的边相关联的屏幕录制。例如,当前用户可以经由W建议GUI1200选择修改后的当前工作流的指定/突出显示边1263。作为响应,GUI引擎119可以检索针对存储到数据库125的主要代表性工作流中的指定/突出显示边1263与对应代表性边的比较数据(事件数据),并将比较数据传输到客户端130,这使比较数据显示在W建议GUI 1200的比较数据部分1275内。在其他实施方案中,用户可以选择修改后的当前工作流中的任何边(包括非指定边)来查看针对选定边与主要代表性工作流中的对应代表性边的比较数据。

图14是根据各种实施方案的图12的W建议GUI的比较数据部分的屏幕截图。如图所示,比较数据部分1275可以包括多个子部分,包括已编译度量部分1280、命令数据部分1285和屏幕录制部分1290。

选定边的比较数据可以包括显示在已编译度量部分1280中的针对修改后的当前工作流中的选定边和主要代表性工作流中的对应代表性边的已编译度量。如图所示,已编译度量可以包括选定边和对应代表性边所表示的调用命令的总数。已编译度量也可以包括选定边和对应代表性边所表示的用户技术的总执行时间(如相关联录制段所指示)。在其他实施方案中,可以在比较数据部分1275中显示针对修改后的当前工作流中的选定边和主要代表性工作流中的对应代表性边的其他已编译度量。

选定边的比较数据也可包括显示在命令数据部分1285中的命令数据。可以在命令数据部分1285内分别显示针对选定边和对应代表性边的命令数据。如图所示,针对每个边显示的命令数据包括命令分布和命令序列。选定边的命令分布(“命令_分布_SE”)可以指示选定边所表示的命令集中的每个命令的调用总数。对应代表性边的命令分布(“命令_分布_RE”)可以指示对应代表性边所表示的命令集中的每个命令的调用总数。选定边的命令序列(“命令_序列_SE”)可以指定选定边所表示的命令集中的命令的有序序列。对应代表性边的命令序列(“命令_序列_RE”)可以指定对应代表性边所表示的命令集中的命令的有序序列。在其他实施方案中,可以在命令数据部分1285中显示针对修改后的当前工作流中的选定边和主要代表性工作流中的对应代表性边的其他命令数据。

选定边的比较数据也可包括显示在屏幕录制部分1290中的屏幕录制。与每个边相关联的录制段可以单独显示在屏幕录制部分1290内。例如,可以为选定边显示第一录制段1291,并且可以为对应代表性边显示第二录制段1292。当前用户然后可以选择任何所显示的录制段来回放录制段。

图15是根据各种实施方案的用于显示为任务生成的W图并与之交互的方法步骤的流程图。尽管结合图1至图2、图4至图6、图8至图10以及图12至图14的系统描述了方法步骤,但本领域技术人员将理解,方法步骤可以由任何系统按任何次序执行。在一些实施方案中,方法1500可以由在服务器110上执行的GUI引擎119和W建议引擎118结合在显示W建议GUI的客户端130上执行的GUI应用程序135来执行。

方法1500开始于GUI应用程序135经由W建议GUI 800接收(在步骤1510)对W建议模式和特定任务的用户选择并将用户选择传输到GUI引擎119。作为响应,GUI引擎119可以从数据库125的W图库129中检索(在步骤1520)对应于选定任务的W图和事件数据。

GUI引擎119基于先前的事件数据(如果当前用户已经执行选定任务)或新生成的事件数据(如果当前用户尚未执行选定任务)获得(在步骤1525)用于当前用户执行选定任务的当前工作流(精简工作流)。如果当前用户先前已经执行选定任务,则GUI引擎119可以从数据库125中检索对应于用户和选定任务的先前事件数据,并启动/致使W图引擎116生成用于当前用户执行选定任务的当前工作流(精简工作流)。如果当前用户先前没有执行选定任务,则当前用户可以经由设计应用程序133执行选定任务以生成新的事件数据。基于新的事件数据,GUI引擎119然后可以启动/致使W图引擎116生成用于当前用户执行选定任务的当前工作流(精简工作流)。

GUI引擎119然后启动/致使W建议引擎118生成(在步骤1527)修改后的当前工作流,所述修改后的当前工作流包括具有一个或多个突出显示边的当前工作流的修改后的版本。可以基于当前工作流与选定任务的W图的主要代表性工作流之间的比较来生成修改后的当前工作流,所述主要代表性工作流包括W图内在命令数量和/或执行时间方面最高效的代表性工作流。修改后的当前工作流的每个突出显示边可以表示在命令数量和/或执行时间方面比主要代表性工作流中的对应代表性边所表示的用户技术效率低的用户技术。如上所述,用户技术可以包括由用户调用的命令集,并且基于命令数量和/或与用户技术相关联的屏幕录制的时间长度之间的比较,可以确定第一用户技术的效率低于第二用户技术。

GUI引擎119将修改后的当前工作流和比较数据(事件数据)传输(在步骤1529)到GUI应用程序135。GUI应用程序135在W建议GUI内显示(在步骤1530)修改后的当前工作流和比较数据。修改后的当前工作流中的一个或多个突出显示边以与修改后的当前工作流中的未突出显示边不同的外观显示。修改后的当前工作流中的每个边可以是用户可选择的。W建议GUI也显示比较数据,诸如针对修改后的当前工作流和主要代表性工作流的已编译度量。

GUI应用程序135然后经由W建议GUI 800接收(在步骤1540)修改后的当前工作流中对边的用户选择并且将用户选择传输到GUI引擎119。作为响应,GUI引擎119从数据库125中检索(在步骤1550)针对修改后的当前工作流中的选定边与主要代表性工作流中的对应代表性边的比较数据(事件数据),并将比较数据传输到GUI应用程序135。

GUI应用程序135在W建议GUI内显示(在步骤1560)比较数据。所显示的比较数据可以包括针对修改后的当前工作流中的选定边和主要代表性工作流中的对应代表性边两者的已编译度量、命令数据(诸如命令分布和命令序列)和录制段。然后方法1500结束。

服务器和客户端机器

图16示出了根据各种实施方案的可以在图1的系统中实现的示例性服务器装置。服务器110可以包括计算装置或机器,诸如服务器系统、台式计算机、膝上型计算机或适合于实践各种实施方案的任何其他类型的计算装置。服务器110包括耦合在一起的至少一个处理器1602、输入/输出(I/O)装置1604和存储器单元1606。服务器110经由网络接口(未示出)耦合到网络120。网络120可以包括允许数据交换的任何技术上可行的有线或无线通信或信息网络,诸如无线(Wi-Fi)网络、个人区域网(诸如蓝牙、无线USB、IrDA等)、广域网(WAN)、局域网(LAN)和/或互联网等。

通常,处理器1602可以是能够处理数据并执行软件应用程序和程序代码的任何技术上可行的处理装置或硬件单元。处理器1602执行软件并执行本文描述的实施方案中阐述的功能和操作。例如,处理器1602可以包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他可编程逻辑装置、分立门或晶体管逻辑、分立硬件部件或不同处理单元的任何组合,诸如配置为结合GPU操作的CPU。

存储器单元1606可包括硬盘、随机存取存储器(RAM)模块、闪存存储器单元或任何其他类型的存储器单元或其组合。处理器和I/O装置从存储器1606读取数据并将数据写入存储器1606。存储器单元1606被配置为存储软件应用程序和数据。来自存储器单元1606内的软件构造的指令由处理器执行以启用本文描述的操作和功能。在各种实施方案中,存储器单元1606被配置为存储工作流引擎112,所述工作流引擎包括用于执行本文的实施方案的事件数据收集引擎114、W图引擎116、W建议引擎118和GUI引擎119。服务器110可以连接到存储从客户端130接收的事件数据127的数据库125(未示出)。处理器1602被配置为执行工作流引擎112以提供如本文的各种实施方案中所描述的W图系统的底层功能。

I/O装置1604也耦合到存储器1606并且可以包括能够接收输入的装置,诸如键盘、鼠标、轨迹球等等,以及能够提供输出的装置,诸如显示器、扬声器等等。此外,I/O装置可包括能够接收输入和提供输出两者的装置,诸如触摸屏、通用串行总线(USB)端口等等。

图17示出了根据各种实施方案的可以在图1的系统中实现的示例性客户端装置。客户端130可以包括计算装置或机器,诸如台式计算机、膝上型计算机、移动装置或适合于实践各种实施方案的任何其他类型的计算装置。

客户端130包括耦合在一起的至少一个处理器1702、输入/输出(I/O)装置1704和存储器单元1706。客户端130经由网络接口(未示出)耦合到网络120。通常,处理器1702可以是能够处理数据并执行软件应用程序和程序代码的任何技术上可行的处理装置或硬件单元。处理器1702执行软件并执行本文描述的实施方案中阐述的功能和操作。例如,处理器1702可以包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他可编程逻辑装置、分立门或晶体管逻辑、分立硬件部件或不同处理单元的任何组合,诸如配置为结合GPU操作的CPU。

存储器单元1706可包括硬盘、随机存取存储器(RAM)模块、闪存存储器单元或任何其他类型的存储器单元或其组合。处理器和I/O装置从存储器1706读取数据并将数据写入存储器1706。存储器单元1706被配置为存储软件应用程序和数据。来自存储器单元1706内的软件构造的指令由处理器执行以启用本文描述的操作和功能。在各种实施方案中,存储器单元1706被配置为存储用于执行本文的实施方案的接口引擎131、设计应用程序133和GUI应用程序135。处理器1702被配置为执行接口引擎131、设计应用程序133和GUI应用程序135以提供如本文的各种实施方案中所描述的W图系统的底层功能。

I/O装置1704也耦合到存储器1706并且可以包括能够接收输入的装置,诸如键盘、鼠标、轨迹球等等,以及能够提供输出的装置,诸如监视器/显示器、扬声器等等。此外,I/O装置可包括能够接收输入和提供输出两者的装置,诸如触摸屏、通用串行总线(USB)端口等等。特别地,I/O装置还可以包括显示W图GUI、W建议GUI或任何其他类型的GUI的显示监视器。

总之,本文描述的实施方案针对包括经由网络与多个客户端/用户连接的服务器的W图系统。每个客户端/用户执行设计应用程序以执行特定设计任务(诸如设计特定对象的3D模型)。W图系统以三个阶段运行:事件数据收集阶段、W图库构建阶段和使用W图图形用户界面(GUI)和/或W建议GUI的运行时阶段。

在事件数据收集阶段期间,服务器为执行不同设计任务的多个客户端/用户收集带时间戳的事件数据。在W图库构建阶段期间,服务器基于所收集的事件数据为多个不同的任务生成多个不同的W图。基于从执行相同任务的多个客户端/用户收集的事件数据,为每个任务生成单独的W图。对于每个用户,服务器会生成表示用户为执行任务而实现的整个过程的原始工作流。服务器也基于原始工作流生成精简工作流,所述精简工作流包括组合节点集。每个组合节点可以表示来自原始工作流的表示在阈值内被确定为相似的设计状态的相似节点。服务器还可以生成包括一个或多个代表性工作流的W图。代表性工作流可以包括至少一个合并节点,所述合并节点表示源自不同用户的不同工作流的相似节点。每个W图可以存储到用于存储W图库的数据库中。

在使用W图GUI的运行时阶段期间,当前用户可能希望经由设计应用程序执行特定任务并在执行任务之前查看特定任务的W图。服务器可以接收经由在当前用户操作的当前客户端上执行的用户界面对特定任务的选择。作为响应,服务器从W图库中检索选定任务的W图,并使W图经由W图GUI在当前客户端处显示。当前用户可以与W图GUI交互以请求和接收与W图相关的更多信息,诸如命令数据信息或屏幕录制。

所公开的技术相对于现有技术的至少一个技术优势在于,所公开的技术能够生成和显示工作流图,所述工作流图提供在执行同一设计任务时由多个用户实现的多个工作流的图形表示。除其他外,工作流图提供了多个工作流的汇总图示,其允许用户轻松查看和理解由先前执行同一设计任务的其他用户实现的不同工作流。特别地,工作流图可以说明由多个其他用户实现的不同工作流如何彼此聚合(指示相似性)和彼此偏离(指示差异性)。以这种方式,用户可以在执行给定的设计任务时探索用户尚未实现或考虑的不同工作流,这允许用户发现并实现用于设计任务的更有效的工作流。

相对于现有技术的另一个技术优势在于,在服务器机器与客户端机器之间传输工作流图所涉及的传输数据远少于将大量记录数据传输到客户端(在执行特定任务时为每个用户指定命令和所得状态)的先前技术。因此,所公开的技术相对于先前的方法减少了网络带宽消耗和网络拥塞。

在其他实施方案中,在使用W建议GUI的运行时阶段期间,当前用户可以经由设计应用程序执行特定任务,并希望对当前用户实现的整个过程进行分析以进行优化(更高的效率)。W建议功能包括基于当前工作流与为相同任务生成的W图的比较来分析用于当前用户执行任务的当前工作流。在这些实施方案中,服务器可以获得用于当前用户执行特定任务的当前工作流(精简工作流)。服务器还从W图库中检索选定任务的W图,所述W图包括一个或多个代表性工作流。服务器确定W图内的主要代表性工作流,包括W图内最短(最高效)的代表性工作流。服务器然后将当前工作流与主要代表性工作流进行比较以将当前工作流的至少一个边指定为突出显示边。每个指定边表示一种用户技术,其效率低于主要代表性工作流中的对应代表性边所表示的用户技术。可以修改当前工作流以使至少一个指定边突出显示为具有与当前工作流的非指定边不同的外观。服务器然后可以使修改后的当前工作流经由W建议GUI在当前客户端处显示。当前用户可以与W建议GUI交互以请求和接收与修改后的当前工作流相关的更多信息,诸如命令数据信息或屏幕录制。

所公开的技术相对于现有技术的至少一个技术优势在于,使得计算机装置能够基于当前用户在执行设计任务时实现的工作流与提供其他用户在执行同一设计任务时实现的多个工作流的图形表示的工作流图之间的比较来生成和显示修改后的当前工作流。特别地,修改后的当前工作流可以指示由当前用户实现的一种或多种用户技术,所述用户技术被确定为比由其他用户实现的一种或多种对应用户技术效率低。当前用户然后可以在将来执行设计任务时实现更高效的用户技术。以这种方式,当前用户可以相对于先前方法更容易地分析和优化用于执行特定设计任务的工作流。

相对于现有技术的另一个技术优势在于,在服务器机器与客户端机器之间传输修改后的当前工作流所涉及的传输数据远少于将大量记录数据传输到客户端(在执行特定任务时为每个用户指定命令和所得状态)的先前技术。因此,所公开的技术相对于先前的方法减少了网络带宽消耗和网络拥塞。

本文描述的主题的各方面在以下编号的条款中陈述。

1.在一些实施方案中,一种用于分析软件应用程序工作流的计算机实现的方法,所述方法包括:执行一个或多个操作以确定至少两个节点,其中所述至少两个节点中包括的每个节点与用于经由设计应用程序执行第一任务的不同用户工作流相关联,并且所述一个或多个操作是基于实现一个或多个机器学习功能的相似性算法;生成所述第一任务的以图形方式表示用于执行所述第一任务的多个用户工作流的第一工作流图,其中所述第一工作流图包括至少一个代表性工作流,所述至少一个代表性工作流包括表示两个节点的第一合并节点;经由呈现在客户端装置上的用户界面接收对所述第一任务的选择;从数据库中检索所述第一任务的所述第一工作流图;以及使所述第一工作流图经由所述用户界面显示。

2.根据条款1所述的计算机实现的方法,其中:所述第一任务包括对第一对象建模;以及所述至少一个代表性工作流中的每个节点表示对所述第一对象的所述建模的状态。

3.根据条款1至2中任一项所述的计算机实现的方法,其中所述至少两个节点与第一工作流和第二工作流相关联,所述第一工作流包括由用于执行所述第一任务的第一用户实现的第一过程的图形表示,所述第二工作流包括由用于执行所述第一任务的所述第一用户和第二用户中的至少一者实现的第二过程的图形表示。

4.根据条款1至3中任一项所述的计算机实现的方法,其中所述一个或多个操作包括确定所述至少两个节点在阈值内相似。

5.根据条款1至4中任一项所述的计算机实现的方法,其中:所述第一合并节点表示来自第一工作流的第一节点和来自第二工作流的第二节点;以及所述至少一个代表性工作流还包括与所述合并节点相对应的合并边,所述合并边表示产生所述第一节点的第一用户技术和产生所述第二节点的第二用户技术。

6.根据条款1至5中任一项所述的计算机实现的方法,其中所述第一用户技术包括第一调用命令集并且所述第二用户技术包括不同于所述第一调用命令集的第二调用命令集。

7.根据条款1至6中任一项所述的计算机实现的方法,其中所述第一工作流图包括多个代表性工作流,所述方法还包括:使与所述第一工作流图相关联的图形信息经由所述用户界面在所述客户端装置处显示,其中所述图形信息包括以下各项中的至少一项:所述多个代表性工作流中包括的代表性工作流的总数、执行所述多个代表性工作流中包括的所述代表性工作流中的一个的平均时间、以及所述多个代表性工作流中包括的所述代表性工作流中的一个的平均调用命令数。

8.根据条款1至7中任一项所述的计算机实现的方法,其中:所述至少一个代表性工作流包括多个代表性边,每个代表性边表示一种或多种不同的用户技术;以及对于经由所述用户界面显示的所述第一工作流图中的每个代表性边,视觉外观是基于所述代表性边所表示的不同用户技术的数量。

9.根据条款1至8中任一项所述的计算机实现的方法,其中所述至少一个代表性工作流包括多个代表性边,每个边表示一种或多种用户技术,所述方法还包括:经由所述用户界面从所述客户端装置接收对所述至少一个代表性工作流中包括的第一代表性边的用户选择;从数据库中检索与所述第一代表性边相关联的边信息;以及使所述边信息经由所述用户界面在所述客户端装置处显示。

10.根据条款1至9中任一项所述的计算机实现的方法,其中所述边信息包括以下各项中的至少一项:已编译度量、命令数据和与所述第一代表性边所表示的所述一种或多种用户技术相关联的屏幕录制。

11.在一些实施方案中,一种或多种非暂时性计算机可读介质,其包括指令,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器执行以下步骤:执行一个或多个操作以确定至少两个节点,其中所述至少两个节点中包括的每个节点与用于经由设计应用程序执行第一任务的不同用户工作流相关联,并且所述一个或多个操作是基于实现一个或多个机器学习功能的相似性算法;生成所述第一任务的以图形方式表示用于执行所述第一任务的多个用户工作流的第一工作流图,其中所述第一工作流图包括至少一个代表性工作流,所述至少一个代表性工作流包括表示两个节点的第一合并节点;经由呈现在客户端装置上的用户界面接收对所述第一任务的选择;从数据库中检索所述第一任务的所述第一工作流图;以及使所述第一工作流图经由所述用户界面显示。

12.根据条款11所述的一种或多种非暂时性计算机可读介质,其中:所述第一任务包括对第一对象建模;以及所述至少一个代表性工作流中的每个节点表示对所述第一对象的所述建模的状态。

13.根据条款11至12中任一项所述的一种或多种非暂时性计算机可读介质,其中所述至少两个节点与第一工作流和第二工作流相关联,所述第一工作流包括由用于执行所述第一任务的第一用户实现的第一过程的图形表示,所述第二工作流包括由用于执行所述第一任务的第二用户实现的第二过程的图形表示。

14.根据条款11至13中任一项所述的一种或多种非暂时性计算机可读介质,其中所述一个或多个操作包括确定所述至少两个节点在阈值内相似。

15.根据条款11至14中任一项所述的一种或多种非暂时性计算机可读介质,其中:所述至少一个代表性工作流包括一序列代表性边和代表性节点;第一代表性边表示由两个不同用户实现的两种不同用户技术;以及与所述第一代表性边相对应的第一代表性节点表示所述第一任务的由所述两种不同用户技术产生的相同状态。

16.根据条款11至15中任一项所述的一种或多种非暂时性计算机可读介质,其中所述两种不同用户技术包括两个不同的调用命令集。

17.根据条款11至16中任一项所述的一种或多种非暂时性计算机可读介质,其中:所述至少一个代表性工作流包括一序列代表性边和对应代表性节点;每个代表性边表示一种或多种用户技术;以及代表性边的对应代表性节点表示所述任务的由所述一种或多种用户技术产生的状态。

18.根据条款11至17中任一项所述的一种或多种非暂时性计算机可读介质,其中:所述至少一个代表性工作流包括多个代表性边,每个代表性边表示一种或多种不同的用户技术;以及对于经由所述用户界面显示的所述第一工作流图中的每个代表性边,视觉外观是基于所述代表性边所表示的不同用户技术的数量。

19.根据条款11至18中任一项所述的一种或多种非暂时性计算机可读介质,其中所述至少一个代表性工作流包括多个代表性边,每个边表示一种或多种用户技术,所述一种或多种非暂时性计算机可读介质还包括以下步骤:经由所述用户界面从所述客户端装置接收对所述至少一个代表性工作流中包括的第一代表性边的用户选择;从数据库中检索与所述第一代表性边相关联的边信息;以及使所述边信息经由所述用户界面在所述客户端装置处显示。

20.在一些实施方案中,一种计算系统,其包括:存储器,所述存储器包括指令;以及处理器,所述处理器耦合到所述存储器并在执行所述指令时执行以下步骤:执行一个或多个操作以确定至少两个节点,其中所述至少两个节点中包括的每个节点与用于经由设计应用程序执行第一任务的不同用户工作流相关联,并且所述一个或多个操作是基于实现一个或多个机器学习功能的相似性算法;生成所述第一任务的以图形方式表示用于执行所述第一任务的多个用户工作流的第一工作流图,其中所述第一工作流图包括至少一个代表性工作流,所述至少一个代表性工作流包括表示两个节点的第一合并节点;经由呈现在客户端装置上的所述用户界面接收对所述第一任务的选择;从数据库中检索所述第一任务的所述第一工作流图;以及使所述第一工作流图经由所述用户界面显示。

权利要求中任一项所述的权利要求元素中的任一者和/或本申请所描述的任何元素的以任何方式进行的任何和全部组合落在本发明和保护的设想范围内。

各种实施方案的描述已经出于说明目的加以呈现,但并不意图是详尽的或限于所公开的实施方案。在不脱离所描述的实施方案的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是明显的。

本发明实施方案的方面可体现为系统、方法或计算机程序产品。因此,本公开的方面可采取完全硬件实施方案、完全软件实施方案(包括固件、常驻软件,微代码等)或结合软件方面与硬件方面的实施方案的形式,所述实施方案在本文中通常可全部称为“模块”或“系统”。另外,本公开所描述的任何硬件和/或软件技术、过程、功能、部件、引擎、模块或系统可实现为电路或一组电路。此外,本公开的方面可采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有在其上体现的计算机可读程序代码。

可利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置或前述介质的任何合适组合。计算机可读存储介质的更具体示例(非详尽列表)将包括以下介质:具有一个或多个导线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述介质的任何合适组合。在本文档的语境中,计算机可读存储介质可以是可含有或存储供指令执行系统、设备或装置使用或与其联用的程序的任何有形介质。

参照根据本公开的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或方框图来描述本公开的各方面。将理解,可通过计算机程序指令来实现流程图图解和/或框图中的每个框以及流程图图解和/或框图中的框的组合。这些计算机程序指令可提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生一种机器。所述指令在通过计算机或其他可编程数据处理设备的处理器执行时使得能够实现流程图和/或框图的一个或多个框中所指定的功能/动作。此类处理器可以是但不限于通用处理器、专用处理器、特定用途处理器或现场可编程门阵列。

附图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可表示包括用于实现指定的逻辑功能的一个或多个可执行指令的代码的模块、片段或部分。还应注意,在一些替代实现方式中,框中指出的功能可不按附图中指出的次序发生。例如,连续示出的两个框实际上可基本上同时执行,或者所述框有时可按相反的次序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图解中的每个框以及框图和/或流程图图解中的框的组合可由执行指定功能或动作的基于专用硬件的系统或专用硬件与计算机指令的组合来实现。

尽管前述内容涉及本公开的实施方案,但在不脱离本公开的基本范围的情况下可设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求确定。

53页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类