I recently got the chance to make an analogy between C++ and upper ontologies. There is a well-known problem with OO-style coding, and I think I have just seen this same problem manifest itself in the so-called "upper ontologies"
One well-known problem with C++ is that begining coders often spend too much time and energy trying to design base classes that all the rest of the classes of the system will inherit from. Errors in the design of the base class are often undetected until quite late, when it becomes difficult and expensive to fix: C++ can sometimes become very inflexible, "quick setting concrete", some people say. The standard answer is "don't do that", i.e. don't design super-dooper base classes; and if you do, don't couple them strongly into your system. The thought that occurred to me was that this situation is similar to that of "upper ontologies" i.e. the core objects in SUMO or Cyc. A number of these ontologies have different ideas about time, events, extends, and how you can indicate that some thing has some property for only a limited amount of time (e.g. "John is a teacher" well, no, he wasn't a teacher when he was a child, and won't be after he retires). The mismatch of the ontologies for time and place and events in SUMO and Cyc means that merging one with the other is very hard or impossible -- which is a paradox, because the notions of "john" and "teacher" shouldn't be fundamentally different. The barrier is is artificial, not natural: its a mismatch, or over-reliance on the upper ontologies. In C++, the answer is well known: "don't do that". I wonder if this might be the same answer for ontologies: disentangle things enough so that, after you've asserted that "john is a teacher", you can go back and change the notion of time and extent, without wrecking your network of assertions. I don't yet know how to disentangle such things, but thought that I'd trot it out for discussion. Maybe it would be easy to rip out Cyc's upper ontology, and replace it by SUMO's, or v.v. I don't know ... I suspect its not, and that bothers me; that is a bit an important problem. --linas Links: http://www.cyc.com/cycdoc/vocab/upperont-diagram.html http://en.wikipedia.org/wiki/Upper_ontology_(computer_science) http://www.ontologyportal.org/ http://en.wikipedia.org/wiki/Suggested_Upper_Merged_Ontology ----- This list is sponsored by AGIRI: http://www.agiri.org/email To unsubscribe or change your options, please go to: http://v2.listbox.com/member/?member_id=8660244&id_secret=63784725-c004c4
