Amit, as you mentioned, the key to using ontology is to recognize that there are multiple ontologies. So in one ontology a property can be an object-property and in another it can be a data-property without any conflict.
1. @Entity annotation should add the following two attributes:
uses=<ontology> or defines=<ontology>. If neither of them are present, it defaults to a 'defines=<ontology>' where ontology id/name is constructed from the entity-name
2. Embedding and Java sub-classing are considered ontology mergers
during definition.
3. super-class and embedded-class properties arc expected to conform to the ontology defined as 'uses' on any java class.