Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logical axioms from external relationships found in edit file #2453

Open
anitacaron opened this issue May 4, 2022 · 17 comments
Open

Logical axioms from external relationships found in edit file #2453

anitacaron opened this issue May 4, 2022 · 17 comments
Assignees
Labels

Comments

@anitacaron
Copy link
Collaborator

After I did cleansing in #2377, some logical axioms are only present in UBERON.

[Typedef]
id: capable_of
name: capable of
xref: RO:0002215
is_a: functionally_related_to ! functionally related to

[Typedef]
id: connected_to
name: connected to
xref: RO:0002170
is_a: transitively_connected_to ! transitively_connected to

[Typedef]
id: continuous_with
name: continuous with
xref: RO:0002150
is_symmetric: true

[Typedef]
id: develops_from
name: develops from
xref: RO:0002202
is_a: has_developmental_contribution_from ! has developmental contribution from

[Typedef]
id: drains
name: drains
xref: RO:0002179
domain: UBERON:0001638 ! vein

[Typedef]
id: has_branching_part
name: has branching part
xref: RO:0002569
is_transitive: true

[Typedef]
id: has_developmental_contribution_from
name: has developmental contribution from
xref: RO:0002254
is_transitive: true

[Typedef]
id: has_skeleton
name: has skeleton
xref: RO:0002551
domain: UBERON:0000475 ! organism subdivision
range: UBERON:0010912 ! subdivision of skeleton

[Typedef]
id: immediately_posterior_to
name: immediately posterior to
xref: BSPO:0015012
is_a: adjacent_to ! adjacent_to

[Typedef]
id: immediately_superficial_to
name: immediately superficial to
xref: BSPO:0015014
is_a: adjacent_to ! adjacent_to

[Typedef]
id: in_lateral_side_of
name: in lateral side of
xref: BSPO:0000126
disjoint_from: in_central_side_of ! in_central_side_of

[Typedef]
id: in_taxon
name: in taxon
xref: RO:0002162
holds_over_chain: attaches_to in_taxon
holds_over_chain: connected_to in_taxon
holds_over_chain: connects in_taxon
holds_over_chain: continuous_with in_taxon
holds_over_chain: developmentally_induced_by in_taxon
holds_over_chain: existence_ends_during in_taxon
holds_over_chain: existence_starts_during in_taxon
holds_over_chain: extends_fibers_into in_taxon
holds_over_chain: has_potential_to_develop_into in_taxon
holds_over_chain: innervated_by in_taxon
holds_over_chain: overlaps in_taxon
holds_over_chain: produced_by in_taxon
holds_over_chain: produces in_taxon
holds_over_chain: supplies in_taxon

[Typedef]
id: innervated_by
name: innervated_by
xref: RO:0002005
transitive_over: branching_part_of ! branching_part_of

[Typedef]
id: simultaneous_with
name: simultaneous with
xref: RO:0002082
is_a: ends ! ends
is_a: starts ! starts

[Typedef]
id: supplies
name: supplies
xref: RO:0002178
domain: UBERON:0001637 ! artery

@matentzn
Copy link
Contributor

matentzn commented May 5, 2022

Just to say it, fantastic work on the non-base axioms @anitacaron.

@cmungall @dosumis it is now up to you to decide which axioms should go in RO, and which ones should be discarded. Once we know (just edit @anitacaron comment to indicate if something is bad), just comment "ok to move the rest to RO" and we will take care of the rest

  • deleting the axioms from Uberon
  • adding them to RO/BSPO

Thank you!

@dosumis
Copy link
Contributor

dosumis commented May 5, 2022

[Typedef]
id: capable_of
name: capable of
xref: RO:0002215
is_a: functionally_related_to ! functionally related to

This is already in RO (indirectly)


transitively_connected_to is not in RO. Having a transitive superProperty of connected_to is dangerous for reasoning. It can make pre-reasoning of existentials blow up massively. So, I'd be reluctant to include it in RO. @cmungall ?

[Typedef]
id: connected_to
name: connected to
xref: RO:0002170
is_a: transitively_connected_to ! transitively_connected to


[Typedef]
id: continuous_with
name: continuous with
xref: RO:0002150
is_symmetric: true


[Typedef]
id: develops_from
name: develops from
xref: RO:0002202
is_a: has_developmental_contribution_from ! has developmental contribution from


[Typedef]
id: drains
name: drains
xref: RO:0002179
domain: UBERON:0001638 ! vein

[Typedef]
id: supplies
name: supplies
xref: RO:0002178
domain: UBERON:0001637 ! artery

  • Add to RO (OK with me to add to RO, or do we want this to be used more broadly? @cmungall) Edit: In discussion for another solution

