Skip to content

MediaDive Potato-to-extract CAS grounding lacks material-form evidence across unified and fallback routes #1236

Closed

Description

@realmarcin

MediaDive Potato ingredient 1606 is grounded to extract-scoped CAS 93348-51-7 without material-form evidence

Related to #286. This is a historical source/mapping finding; the currently
running rebuild has not yet been checked
. It neither reproduces #286's old
234-ID cohort nor implies all CAS identities should disappear.

Evidence

The saved September 27 inventory contains nine infores:mediadive
biolink:has_part assertions to cas:93348-51-7, all for raw
compound_id=1606, compound="Potato":

  • Six have explicit material-form evidence: solutions 3653, 3678, 3679, 3754,
    4879
    have condition=" peeled and cut"; solution 840 has
    attribute="fresh, washed, peeled and sliced".
  • Three are unqualified Potato: solutions 227, 4051, 5502. They must not
    inherit the other records' annotations or be described as independently
    proved fresh tubers.
  • Source assertion IDs are mediadive.solution:<id>#recipe/1, except solution
    227 uses #recipe/2. Amounts are retained as 200 g except 3678=300 g,
    3679=30 g, and 5502=150 g; g_l is supplied, mmol_l is not.

The official EINECS inventory, PDF page 21
associates CAS 93348-51-7 / EC 297-194-4 with the entry
Solanum tuberosum aegrotans, extrakt, describing extractives and their
physically modified derivatives. MediaDive ingredient 1606
lists this identifier with fresh-potato wording and warns that identifiers are
largely automatically matched. Recipe 3653
starts with peeled/cut potato, then boils and strains it. Starting material and
prepared extract are not automatically the same identity.

This does not dispute the CAS number's existence. It establishes a scope concern:
the six explicit material observations do not justify treating the starting
material as the extract, and the three bare names do not supply extract scope.
No replacement CAS or ontology identity has been established.

Why removing one mapping is insufficient

  • Pinned unified SSSOM SHA f1545663016b3871d2176ccbdc76caffdefa472838b716956e8d722aaa2caff9,
    decompressed line 591193, carries kgm.name:potato / Potato / skos:closeMatch / cas:93348-51-7, source mediadive_compounds, comment
    synonym. The consumer uses it as a lexical grounding.
  • Both strict and hydrate MicroMediaParam files contain
    jcm_333_composition / Potato / CAS-RN:93348-51-7 at line 13770;
    hydrate takes precedence, strict remains fallback. Regeneration can import
    that label again.
  • MediaDive also has an embedded CAS-RN fallback. Its guard needs coverage,
    but the saved selected ingredient-1606 raw excerpt contains no CAS field;
    do not claim this potential code path was observed in the historical cohort.
  • The original recipe JSON has no CAS field either. Preserve the imported
    mapping claim with its real provenance, rather than pretending it was part
    of the raw recipe observation.

Proposed bounded resolution

  1. Add a reviewed target-scoped hold for the demonstrated Potato→extract-CAS
    lexical grounding using the shared ingredient identity policy; cover unified,
    both legacy files, embedded namespace aliases, and the adjacent solution-name
    route. No global CAS ban, substring-wide potato exclusion, or guessed replacement.
  2. Preserve every recipe occurrence and complete original context. With no
    independently supported exact target, retain the existing source-local
    mediadive.ingredient:1606 identity. Do not collapse it to Potato flour or a
    botanical taxon.
  3. Preserve imported registry claims/full mapping rows separately in review
    quarantine and a producer-bound audit, not active same_as/xref identity.
    Distinguish unsupported material-form identity for the six explicit
    material observations from insufficient specificity for the three
    unqualified names. These are not nine independently proved wrong identities;
    nor does the preparation step certify the resulting infusion as this extract.
  4. Add hermetic all-route, raw-occurrence, native-positive, regeneration,
    finalization/merge, and audit-integrity regressions. Reconcile the fresh full
    CAS cohort afterward; preserve unrelated support and do not hardcode nine
    as the current expected count.

Saved evidence and duplicate check

Project-relative directory:
data/mim-ship-20260925.QDVfoK/cas-inventory-a75-preparation.HJMtnx/result/.
cas-incident-edges.jsonl SHA
d73d7c65f997cd7c8e06bfb65c52bdbf9b9f6a0b9387d5c3092164b494c59384;
historical archive SHA
b97b026e11dc1394d61d58c0b926c8a65d665ec8fb8e04df5e640abd2bceac9d.
Source primary-authority checks were made 2026-09-29; direct Common Chemistry/
PubChem access failures were not treated as evidence of registry absence.

Live open-issue searches of title/body/comments for the exact CAS, potato,
1606, and Solanum returned no matches on 2026-09-29. #286 remains the broader
umbrella; #337 concerns other ingredient names, while #788/#1009 are closed
finite historical defects, not this case.

This issue does not authorize editing a running candidate or certify release
readiness. Full scoped proposal and immutable input/code hashes are in
data/issue1224-quarantine-20260929.xjuS9H/production-review/potato-scope-resolution-proposal.md.

Independent scientific review rehashed and reselected the nine saved rows,
checked the primary inventory and recipe scope, and supported this bounded
withholding proposal. Implementation and fresh-output acceptance remain pending.

Activity

  1. realmarcin commented on Sep 29, 2026

    @realmarcin
    CollaboratorAuthor

    Resolved in PR #1239,
    merge commit c7dae95a046801e4dac171889df4af7204022c6e. The merged tree exactly
    matches the independently reviewed/tested head 03dd4bc918566ceffd43692ef1ed865419a441aa.

    Full pytest and tox's pytest each passed 4,952 tests (15 skipped); all six tox
    environments, lock/config checks and Python 3.10/3.11/3.12 CI passed. The source
    change also passed the actual isolated MediaDive replay and full-row comparison;
    the later fixture repairs were independently reviewed. Detailed terminal gates:
    PR acceptance comment.

    The topic branch is deleted locally and remotely, with its detached worktree
    and original failed/successful review evidence retained. This closes the bounded
    implementation/review finding, not umbrella #650/#286 production acceptance.
    The final combined correction and fresh all-source/candidate-merge reviews remain
    separate. The existing merged archive and user statistics are unchanged.

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