3. The method of claim 1 wherein processing the types in the second list comprises: setting a current type to a first type in the second list; if the current type has a supertype, setting the current type to be the supertype, and repeating setting the current type to be the supertype until the current type does not have a supertype; else, if the current type has not been processed, creating an empty column list, processing the empty column list for the current type, creating a database table for the current type, adding an identity-type column to the database table to represent database identity of instances of the current type, creating, for each column in a column list, a column of lexical type or of identity-type, and marking the current type as processed.
3. The method of claim 1 wherein processing the types in the second list comprises: setting a current type to a first type in the second list; if the current type has a supertype, setting the current type to be the supertype, and repeating setting the current type to be the supertype until the current type does not have a supertype; else, if the current type has not been processed, creating an empty column list, processing the empty column list for the current type, creating a database table for the current type, adding an identity-type column to the database table to represent database identity of instances of the current type, creating, for each column in a column list, a column of lexical type or of identity-type, and marking the current type as processed. 4. The method of claim 3 wherein processing the empty column list for the current type comprises: adding a Boolean column to the column list to indicate whether an instance is of the current type; if there is a reference scheme defined for the current type, the reference scheme including one or more fact types, for each of the fact types in the reference scheme, the fact type having an identifying role which has a type: if the type of the identifying role of the fact type is a lexical type, adding the column of the lexical type to the column list; else, adding an identity-type column to the column list to represent database identity of the type of the identifying role of the fact type; and marking the current type as processed.