Developer Tools

Weighted Partial Similarity method detects project-level code plagiarism with 35 Java projects

Partial reuse and small-module noise are now tackled with a new weighting scheme

Deep Dive

A new academic paper from researchers including Nikolay Fedorov and Akito Monden introduces a framework for comparing software birthmarks at the project level rather than individual modules. Software birthmarks are unique identifiers extracted from code that can detect plagiarism even after heavy modification. Existing methods compare source or class files independently, but real-world code reuse often involves copying only a portion of a larger project. This creates two problems: partial reuse (e.g., only 10% of a project is copied) and incidental similarity from small modules (e.g., boilerplate code can trigger false positives).

The proposed solution uses symmetric aggregation of module-level similarities, then applies two complementary mechanisms. First, a weighting scheme assigns higher importance to larger modules, reducing noise from small matches. Second, a partial similarity method focuses on the top fraction of highly similar module pairs, enabling detection of even small reused portions. The team evaluated their approach on 35 open-source Java projects across ten categories, using different versions of the same project as reuse cases. Results show consistent improvement over existing approaches in both resilience (detecting reused code despite modifications) and credibility (avoiding false positives). The dataset and code are publicly available on arXiv.

Key Points
  • Framework aggregates module-level birthmark similarities into a project-wide score using symmetric embedding
  • Weighting scheme gives larger code modules more influence, cutting false positives from small boilerplate modules
  • Partial similarity method selects top module pairs to catch reuse even when only a minority of modules are copied

Why It Matters

Better project-level detection means fewer false accusations in code audits and cleaner open-source repositories

📬 Get the top 10 AI stories daily