Skip to content

Commit 2cd12a7

Browse files
authored
Update fp-019-term-stability.md
Addresses Chris M's suggestions
1 parent a11f207 commit 2cd12a7

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

principles/fp-019-term-stability.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Recommendations and Requirements
2121

2222
If changing a term definition would change its referents, then instead a new term MUST be created with a new IRI and the new definition. Minor changes to the definition for clarity, grammar, and/or proper punctuation that do not change the referents are permitted. What is considered a 'minor change' will likely need to be considered on a case-by-case basis; it is left to the ontology developers to decide. However, any feedback from users MUST be taken into account.
2323

24-
Conditions under which a term must be deprecated according to this principle, or for which term deprecation should be considered, include:
24+
The creation of a new term/definition implies that the old term should possibly be deprecated/obsoleted. Conditions under which a term MUST be deprecated according to this principle, or for which term deprecation SHOULD be considered, include:
2525

2626
1) The old textual definition misses its intended target. This includes cases where the term refers to non-existent referents (as might happen, for example, when new research reveals that the referent does not exist in reality).
2727
1) The original term definition is considered sufficiently “damaged” (too vague, too restrictive, too misused or too misunderstood).
@@ -37,24 +37,24 @@ Detailed procedures for obsoleting a term are described on the OBO Academy page
3737
1) Mark the term as obsolete
3838
- OWL format: Add an "owl:deprecated" annotation property with value of "true^xsd:boolean"
3939
- OBO format: Add an "is_obsolete: true" tag
40-
2) Prepend the string "obsolete " (including the space) to the term label
40+
2) Prepend the string "obsolete " (including the space) to the term label <i>and</i> the `editor preferred term` (IAO:0000111), if present
4141
- 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).
4242
3) Remove all existing logical axioms from the term
43-
4) Remove or replace all usages of the term elsewhere in the ontology
43+
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.
4444

4545
It is not necessary (and not advisable) to delete the textual definition.
4646

4747
<i><b>To obsolete a term, the ontology developer</b></i> SHOULD:
4848
1) Indicate any exact term replacement:
49-
- 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
50-
- OBO: Use the "replaced_by:" tag with the value set to the CURIE of the relevant term
49+
- 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
50+
- OBO: Use the `replaced_by:` tag with the value set to the CURIE of the relevant term
5151
2) Indicate any inexact term replacements:
52-
- OWL: Use the "oboInOwl:consider" annotation property with the value set to the full IRI(s) of the relevant term(s)
52+
- OWL: Use the `oboInOwl:consider` annotation property with the value set to the full IRI(s) of the relevant term(s)
5353
```
5454
<oboInOwl:consider rdf:resource="http://purl.obolibrary.org/obo/OBI_0001544")>
5555
```
5656

57-
- OBO: Use the "consider:" tag with the value set to the CURIE(s) of the relevant term(s)
57+
- OBO: Use the `consider:` tag with the value set to the CURIE(s) of the relevant term(s)
5858
```
5959
consider: OBI:0001544
6060
```
@@ -68,8 +68,8 @@ Note that some older implementations in OWL used the CURIE method as shown below
6868

6969
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.
7070
2) Indicate the reason(s) for obsoleting:
71-
- 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.
72-
- 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.
71+
- 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.
72+
- 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.
7373

7474
Examples
7575
-------
@@ -98,10 +98,10 @@ relationship: IAO:0000231 IAO:0000227
9898
is_obsolete: true
9999
replaced_by: OBI:0001544
100100
```
101-
For OBO format, there are multiple alternatives:
102-
1) Use "property_value:" instead of "relationship:".
103-
1) Use a free text "comment:".
104-
1) Use the annotation property label (with underscores) instead of the CURIE "IAO:0000231", and the obsolescence reason label instead of the relevant CURIE. Note that the underscore version of the property label will need to be created in the ontology:
101+
Obsolescence reasons have, historically, been indicated multiple ways. In addition to the preferred methods shown above, the following alternatives are in current use:
102+
1) As a free text comment (`rdfs:comment` in OWL or `comment:` in OBO).
103+
1) In OBO format, using a `property_value:` tag instead of a `relationship:` tag.
104+
1) In OBO format, using an annotation property label-as-identifier (with underscores) instead of the CURIE `IAO:0000231`, and the obsolescence reason label instead of the relevant CURIE. Note that the underscore version of the property label will need to be created in the ontology:
105105
```
106106
[Typedef]
107107
id: has_obsolescence_reason
@@ -127,8 +127,8 @@ Criteria for review
127127
-------
128128

129129
The OBO Dashboard will show:
130-
- An ERROR if any obsolete term (that is, a term with an "owl:deprecated" property or "is_obsolete: true" tag) does not also have 'obsolete ' (that exact string, lowercase and space included, with no other punctuation) prepended to the label
131-
- An ERROR if any obsolete term (as indicated by term label or definition) lacks an "owl:deprecated" property or "is_obsolete: true" tag
130+
- An ERROR if any obsolete term (that is, a term with an `owl:deprecated` property or `is_obsolete: true` tag) does not also have 'obsolete ' (that exact string, lowercase and space included, with no other punctuation) prepended to the label
131+
- An ERROR if any obsolete term (as indicated by term label or definition) lacks an `owl:deprecated` property or `is_obsolete: true` tag
132132
- An ERROR if an obsolete term has, itself, any logical axioms (including any subClassOf/is_a declarations) or if it is referenced by logical axioms from other terms
133133
- A WARN if there is at least one term with 'OBSOLETE. ' prepended to the definition but not all obsolete terms are likewise prepended
134134

0 commit comments

Comments
 (0)