The translation of information between heterogeneous representations is a long standing issue. With the large spreading of cooperative applications fostered by the advent of the Internet the problem has gained more and more attention but there are still few and partial solutions. In general, given an information source, different translations can be defined for the same target model. In this work, we first identify general properties that "good" translations should fulfill. We then propose novel techniques for the automatic generation of model translations. A translation is obtained by combining a set of basic transformations and the above properties are verified locally (at the transformation level) and globally (at the translation level) without resorting to an exhaustive search. These techniques have been implemented in a tool for the management of heterogeneous data models and some experimental results support the effectiveness and the efficiency of the approach.