[MUD-Dev] OpenCyc, design implications of ontological systems?

Miroslav Silovic miro at vams.com
Thu Apr 11 11:25:52 New Zealand Standard Time 2002

Robert Zubek wrote:

> However, the OO model only supports instantiation between a
> collection and an individual, while Cyc also allows for
> instantiation between collections.  For example, collections Dog,
> Mammal, and Animal are also instances of collections
> BiologicalSpecies, BiologicalClass, and BiologicalKingdom,
> respectively. Notice that Dog is an *instance* of
> BiologicalSpecies, and not its specialization. So Fido is an
> instance of Dog, and Dog is an instance of BiologicalSpecies, but
> Fido is *not* an instance of BiologicalSpecies. :)
> This will break the translation of an OpenCyc ontology into an OO
> representation. AFAIK, the OO model doesn't allow for an
> equivalent of instantiation between collections. C++ programmers
> sometimes unknowingly kluge this by trying to represent something
> that looks like instantiation using the superclassing mechanism,
> but that seems suboptimal because it muddles the distinction
> between instances and specializations...

This only applies to certain OO systems. In CLOS, each class is an
instance of a metaclass. The metaclass defines such things as
inheritance precedence, method lookup and sorting algorithm, and
even class definition syntax (you can override class definition
parser on the metaclass). Metaclass may also track other things;
basically it defines the beheviour of its instances with fairly low

Try to look up 'CLOS MOP' on google (MOP is Meta-Object Protocol).


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list