Since the semantic model is free of structure, it is easier to map concepts to different structural representations enabling reuse of classes and properties. Reuse is a profound way to reduce complexity. In a traditional system, attributes are not reused. Every time you create a new table and put new attributes on it you’ve created additional attributes. Even if you gave them the same name, there is no guarantee that on this new table they might not mean something different. The technology treats them as if they are different. Property reuse enables a drastic reduction in the number of properties needed to represent the complexity of a large domain. In semantics, properties are first-class objects, which means that they exist independent of any class or table. They can be reused and still retain their original meaning, so you need fewer of them. Additionally, because properties are first-class objects we can define relationships between properties. For example, if we declare that the property “hasParent” is a sub-property of the property “has Ancestor” then anyplace we assert that someone has a particular Parent, a semantic reasoner infers that that particular person is also an ancestor of the first person. In semantic modeling the definition of the classes and properties is separate from the process of building applications or database structures. This separation frees up the modeler to focus on the meaning and inclusion criteria for each class and intentionally avoid having to make decisions about how to store, structure or organize the information within the system.