10642582

System of Type Inference for Tuple Graph Programs Method of Executing a Tuple Graph Program Across a Network

PublishedMay 5, 2020
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
9 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method for type inference in a program, the method comprising: receiving, by one or more computing devices, first type information for one or more input streams of the program, wherein the program includes a directed graph wherein nodes in the graph represent operators and wherein edges in the graph represent streams of tuples that flow from one operator to another along the edges during execution of the program; receiving, by the one or more computing devices, for each operator, an output type annotation; determining, for each operator in one forward pass through the graph, second type information for one or more output streams based on the first type information associated with one or more incoming streams of the operator and the output type annotation associated with the operator, wherein the second type information includes constraints that restrict the tuples included in the one or more streams; and associating the second type information with the respective one or more output streams.

Plain English Translation

The invention relates to type inference in data processing programs, particularly those structured as directed graphs where nodes represent operators and edges represent data streams. The problem addressed is the need to automatically determine and enforce type constraints on data streams within such programs, ensuring type consistency across operators without manual annotation. The method involves analyzing a program represented as a directed graph, where nodes are operators and edges are data streams carrying tuples. The process begins by receiving initial type information for input streams and output type annotations for each operator. In a single forward pass through the graph, the system computes type information for each operator's output streams based on the input stream types and the operator's output annotation. This computed type information includes constraints that define the allowed tuples in the streams, ensuring type consistency throughout the program. The resulting type constraints are then associated with the respective output streams. This approach enables automatic type inference in graph-based programs, reducing the need for manual type specification while maintaining type safety. The forward-pass computation ensures efficiency, and the constraints enforce type correctness during execution.

Claim 2

Original Legal Text

2. The method of claim 1 , wherein the output type annotation includes at least one of “+”, “special”, a typespecifier, or combinations thereof, wherein the typespecifier specifies a type as a sequence of [fieldname:typename] tuples.

Plain English Translation

This invention relates to a method for annotating output types in a programming or data processing system, addressing the challenge of clearly defining and managing data types in complex systems. The method involves generating output type annotations that describe the structure and characteristics of data outputs. These annotations can include symbols such as "+" or "special" to indicate specific properties, or a typespecifier that defines a type as a sequence of fieldname:typename tuples. The typespecifier allows for detailed type definitions by specifying each field within a data structure along with its corresponding type. This approach enhances type safety and clarity in data processing, particularly in systems where outputs may have complex or nested structures. The annotations can be used to validate data, improve debugging, or facilitate interoperability between different components or systems. The method ensures that type information is explicitly defined and easily interpretable, reducing errors and improving system reliability.

Claim 3

Original Legal Text

3. The method of claim 1 , further including the step: raising an error if the output type annotation of the operator is not consistent with the first type information for one or more incoming streams of the operator.

Plain English Translation

A system and method for validating data stream processing in a distributed computing environment ensures type consistency between operator outputs and incoming data streams. The method involves analyzing type annotations of operators and comparing them with the type information of incoming data streams. If a mismatch is detected between the output type annotation of an operator and the type information of one or more incoming streams, an error is raised to prevent incorrect data processing. This validation step is part of a broader process that includes receiving a data processing graph, where the graph defines a plurality of operators and their connections. Each operator processes one or more incoming data streams and produces an output stream. The system checks the type annotations of these operators against the actual type information of the incoming streams to ensure compatibility. By enforcing type consistency, the method helps maintain data integrity and prevents runtime errors in distributed data processing workflows. The validation occurs before execution, allowing for early detection of type mismatches and improving system reliability. This approach is particularly useful in large-scale data processing frameworks where multiple operators interact with diverse data streams.

Claim 4

Original Legal Text

4. A system for type inference in a program, the system comprising: a memory; and one or more processors configured to: receive first type information for one or more input streams of the program, wherein the program includes a directed graph wherein nodes in the graph represent operators and wherein edges in the graph represent streams of tuples that flow from one operator to another along the edges during execution of the program; receive, for each operator, an output type annotation; determine, for each operator in one forward pass through the graph, second type information for one or more output streams based on the first type information associated with one or more incoming streams of the operator and the output type annotation associated with the operator, wherein the second type information includes constraints that restrict the tuples included in the one or more streams; and associate the second type information with the respective one or more output streams.

Plain English Translation

The system performs type inference in a program that processes data as streams of tuples, represented as a directed graph where nodes are operators and edges are data streams. The problem addressed is ensuring type consistency across operators in a dataflow program, where input and output types must align for correct execution. The system receives initial type information for input streams and output type annotations for each operator. During a single forward pass through the graph, it computes output type information for each operator based on incoming stream types and the operator's output annotation. The output type information includes constraints that define the allowed tuples in the streams. These constraints ensure type compatibility between connected operators, preventing runtime errors due to mismatched data types. The system associates the derived type information with the respective output streams, enabling type checking and optimization of the program. This approach efficiently propagates type information through the graph, ensuring correctness while minimizing computational overhead.

Claim 5

Original Legal Text

5. The system of claim 4 , wherein the output type annotation includes at least one of “+”, “special”, a typespecifier, or combinations thereof, wherein the typespecifier specifies a type as a sequence of [fieldname:typename] tuples.

Plain English Translation

