The authors propose an approach to optimizing queries using semantic integrity constraints (SICs) in an object-oriented database (OODB) system. The concepts of SICs are generalized in an OODB environment by incorporating many distinct object-oriented features such as IS-A class hierarchies (subclass assertions), class traversals in specifying selection predicates, and classification concepts. Solutions to the problems introduced by incorporating these features are presented. Given a query and a set of SICs, knowledge-based or semantic query optimization is performed by revealing contradictions, replacing reference to a class by that to its most specific subclass, eliminating unnecessary class traversals, and adding/eliminating useful/useless redundant restrictions. It is shown that the time complexity of the proposed strategy is bounded by O(n3), where n is the larger of the number of classes involved in the query and the number of SICs involved.