Hi Brian,
Thanks for the additional feedback.
Terry addresses this distinction in his discussion of rigid subtypes in section 10.3 of his book. However, he does not recommend using a fact type pattern for non-rigid subtypes and a subtype pattern for rigid subtypes only. He also discusses various subtyping patterns for transitions between non-rigid subtypes.
Of course, the notion of rigidity is not limited to subtyping patterns. Fact instances are also frequently rigid in business situations. For example, in banking, the type and number of a bank account is fixed over time, as are all lines in an account ledger (you can enter a correction line, but not change the original).
All rigidity (whether for subtypes or fact types) is considered a dynamic constraint because rigidity concerns transitions between states by limiting those transitions. Since dynamic constraints are necessarily overlaid on a static structure, and can conceptually be applied to either fact type or subtype relationships in the model, the notion of rigidity is generally not something I would consider when determinining if I should model with a subtype or fact type.
From a NORMA perspective, we're currently working out final kinks in the formal aspects of using role paths (conceptually a restricted branching path through related fact types in an ORM model) to formalize fact type derivation rules, subtype derivation rules, constraint join paths, and constraints over restricted contexts. Once we've happy with our formalization we'll spend more time looking conceptually at dynamic extensions to this system while we're implementing mapping the static constructs to different implementation targets (primarily relational). We'll then add formal rigidity annotations along with the other dynamic constructs. So, we will have rigidity and other dynamic constructs in the future, but we need to nail specification and mapping of the static constructs first.
Brian, as you've been playing this game on real-world projects for a while, please jump back in here and provide additional point-of-view.
-Matt