Just to add to the discussion, puning can be used to model clases as instances. In fact, a common pattern I'm seing and I'm using is to use puning and have a class hierarchy, each class having an instance with the same URI, so one can refer to each class as a class or as an instance, depending on the context.
The punning feature in OWL2 is very nice indeed. But one should not forget that depending on the use the subject (or object) is either the class *or* the instance. I.e., there is a "class view" of the resource identified by the URI, and an instance view. This is different from referring to a class as an instance.
Here's an example of Taxon as both a class (Organism, Animal, Dog, Tiger) and as a set of individuals (tOrganism, etc), done without punning. When I put this into protege and run the reasoner, it correctly infers that taxon tAnimal includes Simba and Fido, and that Fido hasTaxon Dog, Animal, and Organism. With punning, you'd use "Animal" rather than 'tAnimal" as the Taxon individuals corresponding to the taxon classes.
If you have received this transmission in error please notify us immediately by return e-mail and delete all copies. If this e-mail or any attachments have been sent to you in error, that error does not constitute waiver of any confidentiality, privilege or copyright in respect of information in the e-mail or attachments.
Please consider the environment before printing this email.