Web-Based Simulator for Digital Assistant Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex digital assistant-based applications face challenges in debugging and identifying errors due to their sophisticated features and state-dependent nature, making it difficult to simulate and test their behavior across various digital assistant surfaces uniformly.

Innovation Solution

A web-based simulation tool that employs a two-way communication protocol, state machine, and iframe communications to simulate digital assistant-based applications, allowing developers to load and test their applications in a controlled environment, with iframes configured to communicate dynamically and synchronize conversational flows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If digital assistant-based applications incorporate sophisticated features and multiple interactions, then the application functionality and capabilities are improved, but the difficulty of identifying errors and malfunctions increases

Engineering Contradiction:
Improveapplication functionalityVSAvoiderror identification difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments the application testing process into multiple isolated iframe containers, each representing a separate digital assistant surface (e.g., mobile device, speaker, television). This segmentation allows developers to test the application's behavior on each surface independently, making it easier to identify and locate specific errors without the complexity of testing all surfaces simultaneously in a unified environment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a test intermediary component that acts as a mediator between the application under test and the various digital assistant surfaces. This intermediary captures metrics, callbacks, and communication data from the application, then presents them through a test user interface. This mediation layer simplifies error detection by centralizing the collection and display of diagnostic information from complex multi-surface interactions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If developers test applications manually across multiple digital assistant surfaces, then comprehensive testing coverage is achieved, but the time required for testing increases

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent creates virtual copies of multiple digital assistant surfaces within the same testing environment using iframes. Each iframe is configured to simulate a specific surface (mobile device, speaker, television, etc.), allowing developers to test the application against multiple surfaces simultaneously in a unified interface. This copying approach maintains comprehensive testing coverage while dramatically reducing the time required compared to manual testing on physical devices.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent builds a universal test framework that can simulate multiple digital assistant surfaces through a single unified interface. The test intermediary and user interface are designed to work across all surface types, allowing one testing system to perform the work of multiple separate testing environments. This multi-functionality enables developers to achieve comprehensive coverage without proportionally increasing testing time.

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

3Ease of operation

If a unified testing interface is provided for all digital assistant surfaces, then ease of operation is improved, but the ability to simulate surface-specific behavior may be compromised

Engineering Contradiction:
Improvetesting interface usabilityVSAvoidsurface-specific behavior simulation
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments the unified testing interface into distinct iframe containers, each dedicated to a specific digital assistant surface. While the overall interface remains unified and easy to navigate, each segment can be configured to simulate surface-specific behavior (e.g., voice-only interaction for speakers, touchscreen interaction for mobile devices). This segmentation within unity allows the interface to maintain ease of operation while preserving the ability to test surface-specific behaviors.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic testing interface where the unified user interface can adapt its behavior based on which digital assistant surface is being simulated. The test intermediary can dynamically adjust the available controls, metrics displayed, and interaction modes to match the specific surface being tested. This dynamic adaptation allows a single unified interface to provide surface-specific testing capabilities without requiring separate interfaces for each surface type.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3796178B1Immersive web-based simulator for digital assistant-based applications
Publication Date: 2023.08.30 GOOGLE LLC
  • EP3796178B1 patent drawingFigure 1
  • EP3796178B1 patent drawingFigure 2
  • EP3796178B1 patent drawingFigure 3

AI summary

Immersive web-based simulator for digital assistant-based applications is provided. A system can provide, for display in a web browser, an inner iframe configured to load, in a secure, access restricted computing environment, an application configured to integrate with a digital assistant. The application can be provided by a third-party developer device. The system can provide, for display in a web browser, an outer iframe configured with a two-way communication protocol to communicate with the inner iframe. The system can provide a state machine to identify a current state of the application loaded in the inner frame, and load a next state of the application responsive to a control input.