[Typedef]
id: has_branching_part
name: has branching part
xref: RO:0002569
is_transitive: true

Looks reasonable, although potential for massive proliferation of trivial inferences.


[Typedef]
id: has_developmental_contribution_from
name: has developmental contribution from
xref: RO:0002254
is_transitive: true

Based on definition "x has developmental contribution from y iff x has some part z such that z develops from y"@en
This is wrong and so should not be in RO.


[Typedef]
id: has_skeleton
name: has skeleton
xref: RO:0002551
domain: UBERON:0000475 ! organism subdivision
range: UBERON:0010912 ! subdivision of skeleton

I think the domain maybe too strict. Doesn't my foot have a skeleton. Is a foot an organism subdivision?


[Typedef]
id: immediately_posterior_to
name: immediately posterior to
xref: BSPO:0015012
is_a: adjacent_to ! adjacent_to

[Typedef]
id: immediately_superficial_to
name: immediately superficial to
xref: BSPO:0015014
is_a: adjacent_to ! adjacent_to

[Typedef]
id: in_lateral_side_of
name: in lateral side of
xref: BSPO:0000126
disjoint_from: in_central_side_of ! in_central_side_of


[Typedef]
id: in_taxon
name: in taxon
xref: RO:0002162
holds_over_chain: attaches_to in_taxon
holds_over_chain: connected_to in_taxon
holds_over_chain: connects in_taxon
holds_over_chain: continuous_with in_taxon
holds_over_chain: developmentally_induced_by in_taxon
holds_over_chain: existence_ends_during in_taxon
holds_over_chain: existence_starts_during in_taxon
holds_over_chain: extends_fibers_into in_taxon
holds_over_chain: has_potential_to_develop_into in_taxon
holds_over_chain: innervated_by in_taxon
holds_over_chain: overlaps in_taxon
holds_over_chain: produced_by in_taxon
holds_over_chain: produces in_taxon
holds_over_chain: supplies in_taxon

These are used to extend taxon inference (and therefore are useful in the generation of taxon slims). The general principle seems to be that anything with a relationship to a term with a taxon restriction will inherit that restriction. On the one hand, it seems like this could expand in RO to cover many more relationships given that in_taxon is used in so many different contexts. Based on usage I'd say domain & range = 'biological entity' where that could be continuant or occurrent. But there is also some danger of these chains causing bleed through to contexts where they shouldn't apply e.g. if part_of links an individual to a population ?

See geneontology/go-ontology#23012 (comment) for a script-based solution to specifying chains over in_taxon


[Typedef]
id: simultaneous_with
name: simultaneous with
xref: RO:0002082
is_a: ends ! ends
is_a: starts ! starts

@anitacaron anitacaron added the tech label May 9, 2022
@anitacaron
Copy link
Collaborator Author

[Typedef]
id: develops_from
name: develops from
xref: RO:0002202
is_a: has_developmental_contribution_from ! has developmental contribution from

seems reasonable to add to RO

has_developmental_contribution_from is already a sibling of develops_from.

Should it still be added to RO?

@matentzn
Copy link
Contributor

matentzn commented Jun 7, 2022

Yes add for now and see what happens.

@cmungall
Copy link
Member

cmungall commented Jun 7, 2022

I agree with all @dosumis comments

happy to drop transitively_connected_to, it's useful and safe for certain shapes of TBox but queries can always inject this where needed

I think adding uberon domains/ranges for supplies/drains is too restricted for RO. We could either (1) rename to a more specific relation (2) add the domains/ranges back as universal restrictions (obv not ideal for Elk)

has_skeleton domain: this may be a case of a domain trying to do the closed-world work of a DP. Although I am not sure it's particularly problematic either - foots/autopods are organism subdivisions

I am not so sure has-developmental-contribution transitivity is wrong but happy to go with this for now and take anything involving development RO axioms to a dedicated issue

@github-actions
Copy link

This issue has not seen any activity in the past 6 months; it will be closed automatically one year from now if no action is taken.

@anitacaron
Copy link
Collaborator Author

anitacaron commented Jan 16, 2023

From Chris' comment #2453 (comment)

I think adding uberon domains/ranges for supplies/drains is too restricted for RO. We could either (1) rename to a more specific relation (2) add the domains/ranges back as universal restrictions (obv not ideal for Elk)

[Typedef]
id: drains
name: drains
xref: RO:0002179
domain: UBERON:0001638 ! vein

