Declarative IoT Programming Automation Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of programming Internet of Things (IoT) devices and systems poses a challenge due to the need for interoperability among diverse devices with varied hardware, operating systems, and software applications, often requiring formal programming expertise, which limits innovation and development, especially for novice users.

Innovation Solution

A declarative programming paradigm is introduced, allowing users to specify the relationships between IoT devices without detailing the logical order, enabling the development automation system to automatically generate the necessary logic for interoperation, facilitated by a development automation engine that includes resource discovery, data analytics, and machine learning to learn and adapt the system's behavior.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If traditional imperative programming is used for IoT devices, then programming precision and control are improved, but device complexity and difficulty of operation increase

Engineering Contradiction:
Improveprogramming precisionVSAvoidease of programming
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The patent introduces a declarative programming language as an intermediary between the user and the complex IoT system. This language allows users to specify desired outcomes without detailing the logical order of operations, automatically generating the necessary control logic. The declarative syntax acts as a mediator that translates high-level user intentions into low-level device control commands, resolving the contradiction between programming precision and ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional imperative programming mechanics with a declarative approach. Instead of requiring users to manually construct step-by-step control logic (mechanical programming process), the system automatically generates control sequences from declarative specifications. This substitution eliminates the need for users to understand complex programming mechanics while maintaining precise device control through automated logic generation.

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

2Manufacturing precision

If formal programming expertise is required for IoT development, then programming precision is improved, but adaptability and ease of manufacture deteriorate

Engineering Contradiction:
Improveprogramming precisionVSAvoidease of application development
Core Design Contradiction:
Manufacturing precisionVSEase of manufacture

Solution Approach 1:

The declarative programming language serves as an intermediary that abstracts away complex programming details from users. It enables individuals without formal programming expertise to develop IoT applications by simply specifying desired behaviors in a simplified syntax. The system automatically handles the translation into precise control logic, maintaining programming precision while dramatically improving ease of application development.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal declarative programming interface that can be used by anyone regardless of programming background. This universal approach allows the same simplified language to serve both novice users and experienced developers, enabling a broader range of people to create IoT applications while maintaining consistent programming precision across all user skill levels.

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

3Manufacturing precision

If detailed logical order is specified in programming, then control precision is improved, but device complexity and loss of information increase

Engineering Contradiction:
Improvecontrol precisionVSAvoidprogramming complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent extracts the detailed logical ordering from user specifications and automatically generates it through compilation. Users only need to specify the desired outcomes and relationships between devices, without detailing the logical sequence of operations. The system extracts this logical structure during the translation process, separating user concerns about what should happen from the system's responsibility for determining how it happens, thereby reducing programming complexity while maintaining control precision.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces manual logical ordering mechanics with automated logic generation. Instead of requiring users to explicitly define the sequence and timing of operations (mechanical programming approach), the system automatically determines the logical order based on device relationships and desired outcomes. This substitution reduces programming complexity while preserving control precision through systematic automated reasoning.

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

Data Source

PatentUS11025719B2Declarative machine-to-machine application programming
Publication Date: 2021.06.01 INTEL CORP
  • US11025719B2 patent drawing
  • US11025719B2 patent drawing
  • US11025719B2 patent drawing

AI summary

Multiple devices are detected in an environment and a user input is received to define a relationship between two or more devices in the plurality of devices. A system can determine that a first of the two or more devices includes a sensor resource and a second of the two or more devices includes an actuator resource. Data is identified describing outputs of the first device corresponding to the sensor resource and inputs of the second device corresponding to the actuator resource. A model is generated modeling interoperation of the sensor resource and actuator resource based at least in part on the data.