User interaction with computers has long been on an individual basis with little or no help to support cooperative work. Applications such as office information systems, design endeavors in CAD/CAM and VLSI, programming in-the-large, and decision support systems require users to collaborate. Currently, there is no framework to specify correctness of concurrent actions in a cooperative environment and to design protocols for cooperating transactions. The goal of this research is to use semantic information to develop a framework for controlled sharing of information, i.e., transaction-oriented cooperation. A preliminary version of a framework for transaction-oriented cooperation has been developed. In this project, this framework is extended to include different types of transactions and to handle failures of individual transactions in a cooperative environment. In addition, the aim is to build a prototype application that uses an object-oriented database to validate the framework and demonstrate its practicality. Results of this work, are expected to provide an effective approach to developing distributed applications that require cooperation.