Skip to content

Commit d16c7f4

Browse files
Zack-83nataled
andauthored
Improve documentation for obsoletion (#2718)
* Improve documentation for obsoletion Closes #2717 Adjust numbering, indenting and newlines; add allowed values for obsolescence reason * Apply suggestions from code review --------- Co-authored-by: Darren A. Natale <nataled@users.noreply.github.com>
1 parent acfcc05 commit d16c7f4

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

principles/fp-019-term-stability.md

Lines changed: 14 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+
1. 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+
2. 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,10 @@ 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+
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.
73+
2. 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.
7576

7677
Examples
7778
-------

0 commit comments

Comments
 (0)