Why doesn SBML Level 2 define a default compartment?
Software developers are sometimes bother by the fact that SBML does not specify a default compartment; all compartments in SBML must be defined explicitly. There are several reasons for this: • A model that uses a single unit-volume compartment is making explicit an important underlying assumption about the model. Leaving it implicit would be more prone to errors. • SBML would have to define a reserved identifier to refer to the default compartment. This is a recipe for an eventual identifier collision when someone, somewhere, accidentally uses the same identifier. • A default compartment would only save effort in developing the SBML writing component of a software tool. The writing component is the easy part; reading and interpreting is the harder part. Defining a default compartment would not help readers much, if at all. • A default compartment would be a special case which all SBML parsing programs would have to handle specially.