Knowledge Graph Syntax Rule Generation for Natural Language Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Most programming languages are not intuitive for non-technical users, requiring them to learn specific languages to interact with computing systems, which can be a barrier for accessing data.

Innovation Solution

A system that parses a knowledge graph to identify metadata, generates token definitions, and creates syntax rules to convert user input into programming instructions, allowing non-technical users to access data using a high-level programming language.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a traditional programming language is used, then the computing system can execute complex instructions, but non-technical users find it difficult to learn and use

Engineering Contradiction:
ImproveEase of use for non-technical usersVSAvoidComplexity of programming language syntax
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a natural language processing intermediary that translates between user-friendly natural language queries and complex programming instructions. The system includes a translator component that converts natural language input into SQL queries or other programming language instructions, allowing non-technical users to interact with computing systems without learning complex syntax while still enabling execution of complex instructions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If programming knowledge is required to access data, then data access control is precise, but non-technical users are blocked from accessing data

Engineering Contradiction:
ImproveAccessibility for non-technical usersVSAvoidLoss of programming knowledge requirement
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent replaces the mechanical requirement of programming knowledge with an automated natural language processing system. Instead of requiring users to manually construct programming syntax, the system uses AI-driven translation to convert natural language intent into appropriate data access instructions, maintaining data access control while eliminating the barrier of programming knowledge requirements.

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

3Ease of operation

If a high-level programming language is created from knowledge graphs, then user input can be converted to programming instructions, but the system complexity increases

Engineering Contradiction:
ImproveConversion of user input to programming instructionsVSAvoidSystem complexity for generating syntax rules
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-processing and organizing data into knowledge graphs before the translation process. The system constructs structured knowledge representations in advance, including entity relationships and data schemas, which then serve as templates for generating programming instructions. This preliminary structuring reduces the complexity of the translation process by providing a organized framework that guides the conversion from natural language to programming instructions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11803359B2Defining high-level programming languages based on knowledge graphs
Publication Date: 2023.10.31 SAP SE
  • US11803359B2 patent drawing
  • US11803359B2 patent drawing
  • US11803359B2 patent drawing

AI summary

Some embodiments provide a non-transitory machine-readable medium that stores a program. The program parses a knowledge graph comprising a plurality of nodes and a plurality of edges to identify metadata associated with the plurality of nodes and the plurality of edges. Each edge in the plurality of edges connects a pair of nodes in the plurality of nodes. Each node in the plurality of nodes represents an entity. Each edge in the plurality of edges connecting a particular pair of nodes in the plurality of nodes represents a relationship between two entities represented by the particular pair of nodes. The program further determines a set of token definitions. The program also generates a set of syntax rules based on the identified metadata and the set of token definitions.