Patents Assigned to Semmle Limited
  • Publication number: 20130232160
    Abstract: A novel system and computer-implemented method for quickly and efficiently finding and reporting all clones with a large corpus of text. This is achieved by tokenizing the corpus, computing a rolling hash, filtering for hashes that occur more than once, and constructing an equivalence relation over these hashes in which hashes are equated if they are part of the same instance of duplication. The equivalence relation is then used to report all detected clones.
    Type: Application
    Filed: March 2, 2012
    Publication date: September 5, 2013
    Applicant: SEMMLE LIMITED
    Inventor: Julian TIBBLE
  • Publication number: 20130055205
    Abstract: A novel system, computer program product and method and system is provided for filtering the results of a source code analysis tool to present only the most relevant results to a user. A source code analysis tool is used to detect problems in source code files. Of the problems that are detected, some may be irrelevant to a user, making it harder for the user to interpret the results. The present invention removes some of the detected problems, presenting the user with a smaller set of problems to consider. The problems may be filtered by removing problems in files that have not been modified for a certain period of time. In addition, the problems may also be filtered by removing problems in files that have been modified by fewer than a given number of people. The problems may also be filtered by removing problems that occur in third-party source code.
    Type: Application
    Filed: August 23, 2011
    Publication date: February 28, 2013
    Applicant: SEMMLE LIMITED
    Inventors: Damien Sereni, Torbjorn Ekman
  • Patent number: 8332385
    Abstract: A method and system is provided for computing an approximation of the results of a query. The approximation represents a superset of all possible results, by computing a set of records of types (as opposed to a set of records of values, which is the normal result of a query). This is different from conventional systems, which typically infer types for each field individually. For each record of types, one may also keep track of equalities of fields to improve the precision of the approximation. The approximation can be used to detect erroneous parts of queries that always return an empty result, regardless of the contents of the data source. Furthermore, the same approximation is also useful in performing optimizations: first, by eliminating parts of procedure calls that are guaranteed to be irrelevant to the calling context, and second, by eliminating unnecessary type tests in the query.
    Type: Grant
    Filed: March 11, 2009
    Date of Patent: December 11, 2012
    Assignee: Semmle Limited
    Inventors: Oege de Moor, Damien Sereni, Pavel Avgustinov, Mathieu Verbaere, Max Schaefer
  • Publication number: 20120239678
    Abstract: A novel system, computer readable storage medium and method for creating re-usable queries over complex data including hierarchies, trees and graphs is described. This is achieved by an object-oriented query language, where a class is a logical property of a data item, and inheritance is implication between such properties. Virtual method calls execute all relevant method implementations in most specific classes. Expressions can be multi-valued, thus avoiding the need for naming intermediate results. All constructs closely follow the syntax of mainstream object-oriented languages like Java.
    Type: Application
    Filed: March 19, 2012
    Publication date: September 20, 2012
    Applicant: SEMMLE LIMITED
    Inventors: Mathieu VERBAERE, Oege DE MOOR, Elnar HAJIYEV
  • Patent number: 8150866
    Abstract: A system, computer readable storage medium and method for creating re-usable queries over complex data including hierarchies, trees and graphs is described. This is achieved by an object-oriented query language, where a class is a logical property of a data item, and inheritance is implication between such properties. Virtual method calls execute all relevant method implementations in most specific classes. Expressions can be multi-valued, thus avoiding the need for naming intermediate results. All constructs closely follow the syntax of mainstream object-oriented languages like Java.
    Type: Grant
    Filed: January 7, 2009
    Date of Patent: April 3, 2012
    Assignee: Semmle Limited
    Inventors: Mathieu Verbaere, Oege De Moor, Elnar Hajiyev
  • Publication number: 20120016912
    Abstract: What is disclosed are a novel system and method for inferring types of database queries. In one embodiment a program and associated database schema that includes a type hierarchy is accessed. The program includes query operations to a database that contains relations described by a database schema. Types are inferred from definitions in the program by replacing each database relationship in the program by the types in the database schema. A new program is generated with the types that have been inferred with the new program only accessing unary relations in the database. In another embodiment, testing of each of the types that have been inferred is performed for type emptiness. In response to type emptiness being found for a type that have been inferred, a variety of different operations are performing including removing the type, providing a notification regarding the emptiness found for the type, and more.
    Type: Application
    Filed: July 15, 2011
    Publication date: January 19, 2012
    Applicant: SEMMLE LIMITED
    Inventors: Max SCHAEFER, Oege de MOOR
  • Patent number: 8095515
    Abstract: A method and system is provided for computing an approximation of the number of distinct results of a query over a relational data source. The approximation uses information about dependencies between fields of relations, in particular the number of distinct values of a field for each possible value of another field. This information can be obtained by analysis of the data stored in the relational data source, or may be specified as annotations to a database schema. An approximation of the number of results is and the dependencies between fields of each part of the query are computed. The approximation can be used to reorder parts of a query, by using the estimated size of parts to guide reordering. The approximation can further be used to determine which parts of a query are relevant to the evaluation of a subquery, which can be used to guide the magic sets transformation.
    Type: Grant
    Filed: March 18, 2009
    Date of Patent: January 10, 2012
    Assignee: Semmle Limited
    Inventors: Damien Sereni, Pavel Avgustinov, Oege de Moor
  • Publication number: 20090240649
    Abstract: A method and system is provided for computing an approximation of the number of distinct results of a query over a relational data source. The approximation uses information about dependencies between fields of relations, in particular the number of distinct values of a field for each possible value of another field. This information can be obtained by analysis of the data stored in the relational data source, or may be specified as annotations to a database schema. An approximation of the number of results is and the dependencies between fields of each part of the query are computed. The approximation can be used to reorder parts of a query, by using the estimated size of parts to guide reordering. The approximation can further be used to determine which parts of a query are relevant to the evaluation of a subquery, which can be used to guide the magic sets transformation.
    Type: Application
    Filed: March 18, 2009
    Publication date: September 24, 2009
    Applicant: Semmle Limited
    Inventors: DAMIEN SERENI, Pavel Avgustinov, Oege de Moor
  • Publication number: 20090234801
    Abstract: A method and system is provided for computing an approximation of the results of a query. The approximation represents a superset of all possible results, by computing a set of records of types (as opposed to a set of records of values, which is the normal result of a query). This is different from conventional systems, which typically infer types for each field individually. For each record of types, one may also keep track of equalities of fields to improve the precision of the approximation. The approximation can be used to detect erroneous parts of queries that always return an empty result, regardless of the contents of the data source. Furthermore, the same approximation is also useful in performing optimizations: first, by eliminating parts of procedure calls that are guaranteed to be irrelevant to the calling context, and second, by eliminating unnecessary type tests in the query.
    Type: Application
    Filed: March 11, 2009
    Publication date: September 17, 2009
    Applicant: Semmle Limited
    Inventors: Oege De Moor, Damien Sereni, Pavel Avgustinov, Mathieu Verbaere, Max Schaefer
  • Publication number: 20090177640
    Abstract: A system, computer readable storage medium and method for creating re-usable queries over complex data including hierarchies, trees and graphs is described. This is achieved by an object-oriented query language, where a class is a logical property of a data item, and inheritance is implication between such properties. Virtual method calls execute all relevant method implementations in most specific classes. Expressions can be multi-valued, thus avoiding the need for naming intermediate results. All constructs closely follow the syntax of mainstream object-oriented languages like Java.
    Type: Application
    Filed: January 7, 2009
    Publication date: July 9, 2009
    Applicant: Semmle Limited
    Inventors: MATHIEU VERBAERE, Oage de Moor, Elnar Hajiyev