Several groups are currently working on different aspects of protocols for exchanging mathematical data (MathLink [#!kn:MATHEMATICA2!#], ASAP [#!sg:asap!#], Multi Protocol (MP) [#!kn:GKW1!#,#!mp:jsc1!#], PoSSoXDR [#!posso-ddl!#], OpenMath [#!sg:OPENMATH2!#], and MathBus [#!MathBus-www!#]). The central problem facing these efforts is that of data integration: Mathematical objects have a semantics and a syntax which must be shared between communicating partners.

Semantic data integration requires a shared understanding of the meaning of mathematical data. Until recently, math protocols provided no support for shared semantics beyond the meaning of the primitive data types and simply assumed that the communicating partners ``knew'' each other. An important task of the Computer Algebra community is to close this semantic gap. Several initiatives addressing this problem are underway (MP, OpenMath, MathBus) and we hope that more experience and a careful evaluation of the proposals will lead to a unifying solution.

Syntactic data integration requires a shared understanding of the encoding and structure of the objects exchanged. At first glance, achieving syntactic data integration might seem easier and, therefore, somewhat less worthy of discussion than semantics. However, our experience [#!mp:jsc1!#,#!sg:BSG1!#] is that this problem becomes increasingly non-trivial if one requires the protocol to be general as well as efficient.

Briefly, generality refers to the applicability of the protocol to mathematical software systems and efficiency refers to the productivity of data communications managed by the protocol.

This paper concentrates on the syntactic aspects of data integration, but we recognize that the syntactic and semantic sides of data integration are not mutually exclusive. We outline the major issues that must be addressed if syntactic data integration is to be achieved in a general and efficient manner and propose solutions which have worked in practice.