The disclosed implementations relate generally to data visualization and more specifically to systems, methods, and user interfaces to prepare and curate data for use by a data visualization application.
Data visualization applications enable a user to understand a data set visually, including distribution, trends, outliers, and other factors that are important to making business decisions. Some data sets are very large or complex, and include many data fields. Various tools can be used to help understand and analyze the data, including dashboards that have multiple data visualizations. However, data frequently needs to manipulated or modified to be put it into a format that can be easily used by data visualization applications.
Many types of data manipulation operations are required for users to prepare their data for analysis. In typical data flow applications, each operation is displayed to users as an individual unit, and a user is only permitted to perform a restricted set of operations within each such unit. As more operations are added, flow diagrams become very large an unwieldy, making it difficult for users to understand and/or modify.
Disclosed implementations have features that provide clarity to users in terms of preparing data. The disclosed data preparation applications provide data flows that permit the addition of minor operations to nodes representing major data manipulation operations. This facilitates any data cleaning and/or curating that may be required for users to take high-level action and appropriately analyze their data. The design of these “super nodes” permits users to perform all types of data manipulations at any point in data analysis, and simplifies data flow diagrams.
In accordance with some implementations, a method prepares data for subsequent analysis. The method is performed at a computer system having a display, one or more processors, and memory storing one or more programs configured for execution by the one or more processors. The method includes displaying a user interface that has a plurality of panes, including a data flow pane. The data flow pane includes a flow diagram having a plurality of nodes. Each node specifies a respective primary operation or specifies a plurality of secondary operations to clean a respective data set. Each primary operation retrieves data from a respective data source, specifies a respective primary operation to transform data, or specifies a respective primary operation to create a respective output data set. The method further includes receiving a first user input to select an existing node from the flow diagram. In response to receiving the first user input, the method displays a change list pane in the plurality of panes. The change list pane displays an ordered list of secondary operations performed at the node. The method further includes receiving a second user input to perform a first secondary operation corresponding to the selected node. In response to receiving the second user input, the method performs the first secondary operation, updates the selected node with an indicator that the node includes one or more secondary operations, determines a respective logical ordering for the first secondary operation based on the primary operation in the selected node, and adds the first secondary operation to the change list pane in accordance with its respective logical ordering
In accordance with some implementations, each node has a respective intermediate data set corresponding to each secondary operation stored in the change list pane. In response to receiving a third user input to select a second secondary operation in the ordered plurality of secondary operations in the change list pane, the method displays a sampling of data from the respective intermediate data set that corresponds to the second secondary operation.
In accordance with some implementations, in response to performing the first respective secondary operation, the method displays a sampling of data from the respective intermediate data set in a data pane of the user interface.
In accordance with some implementations, each node has a primary data set computed according to the primary operation. In response to receiving a fourth user input to select the primary operation in the change list pane, the method displays a sampling of data from the primary data set.
In accordance with some implementations, each of the nodes has an untouched input data set corresponding to the data set before the primary operation (or any secondary operation) is performed at the node. In response to receiving a fifth user input to select the untouched input data set in the change list pane, the method displays a sampling of data from the untouched input data set.
In accordance with some implementations, each primary operation is a reshaping operation that is one of aggregate, pivot, join, or union, or is an input or output operation.
In accordance with some implementations, each secondary operation is one of: calculate field, rename field, remove field, edit value, group and replace, split, or change datatype.
In accordance with some implementations, the logical ordering for each secondary operation in the ordered plurality of secondary operations is determined by a chronological order in which each secondary operation is performed.
In some implementations, a non-transitory computer-readable storage medium stores one or more programs configured for execution by a computer system having one or more processors, memory, and a display. The one or more programs include instructions for performing any of the methods described herein.
In some implementations, a computer system has one or more processors, memory, and a display. The memory stores one or more programs configured for execution by the one or more processors and include instructions for performing any of the methods described herein.
Thus, methods, systems, and graphical user interfaces are disclosed that enable users to analyze, prepare, and curate data.
For a better understanding of the aforementioned systems, methods, and graphical user interfaces, as well as additional systems, methods, and graphical user interfaces that provide data visualization analytics and data preparation, reference should be made to the Description of Implementations below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
Reference will now be made to implementations, examples of which are illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without requiring these specific details.
The graphical user interface 100 also includes a data visualization region 112. The data visualization region 112 includes a plurality of shelf regions, such as a columns shelf region 120 and a rows shelf region 122. These are also referred to as the column shelf 120 and the row shelf 122. As illustrated here, the data visualization region 112 also has a large space for displaying a visual graphic. Because no data elements have been selected yet, the space initially has no visual graphic. In some implementations, the data visualization region 112 has multiple layers that are referred to as sheets.
The computing device 200 includes a user interface 206 comprising a display device 208 and one or more input devices or mechanisms 210. In some implementations, the input device/mechanism includes a keyboard. In some implementations, the input device/mechanism includes a “soft” keyboard, which is displayed as needed on the display device 208, enabling a user to “press keys” that appear on the display 208. In some implementations, the display 208 and input device/mechanism 210 comprise a touch screen display (also called a touch sensitive display).
In some implementations, the memory 214 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices. In some implementations, the memory 214 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. In some implementations, the memory 214 includes one or more storage devices remotely located from the CPU(s) 202. The memory 214, or alternatively the non-volatile memory devices within the memory 214, comprise a non-transitory computer-readable storage medium. In some implementations, the memory 214, or the computer readable storage medium of the memory 214, stores the following programs, modules, and data structures, or a subset thereof:
In some instances, the computing device 200 stores a data prep application 230, which has a user interface 300, as shown in
Each of the above identified executable modules, applications, or sets of procedures may be stored in one or more of the previously mentioned memory devices, and corresponds to a set of instructions for performing a function described above. The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, the memory 214 stores a subset of the modules and data structures identified above. Furthermore, the memory 214 may store additional modules or data structures not described above.
Although
This interface provides a user with multiple streamlined, coordinated views that help the user to see and understand what they need to do. This novel user interface presents users with multiple views of their flow and their data to help them not only take actions, but also discover what actions they need to take. The flow diagram in the flow pane 303 combines and summarizes actions, making the flow more readable, and is coordinated with views of actual data in the profile pane 304 and the data pane 305. The data pane 305 provides representative samples of data at every point in the logical flow, and the profile pane provides histograms of the domains of the data (e.g., for each data field, the profile pane shows the distribution of data values, typically in “bins”).
In some implementations, the left-hand Pane 302 includes a list of recent data source connections as well as a button to connect to a new data source.
In some implementations, the flow pane 303 includes a visual representation (flow diagram or flow) of the flow specification. In some implementations, the flow is a node/link diagram showing the data sources, the operations that are performed, and target outputs of the flow.
Some implementations provide flexible execution of a flow by treating portions of the flow as declarative queries. That is, rather than having a user specify every computational detail, a user specifies the objective (e.g., input and output). The process that executes the flow optimizes plans to choose execution strategies that improve performance. Implementations also allow users to selectively inhibit this behavior to control execution.
In some implementations, the profile pane 304 displays the schema and relevant statistics and/or visualizations for the nodes selected in the flow pane 303. As illustrated in
In some implementations, the data pane 305 displays row-level data for the selected nodes in the Flow Pane 303.
In some implementations, a user creates a new flow using a “File−>New Flow” option in the Menu Bar. Users can also add data sources to a flow. In some instances, a data source is a relational database. In some instances, one or more data sources are file-based, such as CSV files or spreadsheet files. In some implementations, a user adds a file-based source to the flow using a file connection affordance in the left-hand pane 302. This opens a file dialog that prompts the user to choose a file. In some implementations, the left hand pane 302 also includes a database connection affordance, which enables a user to connect to a database (e.g., an SQL database).
When a user selects a node in the Flow Pane 303, the schema for the result set at the node is displayed in the Profile Pane 304. In some implementations, the profile pane 304 includes statistics or visualizations, such as distributions of data values for the fields (e.g., as histograms or pie charts). In implementations that enable selection of multiple nodes in the flow pane 303, schemas for each of the selected nodes are displayed in the profile pane 304.
In addition, when a node is selected in the Flow Pane 303, the data for the node is displayed in the Data Pane 305. The data pane 305 typically displays the data as rows and columns 325, where each of the columns 325 corresponds to one of the data fields.
Implementations make it easy to edit the flow using the flow pane 303, the profile pane 304, or the data pane 305. For example, some implementations enable a right click operation on a node/table in any of these three panes and add a new column based on a scalar calculation over existing columns in that table. For example, the scalar operation may be a mathematical operation to compute the sum of three numeric columns, a string operation to concatenate string data from two columns that are character strings, or a conversion operation to convert a character string column into a date column (when a date has been encoded as a character string in the data source).
In some implementations, within the flow pane 303 multiple nodes are displayed, with each node being represented by an icon (e.g. the icons 402-414 in
Different nodes within the flow diagram 323 perform different tasks, and thus the node internal information is different. In addition, some implementations display different information depending on whether or not a node is selected. A flow diagram 323 provides an easy, visual way to understand how the data is getting processed, and keeps the process organized in a way that is logical to a user. Although a user can edit a flow diagram 323 directly in the flow pane 303, changes to the operations are typically done in a more immediate fashion, operating directly on the data or schema in the profile pane 304 or the data pane 305 (e.g., right clicking on the statistics for a data field in the profile pane to add or remove a column from the flow).
Three types of nodes are discussed below: input operations, transform operations, and output operations. Input operations create a logical model from some external source. Examples include an operation that imports a CSV. Transform operations transform a logical model into a new logical model, for example a project operation that adds a column to an existing logical model. Output operations take in a logical model and convert it into some other data store.
Within the flow pane 303, a user can perform various tasks, including:
Rather than displaying a node for every tiny operation, users are able to group operations together into a smaller number of more significant nodes. For example, a join followed by removing two columns can be implemented in one node, instead of in three separate nodes. Or, one or more cleaning operations can be implemented at the node. For example, in
The addition of multiple secondary operations to a node creates a “super node” 408, illustrated by the indicators 450 displayed adjacent to the primary operation icon 408 in the flow pane 303. In some implementations, the list 450 of one or more indicator operations is displayed above the primary operation icon to indicate that the user has performed specific types of cleaning operations in the join super node. The results 427 of the join are also displayed, which shows unmatched rows from both sides of the join. In some implementations, the profile and data panes update based on the selected operation. This allows the user to see the progression of how the operations clean the data in the super node.
This serves to more clearly organize and group data transformation operations within a super node, and thus enables a user to more easily determine whether more data cleaning needs to be performed. In
In a super node, it is possible for users to view all of the rows, even those not included in the data set after the primary action was performed. As illustrated in
As shown in
The visual order of the operations in the change list 416 specifies the order in which the operations are performed at the node. In addition to secondary operations, the “change” list also includes the primary operation at the node, so users can easily see the relationship between the secondary operations and the primary operation.
In some implementations, administrative users may modify the logical ordering matrix 900 to suit their specific needs, but this is uncommon because the matrix 900 has been constructed based on substantial usage. Users can alter the sequence of secondary operations after the default ordering has been applied. When a user selects a particular secondary cleaning operation in a change list for a super node, the user interface displays an intermediate data set corresponding to the operation, and then the user can perform an additional cleaning operation. The additional cleaning operation is added to the change list after the current operation. In some implementations, when the entire node is selected, the additional operation is added at the end of the “before list” or “after list” in accordance with the lookup matrix 900.
The method 1000 displays (1002) a user interface that includes a plurality of panes, including a data flow pane 303. The data flow pane includes (1002) a flow diagram having a plurality of nodes. Each node specifies (1002) a respective primary operation (e.g., operations 402-414) or specifies a plurality of secondary operations to clean a respective data set. Each primary operation specifies (1004) retrieval of data from a respective data source, specifies (1004) a respective primary operation to transform data, or specifies (1004) a respective primary operation to create a respective output data set.
The method receives (1006) a first user input to select a node from the flow diagram (e.g., the selected node 408 in
The method receives (1010) a second user input to perform a first secondary operation corresponding to the selected node. In response to receiving the second user input, the method performs (1012) the first secondary operation (e.g., the editing operation 428 illustrated in
Disclosed data prep systems 230 give control to users. In many cases, the data prep application 230 makes intelligent choices for the user, but the user is always able to assert control. Control often has two different facets: control over the logical ordering of operations, which is used to ensure the results are correct and match the user's desired semantics; and physical control, which is mostly used to ensure performance.
The disclosed data prep application 230 also provides freedom. Users can assemble and reassemble their data production components however they wish in order to achieve the shape of data they need.
The disclosed data prep application 230 provides incremental interaction and immediate feedback. When a user takes actions, the system provides feedback through immediate results on samples of the user's data, as well as through visual feedback.
The terminology used in the description of the invention herein is for the purpose of describing particular implementations only and is not intended to be limiting of the invention. As used in the description of the invention and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various implementations with various modifications as are suited to the particular use contemplated.
This application is a continuation of U.S. application Ser. No. 17/325,124, filed May 19, 2021, entitled “Data Preparation User Interface with Conglomerate Heterogeneous Process Flow Elements,” which is a continuation of U.S. application Ser. No. 16/908,700, filed Jun. 22, 2020, entitled “Data Preparation User Interface with Conglomerate Heterogeneous Process Flow Elements,” now U.S. Pat. No. 11,061,538, issued on Jul. 13, 2021, which is a continuation of U.S. application Ser. No. 16/167,313, filed Oct. 22, 2018, entitled “Data Preparation User Interface with Conglomerate Heterogeneous Process Flow Elements,” now U.S. Pat. No. 10,691,304, issued on Jun. 23, 2020, each of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4357673 | Willis et al. | Nov 1982 | A |
4458323 | Willis et al. | Jul 1984 | A |
5339392 | Risberg | Aug 1994 | A |
5421008 | Banning et al. | May 1995 | A |
5999192 | Selfridge | Dec 1999 | A |
6278452 | Huberman et al. | Aug 2001 | B1 |
6470344 | Kothuri et al. | Oct 2002 | B1 |
6778873 | Wang et al. | Aug 2004 | B1 |
6784902 | Melder et al. | Aug 2004 | B1 |
6993553 | Kaneko et al. | Jan 2006 | B2 |
7362718 | Kakivaya et al. | Apr 2008 | B2 |
7720779 | Perry et al. | May 2010 | B1 |
7793160 | McClure et al. | Sep 2010 | B1 |
7991723 | Dubrovsky et al. | Aug 2011 | B1 |
8418181 | Sirota | Apr 2013 | B1 |
8479136 | Hopkins et al. | Jul 2013 | B2 |
8626475 | Fontes | Jan 2014 | B1 |
8700682 | Tedder et al. | Apr 2014 | B2 |
8806377 | Chen | Aug 2014 | B2 |
8812752 | Shih et al. | Aug 2014 | B1 |
8819592 | Jackson, Jr. | Aug 2014 | B2 |
8843959 | McMaster et al. | Sep 2014 | B2 |
8863029 | Chen | Oct 2014 | B2 |
8976672 | Thubert | Mar 2015 | B2 |
9323503 | Fontes | Apr 2016 | B1 |
9335911 | Elliot et al. | May 2016 | B1 |
9465523 | Kleser et al. | Oct 2016 | B2 |
9501585 | Gautam et al. | Nov 2016 | B1 |
10127250 | Dingman et al. | Nov 2018 | B2 |
10127511 | Epstein | Nov 2018 | B1 |
10204173 | Vaught | Feb 2019 | B2 |
10242079 | Kim | Mar 2019 | B2 |
10275545 | Yeager et al. | Apr 2019 | B2 |
10339681 | Moore | Jul 2019 | B2 |
10380140 | Sherman | Aug 2019 | B2 |
10394691 | Cole | Aug 2019 | B1 |
10466978 | Vidan | Nov 2019 | B1 |
10503784 | Dean et al. | Dec 2019 | B1 |
10515093 | Sherman | Dec 2019 | B2 |
10528587 | Kim | Jan 2020 | B2 |
10733165 | Broad | Aug 2020 | B1 |
10885057 | Pugh | Jan 2021 | B2 |
20020055947 | Schultz | May 2002 | A1 |
20020070953 | Barg et al. | Jun 2002 | A1 |
20020080174 | Kodosky | Jun 2002 | A1 |
20020157086 | Lewis | Oct 2002 | A1 |
20030088546 | Brown | May 2003 | A1 |
20030167265 | Corynen | Sep 2003 | A1 |
20030182582 | Park et al. | Sep 2003 | A1 |
20030220928 | Durand et al. | Nov 2003 | A1 |
20040034616 | Witkowski et al. | Feb 2004 | A1 |
20040078105 | Moon et al. | Apr 2004 | A1 |
20050010877 | Udler | Jan 2005 | A1 |
20050022129 | Borenstein et al. | Jan 2005 | A1 |
20050044525 | Lazarov | Feb 2005 | A1 |
20060143534 | Dall | Jun 2006 | A1 |
20060168205 | Barron et al. | Jul 2006 | A1 |
20060173812 | Bahl et al. | Aug 2006 | A1 |
20060247912 | Suzuki | Nov 2006 | A1 |
20070016615 | Mohan | Jan 2007 | A1 |
20070106515 | Wong | May 2007 | A1 |
20070112714 | Fairweather | May 2007 | A1 |
20070150581 | Banerjee et al. | Jun 2007 | A1 |
20070198312 | Bagchi et al. | Aug 2007 | A1 |
20070214136 | MacLennan et al. | Sep 2007 | A1 |
20070288899 | Fanning et al. | Dec 2007 | A1 |
20080040704 | Khodabandehioo | Feb 2008 | A1 |
20080059563 | Backmann | Mar 2008 | A1 |
20080140688 | Clayton et al. | Jun 2008 | A1 |
20080150317 | Kilcrease | Jun 2008 | A1 |
20080155440 | Trevor et al. | Jun 2008 | A1 |
20080159317 | Iselborn | Jul 2008 | A1 |
20080183687 | Law | Jul 2008 | A1 |
20080195626 | Ukigawa et al. | Aug 2008 | A1 |
20080209392 | Able | Aug 2008 | A1 |
20080254430 | Woolf et al. | Oct 2008 | A1 |
20080262988 | Williams et al. | Oct 2008 | A1 |
20080281801 | Larson et al. | Nov 2008 | A1 |
20090018996 | Hunt et al. | Jan 2009 | A1 |
20090021767 | Fujimaki | Jan 2009 | A1 |
20090064053 | Crawford | Mar 2009 | A1 |
20090100086 | Dumant et al. | Apr 2009 | A1 |
20090248698 | Rehmann | Oct 2009 | A1 |
20090276724 | Rosenthal et al. | Nov 2009 | A1 |
20090319688 | Mason et al. | Dec 2009 | A1 |
20100057618 | Spicer | Mar 2010 | A1 |
20100156889 | Martinez et al. | Jun 2010 | A1 |
20100299327 | Kiefer et al. | Nov 2010 | A1 |
20110283242 | Chew et al. | Nov 2011 | A1 |
20110302551 | Hummel | Dec 2011 | A1 |
20110320384 | Chang | Dec 2011 | A1 |
20120022707 | Budhraja et al. | Jan 2012 | A1 |
20120023302 | Amdt et al. | Jan 2012 | A1 |
20120102396 | Arksey et al. | Apr 2012 | A1 |
20120151453 | Finking et al. | Jun 2012 | A1 |
20120209886 | Henderson | Aug 2012 | A1 |
20120226742 | Monchilov et al. | Sep 2012 | A1 |
20120278015 | Budhraja et al. | Nov 2012 | A1 |
20120290950 | Rapaport et al. | Nov 2012 | A1 |
20120330869 | Durham | Dec 2012 | A1 |
20130042154 | Agarwa et al. | Feb 2013 | A1 |
20130080197 | Kung et al. | Mar 2013 | A1 |
20130166568 | Binkert et al. | Jun 2013 | A1 |
20130212234 | Bartlett | Aug 2013 | A1 |
20130283106 | King et al. | Oct 2013 | A1 |
20140043325 | Ruble et al. | Feb 2014 | A1 |
20140058775 | Siig et al. | Feb 2014 | A1 |
20140249999 | Johnson et al. | Sep 2014 | A1 |
20140250153 | Nixon et al. | Sep 2014 | A1 |
20140365533 | Debray et al. | Dec 2014 | A1 |
20150010143 | Yang | Jan 2015 | A1 |
20150081701 | Lerios et al. | Mar 2015 | A1 |
20150106456 | van Hoek | Apr 2015 | A1 |
20150149912 | Moore | May 2015 | A1 |
20150178877 | Bogomolov | Jun 2015 | A1 |
20150200867 | Dutta et al. | Jul 2015 | A1 |
20150278258 | Kienzle et al. | Oct 2015 | A1 |
20150317344 | Birdwell | Nov 2015 | A1 |
20150324437 | Jiang et al. | Nov 2015 | A1 |
20150378863 | Balachandran | Dec 2015 | A1 |
20150378869 | Balachandran | Dec 2015 | A1 |
20160062737 | Stanfill et al. | Mar 2016 | A1 |
20160070430 | Kim et al. | Mar 2016 | A1 |
20160070451 | Kim et al. | Mar 2016 | A1 |
20160086260 | Vermeulen et al. | Mar 2016 | A1 |
20160092476 | Stojanovic et al. | Mar 2016 | A1 |
20160110369 | Cervelli et al. | Apr 2016 | A1 |
20160112460 | Li | Apr 2016 | A1 |
20160117371 | Couris et al. | Apr 2016 | A1 |
20160179897 | Zheng | Jun 2016 | A1 |
20160260063 | Harris | Sep 2016 | A1 |
20160306908 | Fontes | Oct 2016 | A1 |
20160364434 | Spitz et al. | Dec 2016 | A1 |
20170005674 | Hussain et al. | Jan 2017 | A1 |
20170032026 | Parker et al. | Feb 2017 | A1 |
20170039500 | Leidner et al. | Feb 2017 | A1 |
20170069118 | Stewart | Mar 2017 | A1 |
20170083585 | Chen et al. | Mar 2017 | A1 |
20170116396 | Gu et al. | Apr 2017 | A1 |
20170212944 | Hellman et al. | Jul 2017 | A1 |
20170277664 | Mihalcea et al. | Sep 2017 | A1 |
20170286264 | Surnarayana | Oct 2017 | A1 |
20170315516 | Kozionov et al. | Nov 2017 | A1 |
20170373932 | Subramanian et al. | Dec 2017 | A1 |
20170373992 | Nair | Dec 2017 | A1 |
20180024701 | Sanches | Jan 2018 | A1 |
20180024731 | Sanches | Jan 2018 | A1 |
20180129374 | Kim et al. | May 2018 | A1 |
20180129719 | Kim | May 2018 | A1 |
20180129720 | Kim et al. | May 2018 | A1 |
20180157579 | Rozenberg et al. | Jun 2018 | A1 |
20180165297 | Kuchoor et al. | Jun 2018 | A1 |
20180314764 | Orad | Nov 2018 | A1 |
20180349251 | Mietke et al. | Dec 2018 | A1 |
20180367371 | Nagarajan et al. | Dec 2018 | A1 |
20190004929 | Fastabend et al. | Jan 2019 | A1 |
20190121807 | Boutros et al. | Apr 2019 | A1 |
20190138675 | Fontes | May 2019 | A1 |
20190179927 | Rao et al. | Jun 2019 | A1 |
20190258575 | Dey | Aug 2019 | A1 |
20190294421 | Pietzsch | Sep 2019 | A1 |
20200012656 | Pugh | Jan 2020 | A1 |
Entry |
---|
Anonymous, “Cursor (databases) Wikipidia, the free enciclopedia,” Dec. 2, 2012, XP055222764, Retrieved from the internet: URL:https://en.wikipedia,org/w/index.ph?title-Cursor_(databases)&oldid-526008371, 7 pgs. |
Anand, Preinterview First Office Action, U.S. Appl. No. 16/167,313, dated Jan. 24, 2020, 6 pgs. |
Anand, Notice of Allowance, U.S. Appl. No. 16/167,313, dated Mar. 2, 2020, 9 pgs. |
Anand, Notice of Allowance, U.S. Appl. No. 16/908,700, dated Mar. 11, 2021, 10 pgs. |
Anand Notice of Allowance, U.S. Appl. No. 17/325,124, dated May 4, 2022, 12 pgs. |
Bae, J., Understanding Indirect Casual Relationships in Node-Link Graphs, Eurographics Conference on Visualization (Euro Vis) Jun. 2017, vol. 36, No. 3, 12 pgs. |
Cole, Office-Action, U.S. Appl. No. 15/726,294, dated Nov. 9, 2018, 40 pgs. |
Cole, Notice of Allowance, U.S. Appl. No. 15/726,294, dated May 9, 2019, 14 pgs. |
Disclosed Anonymously, ip.com Method to enter data while filter applied, Dec. 6, 2011, (YearL 2011), 7 pgs. |
Ghani, S., Perception of Animated Node-Link Diagrams Graphs, Eurographics Conference on Visualization, (Euro Vis) Jun. 2012, vol. 31, No. 3, 11 pgs. |
Ishio et al., “A Lightweight Visualization of Interprocedural Data-Flow Paths for Source Code Reading,” [Online], 2012, pp. 37-46, retrieved from internet on May 7, 2019, <https://ieeexplore.org/stamp.jsp?tp-&arnumber-6240506> (Year: 2012). |
Kabbaj et al., “Towards an Active Help on Detecting Data Flow Errors in Business Process Models,” [Online], 2015, pp. 16-25, [retrieved from internet on Jul. 11, 2020] <https://www.researchgate.net/profile/Mohammed_Isaam_Kabbaj/publication/263966 796 Toward an active_help_on_detecting_data flow_errors> (Year:2015), 11 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 15/701,381, dated Nov. 9, 2018, 6 pgs. |
Kim, Office Action, U.S. Appl. No. 15/345,391, dated Jun. 28, 2019, 10 pgs. |
Kim, Office Action, U.S. Appl. No. 15/345,391, dated Feb. 13, 2020, 16 pgs. |
Kim, Final Office Action, U.S. Appl. No. 15/345,391, dated Sep. 17, 2020, 16 pgs. |
Kim, Office Action, U.S. Appl. No. 15/345,391, dated Jun. 8, 2021, 14 pgs. |
Kim, Final Office Action, U.S. Appl. No. 15/345,391, Jan. 6, 2022, 20 pgs. |
Kim, Notice of Allowance U.S. Appl. No. 15/345,391, dated Aug 25, 2023, 8 pgs. |
Kim, Pre-Interview First Office Action-U.S. Appl. No. 15/701,392, dated Mar. 9, 2020, 5 pgs. |
Kim, Final Office Action-U.S. Appl. No. 15/701,392, dated Sep. 21, 2020, 18 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 15/701,392, dated Apr. 20, 2021, 9 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 15/705,174, dated Sep. 24, 2019, 10 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 16/153,615, dated Jul. 14, 2020, 10 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 16/285,084, dated Apr. 6, 2020, 9 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 16/537,444, dated Jul. 22, 2020, 13 pgs. |
Kim, Notice of Allowance, U.S. Appl. No. 16/138,705, dated dated Aug. 7, 2020, 9 pgs. |
Kim, Pre-Interview First Office Action, U.S. Appl. No. 16/937,524, dated Jan. 6, 2022, 6 pgs. |
Kim, First Action Interview Office Action, U.S. Appl. No. 16/937,524, dated Mar. 10, 2022, 6 pgs. |
Kim, Final Office Action, U.S. Appl. No. 16/937,524, dated Aug. 23, 2022, 22 pgs. |
Kim, Office Action, U.S. Appl. No. 16/937,524, dated Apr. 10, 2023, 26 pgs. |
Moss, Pre-Interview First Office Action, U.S. Appl. No. 16/228,680, dated Jun. 8, 2021, 5 pgs. |
Moss, First Action Interview Office Action, U.S. Appl. No. 16/228,680, dated Aug. 26, 2021, 4 pgs. |
Moss, Notice of Allowance, U.S. Appl. No. 16/228,680, dated Oct. 1, 2021, 10 pgs. |
Moss, Office Action, U.S. Appl. No. 17/670,407, dated Aug. 31, 2023, 24 pgs. |
Pugh, Notice of Allowance, U.S. Appl. No. 16/155,818, dated Oct. 1, 2020, 9 pgs. |
Pugh, Notice of Allowance, US17/142, 138, dated Aug. 5, 2021, 9 pgs. |
Wildenradt, Notice of Allowance, U.S. Appl. No. 16/681,753, dated May 6, 2021, 10 pgs. |
Logothetis et al., “Scalable Lineage Capture for Debugging DISC Analytics,” [Online], 2013, pp. 1-15, retrieved from internet on May 7, 2019, <http://delivery.acm.org/10.1145/250000/252369/a17-logothetis.pdf> (Year:2013). |
Lovat et al., “On Quantitative Dynamic Data Flow Tracking,” [Online], 2014, pp. 211-222, [retrieved from internet on Jul. 11, 2020, <https://dl,acm/doi/pdf/10.11145/2557547.2557551> (Year: 2014), 12 pgs. |
Meda et al., “On Detecting Data Flow Errors in Workflows,” [Online] 2010, p. 4:1-4:31, [retrieved from internet on Jul. 11, 2020], <https://dl.acm.org/doi/pdf/10.1145/1805286.1805290> (Year: 2020), 31 pgs. |
Moser et al., “Advanced Verification of Distributed WS-BPEL Business Processes Incorporating CSSA-based Data Flow Analysis,” [Online], 2007, pp. 1-8, [retrieved from internet on Jul. 11, 2020], <https://ieeexplore.IEEE.org/stamp/stamp.jsp?tp=&arnumber=4278643> (Year: 2007), 8 pgs. |
Tableau Software, Inc., International Search Report and Written Opinion, PCT/US2017/060232, dated Jan. 18, 2018, 10 pgs. |
Tableau Software, Inc., International Search Report and Written Opinion, PCT/US2019/053935, dated Dec. 18, 2019, 13 pgs. |
Tableau Software, Inc., Communication Pursuant Rules 161(1) and 162, EP17801216.7, dated Jun. 17, 2019, 3 pgs. |
Tableau Software, Inc., Communication Pursuant to Article 94(3), EP17801216.7, dated Apr. 3, 2020, 6 pgs. |
Tibco, “TIBCO ActiveMatrix BusinessWorks TM Process Design Software Release 5.13,” Aug. 31, 2015, retrieved from the Internet: URL:https://docs.tibco.com/pub/activematrix_businessworks/5.13.0/doc/pdf/tib_bw_process design guide.pdf, 107 pgs. |
Yip et al., “Improving Application Security with Data Flow Assertions,” [Online], 2009, pp. 1-18, retrieved from internet on May 7, 2019, <http://www.sigops.org/conferences/sosp/2009/papers/yip-sosp09.pdf> (Year:2009). |
Number | Date | Country | |
---|---|---|---|
20230014484 A1 | Jan 2023 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17325124 | May 2021 | US |
Child | 17947027 | US | |
Parent | 16908700 | Jun 2020 | US |
Child | 17325124 | US | |
Parent | 16167313 | Oct 2018 | US |
Child | 16908700 | US |