[Typedef]
id: supplies
name: supplies
xref: RO:0002178
domain: UBERON:0001637 ! artery

@dosumis what do you think? Which option could we take?

Related to the has_skeleton domain:

has_skeleton domain: this may be a case of a domain trying to do the closed-world work of a DP. Although I am not sure it's particularly problematic either - foots/autopods are organism subdivisions

[Typedef]
id: has_skeleton
name: has skeleton
xref: RO:0002551
domain: UBERON:0000475 ! organism subdivision
range: UBERON:0010912 ! subdivision of skeleton

@dosumis:

  • Remove the axiom in UBERON?
  • Add to RO?

@dosumis
Copy link
Contributor

dosumis commented Feb 27, 2023

Please retain - moving to Uberon. These are highly likely to be doing useful work in Uberon. Removing or broadening would require looking at & carefully considering the modelling consequences, which should be done int he context of work on the vasculature/skeleton.

@matentzn
Copy link
Contributor

If @cmungall thinks the domains and ranges are too restrictive for RO, the proper path would be to create new object properties and have them be subclasses of their RO counterparts.. We should never inject axioms like this into our ontologies - they will definitely leak!

@matentzn
Copy link
Contributor

Suggestion from pattern call:

Create specific relationships and transfer the semantics to these.

@anitacaron
Copy link
Collaborator Author

What would be the name of these specific relations?

@matentzn
Copy link
Contributor

Lets say

"supplies artery"
"drains artery"

or

"supplies vessel"
"drains vessel"

@cmungall
Copy link
Member

cmungall commented Mar 20, 2023 via email

@dosumis
Copy link
Contributor

dosumis commented Mar 21, 2023

oborel/obo-relations#699

Copy link

This issue has not seen any activity in the past 6 months; it will be closed automatically one year from now if no action is taken.

@github-actions github-actions bot added the Stale label Jan 21, 2024
@gouttegd gouttegd assigned gouttegd and unassigned anitacaron Oct 14, 2024
@gouttegd
Copy link
Collaborator

gouttegd commented Oct 15, 2024

Status as of October 2024:

(A) The following injected axioms in Uberon are already present in RO.

It should therefore be uncontroversial that we can drop those injections from Uberon.

The remaining Uberon-specific injections are:

(B) 'has skeleton'

In RO, that relation is range-restricted to 'anatomical structure' and domain-restricted to 'material anatomical entity'.

Corresponding RO ticket: oborel/obo-relations#700. Last comment in that ticket suggests that we should stick to the RO-defined range and domain and drop the Uberon injections.

(C) drains Domain: vein

RO has added 'vessel drains blood from', which is domain-restricted to 'blood vessel' -- slightly more lax than the Uberon injection, but I think it is good enough and we can drop our injection (and start using that new relation instead of drains)?

(D) supplies Domain: artery

Likewise, RO has recently added 'vessel supplies blood to' which is domain-restricted to 'blood vessel'. Again, I think it is good enough for Uberon?

(E) 'innervated by' o 'branching part of' SubPropertyOf: 'innervated by'

Unless I missed something, I don’t think this one has been discussed.

(F) All the property chains over 'in taxon'

Not really discussed (again unless I missed something) apart from @dosumis’ comment:

These are used to extend taxon inference (and therefore are useful in the generation of taxon slims). The general principle seems to be that anything with a relationship to a term with a taxon restriction will inherit that restriction. On the one hand, it seems like this could expand in RO to cover many more relationships given that in_taxon is used in so many different contexts. Based on usage I'd say domain & range = 'biological entity' where that could be continuant or occurrent. But there is also some danger of these chains causing bleed through to contexts where they shouldn't apply e.g. if part_of links an individual to a population ?

To which I would add that for now, the fact that those property chains are only defined in Uberon means that taxon constraints are understood differently in Uberon and in CL, which cannot be good. I am strongly in favour of moving all those property chains to RO.

@gouttegd gouttegd removed the Stale label Oct 15, 2024
@gouttegd
Copy link
Collaborator

gouttegd commented Oct 17, 2024

Regarding drains and supplies:

Replacing them by the more specific relations '(vessel) drains blood from' and '(vessel) supplies blood to' would cause the following problems, all due to the fact that the more specific relations are range-restricted to 'anatomical structure':

I don’t think that asking RO to drop the range restriction to 'anatomical structure' would be the correct solution -- that restriction seems OK to me, relaxing it to allow saying that a vessel supplies or drains blood to or from an immaterial entity would be weird.

For supraorbital artery, a likely solution could be to establish the relationship with 'mucosa of frontal sinus' rather than the frontal sinus itself?

