Quote the SPRUCE abstract instead of paraphrasing it (#347) - #531
Open
realmarcin wants to merge 2 commits into
Open
Quote the SPRUCE abstract instead of paraphrasing it (#347)#531realmarcin wants to merge 2 commits into
realmarcin wants to merge 2 commits into
Conversation
SPRUCE_Peatland_Warming_Community went from 8 reference-validation failures to zero. All eight cited PMID:38515239 and all eight were paraphrases of sentences that are in the cached abstract already — the fix was to quote them. The premise that these were blocked on access does not hold. The paper is open access: Unpaywall reports is_oa=true, oa_status=hybrid, with a PDF at Wiley. It is simply not retrievable programmatically — Europe PMC has no PMC record for it by PMID or by DOI (isOpenAccess=N), and the Wiley pdfdirect URL returns HTTP 403 to a scripted request, which is the publisher behaviour cache_fulltext.py's own docstring names. So "paywalled" was the wrong diagnosis for the right symptom, and no amount of fetching would have fixed it. Quoting also repaired a claim the paraphrase had bent. "Under eCO2, trees preferentially associated with ectomycorrhizal fungi using short-distance exploration strategies that targeted labile nitrogen" attaches "preferentially" to the association; the abstract says "Trees mostly associated with short-distance exploration-type fungi that preferentially use labile soil N", where it attaches to nitrogen use. A paraphrase that validates is still a paraphrase, and this is what #347 meant by the worst record in the KB. 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. |
The record's published page carries the snippet text, so editing the record without re-rendering leaves docs/ showing the old paraphrases. Caught by the docs-current gate, which exists for exactly this and which I had not run on this branch before pushing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Result
SPRUCE_Peatland_Warming_Community— 8 reference-validation failures → 0.All eight cited PMID:38515239, and all eight were paraphrases of sentences that are already in the cached abstract. The fix was to quote them.
"Paywalled" was the wrong diagnosis
The residual on #347 was recorded as 8 snippets blocked on institutional access. That does not hold:
is_oa: true,oa_status: hybrid, best location a PDF at Wiley.pmcid=None, oa=False).isOpenAccess: N, no PMC record.pdfdirect: HTTP 403 to a scripted request — the publisher behaviourcache_fulltext.py's own docstring names for MDPI.So the paper is open access and simply not retrievable programmatically. No amount of fetching would have fixed it, and the snippets never needed full text: every claim they make is in the abstract, just worded differently.
Quoting also repaired a bent claim
One paraphrase read:
The abstract says:
The paraphrase attaches "preferentially" to the association; the source attaches it to the nitrogen use. Different claim. That is what #347 meant by calling this the worst record in the KB — not that the snippets were unverifiable, but that they were restatements, and a restatement can drift while still sounding right.
Also worth noting
cache_fulltext.pycannot retry a PMID-cached reference via its DOI — the DOI is in the cache entry's own frontmatter, but the DOI path requires a DOI-keyed cache file and reportsno abstract cache; fetch the abstract first. It made no difference here (both Europe PMC paths fail for this DOI anyway), so I have not changed it. Mentioning it because the next person to hit an OA-but-not-in-PMC reference will meet the same dead end.Checks
just validate— no issuesjust validate-references— Total checks: 0 (was 8)just validate-strict— exit 0uv run pytest tests/— 2375 passed, 16 skippedCloses #347.
🤖 Generated with Claude Code