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: 10579656
    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: April 13, 2017
    Date of Patent: March 3, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Geoffrey Gerson Zweig
  • Patent number: 10546055
    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: Grant
    Filed: October 20, 2016
    Date of Patent: January 28, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung
  • Publication number: 20190384851
    Abstract: Systems and techniques for structured query language (SQL) query formatting by examples are described herein. In an example, a SQL query formatter is adapted to receive a SQL statement, such that the SQL statement is formed using SQL tokens. The SQL query formatter may be further adapted to use a SQL formatter model to format the SQL statement, which results in a formatted SQL statement. The SQL formatter model may be trained using at least one previously executed SQL statement. The SQL formatter model may include format definitions for SQL tokens. The SQL query formatter may be further adapted to output the formatted SQL statement.
    Type: Application
    Filed: June 13, 2018
    Publication date: December 19, 2019
    Inventors: Vu Minh Le, Gustavo Araujo Soares, Sumit Gulwani
  • Publication number: 20190347267
    Abstract: Described herein are various technologies pertaining to identifying boundaries of a substring in a log file, wherein the substring is to be extracted from the log file and used to construct a table. An indication is received that a user has selected a beginning boundary of the substring, and the ending boundary of the substring is automatically identified.
    Type: Application
    Filed: July 24, 2019
    Publication date: November 14, 2019
    Inventors: Vu Minh Le, Sumit Gulwani
  • Publication number: 20190332704
    Abstract: Systems, methods, and computer-executable instructions for parallel searching in program synthesis. A task to synthesize in a domain specific language (DSL) is received. The task is synthesized. Synthesizing the task includes generating sub-goals based on the task. The synthesized task includes a subset of the sub-goals. An estimated completion time for each of the sub-goals is expressed using the DSL is determined. The sub-goals are scheduled based on the estimated completion time. Some of the sub-goals are scheduled to be executed in parallel. The sub-goals are solved based on the scheduling to synthesize the task in the DSL. An elapsed real time to complete the synthesizing the task is reduced compared to scheduling the sub-goals in an order based on sub-goal generation.
    Type: Application
    Filed: April 26, 2018
    Publication date: October 31, 2019
    Inventors: Sumit Gulwani, Abhishek Udupa, Michael Vollmer
  • Publication number: 20190324730
    Abstract: Systems, methods, and computer-executable instructions for synthesizing programs using a prefix of an output. A specification of a task to synthesize a program in a domain specific language (DSL) is received. The specification includes an input and a corresponding prefix of the output. Programs for the task are synthesized. The synthesizing includes generating sub-goals based on the specification. Each of the synthesized programs include a solved subset of sub-goals and each sub-goal includes a symbol in the DSL. The symbol is transformed based on the DSL. The sub-goals are solved based on the transforming of the symbol using the input and the corresponding prefix of the output to generate the synthesized programs. The prefix of the output matches a prefix of an output from each of the plurality of synthesized programs.
    Type: Application
    Filed: April 24, 2018
    Publication date: October 24, 2019
    Inventors: Sumit Gulwani, Abhishek Udupa
  • Publication number: 20190311022
    Abstract: Systems and methods may be used to present changes to a document on a user interface. A method may include receiving, on the user interface, a user input including an edit task to a first portion of a document. The method may include determining, using a processor, that a second portion of the document includes text changeable by the edit task. The method may include automatically performing the edit task on the second portion of the document within the user interface based on the determination.
    Type: Application
    Filed: April 10, 2018
    Publication date: October 10, 2019
    Inventors: Zhouying Fan, Yichen Wang, Dario Pavlovic, Theresa A. Estrada, Sumit Gulwani, Jeffrey Weston, Daniel Adam Perelman, Itai Rosenberger
  • Publication number: 20190311004
    Abstract: A computing device includes a storage machine holding instructions executable by a logic machine to generate multi-string clusters, each containing alphanumeric strings of a dataset. Further multi-string clusters are generated via iterative performance of a combination operation in which a hierarchically-superior cluster is generated from a set of multi-string clusters. The combination operation includes, for candidate pairs of multi-string clusters, generating syntactic profiles describing an alphanumeric string from each multi-string cluster of the candidate pair. For each of the candidate pairs, a cost factor is determined for at least one of its syntactic profiles. Based on the cost factors determined for the syntactic profiles, one of the candidate pairs is selected. The multi-string clusters from the selected candidate pair are combined to generate the hierarchically-superior cluster including all of the alphanumeric strings from the selected candidate pair of multi-string clusters.
    Type: Application
    Filed: June 21, 2019
    Publication date: October 10, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit GULWANI, Prateek JAIN, Daniel Adam PERELMAN, Saswat PADHI, Oleksandr POLOZOV
  • Patent number: 10409892
    Abstract: Data formatting rules to convert data from one form to another form are automatically determined based on a user's edits. A machine learning heuristic is applied to a user's edits to determine a data formatting rule that may be applied to data. For example, a user may make edits that add/remove characters from data, concatenate data, extract data, rename data, and the like. The machine learning heuristic may be automatically triggered in response to an event (e.g. after a predetermined number of edits are made to a same type of data) or manually triggered (e.g. selecting a user interface option). The data formatting rule may be applied to other data and the results of the formatting reviewable by the user. Based on further edits/reviews, the data formatting rule may be updated. The data formatting rules may be stored for later use.
    Type: Grant
    Filed: January 26, 2011
    Date of Patent: September 10, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Chad Rothschiller, Daniel Battagin, Christopher Benedict, Rodrigo Moreira-Silveira, Dmitri O. Danilov, Eric Cohen, Sumit Gulwani, Dany Rouhana, Rishabh Singh, Benjamin Goth Zorn, Ramarathnam Venkatesan
  • Patent number: 10394874
    Abstract: A computing device includes a storage machine holding instructions executable by a logic machine to generate multi-string clusters, each containing alphanumeric strings of a dataset. Further multi-string clusters are generated via iterative performance of a combination operation in which a hierarchically-superior cluster is generated from a set of multi-string clusters. The combination operation includes, for candidate pairs of multi-string clusters, generating syntactic profiles describing an alphanumeric string from each multi-string cluster of the candidate pair. For each of the candidate pairs, a cost factor is determined for at least one of its syntactic profiles. Based on the cost factors determined for the syntactic profiles, one of the candidate pairs is selected. The multi-string clusters from the selected candidate pair are combined to generate the hierarchically-superior cluster including all of the alphanumeric strings from the selected candidate pair of multi-string clusters.
    Type: Grant
    Filed: July 28, 2017
    Date of Patent: August 27, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Prateek Jain, Daniel Adam Perelman, Saswat Padhi, Oleksandr Polozov
  • Patent number: 10394815
    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: Grant
    Filed: October 20, 2016
    Date of Patent: August 27, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung
  • Patent number: 10387441
    Abstract: Described herein are various technologies pertaining to identifying boundaries of a substring in a log file, wherein the substring is to be extracted from the log file and used to construct a table. An indication is received that a user has selected a beginning boundary of the substring, and the ending boundary of the substring is automatically identified.
    Type: Grant
    Filed: November 30, 2016
    Date of Patent: August 20, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Vu Minh Le, Sumit Gulwani
  • Publication number: 20190235842
    Abstract: Systems, methods, and computer-executable instructions for synthesizing a program for a task. A domain specific language that includes a disjunctive symbol and an input/output example for the task are received. A program for the task is synthesized based on the input/output example and the domain specific language. Sub-programs for an instance of the disjunctive symbol are synthesized, A set of feature calculators and target feature values are determined. The program for the task is returned. The program includes the sub-programs, the set of feature calculators and the target feature values.
    Type: Application
    Filed: January 31, 2018
    Publication date: August 1, 2019
    Inventors: Mohammad Raza, Sumit Gulwani
  • Publication number: 20190212989
    Abstract: Systems, methods, and computer-executable instructions for guiding program synthesis includes receiving a specification that includes an input and output example. Programs are synthesized that meet the specification. During synthesizing each of the programs includes branching decisions. Each branching decision includes a plurality of paths. Synthesizing the programs comprises includes selecting a first score model, for a first branching decision. Each of the programs is scored using the first score model. The paths of the first branching decision are pared based on the score. One the paths is selected. A synthesized program that meets the specification is returned. The synthesized program includes the one of the paths.
    Type: Application
    Filed: June 26, 2018
    Publication date: July 11, 2019
    Inventors: Oleksandr Polozov, Sumit Gulwani, Prateek Jain, Ashwin Kalyan Vijayakumar, Abhishek Mohta
  • Publication number: 20190171422
    Abstract: Systems, methods, and computer-executable instructions for synthesizing a performant program include receiving a plurality of input examples. A plurality of input and output data pairs are generated using the input examples as input to the synthesized program. An expanded equivalence set is generated from the plurality of input and output data pairs. The expanded equivalence set is input to a synthesis engine to synthesize a first performant program. The first performant program is received. The first performant program does not satisfy at least one input and output data pair of the plurality of input and output data pairs. At least one input and output data pairs is added to the equivalence set. The equivalence set of input and output data pairs to the synthesis engine to synthesize a second performant program. The second performant program is determined to satisfy each of the plurality of input and output data pairs.
    Type: Application
    Filed: December 1, 2017
    Publication date: June 6, 2019
    Inventors: Abhishek Udupa, Sumit Gulwani
  • Publication number: 20190034437
    Abstract: A computing device includes a storage machine holding instructions executable by a logic machine to generate multi-string clusters, each containing alphanumeric strings of a dataset. Further multi-string clusters are generated via iterative performance of a combination operation in which a hierarchically-superior cluster is generated from a set of multi-string clusters. The combination operation includes, for candidate pairs of multi-string clusters, generating syntactic profiles describing an alphanumeric string from each multi-string cluster of the candidate pair. For each of the candidate pairs, a cost factor is determined for at least one of its syntactic profiles. Based on the cost factors determined for the syntactic profiles, one of the candidate pairs is selected. The multi-string clusters from the selected candidate pair are combined to generate the hierarchically-superior cluster including all of the alphanumeric strings from the selected candidate pair of multi-string clusters.
    Type: Application
    Filed: July 28, 2017
    Publication date: January 31, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit GULWANI, Prateek JAIN, Daniel Adam PERELMAN, Saswat PADHI, Oleksandr POLOZOV
  • Patent number: 10108597
    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: August 15, 2016
    Date of Patent: October 23, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, William Robert Harris
  • Publication number: 20180246915
    Abstract: Techniques are disclosed which provide for transforming a hierarchical table to a relational table. A hierarchical table may be received, in which a headline row is identified. A candidate row may be determined in the hierarchical table. The process may include systematically classifying headlines as data headlines or descriptors. For each data headline a new column may be generated, while for each descriptor headline, the table may be split to produce a resultant table. The resultant table may be stored and the process may be repeated until there are no headlines left to be classified. The steps performed by the system to transform the table can then be displayed on a user device using a program in the Domain-specific language, which can then be further inspected or modified to perform the desired table transformation.
    Type: Application
    Filed: February 27, 2017
    Publication date: August 30, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Rishabh SINGH, Sumit GULWANI, Dana DRACHSLER COHEN
  • Publication number: 20180188897
    Abstract: Technologies for narrowing the choices for programs that each comply with example behaviors provided by a user in programming by example. Even if the user provides insufficient behavior examples to precisely identify a program that should be used, the system still uses program behavior features (along with potentially structure features) of the program in order to identify suitability of each program that would comply with the specific set of behavior examples. A particular program is then selected and enabled for that user so that the particular program performs behaviors exemplified by the one or more program behavior examples. In the case where user assistance is used in selection of the program, the suitability for each possible program may be used to decide which of multiple possible programs should be made selectable by the user. Those higher suitability programs might be visualized to the user for selection.
    Type: Application
    Filed: December 29, 2016
    Publication date: July 5, 2018
    Inventors: Sumit Gulwani, Kevin Michael Ellis
  • Publication number: 20180150500
    Abstract: Described herein are various technologies pertaining to identifying boundaries of a substring in a log file, wherein the substring is to be extracted from the log file and used to construct a table. An indication is received that a user has selected a beginning boundary of the substring, and the ending boundary of the substring is automatically identified.
    Type: Application
    Filed: November 30, 2016
    Publication date: May 31, 2018
    Inventors: Vu Minh Le, Sumit Gulwani