You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 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>
Copy file name to clipboardExpand all lines: principles/fp-019-term-stability.md
+14-13Lines changed: 14 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,21 +36,22 @@ Implementation
36
36
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/).
37
37
38
38
<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.
46
46
47
47
It is not necessary (and not advisable) to delete the textual definition.
48
48
49
49
<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:
51
52
- 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
52
53
- 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:
54
55
- OWL: Use the `oboInOwl:consider` annotation property with the value set to the full IRI(s) of the relevant term(s)
@@ -68,10 +69,10 @@ Note that some older implementations in OWL used the CURIE method as shown below
68
69
```
69
70
<i><b>To obsolete a term, the ontology developer</b></i> MAY:
70
71
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.
0 commit comments