On Tue, 22 Aug 2006 10:28:03 -0600, Larry Hunter wrote:
In my experience, many complex knowledge modeling projects benefit
from the use of metaclasses. For example, if the domain of a
relationship is limited to several specific classes, it makes sense
to model those classes as members of a particular metaclass (i.e.,
one that supports a particular slot type).
Larry,
this typical use case of metaclasses may not be the best solution for
the problem. In many cases (but you may have other reasons as well),
people introduce metaclasses so that they can get a different behavior
of user interfaces. For example many ontology editors automatically
create input fields if certain properties are in the domain of the
instance type.
In my opinion, changing a model only to control the behavior of a user
interface is a bad idea. This approach was unfortunately promoted by
some ontology editors in the past. Ontologies are no longer just used
as a framework to restrict the type of instances that can be entered,
but also for various types of reasoning and information exchange on the
Web. For these tasks, having a complicating metaclass architecture is
just another obstacle.
I agree with Matthias that metaclasses should be avoided whenever possible.
Holger