From 1f2d5a3edea65f0b249f639db060fe5e2f86b784 Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 8 Apr 2025 13:03:34 -0400 Subject: [PATCH 01/10] Update fp-007-relations.md Added the 'what to do, when' list discussed and approved by the Ops committee. Note that Examples and Counter-Examples still need to be added (will be done under a separate PR) --- principles/fp-007-relations.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index a2b633883..6e337e64a 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -30,8 +30,26 @@ submitted to the [RO tracker](https://github.com/oborel/obo-relations/issues). Reuse means that the actual relations PURLs are used. Ontology developers should be aware that RO relations (in rare instances) can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the RO relations they use. +- If the domain of the proposed relation is a class in the same ontology as that relation, it is fine to keep in the ontology; if a suitable RO parent exists, the new relation MUST be declared a sub-property of that parent. +- If the domain of the proposed relation is a class outside of the ontology defining that relation, the relation MUST be added to RO. +- If the relation seems generally usable (that is, could potentially be used by other ontologies), the relation MUST be added to RO. +- If there are any doubts about how to proceed based on the above, there SHOULD be an attempt to add to RO. +- It is never a bad idea to add to RO, even for those relations that are 'self-contained' (as described in the first bullet point). + +Note regarding property chains: If a proposed property chain makes use of relations that are themselves in RO, the property chain SHOULD be submitted to RO. + ## Examples ## Counter-Examples - +## Criteria for Review + +Each relation in the ontology that does not use an RO IRI will be checked to see if there is an exact label match in RO. If so, this will be flagged as an ERROR. Any other non-RO properties will be flagged with an INFO message. + +[This check is automatically validated.](checks/fp_007) + +## Feedback and Discussion + +To suggest revisions or begin a discussion pertaining to this principle, please [create an issue on GitHub](https://github.com/OBOFoundry/OBOFoundry.github.io/issues/new?labels=attn%3A+Editorial+WG,principles&title=Principle+%237+%22Relations%22+%3CENTER+ISSUE+TITLE%3E). + +To suggest revisions or begin a discussion pertaining to the automated validation of this principle, please [create an issue on GitHub](https://github.com/OBOFoundry/OBOFoundry.github.io/issues/new?labels=attn%3A+Technical+WG,automated+validation+of+principles&title=Principle+%237+%22Relations%22+-+automated+validation+%3CENTER+ISSUE+TITLE%3E). From 74ee9f533410449305826e2debc84b2694ce5a88 Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 15 Apr 2025 14:40:57 -0400 Subject: [PATCH 02/10] Update fp-007-relations.md (interim) --- principles/fp-007-relations.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 6e337e64a..2a3326ba0 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -3,32 +3,29 @@ layout: principle id: fp-007-relations title: Relations (principle 7) --- - -## NOTE - -The content of this page is scheduled to be reviewed. Improved wording will be posted as it becomes available. +GO TO: [Recommendations/Requirements](#recommendations-and-requirements) | [Implementation](#implementation) | [Examples/Counter‑Examples](#examples) | [Criteria for Review](#criteria-for-review) | [Feedback/Discussion](#feedback-and-discussion) ## Summary -Relations should be reused from the Relations Ontology (RO). +Existing relations MUST be reused from the Relations Ontology (RO). New relations SHOULD be submitted to RO. [This check is automatically validated.](checks/fp_007) ## Purpose -To facilitate interoperability between multiple ontologies, especially with respect to logical inference. That is, a reasoner can only detect logical inconsistencies between ontologies and infer new axioms if the ontologies use the same object properties. +To facilitate interoperability between multiple ontologies, especially with respect to logical inference. That is, a reasoner can only detect logical inconsistencies between ontologies and infer new axioms if the ontologies use the same relations (aka object properties). ## Recommendations and Requirements -Each OBO ontology MUST reuse existing relations (aka object properties) that have already been declared in the Relations Ontology (RO), -rather than declaring relations that mean the same as an existing RO relation. Where it makes sense for an ontology to declare a new relation in +For any given relation need, each OBO ontology MUST reuse a relation from the Relations Ontology (RO) if the appropriate relation already exists, +rather than declaring new relations that hold the same meaning. Where it makes sense for an ontology to declare a new relation in its own ID space and there is a RO relation that is logically a super-property of the new relation, the new relation MUST be asserted to be a sub-property of the RO relation. In such cases, it is requested that there still be coordination with RO, for example in the form of an issue submitted to the [RO tracker](https://github.com/oborel/obo-relations/issues). -## Implementation +Note: 'Reuse' means that the actual RO relations PURLs are used. Ontology developers should be aware that RO relations (in rare instances) can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the RO relations they use. -Reuse means that the actual relations PURLs are used. Ontology developers should be aware that RO relations (in rare instances) can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the RO relations they use. +## Implementation - If the domain of the proposed relation is a class in the same ontology as that relation, it is fine to keep in the ontology; if a suitable RO parent exists, the new relation MUST be declared a sub-property of that parent. - If the domain of the proposed relation is a class outside of the ontology defining that relation, the relation MUST be added to RO. From 3f68090126c998fb8965c17bd3cefa47a29a15e4 Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 15 Apr 2025 14:57:43 -0400 Subject: [PATCH 03/10] Update fp-007-relations.md (interim) --- principles/fp-007-relations.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 2a3326ba0..ddf5082ed 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -7,7 +7,7 @@ GO TO: [Recommendations/Requirements](#recommendations-and-requirements) | ## Summary -Existing relations MUST be reused from the Relations Ontology (RO). New relations SHOULD be submitted to RO. +Existing relations MUST be reused. New relations SHOULD be submitted to the Relations Ontology (RO). [This check is automatically validated.](checks/fp_007) @@ -17,16 +17,19 @@ To facilitate interoperability between multiple ontologies, especially with resp ## Recommendations and Requirements -For any given relation need, each OBO ontology MUST reuse a relation from the Relations Ontology (RO) if the appropriate relation already exists, -rather than declaring new relations that hold the same meaning. Where it makes sense for an ontology to declare a new relation in +For any given relation need, each OBO ontology MUST reuse a relation from the Relations Ontology (RO) or other ontology if the appropriate relation already exists, +rather than declaring new a relation that holds the same meaning. Where it makes sense for an ontology to declare a new relation in its own ID space and there is a RO relation that is logically a super-property of the new relation, the new relation MUST be asserted to be a sub-property of the RO relation. In such cases, it is requested that there still be coordination with RO, for example in the form of an issue submitted to the [RO tracker](https://github.com/oborel/obo-relations/issues). -Note: 'Reuse' means that the actual RO relations PURLs are used. Ontology developers should be aware that RO relations (in rare instances) can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the RO relations they use. - ## Implementation +### Reusing relations +'Reuse' means that the actual existing-relation PURL is used. Ontology developers should be aware that (in rare instances) relations can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the relations they use. The Relations Ontology MUST be the first source for appropriate relations, and ontology developers SHOULD, with due diligence, search RO for needed relations. If a necessary relation cannot be found within RO, then the developers SHOULD search other OBO ontologies for reasonable candidates. + +### Creating New Relations +The appropriate home for new relations will depend on multiple factors, including the general applicability of the relation to other ontologies, and with consideration of the domain and range for the relation: - If the domain of the proposed relation is a class in the same ontology as that relation, it is fine to keep in the ontology; if a suitable RO parent exists, the new relation MUST be declared a sub-property of that parent. - If the domain of the proposed relation is a class outside of the ontology defining that relation, the relation MUST be added to RO. - If the relation seems generally usable (that is, could potentially be used by other ontologies), the relation MUST be added to RO. From 36ee34ae62cc76fddd338b12c91f2b4ebb577736 Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 15 Apr 2025 16:56:03 -0400 Subject: [PATCH 04/10] Update fp-007-relations.md (for review) --- principles/fp-007-relations.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index ddf5082ed..195f5d592 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -29,12 +29,14 @@ submitted to the [RO tracker](https://github.com/oborel/obo-relations/issues). 'Reuse' means that the actual existing-relation PURL is used. Ontology developers should be aware that (in rare instances) relations can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the relations they use. The Relations Ontology MUST be the first source for appropriate relations, and ontology developers SHOULD, with due diligence, search RO for needed relations. If a necessary relation cannot be found within RO, then the developers SHOULD search other OBO ontologies for reasonable candidates. ### Creating New Relations -The appropriate home for new relations will depend on multiple factors, including the general applicability of the relation to other ontologies, and with consideration of the domain and range for the relation: -- If the domain of the proposed relation is a class in the same ontology as that relation, it is fine to keep in the ontology; if a suitable RO parent exists, the new relation MUST be declared a sub-property of that parent. -- If the domain of the proposed relation is a class outside of the ontology defining that relation, the relation MUST be added to RO. -- If the relation seems generally usable (that is, could potentially be used by other ontologies), the relation MUST be added to RO. +The appropriate home for a new relation ('R') will depend on multiple factors, including the general applicability of 'R' beyond its use by developers of the 'R'-proposing ontology ('O'), and with consideration of the domain and range for 'R': +- If both the domain and range of 'R' are classes in the same ontology 'O' as 'R', 'R' MAY be kept in 'O'; +- If either the domain or range of 'R' are classes not in 'O', and 'R' does not seem to be general enough for use by other ontologies, 'R' MAY be kept in 'O'; +- For any 'R' not submitted to RO, if a suitable RO parent ('P') exists, then 'R' MUST be declared a sub-property of 'P'; +- If 'R' seems generally usable (that is, could potentially be used by ontologies other than 'O'), the relation MUST be added to RO; - If there are any doubts about how to proceed based on the above, there SHOULD be an attempt to add to RO. -- It is never a bad idea to add to RO, even for those relations that are 'self-contained' (as described in the first bullet point). + +It is never a bad idea to add a new relation to RO, even for those that are 'self-contained' (that is, as described in the first bullet point). Note regarding property chains: If a proposed property chain makes use of relations that are themselves in RO, the property chain SHOULD be submitted to RO. From 2a33d2d451666f699b69e3275aa0c001ce7bf71f Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 15 Apr 2025 16:57:21 -0400 Subject: [PATCH 05/10] Update fp-007-relations.md (for review) --- principles/fp-007-relations.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 195f5d592..95a79ceef 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -9,8 +9,6 @@ GO TO: [Recommendations/Requirements](#recommendations-and-requirements) | Existing relations MUST be reused. New relations SHOULD be submitted to the Relations Ontology (RO). -[This check is automatically validated.](checks/fp_007) - ## Purpose To facilitate interoperability between multiple ontologies, especially with respect to logical inference. That is, a reasoner can only detect logical inconsistencies between ontologies and infer new axioms if the ontologies use the same relations (aka object properties). From 24ac0120a26010d4d5761a0943022354a9a76d3a Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 15 Apr 2025 16:58:32 -0400 Subject: [PATCH 06/10] Update fp-007-relations.md --- principles/fp-007-relations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 95a79ceef..33ef078c3 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -11,7 +11,7 @@ Existing relations MUST be reused. New relations SHOULD be submitted to the Rela ## Purpose -To facilitate interoperability between multiple ontologies, especially with respect to logical inference. That is, a reasoner can only detect logical inconsistencies between ontologies and infer new axioms if the ontologies use the same relations (aka object properties). +To facilitate interoperability between multiple ontologies, especially with respect to logical inference, because a reasoner can only detect logical inconsistencies between ontologies and infer new axioms if the ontologies use the same relations (aka object properties). ## Recommendations and Requirements From b2b4340fa63a5b03054f26132b078607b58e860e Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Mon, 28 Apr 2025 17:38:43 -0400 Subject: [PATCH 07/10] Update fp-007-relations.md --- principles/fp-007-relations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 33ef078c3..8dc23038c 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -24,7 +24,7 @@ submitted to the [RO tracker](https://github.com/oborel/obo-relations/issues). ## Implementation ### Reusing relations -'Reuse' means that the actual existing-relation PURL is used. Ontology developers should be aware that (in rare instances) relations can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the relations they use. The Relations Ontology MUST be the first source for appropriate relations, and ontology developers SHOULD, with due diligence, search RO for needed relations. If a necessary relation cannot be found within RO, then the developers SHOULD search other OBO ontologies for reasonable candidates. +'Reuse' means that the actual existing-relation PURL is used. Ontology developers should be aware that (in rare instances) relations can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the relations they use. The Relations Ontology MUST be the first source for appropriate relations, and ontology developers SHOULD, with due diligence, search RO for needed relations. If a necessary relation cannot be found within RO, then the developers MUST search other OBO ontologies for reasonable candidates using, for example, an ontology search engine such as Ontobee. ### Creating New Relations The appropriate home for a new relation ('R') will depend on multiple factors, including the general applicability of 'R' beyond its use by developers of the 'R'-proposing ontology ('O'), and with consideration of the domain and range for 'R': From 01ab62b38df3faf7cb88b7cb93e3eaa29ecb85ce Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 29 Apr 2025 13:39:50 -0400 Subject: [PATCH 08/10] Update fp-007-relations.md --- principles/fp-007-relations.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 8dc23038c..767867ab6 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -24,17 +24,17 @@ submitted to the [RO tracker](https://github.com/oborel/obo-relations/issues). ## Implementation ### Reusing relations -'Reuse' means that the actual existing-relation PURL is used. Ontology developers should be aware that (in rare instances) relations can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the relations they use. The Relations Ontology MUST be the first source for appropriate relations, and ontology developers SHOULD, with due diligence, search RO for needed relations. If a necessary relation cannot be found within RO, then the developers MUST search other OBO ontologies for reasonable candidates using, for example, an ontology search engine such as Ontobee. +'Reuse' means that the actual existing-relation PURL is used. Ontology developers should be aware that (in rare instances) relations can evolve over time and previous relations might become obsolete. This means developers should monitor the state of the relations they use. The Relations Ontology MUST be the first source for appropriate relations, and ontology developers SHOULD, with due diligence, search RO for needed relations. If a necessary relation cannot be found within RO, then the developers MUST search other OBO ontologies for reasonable candidates using, for example, an ontology search engine such as [Ontobee](https://ontobee.org/) or [OLS](https://www.ebi.ac.uk/ols4/). ### Creating New Relations The appropriate home for a new relation ('R') will depend on multiple factors, including the general applicability of 'R' beyond its use by developers of the 'R'-proposing ontology ('O'), and with consideration of the domain and range for 'R': - If both the domain and range of 'R' are classes in the same ontology 'O' as 'R', 'R' MAY be kept in 'O'; - If either the domain or range of 'R' are classes not in 'O', and 'R' does not seem to be general enough for use by other ontologies, 'R' MAY be kept in 'O'; +- If 'R' seems generally usable (that is, could potentially be used by ontologies other than 'O'), the relation SHOULD be submitted to RO; - For any 'R' not submitted to RO, if a suitable RO parent ('P') exists, then 'R' MUST be declared a sub-property of 'P'; -- If 'R' seems generally usable (that is, could potentially be used by ontologies other than 'O'), the relation MUST be added to RO; -- If there are any doubts about how to proceed based on the above, there SHOULD be an attempt to add to RO. +- An effort to specify a domain and range for 'R' SHOULD be made, though caution SHOULD be used that each is neither too broad nor too specific. -It is never a bad idea to add a new relation to RO, even for those that are 'self-contained' (that is, as described in the first bullet point). +While it is never a bad idea to submit a new relation to RO, if there are any doubts about how to proceed based on the above, a discussion with RO developers SHOULD be made via the [RO issue tracker](https://github.com/oborel/obo-relations/issues) or the [OBO Community Slack](https://obo-communitygroup.slack.com) for the #relation-ontology channel. Note regarding property chains: If a proposed property chain makes use of relations that are themselves in RO, the property chain SHOULD be submitted to RO. From 59d01552241dafa042f57376cadcca399cb36be2 Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 29 Apr 2025 13:42:45 -0400 Subject: [PATCH 09/10] Update fp-007-relations.md --- principles/fp-007-relations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 767867ab6..0b6e046a0 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -32,7 +32,7 @@ The appropriate home for a new relation ('R') will depend on multiple factors, i - If either the domain or range of 'R' are classes not in 'O', and 'R' does not seem to be general enough for use by other ontologies, 'R' MAY be kept in 'O'; - If 'R' seems generally usable (that is, could potentially be used by ontologies other than 'O'), the relation SHOULD be submitted to RO; - For any 'R' not submitted to RO, if a suitable RO parent ('P') exists, then 'R' MUST be declared a sub-property of 'P'; -- An effort to specify a domain and range for 'R' SHOULD be made, though caution SHOULD be used that each is neither too broad nor too specific. +- An effort to specify a domain and range for 'R' SHOULD be made, though caution is advised to ensure that each is neither too broad nor too specific. While it is never a bad idea to submit a new relation to RO, if there are any doubts about how to proceed based on the above, a discussion with RO developers SHOULD be made via the [RO issue tracker](https://github.com/oborel/obo-relations/issues) or the [OBO Community Slack](https://obo-communitygroup.slack.com) for the #relation-ontology channel. From 933e1dfd8dd8e9940e04f9c97a492faf26b9e0ac Mon Sep 17 00:00:00 2001 From: "Darren A. Natale" Date: Tue, 29 Apr 2025 14:43:14 -0400 Subject: [PATCH 10/10] Update fp-007-relations.md --- principles/fp-007-relations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/principles/fp-007-relations.md b/principles/fp-007-relations.md index 0b6e046a0..c32c2d99f 100644 --- a/principles/fp-007-relations.md +++ b/principles/fp-007-relations.md @@ -34,7 +34,7 @@ The appropriate home for a new relation ('R') will depend on multiple factors, i - For any 'R' not submitted to RO, if a suitable RO parent ('P') exists, then 'R' MUST be declared a sub-property of 'P'; - An effort to specify a domain and range for 'R' SHOULD be made, though caution is advised to ensure that each is neither too broad nor too specific. -While it is never a bad idea to submit a new relation to RO, if there are any doubts about how to proceed based on the above, a discussion with RO developers SHOULD be made via the [RO issue tracker](https://github.com/oborel/obo-relations/issues) or the [OBO Community Slack](https://obo-communitygroup.slack.com) for the #relation-ontology channel. +While it is never a bad idea to submit a new relation to RO, if there are any doubts about how to proceed based on the above, a discussion with RO developers SHOULD be made via the [RO issue tracker](https://github.com/oborel/obo-relations/issues) or the [OBO Community Slack](https://obo-communitygroup.slack.com) using the #relation-ontology channel. Note regarding property chains: If a proposed property chain makes use of relations that are themselves in RO, the property chain SHOULD be submitted to RO.