[ This topic is a part of the Conceptual model of the Ontology Management Environment prototype that requires a more specific development and discussion ]
Namespaces declare to which ontology the classes and properties of the application belong. There are two kinds of them: root namespaces, which correspond to an ontology as a general concept, and specific instances ot the root namespace dedicated to a particular version of the related ontology. Root namespaces have no classes or properties directly belonging to them: all items of an ontology definition (classes, scope notes, etc.) MUST be associated to a specific namespace version. E.g. the CIDOC CRM root namespace, without classes or property instances, is http://www.cidoc-crm.org/cidoc-crm/ and the namespace specific to the version 6.2 of the ontology, instantiated with classes and properties, is http://www.cidoc-crm.org/cidoc-crm/6-2/.
There is only a two level association between namespaces: the child (version specific) namespace is associated with the parent (generic) namespace. There aren't different branches in an ongology: the whole ontology development occurs in a single trunc. Each namespace version MUST be dated with a begin and end date in order to allow the chronological development of the versions to be tracked.
The same instance of a class is allowed to belong to different namespaces if, and only if, its identifier in the namespace does not change. Furthermore, all version-namespaces associated to a same instance of class or property MUST be childs or descendants of the same generic namespace.
The same rules apply to properties. The identifier of same the property must be the same in the different namespaces. The domain and range classes of a property could change from one namespace version to the next one.
Scope notes, labels and isSubclassOf/isSubpropertyOf associations MUST also be defined in relation to a specific namespace. All these entities can thus be identified precisely and a namespace version can be identified with all its components.
Labels and isSubclassOf/isSubpropertyOf associations can be associated to multiple version specific namespaces if their attributes are the same (same identifier, same associations, etc.). This allows to avoid redundancy and gives more coherence to the application. Each version of the ontology can be extracted using the appropriate namespace version.