Code Block Identification via Natural Language Parsing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in identifying and selecting appropriate code blocks for natural language processing tasks due to the complexity of searching through code repositories, where code blocks often have different names and fail to capture subtle variations in expressions.

Innovation Solution

A command-processing server that stores and manages code blocks capable of interpreting natural language expressions, providing a list of relevant code blocks to developers based on input expressions, with associated metadata and match strength measures to rank their suitability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If developers search code repositories by code block names to find appropriate interpretation code, then they can locate some relevant code blocks, but they burden themselves with guessing the correct names and overlook many relevant code blocks due to naming variations

Engineering Contradiction:
Improveease of searching for code blocksVSAvoidrelevant code blocks overlooked
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The system introduces an intermediary component (the code search engine) that mediates between the developer's natural language query and the code block repository. Instead of directly searching by name, the system uses the natural language expression as an intermediary key to find matching code blocks through pattern matching and semantic analysis, eliminating the need for developers to guess code block names.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system inverts the traditional search approach by not searching for code blocks by their names, but rather by having code blocks register their own patterns and capabilities. The search then works backwards from the natural language expression to find code blocks that match the expression patterns, rather than from code block names to expressions.

Inventive Principle:
Principle #13The other way round (Inversion)

2Reliability

If developers manually examine code repositories to find code blocks for specific interpretation tasks, then they can potentially find suitable code, but the process becomes highly complex and time-consuming requiring sophisticated understanding of computational linguistics

Engineering Contradiction:
Improveaccuracy of code block selectionVSAvoidcomplexity of searching and selecting code
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Code blocks are equipped with self-descriptive metadata including patterns they match, their functionality, and their interpretation capabilities. This allows code blocks to serve themselves by providing the information needed for selection, eliminating the need for developers to manually analyze and understand computational linguistics details of each code block.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary organization and tagging of code blocks with metadata about their patterns, functionality, and interpretation capabilities before the search occurs. This preliminary structuring enables the search engine to quickly match natural language expressions with appropriate code blocks without requiring complex real-time analysis by developers.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If code blocks are stored in a repository with various naming conventions, then developers have flexibility in naming, but searching becomes difficult as the same functionality may have different names and developers cannot reliably locate desired code blocks

Engineering Contradiction:
Improveflexibility in code block namingVSAvoiddifficulty of locating code blocks
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The search system serves multiple functions simultaneously: it performs keyword matching, pattern matching, and semantic analysis to locate code blocks. This multi-functional approach allows the system to handle various naming conventions and find code blocks based on their functionality rather than their names, maintaining naming flexibility while improving locatability.

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

Data Source

PatentUS11003426B1Identification of code for parsing given expressions
Publication Date: 2021.05.11 SOUNDHOUND AI IP LLC
  • US11003426B1 patent drawing
  • US11003426B1 patent drawing
  • US11003426B1 patent drawing

AI summary

A command-processing server provides natural language processing services to applications. The command-processing server stores a set of code blocks, each code block being able to interpret a set of corresponding natural language expressions. The command-processing server accepts natural language expressions and identifies the code blocks that are capable of interpreting those expressions by attempting to parse the natural language expressions using the code blocks. The command-processing server then provides a list of the identified code blocks to the developers, who can then incorporate the code blocks into their applications.