Term and Types of Deprecation
Deprecation is used in the eCl@ss dictionary change management process to avoid the undesired consequence of having to issue new identifiers for exsting structural elements on deletion of other structural elements. Two principal types of deprecation can occurr: Deprecation of structural elements as well as deprecation of assignments between structural elements.
Deprecation and the Dictionary
Deprecation happens in the context of a dictionary release and means that the deprecated element or assignment is no longer to be used in the context of new transactions. Moreover, deprecation has an impact on the transaction update information. In particular deprecation of properties leads to either delete_path or equivalent_path TUF entries depending on whether the property assignment has been removed or replaced.
Users have to consider that only in the OntoML ("eCl@ssXML") export formats, information about deprecated elements is included. The Basic CSV export format does not have these information.
Handling of Deprecations in an Application
A system managing transactions must be capable of understanding the meaning of deprecated dictionary elements and may apply the transaction update information. When creating new transactions, deprecated elements or assignments shall not be available.
eCl@ss XML 2.0
Deprecation of Structural Elements
Deprecation of structural elements appears in the dictionary for the current version of the then deprecated element. In eCl@ss XML 2.0 the following XML elements have an optional is_deprecated sub-element that is set to true when the structural element gets deprecated:
contained_suppliers/ontoml:supplier contained_classes/ontoml:class contained_properties/ontoml:property contained_documents/ontoml:document contained_datatypes/ontoml:datatype dic_value
So the command is_deprecated can exist on classes (CC, AC, AS, BL), on properties, on datatypes or on values.
Deprecation of Assignments
Deprecation of assignments of structural elements is only about one usage context of a structural element. In eCl@ss XML 2.0 deprecations of assignments of structural elements can be found in the ext:extensions/ext:contained_rel_reprecation section:
<ext:deprecation> <ext:context><!-- IRDI of structural element where element is assigned to --></ext:context> <ext:entity><!-- IRDI structural element whose assignment is deprecated --></ext:entity> <ext:rel_type><!-- type of deprecation --></ext:rel_type> </ext:deprecation>
List of possible assignment deprecations:
DEPRECIATION C-P – property assignment got deprecated from class DEPRECIATION D-V – value assignment got deprecated from domain DEPRECIATION ICO AC-CC – application class assignment got deprecated from classification class DEPRECIATION ICO AS-AC – aspect assignment got deprecated from application class DEPRECIATION ICO DOMAIN-PROP –domain assignment got deprecated from property DEPRECIATION ICO UNIT-PROP – unit assignment got deprecated from property DEPRECIATION ICO SYNONYM-PROP – synonym assignment got deprecated from property DEPRECIATION ICO KEYWORD-CLASS – keyword assignment got deprecated from class
Changes from eCl@ss XML 2.0 to eCl@ss XML 3.0
As from eCl@ss Release 11.0 the XML files are going to be provided in XML 3.0 format. The main change and improvement of the XML is the contextual embedding of the deprecation information of each structure element.
- Deprecation of aspect in context:
- added //element(*,A_POSTERIORI_VIEW_OF_Type)/@is_deprecated
- Deprecation of property in context:
- added //element(*,PROPERTIES_REFERENCE_Type)/property/@is_deprecated
- Deprecation of class in context:
- added //element(*,CLASSES_REFERENCE_Type)/class/@is_deprecated
- Deprecation of domain in context:
- set //element(*,PROPERTY_Type) cardinality to 1..n (allowed when domain was changed)
- added //element(*,PROPERTY_Type)/domain/@is_deprecated
- Deprecation of synonyms:
- added //element(*,SYNONYMOUS_NAME_Type)/label/@is_deprecated
- Deprecation of keywords:
- added //element(*,KEYWORD_Type)/label/@is_deprecated
- Deprecation of unit in context:
- added deprecation of unit to INT_MEASURE_TYPE_Type
- added deprecation of unit to REAL_MEASURE_TYPE_Type
- added deprecation of unit to RATIONAL_MEASURE_TYPE_Type
- Deprecation of value from domain:
- added //element(*,NON_QUANTITATIVE_INT_TYPE_Type)/its_values/dic_value/@is_deprecated