The semantics are straightforward: IsIndependent can only be set if the ObjectType places no non-existential explicitly mandatory roles. We enforce this in the underlying object model (setting IsIndependent to true on such a beast should throw), and disable the UI if we know changing the value will cause an exception in the model.
The question then becomes when does an element play a mandatory role? There are a couple of non-obvious cases. First, subtypes always play a mandatory role corresponding the implied 1-1 relationship between the subtype and its supertype. The resulting behavior corresponds to the "The [independent object type] term is not used for subtypes" on page 291 of the brown good. The other case that is non-obvious is an objectification with an explicit identifier (set the RefMode property). In this case, the implied FactTypes for the coreferenced form are mandatory. What concerns me most here is your
Ken Evans:I first set the IsIndependent" value of each subtype to true
statement, which shouldn't be possible. If you set 'IsIndependent' before attaching the subtype, then the property will automatically be set to false when the subtype is connected. I could not get any case where this does not happen.
If you want to give a subtype a separate table, then turn on the Relational Model extension, click the subtype, and set the 'AbsorptionChoice' property to Separate. IsIndependent will often have the side effect of adding a table, but this is not the only way to add said table. The AbsorptionChoice property is part of the 'Relational Mapping' extensions and has no effect on the Barker model. The Barker ER mapping is very new. It is clearly marked as 'preliminary' andhas no effect on the product until you explicitly turn it on. Subtyping, name generation, and most case of live regeneration are not currently implemented in the Barker model (turn both Barker extensions on and off to regenerate). I wouldn't read too much into the different mappings at this point: the Barker mapping is generally much more direct than the relational because the subtyping maps to a basic containment hierarchy.
Please share any case where you can set a subtype's IsIndependent property to true. The Barker code should have no effect here, the IsIndependent property is not referenced by any of the relational or barker extension projects (6 total). The value is used by the absorption model, which the other mappings are based on.
-Matt