Semantic Anchor-Based Application Similarity Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Detecting similarity between software applications is challenging due to the mismatch between high-level requirements and low-level implementation details, leading to imprecise similarity detection and inefficient reuse of code, as existing code search engines rely on keyword matching and syntagmatic associations without considering semantic anchors.
Innovation Solution
A method that uses semantic anchors, such as API calls with precisely defined semantics, to compute the similarity between applications by building Term-Document Matrices and applying Latent Semantic Indexing, which assigns weights to API calls based on their occurrence and importance, and combines package and class matrices to generate a similarity index.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If keyword matching and syntagmatic associations are used for similarity detection, then the search process is simple and fast, but the precision of similarity detection deteriorates due to mismatch between high-level requirements and low-level implementation details
Solution Approach 1:
The patent introduces semantic anchors (API calls with precisely defined semantics) as intermediaries between high-level requirements and low-level implementation details. These semantic anchors serve as a mediator that bridges the gap between different levels of abstraction, enabling precise similarity detection without requiring direct comparison of high-level requirements with low-level code. The semantic anchors provide a common ground for comparison that preserves precision while managing complexity.
Solution Approach 2:
The patent transforms the similarity detection problem from a single-dimensional keyword matching approach to a multi-dimensional approach by incorporating semantic dimensions. Instead of merely comparing text strings, the system analyzes applications across multiple dimensions including API call usage patterns, semantic relationships, and structural similarities. This dimensional expansion enables more precise detection while the systematic framework manages the increased complexity.
2Measurement precision
If semantic anchors and Latent Semantic Indexing are used to improve similarity detection precision, then the identification of similar applications becomes more accurate, but the computational complexity and processing time increase
Solution Approach 1:
The patent applies Latent Semantic Indexing (LSI) in advance to pre-process and index the semantic relationships within the application repository. By performing this complex semantic analysis beforehand and storing the results in an indexed format, the system transforms expensive real-time semantic comparisons into efficient lookups and similarity calculations. This preliminary action shifts the computational burden from query time to indexing time, significantly reducing the processing time for actual similarity detection while maintaining high precision.
3Loss of information
If comprehensive analysis of high-level requirements and low-level implementation is performed, then the understanding of application similarity improves, but the intellectual effort and resources required increase
Solution Approach 1:
The patent implements an automated system that performs the comprehensive analysis of both high-level requirements and low-level implementation details without requiring manual intellectual effort from programmers. The system automatically extracts semantic anchors, builds term-document matrices, applies LSI, and computes similarity indices. This self-service automation preserves complete information about application similarities while eliminating the need for programmers to manually perform the complex analysis, thereby maintaining productivity.
Data Source
AI summary
A system, method, and computer-readable medium, is described that finds similarities among programming applications based on semantic anchors found within the source code of such applications. The semantic anchors may be API calls, such as Java's package and class calls of the JDK. Latent Semantic Indexing may be used to process the application and semantic anchor data and automatically develop a similarity matrix that contains numbers representing the similarity of one program to another.


