powerjava: Ontologically Founded Roles in Object Oriented Programming Languages