2. The method of claim 1 , wherein each component is instantiated based on a generic component type and has a set of core attributes comprising an id, a name, a description, a type, and a set of properties and the schema comprises: a propertyDefinition table, a componentType table, a component table, a PropertyCategory table, a propertyDefinition table, a propertyValue table, a relationshipType table and a relationship table, wherein the ComponentType table comprises a set of columns related to fields of a component type, wherein each component is linked to its type of component through a property field, whereby all instantiated components of a given type contain the same set of properties and check logic, wherein the RelationshipType table comprises a set of columns related to fields of a relationship type, wherein each relationship is linked to its type of relationship through a property field, whereby all instantiated relationships of a given type contain the same set of properties and check logic, wherein the PropertyCategory table comprises a set of columns related to the definition of a property, wherein each property is linked to its type of relationship through a property field, whereby all instantiated relationships of a given type contain the same set of properties and check logic, wherein the PropertyDefinition table comprises a set of definitions of particular properties, wherein one or more properties contains a link to a field in and a propertyValue table, wherein each property value comprises a link to a property definition in the propertyDefinition table and one of a link to a field in the ComponentType table or the RelationshipType table.
2. The method of claim 1 , wherein each component is instantiated based on a generic component type and has a set of core attributes comprising an id, a name, a description, a type, and a set of properties and the schema comprises: a propertyDefinition table, a componentType table, a component table, a PropertyCategory table, a propertyDefinition table, a propertyValue table, a relationshipType table and a relationship table, wherein the ComponentType table comprises a set of columns related to fields of a component type, wherein each component is linked to its type of component through a property field, whereby all instantiated components of a given type contain the same set of properties and check logic, wherein the RelationshipType table comprises a set of columns related to fields of a relationship type, wherein each relationship is linked to its type of relationship through a property field, whereby all instantiated relationships of a given type contain the same set of properties and check logic, wherein the PropertyCategory table comprises a set of columns related to the definition of a property, wherein each property is linked to its type of relationship through a property field, whereby all instantiated relationships of a given type contain the same set of properties and check logic, wherein the PropertyDefinition table comprises a set of definitions of particular properties, wherein one or more properties contains a link to a field in and a propertyValue table, wherein each property value comprises a link to a property definition in the propertyDefinition table and one of a link to a field in the ComponentType table or the RelationshipType table. 6. The method of claim 2 , wherein each component is represented in the component table, wherein each component stored in the component table is linked to a type of component, wherein altering the model to include a new property field comprises the steps of: adding a row to a table in the data schema, wherein the row comprises one or more fields containing the definition of the property, wherein the property definition is linked to a componentID field in the componentType table, whereby the added property field is associated with all components having the same component type.