Patent Document ID: 20160055220
Application ID: 14720498
Patent Flag: 0

Claim One:
1. A computer-implemented method comprising: maintaining a graph wherein each node corresponds to a set of data; wherein the graph includes an initial node that corresponds to a raw dataset; providing an operator selection mechanism that enables users to select any operator from a plurality of supported operators, wherein the plurality of supported operators include a filtering operator, a join operator, an aggregation operator, and a sort operator; through the operator selection mechanism, receiving user input that selects an initial operator; generating a first result set by performing an operation that corresponds to the initial operator on the raw dataset that corresponds to the initial node; creating a new node that corresponds to the first result set, a data container that stores the first result set, and a schema of the first result set; adding the new node to the graph by connecting the initial node to the new node by a new edge, wherein the new edge represents the operation that by which the first result set was generated; providing a node selection mechanism that enables users to select any one or more nodes of the graph; enabling a user to add new nodes to the graph by repeating the following steps for any number of iterations: a) through the node selection mechanism, receiving user input that selects one or more nodes in the graph; b) through the operator selection mechanism, receiving user input that selects a particular operator of the plurality of supported operators; c) generating a current result set by performing a particular operation that corresponds to the particular operator on the one or more sets of data that correspond to the one or more nodes without repeating performance of any operations by which the one or more sets of data were generated; d) creating a new particular node that corresponds to the current result set, a data container that stores the current result set, and a particular schema of the current result set; and e) adding the new particular node to the graph by connecting the one or more nodes to the new particular node by a new particular edge, wherein the new particular edge represents the particular operation by which the current result set was generated; and automatically generating logic for performing those operations that produced, from the raw dataset, the result set that corresponds to a given node in the graph.