1. Field of the Invention
The invention relates generally to computer software and, more specifically, to techniques for representing and comparing workflows.
2. Description of the Related Art
A workflow is a series of steps that a user can instruct a user device to carry out in order to complete a particular task on a software application. Each step may include one or more commands that the user device executes, sequentially or in parallel, to complete the particular task. Different workflows may lead to a substantially same end result. For a complex software application, a workflow for a task may require a user to initiate execution of a multitude of steps or commands on a user device. For example, design software, such as image editors, animation tools, and 3D modeling applications, provide a user with powerful ways to generate and modify virtual content. The user interfaces for such applications are complex and can be difficult to learn.
While software documentation can provide assistance with locating and using individual components, a user often refers to tutorials on the Internet to learn the required workflows for completing higher-level tasks. For example, a user of Photoshop™ wishing to correct red-eye in a photograph could search the Internet to find at least one workflow that includes step-by-step instructions (e.g., commands) for completing the task correcting red-eye.
Unfortunately, searching the Internet for particular workflows is time-consuming and non-intuitive for users. A user needs to differentiate between workflows in order to choose a more suitable workflow for the task. A challenge for a user is no longer searching for and finding a workflow. Rather, a challenge is identifying the most suitable workflow from potentially hundreds of candidates.
As the foregoing illustrates, what is needed is a technique that enables a user to select a more suitable workflow in a manner that is more efficient and intuitive relative to prior art approaches.
One example embodiment of the present invention sets forth a method for sending pre-defined workflows to a display device of a user device. The method includes receiving a request for steps to complete a task associated with a software application; in response to receiving the request for steps, obtaining at least a first workflow and a second workflow, where each workflow includes one or more steps the user device can execute to complete the task; and generating a summary of the first workflow and a summary of the second workflow, where the summary of the first workflow includes one or more attributes of the first workflow, and where the summary of the second workflow includes one or more attributes of the second workflow; and sending to the display device at least the first workflow and the second workflow in one or more view formats.
Another example embodiment of the present invention sets forth a computer readable storage medium storing instructions that, when executed by a processor, cause the processor executing a program to provide pre-defined workflows to a display device of a user device by receiving a request for steps to complete a task associated with a software application; in response to receiving the request for steps, obtaining at least a first workflow and a second workflow, where each workflow includes one or more steps the user device can execute to complete the task; and generating a summary of the first workflow and a summary of the second workflow, where the summary of the first workflow includes one or more attributes of the first workflow, and where the summary of the second workflow includes one or more attributes of the second workflow; and sending to the display device at least the first workflow and the second workflow in one or more view formats.
Yet another example embodiment of the present invention sets forth a workflow device for sending pre-defined workflows to a display device of a user device. The workflow device includes a workflow engine that is configured to receive a request for steps to complete a task associated with a software application; in response to receiving the request for steps, obtain at least a first workflow and a second workflow, where each workflow includes one or more steps the user device can execute to complete the task; generate a summary of the first workflow and a summary of the second workflow, where the summary of the first workflow includes one or more salient attributes of the first workflow, and where the summary of the second workflow includes one or more salient attributes of the second workflow; and send to the display device at least the first workflow and the second workflow in one or more view formats.
Advantageously, the disclosed approaches enable a user to read a summary of each workflow and, based on the summaries, perform a comparison among workflows that is quicker and more intuitive than a comparison that requires the user to read source documents, such as help guides, instruction manuals, online tutorials, Internet forums, Internet chat rooms, etc.
So that the manner in which the above recited features of the invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
In the following description, numerous specific details are set forth to provide a more thorough understanding of the invention. However, it will be apparent to one of skill in the art that the invention may be practiced without one or more of these specific details. In other instances, well-known features have not been described in order to avoid obscuring the invention.
As shown, workflow device 100 includes an interconnect (bus) 140 that connects a processing unit 150, an input/output (I/O) device interface 160 coupled to input/output (I/O) devices 180, memory 110, a storage 130, and a network interface 170. Processing unit 150 may be any suitable processor implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), any other type of processing unit, or a combination of different processing units, such as a CPU configured to operate in conjunction with a GPU. In general, processing unit 150 may be any technically feasible hardware unit capable of processing data and/or executing software applications, including workflow engine 121. Further, in the context of this disclosure, the computing elements shown in workflow device 100 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executing within a computing cloud.
I/O devices 180 may include devices capable of receiving input, such as a keyboard, a mouse, a video camera, a three-dimensional (3D) scanner, and so forth, as well as devices capable of providing output, such as a display device 181, a speaker, and so forth. Display device 181 may be a computer monitor, a video display screen, a display apparatus incorporated into a hand held device, or any other technically feasible display screen configured to present video media to an end-user. In some embodiments, display device 181 is a terminal window displayed on another display device, such as a video display window that has been opened by workflow engine 121. Additionally, I/O devices 180 may include devices capable of both receiving input and providing output, such as a touch screen, a universal serial bus (USB) port, and so forth. I/O devices 180 may be configured to receive various types of input from an end-user of workflow device 100, and to also provide various types of output to the end-user of workflow device 100. In some embodiments, one or more of I/O devices 180 are configured to couple workflow device 100 to a network 105.
Network 105 may be any technically feasible type of communications network that allows data to be exchanged between workflow device 100 and external entities or devices, such as a video archive database or a provider of on-demand streaming media. For example, network 105 may include a wide area network (WAN), a local area network (LAN), a wireless (WiFi) network, and/or the Internet, among others.
Memory 110 may include a random access memory (RAM) module, a flash memory unit, or any other type of memory unit or combination thereof. Processing unit 150, I/O device interface 160, and network interface 170 are configured to read data from and write data to memory 110. Memory 110 includes various software programs that can be executed by processor 150 and application data associated with the software programs, including workflow engine 121, attributes 122 of workflows being displayed by workflow engine 121, and a plurality of thumbnails 123 associated with the workflows being displayed by workflow engine 121, as described in greater detail below. In other embodiments, attributes 122 and thumbnails reside on a server, and results of a workflow search, described below, are pushed to workflow device 100, instead of being generated locally.
Storage 130 may be any technically feasible persistent storage device, such as a disk drive storage device, a solid-state storage device, or a combination of both. Although shown as a single unit, storage 130 may be a combination of fixed and/or removable storage devices, such as fixed disc drives, removable memory cards, or optical storage, network attached storage (NAS), or a storage area-network (SAN).
Workflow engine 121 may be any computer application or workflow engine configured to generate formatted workflows for an end-user on display device 181, and comprises program instructions that can be executed by processor 150. For example, workflow engine 121 may be a proprietary application provided to an end-user by a provider of on-demand streaming media and installed on workflow device 100. Alternatively, workflow engine 121 may be a non-proprietary third-party application installed on workflow device 100. The workflows formatted by workflow engine 121 may be received via network 105 or may be locally stored workflow content, e.g., fully buffered in memory 110, stored on nonvolatile media in storage 130, and/or read from a disk or other video storage medium.
In some embodiments, workflow engine 121 receives data from an end-user of workflow device 100 via a keyboard, mouse, touch pad, and/or other suitable input devices, including a smart phone or digital tablet configured to communicate with workflow device 100. Thus, a mouse, touch pad, or other input device can be used by an end-user as a device to communicate with the workflow engine 121.
As shown in
As shown in
As shown in
As shown
Within at least one of the environments shown in
The cluster view 301 includes several clusters of workflows. Example clusters include cluster 501, cluster 502, cluster 503, cluster 504, cluster 505, cluster 506, cluster 507, cluster 508 cluster 509, cluster 510, and cluster 511. The cluster 501 displays “after” images 426; the other clusters can include other after images.
In this particular cluster view 301, each cluster includes a group of workflows that share a command similarity metric (or step similarity metric). The workflow engine 121 can compute, or instruct the workflow device 100 to compute, a command similarity metric without requiring additional metadata, such as ratings of workflows (e.g., ratings from a sample set of users who tested and rated workflows). The command similarity metric is closely related to the knowledge of commands workflow attribute. The workflow engine 121 can computer, or instruct the workflow device 100 to compute, the command similarity metric by modeling each workflow as a sequence of steps, then computing the “edit distance” between sequences of steps. The edit distance is a sum of the costs of the insertions, deletions, and/or substitutions that are required to transform one step sequence into another step sequence. As one example, the workflow engine 121 can use the distance between commands in the Photoshop™ menu hierarchy to set the substitution cost. For instance, substituting the Gaussian Blur command for the Motion Blur command incurs a “low” substitution cost (e.g., 1 out of 10 substitution cost), because both commands are siblings in the Blur menu of Photoshop™.
The workflow engine 121 can then use, for example, hierarchical agglomerative clustering to generate the clusters in the cluster view 301. Hierarchical clustering is a commonly available technique of cluster analysis that seeks to build a hierarchy of clusters. Hierarchical agglomerative clustering is a bottom-up approach in which the workflow engine 121 starts each observation (e.g., observation of command similarity among workflows) in an individual cluster; the workflow engine 121 merges pairs of clusters as the workflow engine 121 moves up the hierarchy. Alternatively, the workflow engine 121 can use other methods, such as k-means, another common technique of cluster analysis. Then, the workflow engine 121 can lay out on the display the clusters by using a quantum treemap algorithm, a common layout algorithm. The quantum treemap algorithm is designed to layout items on a user interface compactly inside a minimized display dimension that includes the workflow images.
In one embodiment, the workflow engine 121 labels each cluster with the most common tools (e.g., five most common commands or steps) in the cluster's workflows. The workflow engine 121 can abbreviate a label for a cluster if the dimensions of the cluster on the display are too small to accommodate the full label. For example, the cluster 502 shows a short label that is an abbreviation of a full label. The workflow engine 121 can display a full label 534 in the cluster view when the system receives request for more information about a particular cluster, for example, when the system detects a mouse cursor positioned over the particular cluster. The workflow engine 121 can receive a click on an image in the cluster view and, in response to receiving the click, the list view (further described below) to scroll to the corresponding workflow. The workflow engine 121 can adjust the number of clusters by receiving input at, for example, an adjuster 530 including plus (+) and minus (−) icons. In response to receiving input at the adjuster 530, the workflow engine 121 can display, or instruct the workflow device 100 to display, a coarser corpus of workflows (e.g., more clusters and less detail per cluster) or a finer corpus of workflows (e.g., less clusters and more detail per cluster).
The workflow engine 121 can sort the workflow summaries according to an attribute selection (e.g., number of steps, number of commands, cluster, and/or alphabetical order of title, etc.) received at a sort field 532. Sorting by cluster causes the workflow engine 121 to display workflows of a same cluster (e.g., sibling workflows) adjacent to one another. Clusters are described above with reference to
In another embodiment, the workflow flow engine 121 can use similarity metrics (also discussed above with reference to
As shown in
As an example of salient attributes, the workflow summary 502 includes a “before” thumbnail image 525 (e.g., image representing state of operations before performing the task), an “after” thumbnail image 526 (e.g., image representing state of operations after performing the task), a title 522, a number 523 of steps, and a list of steps 524. The list of steps 524 enables a user to judge step familiarity (or command familiarity) and to compare steps among workflow summaries. The total number 523 of steps 524 is a coarse indicator of efficiency of the workflow (e.g., how long it will take the user to instruct the computer to complete the task). The workflow engine 121 can receive a click on a thumbnail to view a full-resolution version of the image linked to the thumbnail. Each workflow summary can also include a link (e.g., “See source” link) to the source webpage from the particular workflow originates.
Accordingly, in this embodiment, the detail view 341 shows individual detailed steps of each workflow (e.g., workflow 601 and workflow 611). Each detailed step includes a step (or one or more commands) the user device can execute to move toward completion of the task. The union graph 621 shows a pair-wise comparison of the steps workflow 601 and the steps of workflow 611. When the workflow engine 121 receives a selection of a single workflow in the list view 321 of
The methods of
Advantageously, the present approach enables a user to read a summary of each workflow and, based on the summaries, enables the user to perform a comparison among workflows that is quicker than a comparison based on reading source documents (e.g., help guides, instruction manuals, online tutorials, Internet forums, Internet chat rooms, etc.).
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the present invention may be devised without departing from the basic scope thereof. For example, aspects of the present invention may be implemented in hardware or a combination of hardware and software. One embodiment of the present invention may be implemented as a program product for use with a computer system. The program(s) of the program product define functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media (e.g., non-transitory, tangible, computer-readable storage media). Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, flash memory, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information is permanently stored; and (ii) writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive or any type of solid-state random-access semiconductor memory) on which alterable information is stored. Such computer-readable storage media, when carrying computer-readable instructions that direct the functions of the present invention, are embodiments of the present invention.
In view of the foregoing, the scope of the present invention is determined by the claims that follow.
This application claims priority benefit of U.S. provisional patent application Ser. No. 61/641,472, filed May 2, 2012, which is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61641472 | May 2012 | US |