Two records I curated from abstracts were wrong, not just thin (#183) - #577
Merged
Conversation
Acting on the lesson from the dental-biofilm record: I had been treating "abstract-only cache" as a property of the source rather than of the cache. Re-ran cache_fulltext.py over the seven records I had judged thin. Two fetched (+59 KB and +60 KB), four are genuinely not OA in Europe PMC, and one already had 95 KB cached that I had failed to search properly. Both fetched records turned out to contain errors, not just gaps. PET_Artificial_FourSpecies_Degradation_Consortium: cultivation_mode was BATCH. The methods show 10 mL of fresh Wn medium supplemented on days 2, 3 and 4 of a 7-day degradation. That is FED_BATCH. Also gained the UV-irradiated film, the wash-and-dilute-to-OD600=2 assembly, and triplicate runs. Clostridium_Saccharomyces_Cellulose_Ethanol_Coculture: system_type was FLASK, inferred from the abstract's "50 mL shake cultures". The full text shows a sealed 100 mL serum bottle with the oxygen line entering through the seal. The seal is the point — a flask cannot hold a controlled oxygen transfer rate, and that rate is the entire mechanism of this mutualism. Corrected to SERUM_BOTTLE with the 50 mL recorded as working volume in a 100 mL vessel. Both errors were plausible readings of an abstract, and both would have stood indefinitely: linkml-validate accepts either value and the snippets validated throughout. The only thing that surfaced them was fetching text I had assumed did not exist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Network integrity findingsWarnings only — a member with no interaction yet, or a participant matched by ontology id rather than by name, or one on a community-level interaction that resolves to no member. Reported, but does not fail the build. The full report is attached to the workflow run as an artifact. |
This was referenced Aug 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The sweep
Acting on the lesson from #576: I had been treating "abstract-only cache" as a property of the source rather than of the cache. Re-ran
cache_fulltext.pyover the seven records I had judged thin on that basis.Both fetched records turned out to contain errors, not just gaps.
PET_Artificial_FourSpecies_Degradation_Consortium:BATCH→FED_BATCHThe methods show 10 mL of fresh Wn medium supplemented on days 2, 3 and 4 of a 7-day degradation. That is feeding, not a single charge.
Also gained: the PET film is UV-irradiated for 24 h before use, members are washed into Wn and diluted to OD₆₀₀ = 2 before combining, and each experiment is triplicate.
Clostridium_Saccharomyces_Cellulose_Ethanol_Coculture:FLASK→SERUM_BOTTLEI had inferred
FLASKfrom the abstract's "50 mL shake cultures". The full text shows a sealed 100 mL serum bottle with the oxygen line entering through the seal.The seal is the point. A flask cannot hold a controlled oxygen transfer rate — and that rate is the entire mechanism of this mutualism, since the yeast protects the anaerobe from oxygen in exchange for sugars. The 50 mL is the working volume in a 100 mL vessel.
Why this matters beyond two records
Both errors were plausible readings of an abstract, and both would have stood indefinitely:
linkml-validateacceptsBATCHandFED_BATCHequally, andFLASKandSERUM_BOTTLEequallyThe only thing that surfaced them was fetching text I had assumed did not exist. That is now a step in the workflow rather than an afterthought, and the four confirmed-not-OA records are recorded as such so the check is not repeated pointlessly.
Checks
just validateon both records — no issuesjust validate-referenceson both — 0 issuesjust validate-strict,just lint,just check-docs-current— exit 0uv run pytest tests/— 2422 passed, 16 skippedPart of #183.
🤖 Generated with Claude Code