We introduce the language LOTOS/TM for the formal specification of a network of cooperating agents with a shared data repository and private local data. LOTOS/TM is the orthogonal integration of the process-algebraic protocol specification language LOTOS and the functional, object-oriented database specification language TM. The specified world consists of a number of interacting LOTOS processes — describing the cooperating agents — and a special LOTOS process representing the shared data repository, which is modeled as a TM database. The data repository's functionality is made available to the other, cooperating processes through one or more external database gates. Interaction at such a gate corresponds to a method invocation in the database. In addition to shared persistent data, the TM language is used to specify the data encapsulated locally within processes, and the transient data communicated over gates. Some features of LOTOS/TM are inherently suitable for describing cooperation, such as combinators for synchronization on specific methods. These features are illustrated by examples showing navigation events on a shared graph structure that resembles a hypertext. Emphasis in the examples is placed on coordination aspects of the scenario. LOTOS/TM serves as a formalism for a more user-friendly specification language by the name of CoCoA that is currently under construction.