This invention relates to a system for annotating and processing data types in a computing environment, particularly for improving type handling in programming languages or data processing frameworks. The system addresses the challenge of efficiently representing and managing complex data types, which is critical for ensuring type safety, code clarity, and interoperability in software development. The system includes a mechanism for generating output type annotations that describe the structure and semantics of data types. These annotations can include symbols such as "+" or "special" to denote specific type characteristics, as well as a typespecifier that defines a type as a sequence of fieldname:typename tuples. The typespecifier allows for precise specification of nested or composite types, where each field is associated with a specific type. This enables the system to handle structured data types with multiple layers of complexity, such as records, objects, or custom data structures. The system may also include components for parsing, validating, and applying these annotations to ensure type correctness during compilation or runtime. By providing a flexible and expressive way to define and annotate types, the system enhances the ability to enforce type constraints, detect type-related errors early, and facilitate seamless integration between different programming languages or systems. This is particularly useful in environments where type safety is critical, such as in statically typed languages, data serialization frameworks, or distributed computing systems.

Claim 6

Original Legal Text

6. The system of claim 4 , wherein the one or more processors are further configured to raise an error if the output type annotation of the operator is not consistent with the first type information for one or more incoming streams of the operator.

Plain English Translation

A system for processing data streams includes one or more processors configured to validate type consistency in a data stream processing pipeline. The system receives a data stream processing pipeline definition that includes operators, each with input and output type annotations. The processors analyze the pipeline to ensure that the output type annotation of each operator matches the expected type of the incoming data streams. If an operator's output type annotation does not align with the type information of its incoming streams, the system raises an error to alert the user of the inconsistency. This validation step helps prevent runtime errors by catching type mismatches during pipeline definition. The system may also include additional features such as dynamic type inference, automatic type conversion, or user-defined type mappings to resolve inconsistencies. The goal is to improve the reliability and maintainability of data stream processing applications by enforcing type safety at design time.

Claim 7

Original Legal Text

7. A non-transitory computer-readable medium storing instructions executable by one or more processors for performing a method for type inference in a program, comprising: receiving first type information for one or more input streams of the program, wherein the program includes a directed graph wherein nodes in the graph represent operators and wherein edges in the graph represent streams of tuples that flow from one operator to another along the edges during execution of the program; receiving, for each operator, an output type annotation; determining, for each operator in one forward pass through the graph, second type information for one or more output streams based on the first type information associated with one or more incoming streams of the operator and the output type annotation associated with the operator, wherein the second type information includes constraints that restrict the tuples included in the one or more streams; and associating the second type information with the respective one or more output streams.

Plain English Translation

This invention relates to type inference in data processing programs, particularly those structured as directed graphs where nodes represent operators and edges represent data streams. The problem addressed is ensuring type consistency across interconnected operators in such programs, where input and output types must align to prevent runtime errors. The method involves analyzing a program represented as a directed graph, where nodes are operators and edges are data streams (tuples) flowing between them. The system receives initial type information for input streams and output type annotations for each operator. In a single forward pass through the graph, the system infers output type information for each operator based on its input types and its predefined output type annotation. The inferred output types include constraints that define the allowed tuples in the streams, ensuring type consistency across the graph. This approach automates type checking and inference, reducing manual effort and improving reliability in data processing pipelines. The solution is implemented via executable instructions stored on a non-transitory computer-readable medium.

Claim 8

Original Legal Text

8. The non-transitory computer-readable medium of claim 7 , wherein the output type annotation includes at least one of “+”, “special”, a typespecifier, or combinations thereof, wherein the typespecifier specifies a type as a sequence of [fieldname:typename] tuples.

Plain English Translation

This invention relates to a computer-readable medium storing instructions for processing data types in a programming language. The problem addressed is the lack of flexibility in specifying and annotating output types in programming languages, which can lead to ambiguity or inefficiency in type checking and code generation. The invention provides a system where output type annotations can include specific indicators such as "+", "special", or a typespecifier. The typespecifier allows for detailed type definitions using a sequence of fieldname:typename tuples, enabling precise type specifications. This enhances type safety and clarity in programming by allowing developers to define complex data structures with explicit field types. The system ensures that type annotations are both flexible and structured, improving code reliability and maintainability. The invention is particularly useful in languages where type inference is limited or where explicit type definitions are required for optimization or correctness. By supporting multiple annotation formats, the system accommodates different programming paradigms and use cases, making it adaptable to various software development scenarios.

Claim 9

Original Legal Text

9. The non-transitory computer-readable medium of claim 7 , wherein the method further comprises raising an error if the output type annotation of the operator is not consistent with the first type information for one or more incoming streams of the operator.

Plain English Translation

A system and method for validating data stream processing in a distributed computing environment. The technology addresses the challenge of ensuring type consistency in data stream processing pipelines, where operators process incoming data streams and produce output streams with specific type annotations. The system checks whether the output type annotation of an operator matches the expected type information for the incoming streams. If a mismatch is detected, an error is raised to prevent incorrect data processing. This validation step occurs during the execution of a data processing pipeline, ensuring that type inconsistencies are identified and addressed before they propagate through the system. The method involves analyzing the type annotations of operators and comparing them with the type information of the incoming streams to verify consistency. This approach enhances reliability in data stream processing by preventing type-related errors that could lead to incorrect results or system failures. The system is particularly useful in large-scale distributed computing environments where multiple operators process high-velocity data streams, ensuring that data types remain consistent across the pipeline.

Patent Metadata

Filing Date

Unknown

Publication Date

May 5, 2020

Inventors

Gautham Thambidorai
Matthew Rosencrantz
Sanjay Ghemawat
Srdjan Petrovic
Ivan Posva

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “SYSTEM OF TYPE INFERENCE FOR TUPLE GRAPH PROGRAMS METHOD OF EXECUTING A TUPLE GRAPH PROGRAM ACROSS A NETWORK” (10642582). https://patentable.app/patents/10642582

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/10642582. See llms.txt for full attribution policy.