A data dictionary is a database that describes all the significant data in a project. On large projects, a data dictionary is also useful for keeping track of huge amount of class definitions. On large team projects, it’s useful for avoiding naming clashes. A clash might be a direct, syntactic clash, in which the same name is used twice, or it might be a more subtle clash (or gap) in which different names are used to mean the same thing or the same name is used to mean subtly different things. For each class, the data dictionary contains the item’s name and description. The dictionary might also contain notes about how the item is used.
-- Steve McConnell (Code Complete 2)
How practical is creating and maintaining data dictionary? In a big company, it's difficult to agree upon a common name. So I think this is not practical. Good news is data dictionary is not required if you create Micro Gems. Since it provides a namespace for the classes that collaborate to provide a cohesive unit of functionality. You could have many gems with the same class name but has different methods to capture different abstractions.