Graph Neural Network Code Annotation System

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data scientists often neglect creating or updating documentation in computational notebooks, leading to challenges in sharing and understanding their work, both with others and in the future, due to the tedious and labor-intensive nature of manual documentation.

Innovation Solution

A learning-based automated machine learning code annotation system using a graph neural network that generates natural language annotations for code segments, reducing the need for manual documentation and enhancing error detection and correction in data science workflows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual documentation is created for code segments, then documentation quality and accuracy are improved, but time consumption and labor effort increase significantly

Engineering Contradiction:
Improvedocumentation qualityVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables code to automatically generate its own documentation through the annotation generation module, which processes code segments and produces natural language annotations without requiring manual intervention. This self-service approach resolves the contradiction by making the code document itself, eliminating the time-consuming manual documentation process while maintaining documentation quality through automated analysis of code structure and semantics.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical process of manual documentation writing with an automated machine learning system. The classification module and annotation generation module substitute human cognitive and writing activities with algorithmic processing, using graph neural networks to analyze code dependencies and generate annotations automatically. This substitution eliminates the trade-off between documentation quality and time consumption.

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

2Productivity

If automated annotation generation is implemented, then productivity is improved, but annotation accuracy may deteriorate compared to manual documentation

Engineering Contradiction:
Improvedocumentation efficiencyVSAvoidannotation accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments the documentation generation process into distinct functional modules: code segment identification, classification module for determining annotation categories, and annotation generation module for producing natural language annotations. This segmentation allows each module to specialize in specific tasks, improving both productivity through automation and accuracy through targeted processing of different code aspects. The graph neural network further segments the analysis by processing individual code segments with their dependency relationships.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system incorporates feedback mechanisms where the classification module's output feeds into the annotation generation module, and the generated annotations can be evaluated and refined. The graph neural network provides feedback by analyzing code dependency relationships and adjusting annotation generation accordingly. This feedback loop ensures that automated annotations maintain high accuracy while achieving improved productivity through the automated pipeline.

Inventive Principle:
Principle #23Feedback

3Reliability

If comprehensive code analysis is performed to generate accurate annotations, then annotation quality is improved, but system complexity increases

Engineering Contradiction:
Improveannotation qualityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The graph neural network serves multiple functions within the system: it analyzes code dependency relationships, determines annotation categories through the classification module, and generates natural language annotations through the annotation generation module. This multi-functionality reduces system complexity by consolidating multiple processing tasks into a single versatile component, while still achieving comprehensive code analysis and high annotation quality.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system transitions from traditional linear code analysis to a graph-based dimensional representation, where code segments and their dependencies are analyzed in multiple dimensions simultaneously. This dimensional change allows the graph neural network to process complex code relationships more efficiently, achieving comprehensive analysis and high annotation quality without proportionally increasing system complexity. The graph structure provides a natural framework for representing and processing multi-dimensional code dependencies.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11928156B2Learning-based automated machine learning code annotation with graph neural network
Publication Date: 2024.03.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11928156B2 patent drawing
  • US11928156B2 patent drawing
  • US11928156B2 patent drawing

AI summary

Obtain, at a computing device, a segment of computer code. With a classification module of a machine learning system executing on the computing device, determine a required annotation category for the segment of computer code. With an annotation generation module of the machine learning system executing on the computing device, generate a natural language annotation of the segment of computer code based on the segment of computer code and the required annotation category. Provide the natural language annotation to a user interface for display adjacent the segment of computer code.