Interface ObsoleteTermCorrectionService

All Known Implementing Classes:
ObsoleteTermCorrectionServiceImpl

public interface ObsoleteTermCorrectionService
Rewrites annotations that use an obsolete ontology term to the successor the ontology asserts.

Only acts on terms OntologyService.findObsoleteTermsInUse(long, TimeUnit) marked autoCorrectable — i.e. where the replacement was DERIVED from IAO:0100001 or a merge record rather than decided by anyone. A term whose ontology offers only oboInOwl:consider candidates is never touched here; choosing between them is curation and belongs to a curator.

Author:
phase 3 ontology maintenance
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Set<String>
    Terms that are mechanically correctable but that Paul has deferred (2026-08-19).
  • Method Summary

    Modifier and Type
    Method
    Description
    apply(Collection<String> uris, boolean dryRun, long timeout, TimeUnit timeUnit)
    Apply the corrections.
  • Field Details

    • DEFERRED_URIS

      static final Set<String> DEFERRED_URIS
      Terms that are mechanically correctable but that Paul has deferred (2026-08-19). They are skipped unless a caller names one explicitly in uris, so a blanket run can never sweep them up.

      EFO_0000408 is the "disease" CATEGORY on ~7,600 experiments, so correcting it rewrites the shape of the annotation rather than one of its terms. OBI_0003109 is single-NUCLEUS RNA-seq, which OBI merged into the general single-CELL term — mechanically correct and semantically lossy, since it discards a distinction Gemma can currently make on 321 experiments.

  • Method Details

    • apply

      ObsoleteTermCorrectionResult apply(Collection<String> uris, boolean dryRun, long timeout, TimeUnit timeUnit) throws TimeoutException
      Apply the corrections.
      Parameters:
      uris - restrict to these obsolete term URIs; empty or null means every auto-correctable term except DEFERRED_URIS. Naming a deferred term here does act on it — that is the deliberate override.
      dryRun - when true, nothing is written and nothing is resynced, but the returned counts are the ones a live run would produce.
      timeout - budget for resolving terms against the loaded ontologies
      Throws:
      TimeoutException