Source Code Correlation Filter for Plagiarism Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software tools for comparing source code struggle to differentiate between relevant and irrelevant correlations, making it difficult to identify plagiarism amidst other sources of similarity such as third-party code, common algorithms, and common author styles.

Innovation Solution

A software tool that filters out irrelevant correlations by allowing users to discard specific identifiers, statements, comments, and instruction sequences from the correlation results, using a post-process filter file to refine the correlation database and adjust the correlation scores accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If source code correlation analysis is performed to detect plagiarism, then plagiarism detection capability is improved, but false positives increase due to irrelevant correlations from third-party code, common algorithms, and common author styles

Engineering Contradiction:
Improveplagiarism detection accuracyVSAvoidfalse positives
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent extracts and removes irrelevant correlation factors from the analysis. Users can specify which factors (identifiers, statements, comments, instruction sequences) to exclude, and the system filters these out from the correlation calculation, thereby eliminating false positives while maintaining genuine plagiarism detection capability

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameters of the correlation analysis by allowing dynamic adjustment of which code elements are considered. Users can modify the weightings and inclusions/exclusions of different factor types (identifiers, statements, comments, instruction sequences), transforming the correlation calculation to focus only on relevant similarities

Inventive Principle:
Principle #35Parameter changes

2Reliability

If multiple correlation analysis runs are performed to filter irrelevant correlations, then detection accuracy is improved, but time consumption increases

Engineering Contradiction:
Improvedetection accuracyVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary configuration where users define their filtering criteria before running the correlation analysis. By pre-specifying which factors to exclude and how to weight different elements, the system can execute a single optimized analysis run rather than requiring multiple sequential runs, thereby reducing time consumption while maintaining accuracy

Inventive Principle:
Principle #10Preliminary action

3Productivity

If detailed correlation analysis is performed on all code elements, then comprehensive detection is improved, but complexity of analysis increases

Engineering Contradiction:
Improvedetection comprehensivenessVSAvoidanalysis complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the code analysis into distinct factor types: identifiers, statements, comments, and instruction sequences. Each segment can be independently controlled and filtered, allowing users to simplify the analysis by excluding specific segments (e.g., comments or identifiers) while maintaining comprehensive detection capability across the remaining elements

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8495586B2Software for filtering the results of a software source code comparison
Publication Date: 2013.07.23 SAFE IP LLC
  • US8495586B2 patent drawing
  • US8495586B2 patent drawing
  • US8495586B2 patent drawing

AI summary

A software tool allows a user to filter out the results produced by a software source code correlation program that is executed on sets of software source code files. The tool allows the user to discard elements of source code that are not relevant to the analysis without requiring the user to run the correlation program multiple times.