Вы попали в одну из областей специализации OCL. allInstances () является операцией типа и поэтому может рассматриваться как статическая, но ключевое слово static было добавлено в OCL 2.2 без четкой семантики или примеров.
Реализация на основе Eclipse OCL Pivot является прототипом решения проблем. OclElement :: allInstances () моделируется как статическая операция в /org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib, поэтому источник должен иметь тип.
Если вы вызываете self.allInstances (), вы получаете «Класс», а не «Требуемое значение« Объект »».
Если вы вызываете self.oclType (). AllInstances (), вы получаете что-то более интересное.
NB. реализация oclType () для поддержки полного отражения - еще одно уточнение спецификации.
Если вы хотите переносимости между реализациями OCL, придерживайтесь чего-то вроде Person.allInstances () -> isUnique (employeeNumber).