Building a large-scale generic object model: applying the CYC upper ontology to object database development in Java

Can the benefits of re-use and patterns that are so well known in software design and implementation be carried over into analysis and database design? The fledgling field of Analysis Patterns has provided only a partial affirmative answer. We have instead attempted to import the CYC upper ontology (an AI-derived “model of everything”) into an object model expressed in Java. The result is an object model that is extremely resilient to change and should be extensible to practically any domain. We describe the difficulties involved and some of the most important lessons learned.