Prune non-relevant taxa from taxon-specific subsets. - #3751
Conversation
The method that generates the taxon-specific subsets (or "views") leaves the entire NCBITaxon:* tree untouched. For example, a taxon-specific subset still contains the same NCBITaxon:* tree than the entire Uberon ontology. As a result, general class axioms (GCAs) that are completely irrelevant to the taxon for which the subset is generated are still present in the subset. This commit updates the pipeline that creates the taxon-specific subsets so that the NCBITaxon:* is pruned of all the non-relevant taxa (all the taxa that are neither ancestors nor descendants of the taxon for which the subset is generated). Partially fixes #3748
|
Claude finished @gouttegd's task in 2m 0s —— View job Claude's Review Progress
Review checklist
SummaryThis is a small, mechanical, well-targeted change that directly fixes the problem reported in #3748 (taxon-specific "views" retaining GCAs for irrelevant taxa, e.g. rodent-specific Changes:
I verified against the upstream
This is only a partial fix for #3748, as noted in the PR description (it addresses the leftover No ontology terms ( Recommendation: Approve. |
There was a problem hiding this comment.
Small, well-targeted fix for #3748 (taxon-specific subsets retaining GCAs for irrelevant NCBITaxon classes). The --prune-taxa flag and plugin version bump (0.5.0 -> 0.5.1) are correctly wired into the Makefile, and I verified against the upstream uberon-robot-plugin release/PR that the new option's implementation correctly restricts pruning to non-ancestor/non-descendant NCBITaxon classes. No ontology terms or workflow files are touched. Approving.
You have to love the confidence of the large crap generator that can say that even before the CI workflow has finished to run… |
matentzn
left a comment
There was a problem hiding this comment.
I assume you checked the diff on subsets/human-view.owl for example manually to convince yourself the change works :)
| --taxon $(TAXON_ID_$*) \ | ||
| --strategy $(TAXON_SUBSET_STRATEGY) \ | ||
| --reasoner ELK \ | ||
| --prune-taxa \ |
There was a problem hiding this comment.
Are never_in_taxon axioms pointing at removed taxa dropped as well?
There was a problem hiding this comment.
No. This is because the axioms involving never_in_taxon are annotation assertion axioms, not logical axioms (remember that never_in_taxon is an annotation property, not an object property), so the OWLAPI’s OWLEntityRemover will not remove any such axiom even if it happens to point to an entity to remove (the annotation will remain, with a IRI value pointing to something that exists outside of the ontology).
I could add code behind the --prune-taxa option to explicitly also remove the annotation assertion axioms, but I think keeping those annotations is in fact a good thing.
The method that generates the taxon-specific subsets (or "views") leaves the entire NCBITaxon:* tree untouched. For example, a taxon-specific subset still contains the same NCBITaxon:* tree than the entire Uberon ontology.
As a result, general class axioms (GCAs) that are completely irrelevant to the taxon for which the subset is generated are still present in the subset.
This PR updates the pipeline that creates the taxon-specific subsets so that the NCBITaxon:* is pruned of all the non-relevant taxa (all the taxa that are neither ancestors nor descendants of the taxon for which the subset is generated).
Partially fixes #3748