This document discusses OCL (Object Constraint Language) and its use with EMF (Eclipse Modeling Framework). It begins with an overview of why OCL is useful, describing it as a formal yet readable language for specifying business rules and constraints in UML models. It then explains what OCL is, how it is a typed, side-effect free expression language. The document outlines key OCL concepts like expressions, collections, and queries. It discusses how OCL is implemented in EMF, including validation capabilities and the OCLinEcore editor. It concludes with examples of when OCL is appropriate and information on downloading OCL tools.