Augmented Finite State Automata for XQuery Type System

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional type systems for programming languages, such as XQuery, face challenges in determining complex types due to the inability of existing finite state automata representations to efficiently answer questions like type equality, subset relationships, and intersections, as they are not well-suited to handle subtype relationships and nested types.

Innovation Solution

The implementation of an augmented finite state automata system that accommodates symbols with subtype relationships and nested types, allowing for the efficient determination of type equality, subset relationships, and intersections by using techniques such as union operations and subtype augmentation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional finite state automata are used to represent types, then the type system can be implemented, but it cannot efficiently answer questions about type equality, subset relationships, and intersections for complex types

Engineering Contradiction:
Improvetype determination accuracyVSAvoidautomata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies nesting by embedding subtype relationships within the finite state automata structure itself. Each state in the automata is associated with a set of subtypes, allowing complex type relationships to be represented through nested hierarchical structures. This enables the system to answer type equality, subset, and intersection questions by traversing these nested subtype associations rather than requiring completely separate data structures.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent makes the finite state automata multi-functional by enabling it to simultaneously represent type information, subtype relationships, and perform set operations. The same automata structure that recognizes valid types also answers subset and intersection questions through its augmented state transitions and subtype associations, eliminating the need for separate specialized structures for each function.

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

2Adaptability or versatility

If a class hierarchy is used to model type relationships, then atomic types can be represented, but it is not sufficient to answer questions about complex types

Engineering Contradiction:
Improvetype system flexibilityVSAvoidtype relationship determination
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent replaces the conventional class hierarchy mechanism with an augmented finite state automata approach. Instead of relying on inheritance and polymorphism mechanisms, the system uses automata theory concepts including state transitions, regular expressions, and set operations to represent and reason about type relationships. This substitution enables more efficient and comprehensive handling of complex types while maintaining the flexibility needed for XQuery's rich type system.

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

Data Source

PatentUS7509631B2Systems and methods for implementing a computer language type system
Publication Date: 2009.03.24 ORACLE INT CORP
  • US7509631B2 patent drawing
  • US7509631B2 patent drawing
  • US7509631B2 patent drawing

AI summary

The invention provides systems and methods for implementation of a computer language type system by augmenting finite state automata algorithms to accommodate symbols having both subtype relationships and nested types. To make the classical automata algorithms work for type system with subtypes, finite state automata for a data type is augmented by additional transitions that include secondary symbols, wherein secondary symbols are subtypes of symbols of alphabet of finite state automata. A data type when compared to another data type must compare both names and the contents.