This chapter first defines a set of operations that create new ontologies, including their constraints, out of other ontologies. The projection, union, and deprecation operations help define new ontologies by reusing fragments of other ontologies, the intersection operation constructs the constraints that hold in two ontologies, and the difference operation returns the constraints that hold in one ontology, but not in the other. Then, the chapter discusses how to implement the operations for a class of ontologies, called lightweight ontologies. The key question is how to concretely construct the constraints of the resulting ontology, which is solved with the help of a structural proof procedure for lightweight ontologies. Lastly, it addresses the question of minimizing the set of constraints of a lightweight ontology.