Skip to content

DISCONNECTED rewards unsourced metadata: removing a fabricated abundance_level creates findings #304

Description

@realmarcin

Found while fixing #300. Concrete evidence for the DISCONNECTED policy question already raised in #273.

Two interacting rules

1. COMMUNITY_LEVEL interactions connect nothing. audit_community builds connected_taxa purely from source_taxon / target_taxon (network/auditor.py:189,229). A COMMUNITY_LEVEL interaction has neither by design, so it contributes no connections. 107 of the 302 records with interactions are entirely COMMUNITY_LEVEL, meaning a third of the KB has, structurally, zero connected taxa.

2. abundance_level or functional_role exempts a taxon from being reported (auditor.py:258):

if taxon_data.get("abundance_level") or taxon_data.get("functional_role"):
    continue

That exemption is why rule 1 does not produce hundreds of findings — most taxa carry one of those slots.

The perverse incentive

Combined, they mean removing unsourced metadata creates audit findings.

In #298 I had invented abundance_level values for SynCom_ARC_Peanut_Aflatoxin_NodulationAbundanceEnum is quantitative (DOMINANT = ">1% relative abundance") and the paper reports no abundances, so all of them were fabricated. Review removed them, which is unambiguously the right call. The immediate consequence was five new DISCONNECTED findings for that record, and #300's fix (dropping a misleading pairwise edge in favour of a COMMUNITY_LEVEL one) added two more: 34 → 36 repo-wide.

So the audit currently scores a record better for carrying invented abundances than for honestly omitting them. A curator optimising the audit would fill those slots with guesses.

Why this matters for #273

#273 has to decide what DISCONNECTED means before the gate can be restored. This sharpens it: as implemented, DISCONNECTED is not "this taxon has no curated interaction" but "this taxon has no pairwise interaction and no membership metadata" — a compound condition that mixes graph connectivity with slot completeness, and which the exemption clause makes non-obvious.

Options

  • Credit COMMUNITY_LEVEL interactions. Treat every taxon in a record as connected by a community-level interaction, which is what such an interaction asserts. Removes the structural penalty on 107 records and makes DISCONNECTED mean what its name says.
  • Drop the metadata exemption and let DISCONNECTED be purely about connectivity — cleaner semantics, but would surface a large backlog at once.
  • Split the two ideas into separate issue types: no-interaction versus no-membership-metadata. They are different curation gaps and currently share a label.

The first looks correct on its own merits regardless of what #273 decides, since a COMMUNITY_LEVEL interaction genuinely does relate its members.

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