Patent ID: 7877350

Claim:
A method for determining metadata associated with a graph-based computation, the method including: functionally transforming metadata, different from data processed by a first portion of a graph, that specifies at least one characteristic of data processed by the first portion of the graph to generate transformed metadata, different from data processed by a second portion of the graph, that specifies at least one characteristic of data processed by the second portion of the graph, wherein the first portion includes a first port of a first graph element and the second portion includes a second port of the first graph element; determining a third portion of the graph related to the second portion of the graph by a link representing a data flow of data elements output from the second portion of the graph and received at the third portion of the graph, wherein the third portion of the graph includes an input port of a second graph element; and propagating the transformed metadata that was generated for the second portion of the graph to the third portion of the graph according to the link representing the data flow of data elements; wherein the transformed metadata that was generated for the second portion of the graph specifies at least one characteristic of the data elements output from the second portion of the graph and received at the third portion of the graph; and generating a partial ordering of graph elements in the graph including the first graph element and the second graph element, the partial ordering determined at least in part by links representing data flows interconnecting the graph elements, and determining metadata for ports of the graph elements according to the partial ordering, and after propagating the transformed metadata to the input port of the second graph element, moving the second graph element to the end of the partial ordering.