An example with generalization. There are
vehicles (abstract class) and cars resp. motorcycles
(subclasses).
Vehicles belong to companies, which
have a branch RentalStation (aggregation).
Persons work for rental stations or manage them.

The example corresponds to the paper:
Mark Richters and Martin Gogolla,
"On Formalizing the UML Object Constraint Language OCL",
Figure 1

CarRental.use:
six classes Company, RentalStation, Person,
Vehicle (abstract class), Car, Motorcycle
with generalization
attributes and queries
four associations Owns, hasBranch (aggregation),
managedBy, WorksFor and some explicit role names

CarRental.cmd:
empty
