As an overview, three aspects of, of OCL to be aware of, is first of all it's declarative. It's not a procedural language, it's not a programming language, it's a way of specifying properties. In programming language terms it's a pure expression language, that is, it describes values, it doesn't, describe activities.
It doesn't have any assignment statements, instead it, it specifies assertions or constraints or properties, usually with equal signs. The language is strongly typed and it comes with some primitive types that you might expect in terms of reals and integers and so on. And the neat thing about OCL is it only has one key concept involved with it.
And that's the concept of a constraint. A constraint is some formal assertion of system properties.