Automated Scripting Data Model Discovery via Static and Runtime Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users of new or unfamiliar scripting languages struggle to understand the relationships among resources, data types, and supported operations due to the lack of an explicit view of the complete data model in interpretive scripting environments.

Innovation Solution

The solution involves constructing a data model using incomplete metadata, automated heuristics, and user input, combining static and runtime analyses to infer resource types and properties from command names and return types, and creating tables to visually represent relationships among resources, commands, and return types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If commands in a scripting environment expose an underlying conceptual data model implicitly through command metadata, then the scripting environment maintains simplicity and flexibility, but users cannot understand the relationships among resources, data types, and supported operations

Engineering Contradiction:
Improveuser understanding of data modelVSAvoidexplicit view of complete data model
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent introduces an intermediary component that analyzes command metadata and generates an explicit data model representation. This intermediary processes the implicit information from commands and transforms it into a visible, structured format that users can understand, without modifying the original scripting environment's implicit nature.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extracts the data model information from the implicit command metadata and separates it into an explicit, standalone representation. By taking out the hidden relationships and making them visible separately, users can study and understand the data model without it being embedded within the command execution flow.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If the scripting environment provides no explicit view of the complete data model, then the environment remains simple and commands remain flexible, but users of new or unfamiliar scripting languages struggle to understand relationships

Engineering Contradiction:
Improveuser familiarity with scripting languageVSAvoiddata model representation system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary analysis of command metadata before user interaction, pre-computing and storing the explicit data model relationships. This preliminary action prepares the information in advance, so when users need to understand the data model, it is already structured and ready for display, reducing the complexity of real-time processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copied representation of the implicit data model from command metadata. Instead of modifying the original command structure, it generates a separate copy that explicitly represents the relationships, allowing users to study this copy without affecting the simplicity and flexibility of the original scripting environment.

Inventive Principle:
Principle #26Copying

3Measurement precision

If static analysis and runtime analysis are combined to determine the data model, then the accuracy of resource type and property inference is improved, but the time and computational resources required increase

Engineering Contradiction:
Improveaccuracy of data model inferenceVSAvoidtime for analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the analysis process into distinct phases: static analysis of command metadata and runtime analysis of actual execution. By dividing the overall task into smaller, manageable segments that can be performed at different times with different depths of analysis, the system achieves high accuracy without requiring all analysis to complete simultaneously, thus managing time requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial analysis in certain contexts and excessive (comprehensive) analysis in others. For well-understood command patterns, simpler static analysis suffices, while for ambiguous or complex cases, full runtime analysis is applied. This selective approach balances accuracy requirements with time constraints, avoiding unnecessary comprehensive analysis in all cases.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9038049B2Automated discovery of resource definitions and relationships in a scripting environment
Publication Date: 2015.05.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9038049B2 patent drawing
  • US9038049B2 patent drawing
  • US9038049B2 patent drawing

AI summary

Embodiments of the invention use incomplete metadata, automated heuristics, and user input to construct a data model implemented by a set of commands used in a scripting environment. A combination of a static analysis and a runtime analysis of the scripting environment may be used to determine the data model. Commands that enumerate resources are identified. Return types for the commands are discovered either from a definition of the command or by running the command with default parameters. Properties for the return types are identified and key fields are identified for indexing. Relationships between the return types are identified, and additional commands associated with the return types are identified. The return type properties are analyzed to identify updatable return types. A data model of the scripting environment is created from the collected information.