Semmle Limited Patent applications |
Patent application number | Title | Published |
20130232160 | FINDING DUPLICATE PASSAGES OF TEXT IN A COLLECTION OF TEXT - 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. | 09-05-2013 |
20130055205 | FILTERING SOURCE CODE ANALYSIS RESULTS - 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. | 02-28-2013 |
20120239678 | CREATING CONCISE AND RE-USEABLE QUERIES OVER COMPLEX DATA - 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. | 09-20-2012 |
20120016912 | TYPE INFERENCE FOR DATALOG WITH COMPLEX TYPE HIERARCHIES - 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. | 01-19-2012 |
20090240649 | APPROXIMATING RELATION SIZES USING FIELD DEPENDENCIES - 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. | 09-24-2009 |
20090234801 | APPROXIMATING QUERY RESULTS BY RELATIONS OVER TYPES FOR ERROR DETECTION AND OPTIMIZATION - 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. | 09-17-2009 |
20090177640 | CREATING CONCISE AND RE-USEABLE QUERIES OVER COMPLEX DATA - 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. | 07-09-2009 |