Skip to content

Protocol: Obsolescence and Deprecation (to‐do)

Rhiannon Cameron edited this page Dec 16, 2023 · 6 revisions

Authors: Rhiannon Cameron [0000-0002-9578-0788], Charlotte Barclay [0000-0001-8008-8249]


Term deprecation is an important part of the OBO Foundry principle "Documentation (principle 8)". It is a means of "retiring" obsolete terms in a manner that doesn't leave users who depend on the resource without an alternative. More on term deprecation/obsolescence in GenEpiO Wiki: Specification Deprecation & Normalizing IDs.

Protocol

This can be done manually or using the CIDGOH ROBOT Obsolete template.

IMPORTANT: If you are deprecating term(s) that are within a ROBOT import file you will need to move your term to the GENEPIO deprecation ROBOT table. The deprecation will not take if you try to manually deprecate an import within Protégé. In the future the intention is to rehome all obsolete terms to this (or a similarly labelled) import file.

  1. Identify, create, or import the term that will render the term in question obsolete.
    • If creating a new term, make sure non-obsolete annotations are applied to the new version before proceeding to deprecate the obsolete version. Also make sure to move any associated subclasses over to the new term.
  2. Append obsolete: as a prefix to the label annotation for the term being deprecated.
  3. Remove all parent class, subclass, and other relations/axioms from the deprecated term.
    • The obsolete term should no appear at the top level of the ontology hierarchy when viewing from Protégé.
  4. Add the term replaced by annotation, directed to the term (from step 1) replacing this term.
  5. Add the deprecated annotation with the xsd:boolean data type value "TRUE".
    • If using a gSheet ROBOT template input it as a lowercase "true" rather than the autoformatted "TRUE" as that can cause a ROBOT error.
  6. Add the has obsolescence reason annotation as a clarifying comment or one of the allowed values dictated by the obsolescence reason specification.

NEXT STEPS

  1. Report in the CIDGOH_Ontology Reporting tracker.
  2. Propagate changes out to any project resources that reference the deprecated label and/or ID, providing the updated information.

Annotations

Annotation ROBOT Command Annotation Description Curation Guidance ROBOT Command Info Example
term replaced by A 'term replaced by' Use on obsolete terms, relating the term to another term that can be used as a substitute. [IAO:0100001] For term deprecation. Only use terms that are currently in the ontology intended to receive these terms. Single term replaced by "string annotation" (A). GENEPIO:0100003
deprecated AT deprecated^^xsd:boolean The annotation property that indicates that a given entity has been deprecated. "Indicate ""true"" if deprecated. Otherwise do not include the annotation. IMPORTANT: You may run into an error if your worksheet autoformats to their boolean of ""TRUE"", in which case make sure it instead has a plain text formatted ""true""." Single deprecated annotation expecting a "typed annotation" (AT) as input. ^^ characters seperate out the annotation property from the datatype (in this case xsd:boolean). true
obsolescence reason A has obsolescence reason The reason for which a term has been deprecated. CIDGOH practice is that this field is not required if "term replaced by" has been utilized, and when it is used this field has often been treated as a comment (e.g. "rehomed in domain ontology"). However, in other cases or as a default approach it is good practice to use a one of the permissable values (listed under "instances") of "obsolescence reason specification" http://purl.obolibrary.org/obo/IAO_0000225. Obsolescence reason "string annotation" (A). term imported