Software Source Code Comparison via Concept Frequency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of software and the use of open source code pose challenges in efficiently comparing and analyzing similarities between data objects, particularly in identifying intellectual property risks and preventing unintended infringement, as existing methods are inadequate for multi-dimensional comparisons across varying structures and contents.

Innovation Solution

A system that uses a profiler to characterize corpuses, an encryption engine for one-way transformation, and an analyzer to determine concept frequencies, enabling comparison of transformed corpuses while maintaining confidentiality, and allowing for correlation of concepts across different data objects.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If programmers reuse open source code to meet development challenges, then development efficiency is improved, but intellectual property risks increase due to unknown licensing restrictions and potential patent infringements

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidintellectual property safety
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary analysis of open source code before integration by automatically comparing it against known proprietary codebases and licensing databases. This preliminary action identifies potential IP conflicts and licensing restrictions before the code is incorporated, allowing programmers to make informed decisions about code reuse while maintaining development efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces an intermediary analysis layer between code reuse and IP risk assessment. This intermediary component automatically compares code snippets, functions, and modules against known proprietary implementations and licensing databases, serving as a mediator that translates code reuse actions into IP risk evaluations without requiring manual legal review.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If companies conduct regular IP audits to monitor intellectual property assets, then IP protection is improved, but the complexity and time required for auditing increases

Engineering Contradiction:
ImproveIP protectionVSAvoidauditing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system enables self-service IP auditing by automatically analyzing codebases against known proprietary implementations and licensing databases. The auditing process is performed autonomously without requiring manual intervention from legal teams or IP specialists, significantly reducing the complexity and time required for regular IP audits while maintaining thorough monitoring of intellectual property assets.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces manual mechanical auditing processes with automated computational analysis. Instead of manual code review and legal analysis, the system uses algorithmic comparison of code structures, functions, and licensing metadata to automatically identify IP risks, substituting complex manual procedures with efficient automated mechanisms.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If programmers modify source code slightly when reusing it, then adaptability is improved, but the difficulty of detecting similarities using traditional comparison methods increases

Engineering Contradiction:
Improvecode adaptabilityVSAvoidsimilarity detection difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system segments code analysis into multiple dimensions including syntax structure, control flow, data types, and semantic meaning. By comparing code across these segmented dimensions rather than relying solely on exact text matching, the system can detect similarities even when programmers make minor modifications to variable names, formatting, or implementation details, thus maintaining detection accuracy despite code adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameters of code comparison from literal string matching to semantic and structural feature analysis. By transforming code into normalized representations that capture essential programming concepts and relationships, the system can detect similarities between code that differs in surface-level details, enabling accurate detection even when code is slightly modified for adaptation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7568109B2System for software source code comparison
Publication Date: 2009.07.28 IPX
  • US7568109B2 patent drawing
  • US7568109B2 patent drawing
  • US7568109B2 patent drawing

AI summary

A system for analyzing similarities between a first and second corpus or between a set of concepts and a corpus uses natural language processing and machine intelligence methods to replace terms or phrases in the corpus with concepts, determine the frequency of each concept in the corpus, and convert the corpus into a concept frequency file to enable easy comparison of the two corpuses or easy retrieval of items from the corpus that contain concept. Difference analysis and a combination of content and spectral analysis may be employed.