1. A method for generating an object-oriented model from a vocabulary, the method comprising the operations of: (a) receiving the vocabulary comprising terms and sentential forms, each of the terms comprising a word or phrase representing a concept, each of the sentential forms comprising a prepositional statement representing a fact type and including at least one placeholder, the placeholder being specified by a term; (b) automatically creating a first class for each of the terms in the vocabulary; (c) making a classification superclass to be a superclass for each of the first classes, wherein the classification superclass is a subclass of a fact superclass, wherein the fact superclass is a superclass whose instances are facts, such that each instance of the first class represents a fact that a thing is classified to be an instance of the concept represented by the corresponding term rather than representing an instance of the concept, and wherein the classification superclass is a superclass whose instances are classifications; (d) automatically creating a second class for each sentential form in the vocabulary; (e) making the fact superclass to be a superclass for each of the second classes, wherein the fact superclass is a superclass whose instances are facts, such that each instance of the second class represents a fact that is an instance of the fact type represented by the corresponding sentential form; and wherein acts (a)-(e) are performed so as to limit the granularity of encapsulation of information in each of the first classes and the second classes to no larger than the representation of a single fact.