Abstract
After explaining some of the benefits of capturing uniqueness constraints, such as keys and functional dependencies, in any object-centered data model, we consider a number of alternative semantics for concept constructors that could be introduced for this purpose in Description Logics. Most significantly, we show that Classic—the hitherto most expressive DL for which reasoning is tractable, can be extended with a version of constructors capturing functional dependencies (including keys) while still possessing subsumption and consistency checking algorithms that are sound, complete, and run in low-order polynomial time. The results continue to hold even when we introduce cycles in the part-of hierarchy.