1. A method of developing a data integration application that receives, transforms, and outputs data by using semantic data types to define and process application data used internally by the application, the method comprising: a. defining an input schema that describes the structure and type of input data; b. defining an output schema that describes the structure and type of output data; c. defining a set of semantic data types, wherein the semantic data types are to be used internally by the data integration application to represent application data; d. creating input mapping specifications based on the input schema and the set of semantic data types, wherein each input mapping specification maps input data having an input data type to application data having a first semantic data type corresponding to said input data type; e. creating output mapping specifications based on the output schema and the set of semantic data types, wherein each output mapping specification maps application data having a second semantic data type to output data having an output data type corresponding to said second semantic data type; f. defining a set of input functions, each input function used for receiving input data and converting, according to the input mapping specifications, the received input data into application data having one or more semantic data types; g. defining a set of intermediate functions, each intermediate function used for receiving application data and producing transformed application data, wherein the received application data and the transformed application data have one or more semantic data types; h. defining a set of output functions, each output function used for receiving application data having one or more semantic data types, and converting, according to the output mapping specifications, the received application data into output data; i. creating a data flow that uses the set of semantic data types, the set of input functions, the set of intermediate functions, and the set of output functions to specify the desired behavior of the data integration application.