Natural Language Interface for API Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in maintaining knowledge of various APIs and overcoming steep learning curves, leading to production delays due to unfamiliarity with available APIs in modern programming environments.

Innovation Solution

A computer-implemented method using a natural language interface system to convert task specifications into domain-independent data flow graphs, interactively refine programs, select APIs, and generate API calls, enabling developers to create software programs without extensive knowledge of specific APIs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually maintain knowledge of various APIs, then they can understand API details, but it increases learning curve and production delay

Engineering Contradiction:
ImproveAPI knowledge accuracyVSAvoidProduction delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables self-service by automatically selecting and recommending appropriate APIs based on the natural language task specification. The API selection system analyzes the task requirements and autonomously identifies suitable APIs from the library, eliminating the need for developers to manually search and study API documentation, thus reducing learning time and production delays while maintaining reliable API usage.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary system between the developer's natural language specification and the actual API implementation. This intermediary includes a domain independent data flow graph generator and an API selector that translates high-level task descriptions into concrete API calls, shielding developers from API complexity while ensuring accurate and timely implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If developers learn all available APIs, then they can use any API, but it increases device complexity and learning curve

Engineering Contradiction:
ImproveAPI usage flexibilityVSAvoidLearning complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system provides universality by creating a single, unified interface (natural language conversation) that can handle diverse API selection and task execution. The domain independent data flow graph serves as a universal intermediate representation that can model various workflows, and the API selection system universally applies the same selection logic across different API domains, simplifying the developer's interaction while maintaining broad versatility.

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

Solution Approach 2:

The patent segments the complex API selection process into distinct manageable components: task specification, domain independent data flow graph generation, API selection, and implementation. This segmentation breaks down the overwhelming complexity of learning all APIs into smaller, more manageable steps, where each component handles a specific aspect of the overall system design.

Inventive Principle:
Principle #1Segmentation

3Productivity

If developers use automation tools, then productivity improves, but they still face steep learning curves

Engineering Contradiction:
ImproveDevelopment efficiencyVSAvoidOperation simplicity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent replaces the mechanical system of manual API documentation study and configuration with an automated intelligent system. The natural language interface substitutes for traditional command-line or graphical configuration mechanisms, while the domain independent data flow graph and API selection algorithms automatically generate implementations, eliminating the need for developers to learn complex tooling while maintaining high productivity.

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

Data Source

PatentUS10019285B2Natural language conversation-based programming
Publication Date: 2018.07.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10019285B2 patent drawing
  • US10019285B2 patent drawing
  • US10019285B2 patent drawing

AI summary

A computer-implemented method includes receiving, from a natural language interface system, a natural language task specification, and converting the natural language task specification into a domain independent data flow graph. The data flow graph includes substeps. The method further includes: presenting the data flow graph via the natural language interface system as a natural language program; interactively refining the natural language program; and correspondingly modifying the data flow graph. The computer-implemented method further includes, for each substep: selecting one or more candidate APIs from an API library, based on the substep; interactively narrowing the one or more candidate APIs to at least one selected API; implementing the substep by specifying one or more calls to the at least one selected API to yield a substep implementation; and appending the substep implementation to a result program. A corresponding computer program product and computer system are also disclosed.