OpenMath aims at providing a universal means of communicating mathematical information between applications. In this paper we set out the objectives and design goals of OpenMath, and sketch the framework of a model that meets these requirements. Based upon this model, we propose a structured approach for further development and implementation of OpenMath. Throughout, emphasis is on extensibility and flexibility, so that OpenMath is not confined to any particular area of mathematics, nor to any particular implementation. We give some example scenarios to motivate and clarify the objectives, and include a brief discussion of the parallels between this model and the theory of human language perception