Many object types have similar (usually, descriptive) properties. For example, People, Animals, Products, and so on, all have names. This poses a choice for the ORM Modeler: do you create one "Name" object type or multiple?
Although not a conceptual issue, the properties in question may have the same name and even meaning, but often have different data types and as such, I prefer to model them as distinct object types, as shown below.
This model allows me to have Pet Name be char(10) and a Person name to be varchar(50) and so on. It also underscores the fact that although the properties have the same name, they are occasionally conceptually distinct domains. As an example and although there may be exceptions, parents who would never dream of naming their child "Whispering Pines" or "Whiskers" might have no qualms about naming their Mansion or dog (respectively) as such.
There is a third option: you can create distinct object types with the same name but different namespaces. In the example, below, I have created 3 distinct object types, all named "Name" but their namespaces are Person, Pet, and Mansion. This allows me to imply distinct domains, have distinct data types, and be less verbose from a conceptual perspective. The namespace property, by the way, is located on the Definition tab in the Database Properties window of an object type.
There are some tool-related drawbacks to this approach, however. First of all, although the Object Types window (shown below) will indicate namespaces, there is no way to indicate namespaces in the fact editor. If you type in "Name" in freeform mode, for example, Visio will pick the first one. In guided mode, the dropdown will show all of the "Name" object types but you have no idea which ones are which. Similarly, Namespaces are not shown in the Fact Types/Object Types tab of the business rules window either. Finally, namespaces are ignored when generating logical/physical column names (i.e. in our example above, there would be 3 different columns called "Name").
Because of these drawbacks, I still prefer to use distinctly named object types in these sorts of scenarios.
Finally, note that predicates can also be differentiated by namespaces in the event that you have two (or more) distinct fact types that have the exact same predicate text and object types (in the same order). I haven’t found any practical use for this feature and am of the opinion that if you need to use this, you aren’t using enough semantics in your predicate verbalization. I suppose there might be exceptions but as a general rule, I don’t find much use for predicate namespaces.