CompartmentType and SpeciesType removed
SBML Level 2 provides two object classes, CompartmentType and SpeciesType, meant to allow the definition of types of compartments and species. The original motivation for their introduction was in anticipation of introducing generalized reactions, a scheme that would allow reactions to be defined on whole classes of entities in a compact format. However, generalized reactions never ended up being introduced in SBML Level 2, and the notion of generalized reactions has been superceded by the effort to support rule-based models using the Level 3 Multistate and Multicomponent Species package. Moreover, CompartmentType and SpeciesType were never particularly powerful facilities: they had no impact on the mathematics implied by a model, and hierarchies of these objects were not permitted, which limited their practical usefulness. And finally, a logical question to ask is, if there are compartment types and species types, why aren't there also parameter types, rule types, event types, reaction types, etc.?
One approach to improving the situation in SBML Level 3 would be to add the missing ParameterType, EventType, ReactionType, etc., object classes. While workable, this would not be a very elegant object-oriented solution. Another approach would be to define a new object class such as "Type" and a corresponding ListOfTypes in Model, then remove CompartmentType and SpeciesType, and finally add an attribute to every object so that the objects could refer to instances of Type objects to indicate their relationships. This would be parsimonious and elegant, but it does not appear to go in a direction that would help the one Level 3 package that is most affected by type/class information (namely, the Level 3 Multistate and Multicomponent Species package). Moreover, it would be better to move this kind of functionality into a Level 3 package.
In view of these considerations, and the fact that few models seemed to have taken advantage of SpeciesType and CompartmentType so far, the approach being taken for Level 3 is to remove SpeciesType and CompartmentType. It is expected that a small typing package will be developed for Level 3 that models can use to add type/category information.
Changes compared to Level 2
As mentioned above, CompartmentType and SpeciesType will be removed. The principal change is that Model will be redefined as follows (here note the absence of CompartmentType and SpeciesType):
In addition to the changes on Model, the Compartment and Species components also need to be redefined to remove their
The change impacts any software tools today that may provide support for CompartmentType and SpeciesType. One approach to updating such tools for Level 3 might be to leave the user interface aspects that deal with compartment types and species types, and "under the hood" modify the software to use alternative grouping/classification schemes.