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).

  • Patent number: 9542622
    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: Grant
    Filed: March 3, 2015
    Date of Patent: January 10, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Vu Minh Le
  • Publication number: 20160350276
    Abstract: Described herein are mechanisms for automatically generating a computer-executable program that transforms a first table in a first format to a second table in a second format by way of user-provided examples. A user provides an exemplary input table of a first format, where the input table may be a portion of the first table. The user also provides an exemplary output table of a second format, wherein contents of the output table correspond to contents of the input table. Based upon these user-provided examples, a table transform program is automatically generated, wherein the table transform program, when executed over the first table generates the second table.
    Type: Application
    Filed: August 15, 2016
    Publication date: December 1, 2016
    Inventors: Sumit Gulwani, William Robert Harris
  • Publication number: 20160314408
    Abstract: Examples of the present disclosure describe leveraging of learned programs for data manipulation. A template associated with information including non-marked up content is detected by applying machine learning processing that compares the information with a plurality of stored templates. The learned program is detected from a learned program pool comprising a plurality of learned programs based on the template detected. Extracted data from the information is manipulated based on application of the learned program. Other examples are also described.
    Type: Application
    Filed: April 21, 2015
    Publication date: October 27, 2016
    Applicant: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Sree Hari Nagaralu, Ranganath Kondapally, Vijayendra G. Vasu, Karthikeyan Raman
  • Publication number: 20160299744
    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: Application
    Filed: June 21, 2016
    Publication date: October 13, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Adam Kalai, Butler Lampson, Sumit Gulwani, Aditya Krishna Menon, Omer Tamuz
  • Patent number: 9448772
    Abstract: A program development framework (PDF) is described herein which allows a user to produce a program in piecemeal fashion by successively specifying program fragments. The PDF creates a new program fragment by receiving keyword information from the user that describes a new program fragment, and then identifies context information that pertains to a programmatic context in which the new program fragment appears within the overall program being created. The PDF then generates a set of candidate program fragments that satisfy the keyword information and the context information, and ranks those candidate program fragments based on ranking information. At least part of the ranking information may be based on statistical information that is produced by analyzing a corpus of previous programs produced by one or more users. The PDF then provides the ranked program fragments to the user using various user-friendly presentation strategies.
    Type: Grant
    Filed: June 28, 2013
    Date of Patent: September 20, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Jonathan Paul de Halleux, Nikolai Tillmann, Vu Minh Le, Zhendong Su
  • Patent number: 9430459
    Abstract: Described herein are mechanisms for automatically generating a computer-executable program that transforms a first table in a first format to a second table in a second format by way of user-provided examples. A user provides an exemplary input table of a first format, where the input table may be a portion of the first table. The user also provides an exemplary output table of a second format, wherein contents of the output table correspond to contents of the input table. Based upon these user-provided examples, a table transform program is automatically generated, wherein the table transform program, when executed over the first table generates the second table.
    Type: Grant
    Filed: June 6, 2013
    Date of Patent: August 30, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, William Robert Harris
  • Patent number: 9400639
    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 22, 2012
    Date of Patent: July 26, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adam Kalai, Butler Lampson, Sumit Gulwani, Aditya Krishna Menon, Omer Tamuz
  • Patent number: 9330090
    Abstract: A system and method to translate natural language descriptions to programs in a domain-specific language for spreadsheets. The method includes generating a model of a spreadsheet. The model includes a column description for each column, and one or more types associated with each column. The method also includes normalizing the description by removing stop words, and replacing parts that match column names or data values by parameterized place-holders. The method involves applying rule-based translation along with keyword or type-based program synthesis in an inter-leaved, bottom-up manner and dynamic programming style, where phrases are mapped to sub-programs in increasing order of their length. The rules describe how to map a specific partial natural language phrase into a partial sub-program. Also, the method includes generating a number of potential programs and ranking the programs to sequence them according to their intended likelihood.
    Type: Grant
    Filed: January 29, 2013
    Date of Patent: May 3, 2016
    Assignee: Microsoft Technology Licensing, LLC.
    Inventors: Sumit Gulwani, Mark Marron
  • Publication number: 20150331416
    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: Application
    Filed: May 16, 2014
    Publication date: November 19, 2015
    Applicant: Microsoft Corporation
    Inventors: Ashley Nathan Feniello, Stan Birchfield, Hao Dang, Sumit Gulwani
  • Publication number: 20150254211
    Abstract: Various technologies described herein pertain to controlling programming for manipulating an input document based on example(s) and/or natural language input(s). A data manipulation system includes an interface component configured to receive an input document, which is semi-structured or unstructured. The data manipulation system further includes an extraction component configured to synthesize, based on a first input, a first program for parsing data of the input document. The extraction component is configured to execute the first program on the input document to form structured data. The data manipulation system also includes an operation component configured to synthesize, based on a second input, a second program for performing an operation on the structured data. The operation component is configured to execute the second program on the structured data to generate a result of the operation, which is output by the data manipulation system.
    Type: Application
    Filed: February 13, 2015
    Publication date: September 10, 2015
    Inventors: Sumit Gulwani, Edward C. Hart, JR., Vu Minh Le, Henrique S. Malvar, Mark Marron, James D. McCaffrey, Gustavo Araujo Soares, Benjamin G. Zorn
  • Publication number: 20150254530
    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: March 3, 2015
    Publication date: September 10, 2015
    Inventors: Sumit Gulwani, Vu Minh Le
  • Publication number: 20150254353
    Abstract: Various technologies described herein pertain to controlling execution of an automated search task on search results returned by a search engine. The search results are received, where the search results are returned by the search engine responsive to the search engine receiving a seed query. An instantiation of a parameterized query for the automated search task is executed over documents specified by the search results, where the instantiation of the parameterized query describes a linguistic pattern, a structural pattern, and a visual pattern. Further, a set of answer strings is extracted from the documents. The answer strings in the set match the linguistic pattern, the structural pattern, and the visual pattern. The search engine is controlled to provide an output in response to the user search query, the output being based on the set of answer strings extracted from the documents.
    Type: Application
    Filed: February 11, 2015
    Publication date: September 10, 2015
    Inventors: Sumit Gulwani, Oleksandr Polozov, Saurabh Kumar Tiwary
  • Patent number: 9098191
    Abstract: A sketch processing system is described herein for assisting a user in producing a drawing. In one implementation, the sketch processing system operates by: receiving ink strokes in response to creation of an original drawing; recognizing components and geometric constraints within the original drawing, to produce a recognized drawing; beautifying the original drawing by modifying at least one aspect of the recognized drawing in accordance with the recognized constraints, to produce a beautified drawing; and recognizing a recurring pattern in the beautified pattern (if any) and using that pattern to produce at least one added component to the beautified drawing.
    Type: Grant
    Filed: January 24, 2012
    Date of Patent: August 4, 2015
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Salman Shaukat Cheema, Joseph J. LaViola, Jr.
  • Patent number: 9031894
    Abstract: Systems and methods for generating a tuple of structured data files are described herein. In one example, a method includes detecting an expression that describes a structure of a structured image using a constructor. The method can also include using an inference-rule based search strategy to identify a hierarchical arrangement of bounding boxes in the structured image that match the expression. Furthermore, the method can include generating a first tuple of structured data files based on the identified hierarchical arrangement of bounding boxes in the structured image.
    Type: Grant
    Filed: February 19, 2013
    Date of Patent: May 12, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Oleksandr Polozov
  • Patent number: 9002758
    Abstract: Ranking technique embodiments are presented that use statistical and machine learning techniques to learn the desired ranking function for use in inductive program synthesis for the domain of string transformations. This generally involves automatically creating a training dataset of positive and negative examples from a given set of training tasks, each including multiple input-output examples. From the training dataset, a ranking function is learned that assigns an expression in a program in the domain specific language to a likelihood measure. This ranking function is then used to compute likelihoods of learnt programs from a very small number of input-output examples for a new task.
    Type: Grant
    Filed: October 17, 2012
    Date of Patent: April 7, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Rishabh Singh
  • Publication number: 20150095312
    Abstract: Relational data is extracted from spreadsheets. A relational data extraction program is synthesized, where this synthesized program is consistent with examples of relational data associated with a spreadsheet. The synthesized program is executed on the spreadsheet, which extracts a set of tuples therefrom that is consistent with these examples, and generates a table that includes the extracted set of tuples. A program is received that specifies a set of constraints defining relational data to be extracted from a spreadsheet, where this set of constraints includes cell constraints and spatial constraints. The received program is executed on the spreadsheet, which extracts a set of tuples therefrom that is consistent with the set of constraints, and generates a table that includes the extracted set of tuples.
    Type: Application
    Filed: October 2, 2013
    Publication date: April 2, 2015
    Applicant: Microsoft Corporation
    Inventors: Sumit Gulwani, Benjamin G. Zorn, Daniel W. Barowy, Edward Hart
  • Patent number: 8972930
    Abstract: A program creation system is described which generates a data manipulation program based on input-output examples. The created program may include a collection of subprograms together with a collection of corresponding selection conditions. When a new input item is received, a program execution module uses the selection conditions to select one of the subprograms. The program execution module then applies the selected subprogram to generate a new output item. The program creation system generates the program using a three-part approach, involving: generating sets of subprograms for the respective input-output examples; grouping the sets of programs into partitions and choosing representative subprograms for the partitions; and determining the selection conditions. A user interaction module provides various mechanisms which allow a user to interact with the program creation system and thereby improve the performance of the created program.
    Type: Grant
    Filed: June 4, 2010
    Date of Patent: March 3, 2015
    Assignee: Microsoft Corporation
    Inventor: Sumit Gulwani
  • Publication number: 20150019216
    Abstract: Described herein are various technologies pertaining to performing an operation relative to tabular data based upon voice input. An ASR system includes a language model that is customized based upon content of the tabular data. The ASR system receives a voice signal that is representative of speech of a user. The ASR system creates a transcription of the voice signal based upon the ASR being customized with the content of the tabular data. The operation relative to the tabular data is performed based upon the transcription of the voice signal.
    Type: Application
    Filed: May 21, 2014
    Publication date: January 15, 2015
    Applicant: Microsoft Corporation
    Inventors: Prabhdeep Singh, Kris Ganjam, Sumit Gulwani, Mark Marron, Yun-Cheng Ju, Kaushik Chakrabarti
  • Publication number: 20140282375
    Abstract: A program development framework (PDF) is described herein which allows a user to produce a program in piecemeal fashion by successively specifying program fragments. The PDF creates a new program fragment by receiving keyword information from the user that describes a new program fragment, and then identifies context information that pertains to a programmatic context in which the new program fragment appears within the overall program being created. The PDF then generates a set of candidate program fragments that satisfy the keyword information and the context information, and ranks those candidate program fragments based on ranking information. At least part of the ranking information may be based on statistical information that is produced by analyzing a corpus of previous programs produced by one or more users. The PDF then provides the ranked program fragments to the user using various user-friendly presentation strategies.
    Type: Application
    Filed: June 28, 2013
    Publication date: September 18, 2014
    Inventors: Sumit Gulwani, Jonathan Paul de Halleux, Nikolai Tillmann, Vu Minh Le, Zhendong Su
  • Patent number: 8825572
    Abstract: A quantified belief propagation (QBP) algorithm receives as input an existentially quantified boolean formula (QBF) of existentially quantified boolean variables, universally quantified variables, and boolean operators. A tripartite graph is constructed, and includes (i) there-exists nodes that correspond to and represent the existentially quantified variables, (ii) for-all nodes that correspond to and represent the universally quantified variables, and (iii) sub-formula nodes that correspond to and represent sub-formulas of the QBF. A set of boolean values of the existentially quantified variables is found by (i) passing a first message from an arbitrary sub-formula node to an arbitrary for-all node, and (ii) in response, passing a second message from the arbitrary for-all node to the arbitrary sub-formula node.
    Type: Grant
    Filed: February 1, 2011
    Date of Patent: September 2, 2014
    Assignee: Microsoft Corporation
    Inventors: Aditya Nori, Sriram Rajamani, Rahul Srinivasan, Sumit Gulwani