Skip to content

Exact-synonym overloading is not confined to 'mesophilic': 18 keys resolve to 2-9 active classes #614

Description

@realmarcin

#444 describes mesophilic declared as oboInOwl:hasExactSynonym on 8 temperature-bin classes plus the standalone mesophilic class, and states the consumer consequence: a lexical lookup returns 9 non-equivalent classes.

That is not one term. Measured against metpo.json on current main (1,619 terms, 1,216 deprecated, 403 active), 18 strings are claimed as an rdfs:label or hasExactSynonym by more than one active class:

key n family as label of as exact synonym of
mesophilic 9 temperature METPO:1000615 METPO:1000443-446, METPO:1000450-453
alkali tolerant 7 pH METPO:1000456, 1000457, 1000458, 1000461, 1000462, 1000463, 1000464
facultative acidophile 7 pH METPO:1000455, 1000459, 1000460, 1000461, 1000462, 1000463, 1003007
halotolerant 7 salinity METPO:1000622 METPO:1000465, 1000466, 1000467, 1000469, 1000470, 1000471
alkaliphile 6 pH METPO:1000457, 1000458, 1000462, 1000463, 1000464, 1003002
neutrophile 5 pH METPO:1000456, 1000457, 1000461, 1000462, 1003001
acidophile 4 pH METPO:1000455, 1000459, 1000460, 1003003
psychrophile 4 temperature METPO:1000441, 1000442, 1000448, 1000449
acid tolerant 3 pH METPO:1000455, 1000459, 1000460
extreme alkaliphile 3 pH METPO:1000458, 1000463, 1000464
obligative acidophile 3 pH METPO:1000455, 1000459, 1000460
psychrotolerant 3 temperature METPO:1000618 METPO:1000442, 1000449
extreme acidophile 2 pH METPO:1000455, 1000459
extreme halophile 2 salinity METPO:1000468, 1000472
moderate halophile 2 salinity METPO:1000467, 1000471
non-halophile 2 salinity METPO:1000465, 1000469
slight halophile 2 salinity METPO:1000466, 1000470
thermophile 2 temperature METPO:1000447, 1000454

By family: pH 9, salinity 5, temperature 4.

Why file this separately from #444

#444 proposes moving mesophilic from confirmed exact synonym to related synonym on the 8 bin classes, keeping it only on METPO:1000615. That is the right shape of fix, but applied once it leaves 17 more, and the two largest families — pH and salinity — are not mentioned there at all. Anyone reading #444 and fixing it would reasonably believe the problem is closed.

Three sub-patterns, which may want different treatment:

  1. Bin overloading — the 'mesophilic' as exact synonym on 8 temperature-bin classes overloads the term #444 shape. A broad term is an exact synonym of every numeric bin in its series (psychrophile on 4, thermophile on 2, the halophile series).
  2. Label/synonym crossovermesophilic, halotolerant, psychrotolerant are each the rdfs:label of a standalone class and an exact synonym of several bins. A consumer resolving by label gets one answer, by synonym a different set, and cannot tell which was intended.
  3. Optimum/range duplication — several pH and salinity keys sit on both the optimum and the range variant of the same bin (e.g. acidophile on METPO:1000455 and METPO:1000459). Those two are not interchangeable, but no lexical lookup can separate them.

Scope, honestly

This does not currently break kg-microbe: none of the 18 strings appear verbatim in our mapping inputs, so our label-to-CURIE resolution never hits them. Filing it as a correctness matter for lexical consumers generally, not as a live breakage on our side.

Reproduce against metpo.json on main: collect lbl and every hasExactSynonym value for non-deprecated classes, lowercase and strip, and report any key claimed by more than one class.

Related: #517 (qualitative trait classes not linked to their numeric bins) is the structural cause behind sub-pattern 1 — the broad term is doing the linking work that a proper relation would do.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions