Sharing knowledge across a community of users demands agreement about the meaning of symbols. There are two important problems that may arise. First, there is incompatibility, where different comnmnities can use different symbols to mean the same thing. This is not as serious as the second problem of inconsistency, where the same symbol can be used by different members of a community with different meaning. This problem is especially apparent in multi-agent communications where different agents have different conceptualizations about the world. When agents express these conceptualizations in a communication language, they cannot interact unless they assume a common name-space. In this paper we propose a name-space context graph (NSCG) for the management of multiple name-spaces. The context graph allows knowledge to be exchanged between agents in separate naming contexts. In order to facilitate this exchange the NSCG performs efficient translation of symbols from one context to another, thus providing each agent with the illusion that there is only one globally unique naming context. This method of handling contexts is general enough for any language, it is not tied to the notion of an address space, it works equally well with declarative languages as well as procedural languages, and it does not require reference to the definition of symbols. Furthermore, the NSCG is suitable both for composing larger domains out of smaller ones in a layered manner or simply for allowing interprocess communication over several domains without name clashes.