1. A method for modeling components of a stream processing application, comprising: defining an input message pattern of a processing element, wherein the input message pattern includes variables representing data objects that must be included in a message input to the processing element, and a graph pattern that semantically describes the data objects that must be included in the message input to the processing element; and defining an output message pattern of the processing element, wherein the output message pattern includes variables and new data objects, the variables and new data objects representing data objects that must be included in a message output from the processing element, and a graph pattern that semantically describes the data objects in the message output from the processing element, wherein the method is performed using a processor and every one of the variables in the output message pattern must be included in the input message pattern.