Patents by Inventor Sriram Rajamani

Sriram Rajamani 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: 9104961
    Abstract: There is provided a method and system for modeling a data generating process. The method includes generating a dyadic Bayesian model including a pair of probabilistic functions representing a prior distribution and a sampling distribution, and modeling a data generating process based on the dyadic Bayesian model using observed data. The method includes generating a learner object for the dyadic Bayesian model. The method further includes training the dyadic Bayesian model with the learner object based on the observed data to produce a trained dyadic Bayesian model. The method also includes generating a posterior distribution over parameters based on the trained dyadic Bayesian model. The method also further includes generating a posterior predictive distribution based on the posterior distribution. The method also includes predicting an outcome of observable variables based on the posterior predictive distribution.
    Type: Grant
    Filed: October 8, 2012
    Date of Patent: August 11, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew D. Gordon, Thore Graepel, Aditya Nori, Sriram Rajamani, Johannes Borgstroem
  • Patent number: 8910120
    Abstract: Software debugging recommendation technique embodiments are presented that generally entails creating a database of characterized software bug descriptions and providing software debugging recommendations from the database in response to a query. This can employ a two-phased approach in the search for similar software bugs. The first is a search phase that takes a query as input and returns a ranked list of software bug descriptions that match the query. These bug descriptions can contain a mix of structured and unstructured data. The second phase is a related-information phase that uses the output of the first phase to retrieve a set of related recommendations such as for people, source files, functions and binaries.
    Type: Grant
    Filed: March 5, 2010
    Date of Patent: December 9, 2014
    Assignee: Microsoft Corporation
    Inventors: Gopal Ranganatha Srinivasa, Vipindeep Vangala, Balasubramanyan Ashok, Sriram Rajamani, Jacek Czerwonka, Hongkang Liang, Joseph M. Joy
  • 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
  • Patent number: 8799922
    Abstract: Described are methods of providing data sharing between applications. The applications run on different computers, communicate via a network, and share a same distributed object. Each application maintains on its computer an invariant copy of the distributed object and a variant copy of the distributed object. Each application performs update operations to the distributed object, where such an update operation issued by a given one of the applications is performed by: executing the update operation on the variant copy maintained by the given application (i) without the given application waiting for the other applications to perform the operation (each invariant copy is guaranteed to converge to a same state) and (ii) at each of the applications, including the given application, executing the update operation on the corresponding invariant copies.
    Type: Grant
    Filed: May 25, 2010
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Kaushik Rajan, Shashank Yaduvanshi, Sriram Rajamani
  • Publication number: 20140101090
    Abstract: There is provided a method and system for modeling a data generating process. The method includes generating a dyadic Bayesian model including a pair of probabilistic functions representing a prior distribution and a sampling distribution, and modeling a data generating process based on the dyadic Bayesian model using observed data.
    Type: Application
    Filed: October 8, 2012
    Publication date: April 10, 2014
    Applicant: Microsoft Corporation
    Inventors: Andrew D. Gordon, Thore Graepel, Aditya Nori, Sriram Rajamani, Johannes Borgstroem
  • Publication number: 20130144812
    Abstract: Various technologies described herein pertain to approximating an inputted probabilistic model for statistical relational learning. An initial approximation of formulae included in an inputted probabilistic model can be formed, where the initial approximation of the formulae omits axioms included in the inputted probabilistic model. Further, an approximated probabilistic model of the inputted probabilistic model can be constructed, where the approximated probabilistic model includes the initial approximation of the formulae. Moreover, the approximated probabilistic model and evidence can be fed to a relational learning engine, and a most probable explanation (MPE) world can be received from the relational learning engine. The evidence can comprise existing valuations of a subset of relations included in the inputted probabilistic model. The MPE world can include valuations for the relations included in the inputted probabilistic model.
    Type: Application
    Filed: December 1, 2011
    Publication date: June 6, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Arun Tejasvi Chaganty, Akash Lal, Aditya V. Nori, Sriram Rajamani
  • Publication number: 20110296432
    Abstract: Described are methods of providing data sharing between applications. The applications run on different computers, communicate via a network, and share a same distributed object. Each application maintains on its computer an invariant copy of the distributed object and a variant copy of the distributed object. Each application performs update operations to the distributed object, where such an update operation issued by a given one of the applications is performed by: executing the update operation on the variant copy maintained by the given application (i) without the given application waiting for the other applications to perform the operation (each invariant copy is guaranteed to converge to a same state) and (ii) at each of the applications, including the given application, executing the update operation on the corresponding invariant copies.
    Type: Application
    Filed: May 25, 2010
    Publication date: December 1, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Kaushik Rajan, Sriram Rajamani, Shashank Yaduvanshi
  • Publication number: 20110219360
    Abstract: Software debugging recommendation technique embodiments are presented that generally entails creating a database of characterized software bug descriptions and providing software debugging recommendations from the database in response to a query. This can employ a two-phased approach in the search for similar software bugs. The first is a search phase that takes a query as input and returns a ranked list of software bug descriptions that match the query. These bug descriptions can contain a mix of structured and unstructured data. The second phase is a related-information phase that uses the output of the first phase to retrieve a set of related recommendations such as for people, source files, functions and binaries.
    Type: Application
    Filed: March 5, 2010
    Publication date: September 8, 2011
    Applicant: Microsoft Corporation
    Inventors: Gopal Ranganatha Srinivasa, Vipindeep Vangala, Balasubramanyan Ashok, Sriram Rajamani, Jacek Czerwonka, Hongkang Liang, Joseph M. Joy
  • Patent number: 7941616
    Abstract: Locks are used to protect variables. All variables protected by a lock are allocated on a page associated with a lock. When a thread (called the owner) acquires the lock, a local copy of the memory page containing the variable is created, the original memory page is protected, and all access of the variable in the owner thread is directed to the local copy. Upon releasing the lock, the changes from the local copy are carried over to the memory page and the memory page is unprotected. Any concurrent access of the variable by non-owner threads triggers an exception handler (due to the protection mechanism) and delays such an access until after the owner thread has finished accessing the variable.
    Type: Grant
    Filed: October 21, 2008
    Date of Patent: May 10, 2011
    Assignee: Microsoft Corporation
    Inventors: Sriram Rajamani, Ganesan Ramalingam, Venkatesh-Prasad Ranganath, Kapil Vaswani
  • Publication number: 20100251221
    Abstract: A method of analyzing a computer application is disclosed. The method may break an application into components and the method may determine if the components have already been analyzed for errors, either through static analysis or by a code analysis. If the component has already been analyzed, the previous analysis may be used and the method may move on to the next code section. If the component has not been analyzed, it may be determined if the component may be reached from a given starting point. If the component cannot be reached from a given starting point, the component may not be analyzed. Both static and code testing tools may be used to determine if errors exist. The fined-grained coupling and alternation of may (universal) and must (existential) summaries allow the method to easily navigate through these code fragments while traditional may-only, must-only or non-compositional may-must al-gorithms are stuck in their specific analyses.
    Type: Application
    Filed: March 24, 2009
    Publication date: September 30, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Aditya V. Nori, Patrice Godefroid, Sriram Rajamani, Sai Deep Tetali
  • Publication number: 20100169618
    Abstract: The claimed subject matter provides a system and/or a method that facilitates ensuring non-interference between multiple threads that access a shared resource. An interface can receive a portion of sequential code, wherein the portion of sequential code includes a property that is maintained and relied upon when invoked and executed by a sequential client. A synthesizer component can leverage a sequential proof related to the portion of sequential code in order to derive a concurrency control mechanism for a portion of concurrency code that maintains the property when invoked by a concurrent client, wherein the sequential proof identifies a concurrent interference at an execution point that is tolerable for the concurrent client.
    Type: Application
    Filed: December 30, 2008
    Publication date: July 1, 2010
    Applicant: Microsoft Corporation
    Inventors: Ganesan Ramalingam, Sriram Rajamani, Venkatesh-Prasad Ranganath, Kapil Vaswani, Jyotirmoy Vinay Deshmukh
  • Publication number: 20100100690
    Abstract: Locks are used to protect variables. All variables protected by a lock are allocated on a page associated with a lock. When a thread (called the owner) acquires the lock, a local copy of the memory page containing the variable is created, the original memory page is protected, and all access of the variable in the owner thread is directed to the local copy. Upon releasing the lock, the changes from the local copy are carried over to the memory page and the memory page is unprotected. Any concurrent access of the variable by non-owner threads triggers an exception handler (due to the protection mechanism) and delays such an access until after the owner thread has finished accessing the variable.
    Type: Application
    Filed: October 21, 2008
    Publication date: April 22, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Sriram Rajamani, Ganesan Ramalingam, Venkatesh-Prasad Ranganath, Kapil Vaswani
  • Publication number: 20090327809
    Abstract: During software development, both before and after release, information may be collected and stored that may provide insight to developers as a generalized service. For example, data from past debugging sessions, source code in various repositories, bug repositories, discussion groups, and various documents may provide relevant information for software developers to fix current problems when this information is coherently matched with the problem. Using various sources, a system may mine the stored data to give the current developer information related to past code development, and reveal why the code changed throughout previous development. Using sophisticated analyses to identify similar code patterns across multiple large software projects, discovering patterns in normal and abnormal uses of particular software interfaces, and employing other mining techniques, a developer may find domain-specific information to facilitate ongoing software development.
    Type: Application
    Filed: June 26, 2008
    Publication date: December 31, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Joseph M. Joy, Gopal R. Srinivasa, Kanika Nema, Sriram Rajamani, Krishna Kumar Mehra, Vipindeep Vangala
  • Publication number: 20060248515
    Abstract: Described techniques and tools help model checking scale to large programs while reducing missed errors. In particular, described techniques and tools help reduce the state space of concurrent programs without depending on cycle detection and without scheduling execution of postponed threads at all cycles. For example, described techniques and tools use a type of partial-order reduction called transaction-based reduction to reduce program state space. Analysis is performed at commit points to determine whether to schedule delayed threads.
    Type: Application
    Filed: April 29, 2005
    Publication date: November 2, 2006
    Applicant: Microsoft Corporation
    Inventors: Shaz Qadeer, Sriram Rajamani, Vladimir Levin, Robert Palmer
  • Publication number: 20060247907
    Abstract: Described techniques and tools facilitate model checking for program models that effectively model pointer behavior while avoiding complexity in the model itself, thereby allowing rigorous and accurate testing of the model. A model checking algorithm for deciding assertions in programs with references terminates and yields precise results even on programs that allocate an unbounded amount of memory.
    Type: Application
    Filed: April 29, 2005
    Publication date: November 2, 2006
    Applicant: Microsoft Corporation
    Inventors: Shaz Qadeer, Sriram Rajamani
  • Publication number: 20050257098
    Abstract: Methods and systems are provided for automatically generating an accurate model of communications processes between disparate computing systems that may be analyzed in an efficient manner for error detection in web services systems. Business Process Execution Language for Web Services (BPEL) descriptions are automatically generated for the BPEL-based executable processes utilized by each communicating computing system in a given web services system. The BPEL abstract process descriptions for each communicating computing system are translated into a combined process model according to a suitable modeling language. The process model is tested by a model checking software application. Communications errors between the disparate computing systems are detected by automatically testing the combined process model according to a variety of potential communications scenarios.
    Type: Application
    Filed: April 30, 2004
    Publication date: November 17, 2005
    Applicant: Microsoft Corporation
    Inventors: Anthony Andrews, Sriram Rajamani, Jakob Rehob
  • Publication number: 20050235257
    Abstract: Described is a method that enables the automatic generation of a boolean program that is a predicate abstraction of a program written using a general programming language. The method is capable of abstracting code statements within the program that include procedure calls, assignments, goto statements, conditionals, and pointers. In accordance with the invention, predicates of interest are identified for each code statement in the program. For each particular code statement, the process generates predicate statements that describe an effect that the statement has on the predicates of interest. If the effect of a particular code statement is indeterminable, non-deterministic predicate statements are included in the boolean program to model the indeterminable nature of the code statement. In addition, if a particular code statement includes a procedure call, the arguments and return value of the procedure call are translated to associated predicates in the calling context.
    Type: Application
    Filed: June 17, 2005
    Publication date: October 20, 2005
    Applicant: Microsoft Corporation
    Inventors: Thomas Ball, Sriram Rajamani, Todd Millstein, Rupak Majumdar
  • Publication number: 20050149904
    Abstract: Methods are discussed that enhance program analysis. One aspect of the invention includes a method for checking a model of a program. The method includes a control-flow graph having vertices from the model, applying a transfer function to each vertex to form a set of path edges, and analyzing the set of path edges of a vertex. The set of path edges includes valuations that are implicitly represented so as to inhibit an undesired explosion in the valuations that would hinder the act of analyzing.
    Type: Application
    Filed: November 1, 2004
    Publication date: July 7, 2005
    Applicant: Microsoft Corporation
    Inventors: Thomas Ball, Sriram Rajamani
  • Publication number: 20050086648
    Abstract: The state space of modeled software can be explored using an object-based systematic state explorer. The object-based model can perform well even in light of the complexities of concurrent software. During state space exploration, differences between states can be stored instead of storing a complete copy of the state.
    Type: Application
    Filed: February 13, 2004
    Publication date: April 21, 2005
    Inventors: Anthony Andrews, Shaz Qadeer, Niels Rehof, Sriram Rajamani, Yichen Xie