Semantic Object-Oriented Programming