Patents by Inventor Sumit Gulwani

Sumit Gulwani has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20180150554
    Abstract: Described herein are various technologies pertaining to processing a log file, such that the processed log file is well-suited for analysis by a programming by example (PBE) system. When processing the log file, header lines and comment lines in the log file can be automatically identified and filtered from the log file, such that the PBE system does not contemplate the header lines and comment lines. Further, when processing the log file, boundaries of records in the log file can be identified without requiring user input. The PBE system constructs a table based upon the identified boundaries of the records in the log file, wherein the table includes rows that correspond to the records, and further wherein the table fails to include rows that correspond to header lines and comment lines.
    Type: Application
    Filed: November 30, 2016
    Publication date: May 31, 2018
    Inventors: Vu Minh Le, Sumit Gulwani
  • Publication number: 20180121525
    Abstract: A method for generating a smaller dataset from a larger dataset, each dataset holding a plurality of records, includes profiling the larger dataset to identify a plurality of patterns, each of which is descriptive of one or more records held in the larger dataset. A plurality of slots of the smaller dataset is filled with records held in the larger dataset. Multiple records held in the larger dataset are individually retrieved, and for each retrieved record it is determined whether to place the retrieved record into a slot of the smaller dataset and evict a record already occupying that slot, or not place the retrieved record into the smaller dataset. This determination is based on a pattern of the retrieved record and a representation status of the pattern in the smaller dataset.
    Type: Application
    Filed: October 28, 2016
    Publication date: May 3, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Daniel G. Simmons, Kevin David James Grealish, Sumit Gulwani, Ranvijay Kumar, Kevin Michael Ellis, Saswat Padhi
  • Publication number: 20180113906
    Abstract: A computing device is provided, comprising a processor configured to select at least one pair of columns. Each pair may include a source column of the first table and a target column of the second table. For each pair, the processor may detect that the columns contain data with different granularities. The processor may modify the data to have the same granularity, and may generate an example including an element from the source column and an element from the target column. For each example, the processor may programmatically generate a script that, when performed on the source column, produces a value consistent with the target column. For the script with output that meets a matching criterion, the processor may convey the output for display, and may, in response to a signal accepting the script, join the tables at least in part by performing the script on the source column.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung
  • Publication number: 20180113887
    Abstract: Various technologies pertaining to extracting data encoded in a tree-structured document and generating a table based upon the extracted data are described herein. In a first embodiment, the table is generated without requiring input from a data cleaner. In a second embodiment, the table is generated based upon examples set forth by a data cleaner.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Inventors: Vu Minh Le, Sumit Gulwani, Ranvijay Kumar, Chiu Ying Cheung
  • Publication number: 20180113848
    Abstract: A computing device is provided comprising a processor configured to select at least one pair of elements, including an element in a source column of the first table and an element in a target column of the second table. The processor may detect that the elements are in different formats. For at least one element, the processor may apply a predetermined mapping to a common format. The processor may modify at least one element to have the same format as the other, and may generate an example including the modified pair. The processor may programmatically generate a script that, when performed on the selected elements, produces a value consistent with the example. For the script with output matching the elements of the target column, the processor may convey the output for display, and may join the tables at least in part by performing the script on the source column.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung
  • Publication number: 20180113922
    Abstract: A method for transforming strings includes identifying one or more candidate example input strings from a database including a set of input strings. The candidate example input strings are presented for example transformation. For one or more of the candidate example input strings, an example output string corresponding to that example input string is received, where each example input string and its corresponding example output string define a transformation example in an example set. A string transformation program is generated based on transformation examples in the example set.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Ranvijay Kumar, Chairy Chiu Ying Cheung, Daniel Adam Perelman, Euan Peter Garden, Giovanni M. Della-Libera
  • Publication number: 20180113890
    Abstract: Various technologies described herein pertain to automated data splitting using predictive program synthesis. Input-only examples for splitting an input column of an input data set can be received. The input-only examples can include example entries from the input column of the input data set to be split into multiple output columns without specification of how the example entries are to be split into multiple output columns. Further, a program for splitting the input column of the input data set into the multiple output columns can be synthesized based on the input-only examples. The program can be synthesized, given the input-only examples, in a domain-specific language (DSL) for splitting an entry into a tuple of fields utilizing a predictive program synthesis algorithm. Moreover, the program can be executed on the input data set to split the input column of the input data set into the multiple output columns.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Inventors: Mohammad Raza, Sumit Gulwani
  • Publication number: 20180113907
    Abstract: A computing device is provided, comprising a processor configured to select at least one pair of tuples of columns including a source tuple from a first table and a target tuple from a second table. For each pair, the processor may select one or more rows from the source tuple and elements of the target tuple. For each selected row, the processor may programmatically generate a script that, when performed on the source tuple, produces a value consistent with the target tuple. The processor may apply each script to other rows of the source tuple and determine that an output is in the target tuple. For each column of the target tuple, for the script with output that meets a matching criterion, the processor may convey the output and, in response to a signal accepting the script, join the tables at least in part by performing each accepted script.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung
  • Publication number: 20180113873
    Abstract: Examples are disclosed herein that relate to string transformation sub-program suggestion. One example provides, at a computing device, a method comprising receiving a dataset having a plurality of input strings; receiving a declarative user input associated with a desired string transformation sub-program to be performed using the dataset as input; in a search space having a plurality of string transformation sub-programs, reducing the search space based on (i) the user input and (ii) one or more of the plurality of input strings of the dataset, to thereby form a reduced search space, the reduced search space having at least one string transformation sub-program that is configured to transform one or more of the plurality of input strings of the dataset; and selecting, from the reduced search space, one or more suggested string transformation sub-programs.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Ranvijay Kumar, Abhishek Udupa, Craig Allen Lee, Giovanni M. Della-Libera
  • Publication number: 20180113894
    Abstract: Various technologies described herein pertain to interactive data splitting. A program for splitting an input column of an input data set into multiple output columns can be synthesized based on input-only examples. The program can further be generated based on various user input; thus, the user input can guide the synthesis of the program. Moreover, the program can be executed on the input data set to split the input column of the input data set into the multiple output columns.
    Type: Application
    Filed: October 24, 2016
    Publication date: April 26, 2018
    Inventors: Mohammad Raza, Sumit Gulwani, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung, Daniel Galen Simmons
  • Patent number: 9940106
    Abstract: There is provided a method and system for generating a program. The method includes detecting a number of steps for performing a task on a computing device and detecting an example relating to each of the steps, wherein the example includes input data and corresponding output data relating to the step. The method also includes, for each example, determining a rule that transforms the input data to the corresponding output data based on cues including textual features within the input data and the corresponding output data. The method further includes generating a program for performing the task based on the rules.
    Type: Grant
    Filed: June 21, 2016
    Date of Patent: April 10, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adam Kalai, Butler Lampson, Sumit Gulwani, Aditya Krishna Menon, Omer Tamuz
  • Patent number: 9891895
    Abstract: Systems and methods for increasing user confidence in results that are produced by one or more programs that are generated by an underlying Programming-By-Example (PBE) system based on user input examples. A plurality of generated programs that have been generated using one or more user input examples that are indicative of an output that should be achieved to comply with a user determined result are received. The generated programs are narrowed based on one or more sub-expressions of the programs that are likely to cause the resultant program to comply with the user determined result. The one or more sub-expressions are exposed. Input that selects at least one of the one or more exposed sub-expressions to thereby identify the one of the generated programs that will result in the user determined result is received.
    Type: Grant
    Filed: September 14, 2015
    Date of Patent: February 13, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Benjamin Goth Zorn, Rishabh Singh, Mark Marron, Oleksandr Polozov, Vu Minh Le, Mikael Mayer, Gustavo Araujo Soares, Maxim Grechkin
  • Publication number: 20180039693
    Abstract: Data items such as strings are filtered based on positive and negative examples provided by a user, where positive examples are to be included in a result set and negative examples are to be excluded. For each example, a filter generator determines a set of expressions that are satisfied by the example. Expressions corresponding to positive examples are intersected and expressions corresponding to negative examples are subtracted from the intersection to create a set of expressions that are consistent with every positive example and inconsistent with every negative example. The expressions may be represented as directed acyclic graphs that facilitate operations such as intersection and subtraction.
    Type: Application
    Filed: August 5, 2016
    Publication date: February 8, 2018
    Inventors: Rishabh Singh, Sumit Gulwani, Xinyu Wang
  • Patent number: 9737990
    Abstract: Robotic task program synthesis embodiments are presented that generally synthesize a robotic task program based on received examples of repositioning tasks. In one implementation, the exemplary repositioning tasks are human demonstrations of object manipulation in an actual or displayed robot workspace. A domain specific language (DSL) designed for object repositioning tasks is employed for the robotic control program. In general, candidate robotic task programs are generated from the example tasks. Each candidate program includes instructions for causing the robot to reposition objects, and represents a different permutation of instructions consistent with the received example tasks. The candidate programs are ranked, and whenever the top ranking program accomplishes the repositioning specified in each example task, it is designated as the synthesized robotic task program.
    Type: Grant
    Filed: May 16, 2014
    Date of Patent: August 22, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Ashley Nathan Feniello, Stan Birchfield, Hao Dang, Sumit Gulwani
  • Publication number: 20170220673
    Abstract: Various technologies described herein pertain to executing a mixed query to search a database retained in a data repository. The mixed query includes a regular expression, which is a pattern of elements, and a semantic constraint. The elements in the regular expression include a first wildcard, where the semantic constraint restricts a meaning of the first wildcard. Moreover, the elements in the regular expression include explicit lexical constraint(s) and/or disparate wildcard(s). For instance, semantic constraint(s) can restrict meaning(s) of the disparate wildcard(s). The mixed query is executed to retrieve results that match the pattern of the elements in the regular expression and satisfy the semantic constraint(s).
    Type: Application
    Filed: April 13, 2017
    Publication date: August 3, 2017
    Inventors: Sumit Gulwani, Geoffrey Gerson Zweig
  • Patent number: 9659082
    Abstract: Various technologies described herein pertain to executing a mixed query to search a database retained in a data repository. The mixed query includes a regular expression, which is a pattern of elements, and a semantic constraint. The elements in the regular expression include a first wildcard, where the semantic constraint restricts a meaning of the first wildcard. Moreover, the elements in the regular expression include explicit lexical constraint(s) and/or disparate wildcard(s). For instance, semantic constraint(s) can restrict meaning(s) of the disparate wildcard(s). The mixed query is executed to retrieve results that match the pattern of the elements in the regular expression and satisfy the semantic constraint(s).
    Type: Grant
    Filed: August 27, 2012
    Date of Patent: May 23, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Geoffrey Gerson Zweig
  • Patent number: 9613115
    Abstract: A program generation system is described that generates a program based on a plurality of input-output examples. The input-output examples include input items and corresponding output items. The program generation system can include three component modules. A parsing module processes the input items and output items to provide a plurality of input parts and output parts, respectively. A transformation module determines, for each output part, whether the output part can be produced from a corresponding input part using one or more converter modules selected from a collection of candidate converter modules. A formatting module generates formatting instructions that transform selected output parts into a form specified by the output items. These three modules provide a generated program that embodies logic learned from the input-output examples; the generated program can be subsequently used to transform new input items into new respective output items.
    Type: Grant
    Filed: July 12, 2010
    Date of Patent: April 4, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, David P. Walker
  • Publication number: 20170091589
    Abstract: Various technologies described herein pertain to controlling automated programming for extracting data from an input document. Examples indicative of the data to extract from the input document can be received. The examples can include highlighted regions on the input document. Moreover, the input document can be a semi-structured document (e.g. a text file, a log file, a word processor document, a semi-structured spreadsheet, a webpage, a fixed-layout document, an image file, etc.). Further, an extraction program for extracting the data from the input document can be synthesized based on the examples. The extraction program can be synthesized in a domain specific language (DSL) for a type of the input document. Moreover, the extraction program can be executed on the input document to extract an instance of an output data schema.
    Type: Application
    Filed: December 12, 2016
    Publication date: March 30, 2017
    Inventors: Sumit Gulwani, Vu Minh Le
  • Publication number: 20170075661
    Abstract: Systems and methods for increasing user confidence in results that are produced by one or more programs that are generated by an underlying Programming-By-Example (PBE) system based on user input examples. A plurality of generated programs that have been generated using one or more user input examples that are indicative of an output that should be achieved to comply with a user determined result are received. The generated programs are narrowed based on one or more sub-expressions of the programs that are likely to cause the resultant program to comply with the user determined result. The one or more sub-expressions are exposed. Input that selects at least one of the one or more exposed sub-expressions to thereby identify the one of the generated programs that will result in the user determined result is received.
    Type: Application
    Filed: September 14, 2015
    Publication date: March 16, 2017
    Inventors: Sumit Gulwani, Benjamin Goth Zorn, Rishabh Singh, Mark Marron, Oleksandr Polozov, Vu Minh Le, Mikael Mayer, Gustavo Araujo Soares, Maxim Grechkin
  • Patent number: 9552335
    Abstract: A program creation system is described which generates sets of subprograms for respective input-output examples. The program creation system then groups the sets into partitions by performing an intersection operation. According to one aspect, the program creation system generates subprograms so as to exclude tokens that are not represented by the input strings of the input-output examples. According to another aspect, the program creation system first generates the subprograms without attempting to generate loop-type expressions. If this operation produces unsatisfactory results, the program creation system repeats its processing, this time including loop-type expressions. According to another aspect, the program creation system performs the grouping operation using an expedited graph-intersection operation.
    Type: Grant
    Filed: June 4, 2012
    Date of Patent: January 24, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Rishabh Singh, Dany Rouhana, Benjamin G. Zorn, Weide Zhong