You can use OCL for a variety of voices. You can specify invariants on classes in your class model diagrams. You can describe pre and post conditions on the operations, in your diagrams.
You can specify derivation rules for derived attributes. Remember them? You can describe guards on transitions in statecharts.
You can specify the targets for messages and actions, you can speci, specify type invariants for stereotypes, which we'll describe a little bit later. You can even use it as a query language. Class model diagram is describing a set of.
Possible instances, and you might wish to query those instances for certain things, OCL can be used as a query language in that sense.