Skip to content

Commit aabf411

Browse files
authored
Improve documentation for obsoletion
Closes #2717 Adjust numbering, indenting and newlines; add allowed values for obsolescence reason
1 parent 63e5205 commit aabf411

1 file changed

Lines changed: 24 additions & 13 deletions

File tree

principles/fp-019-term-stability.md

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,22 @@ Implementation
3636
Detailed procedures for obsoleting a term are described on the OBO Academy page [Obsoleting an Existing Ontology Term](https://oboacademy.github.io/obook/howto/obsolete-term/).
3737

3838
<i><b>To obsolete a term, the ontology developer</b></i> MUST:
39-
1) Mark the term as obsolete
40-
- OWL format: Add an "owl:deprecated" annotation property with value of "true^xsd:boolean"
41-
- OBO format: Add an "is_obsolete: true" tag
42-
2) Prepend the string "obsolete " (including the space) to the term label <i>and</i> the `editor preferred term` (IAO:0000111), if present
43-
- NOTE: To be consistent with [Principle 12](https://obofoundry.org/principles/fp-012-naming-conventions.html) "Naming Conventions", the syntax/format MUST be precisely as given above (that is, the exact string as shown, lowercase and space included, with no other punctuation before or after). Thus, the following are disallowed: "Obsolete {label}", "obsolete_{label}", "OBSOLETE {label}" (and variations thereof).
44-
3) Remove all existing logical axioms from the term
45-
4) Remove or replace all usages of the term elsewhere in the ontology. For example, if an ontology has A part-of B, and B has been deprecated with replacement by C, then the corrected axiom would be A part-of C. Likewise, if A part-of B, and B part-of C, if B is deprecated, then any part-of axiom involving B MUST be removed; that is, by stating instead A part-of C.
39+
1. Mark the term as obsolete:
40+
- OWL format: Add an "owl:deprecated" annotation property with value of "true^xsd:boolean"
41+
- OBO format: Add an "is_obsolete: true" tag
42+
2. Prepend the string "obsolete " (including the space) to the term label <i>and</i> the `editor preferred term` (IAO:0000111), if present
43+
- NOTE: To be consistent with [Principle 12](https://obofoundry.org/principles/fp-012-naming-conventions.html) "Naming Conventions", the syntax/format MUST be precisely as given above (that is, the exact string as shown, lowercase and space included, with no other punctuation before or after). Thus, the following are disallowed: "Obsolete {label}", "obsolete_{label}", "OBSOLETE {label}" (and variations thereof).
44+
3. Remove all existing logical axioms from the term
45+
4. Remove or replace all usages of the term elsewhere in the ontology. For example, if an ontology has A part-of B, and B has been deprecated with replacement by C, then the corrected axiom would be A part-of C. Likewise, if A part-of B, and B part-of C, if B is deprecated, then any part-of axiom involving B MUST be removed; that is, by stating instead A part-of C.
4646

4747
It is not necessary (and not advisable) to delete the textual definition.
4848

4949
<i><b>To obsolete a term, the ontology developer</b></i> SHOULD:
50-
1) Indicate any exact term replacement:
50+
51+
5. Indicate any exact term replacement:
5152
- OWL: Use the `term replaced by` annotation property from OMO ([IAO:0100001](http://purl.obolibrary.org/obo/IAO_0100001)) with the value set to the IRI of the relevant term
5253
- OBO: Use the `replaced_by:` tag with the value set to the CURIE of the relevant term
53-
2) Indicate any inexact term replacements:
54+
6. Indicate any inexact term replacements:
5455
- OWL: Use the `oboInOwl:consider` annotation property with the value set to the full IRI(s) of the relevant term(s)
5556
```
5657
<oboInOwl:consider rdf:resource="http://purl.obolibrary.org/obo/OBI_0001544")>
@@ -68,10 +69,20 @@ Note that some older implementations in OWL used the CURIE method as shown below
6869
```
6970
<i><b>To obsolete a term, the ontology developer</b></i> MAY:
7071

71-
1) Prepend the string "OBSOLETE. " (this precise string, including the space) to the term definition. NOTE: This MUST be implemented consistently. That is, if applied at all, it has to be applied to every obsoleted term definition.
72-
2) Indicate the reason(s) for obsoleting:
73-
- OWL: Use the `has obsolescence reason` annotation property from OMO ([IAO:0000231](http://purl.obolibrary.org/obo/IAO_0000231)) with the value set to the IRI of one of the individuals of the "obsolescence reason specification" term [IAO:0000225](http://purl.obolibrary.org/obo/IAO_0000225). See below for example.
74-
- OBO: Use `relationship:` with the CURIE for the annotation property (IAO:0000231) and a CURIE for the specific reason (an individual from the "obsolescence reason specification" term [IAO:0000225](http://purl.obolibrary.org/obo/IAO_0000225)). See below for example. Note that older implementations often used alternative methods (described after the examples). These methods are still valid, but are not preferred.
72+
7. Prepend the string "OBSOLETE. " (this precise string, including the space) to the term definition. NOTE: This MUST be implemented consistently. That is, if applied at all, it has to be applied to every obsoleted term definition.
73+
8. Indicate the reason(s) for obsoleting:
74+
- OWL: Use the `has obsolescence reason` annotation property from OMO ([IAO:0000231](http://purl.obolibrary.org/obo/IAO_0000231)) with the value set to the IRI of one of the individuals of the "obsolescence reason specification" term [IAO:0000225](http://purl.obolibrary.org/obo/IAO_0000225). See below for example.
75+
- OBO: Use `relationship:` with the CURIE for the annotation property (IAO:0000231) and a CURIE for the specific reason (an individual from the "obsolescence reason specification" term [IAO:0000225](http://purl.obolibrary.org/obo/IAO_0000225)). See below for example. Note that older implementations often used alternative methods (described after the examples). These methods are still valid, but are not preferred.
76+
77+
78+
|IRI |CURIE |Label |Definition|Editor note |
79+
|---------------|-----------|-----------------------|----------|-------------- |
80+
|obo:IAO_0000103|IAO:0000103|failed exploratory term|The term was used in an attempt to structure part of the ontology but in retrospect failed to do a good job|???|
81+
|obo:IAO_0000226|IAO:0000226|placeholder removed |??? | ??? |
82+
|obo:IAO_0000227|IAO:0000227|terms merged |???|An editor note should explain what were the merged terms and the reason for the merge. |
83+
|obo:IAO_0000228|IAO:0000228|term imported|???|This is to be used when the original term has been replaced by a term imported from an other ontology. An editor note should indicate what is the URI of the new term to use.|
84+
|obo:IAO_0000229|IAO:0000229|term split |???|This is to be used when a term has been split in two or more new terms. An editor note should indicate the reason for the split and indicate the URIs of the new terms created.|
85+
|obo:OMO_0001000|OMO:0001000|out of scope |???|This obsolesence reason should be used conservatively. Typical valid examples are: un-necessary grouping classes in disease ontologies, a phenotype term added on the assumption it was a disease.|
7586

7687
Examples
7788
-------

0 commit comments

Comments
 (0)