The goal of this work is to integrate in a general framework the different query optimization techniques that have been proposed in the object-oriented context. as a first step, we focus essentially on the logical aspect of query optimization. in this paper, we propose a formalism (i) that unifies different rewriting formalism, (ii) that allows easy and exhaustive factorization of duplicated subqueries,and (iii) that supports heristics in order to reduce the optimization rewriting phase.