I’ve been reading a lot about ontologies today, and many of the definitions and descriptions of ontologies make it seem like the classes, relations, and instances they involve are akin to the classes, relations, and instances in object-oriented programming. However, then I encountered the following, which is a helpful distinction in thinking about all of this:
Ontology development is different from designing classes and relations in object-oriented programming. Object-oriented programming centers primarily around methods on classes—a programmer makes design decisions based on the operational properties of a class, whereas an ontology designer makes these decisions based on the structural properties of a class. As a result, a class structure and relations among classes in an ontology are different from the structure for a similar domain in an object-oriented program. (source)