For intercostal artery, a possible solution would be to replace

'intercostal artery' SubClassOf: 'supplies blood to' some 'intercostal space'

by individual relationships to the various elements found in the intercostal space such as 'intercostal muscle' and 'intercostal lymph node'.

However this is not really applicable to 'intercostal vein' because for that term, the relationship is part of the logical definition:

'intercostal vein' EquivalentTo: vein and ('drains blood from' some 'intercostal space')

A possibly better solution would be to add a new term like “intercostal element”, defined as

'anatomical structure' and ('located in' some 'intercostal space')

and then use the new term to define both intercostal artery:

'intercostal artery' SubClassOf: 'supplies blood to' some 'intercostal element'

and 'intercostal vein':

'intercostal vein' EquivalentTo: vein and ('drains blood from' some 'intercostal element')

gouttegd added a commit that referenced this issue Oct 17, 2024
We are injecting several statements about RO terms that are redundant
because they correspond to axioms that are already present in upstream
RO.

Here, we remove all such injections. We also prevent the renaming of RO
terms (e.g., avoid renaming 'present in taxon' into 'present_in_taxon').

Of note, the injections on RO:0002492 ('existence ends during') were not,
in fact, redundant: we injected a somewhat simplified definition and an
exact synonym that do not exist in RO. But since we did not inject such
simplified definitions and synonyms for other similar relations (e.g.
'existence starts during'), there is no reason to do it specifically for
'existence ends during'.

Related to #2453
gouttegd added a commit that referenced this issue Nov 11, 2024
In RO, 'has skeleton' (RO:0002551) is domain-restricted to 'anatomical
structure' (UBERON:0000061) and range-restricted to 'material anatomical
entity' (UBERON:0000465).

Currently, in Uberon we are overriding those restrictions by injecting
tigher constraints: a domain restriction to 'organism subdivision'
(UBERON:0000475) and a range restriction to 'subdivision of skeleton'
(UBERON:0010912).

A ticket to upstream those tighter restrictions to RO has gone nowhere
in more than one year
(oborel/obo-relations#700).

This PR removes the Uberon-injected restrictions and leaves it to RO to
decide whether they should adopt them or not.

Of note, the only inferred axiom that those tighter restrictions give us
is this one:

> 'nose' SubClassOf: 'organism subdivision'

So we don't lose much by removing them until they are (maybe) added back
directly by RO.

Related to #2453
gouttegd added a commit that referenced this issue Nov 14, 2024
RO now provides 'vessel supplies blood to' (RO:0020101) as a more
specific variant of 'supplies' (RO:0002178). The new relation is
domain-restricted to 'blood vessel' (UBERON:0001981). We use that new
relation wherever 'supplies' was used to qualify a blood vessel.

Likewise for 'vessel drains blood from' (RO:0020102), which is a more
specific variant of 'drains' (RO:0002179).

Recently introduced patterns for arteries and veins (#3288) already use
the more specific relations.

No longer using 'drains' and 'supplies' wherever a blood vessel is
involved means that we no longer need to inject our own domain and range
restrictions to those relations, so we remove those injections as well
(#2453).
gouttegd added a commit that referenced this issue Dec 16, 2024
RO now provides 'vessel supplies blood to' (RO:0020101) as a more
specific variant of 'supplies' (RO:0002178). The new relation is
domain-restricted to 'blood vessel' (UBERON:0001981). We use that new
relation wherever 'supplies' was used to qualify a blood vessel.

Likewise for 'vessel drains blood from' (RO:0020102), which is a more
specific variant of 'drains' (RO:0002179).

Recently introduced patterns for arteries and veins (#3288) already use
the more specific relations.

No longer using 'drains' and 'supplies' wherever a blood vessel is
involved means that we no longer need to inject our own domain and range
restrictions to those relations, so we remove those injections as well
(#2453).
gouttegd added a commit that referenced this issue Dec 17, 2024
RO now provides 'vessel supplies blood to' (RO:0020101) as a more
specific variant of 'supplies' (RO:0002178). The new relation is
domain-restricted to 'blood vessel' (UBERON:0001981). We use that new
relation wherever 'supplies' was used to qualify a blood vessel.

Likewise for 'vessel drains blood from' (RO:0020102), which is a more
specific variant of 'drains' (RO:0002179).

Recently introduced patterns for arteries and veins (#3288) already use
the more specific relations.

No longer using 'drains' and 'supplies' wherever a blood vessel is
involved means that we no longer need to inject our own domain and range
restrictions to those relations, so we remove those injections as well
(#2453).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants