Repository navigation
MediaDive Potato-to-extract CAS grounding lacks material-form evidence across unified and fallback routes #1236
Description
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 havecondition=" 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_lis supplied,mmol_lis 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, carrieskgm.name:potato / Potato / skos:closeMatch / cas:93348-51-7, sourcemediadive_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-7at line 13770;
hydrate takes precedence, strict remains fallback. Regeneration can import
that label again. - MediaDive also has an embedded
CAS-RNfallback. 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
- 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. - Preserve every recipe occurrence and complete original context. With no
independently supported exact target, retain the existing source-local
mediadive.ingredient:1606identity. Do not collapse it to Potato flour or a
botanical taxon. - Preserve imported registry claims/full mapping rows separately in review
quarantine and a producer-bound audit, not activesame_as/xrefidentity.
Distinguishunsupported material-form identityfor the six explicit
material observations frominsufficient specificityfor the three
unqualified names. These are not nine independently proved wrong identities;
nor does the preparation step certify the resulting infusion as this extract. - 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
realmarcin commentedon Sep 29, 2026
Resolved in PR #1239,
merge commit
c7dae95a046801e4dac171889df4af7204022c6e. The merged tree exactlymatches 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.