docs: curation report for the has_part-to-CL definition-mining scan - #3770
mellybelly wants to merge 1 commit into
Conversation
Documentation only — no ontology changes. Adds docs/reports/has_part_to_cl_scan_2026-09.md and a nav entry for it under "Uberon Internal Docs". The report records a scan of all 15,621 non-obsolete terms in uberon-edit.obo for textual definitions that assert cellular composition but carry no corresponding has_part axiom to a CL class (113 raw candidates), and the triage of those candidates against the anti-patterns described in #2963. It captures: - the method, so the scan can be reproduced without ODK tooling, plus the input snapshot (uberon-edit.obo at f060b3e, cl-base.owl 2025-07-30); - 33 proposed has_part axioms grouped by organ system, each with a PMID verified against Europe PMC, and a citation table for the 18 references; - the ~80 rejected candidates with the reason for each rejection, so a future scan does not re-propose them: broad structure paired with a specific cell type, matches that name a cell part rather than a whole cell (axon tracts, dendritic fields, synaptic structures), structures that surround rather than contain the cell, subjects already covered by composed_primarily_of or by a superclass, and the deliberate `overlaps ... {notes="soma"}` modelling on outer nuclear layer of retina; - 10 candidates deferred pending a curator decision, each with its open question; - why the UBERON-to-UBERON variant of the scan (788 subjects / 1,359 pairs) is not proposed: the curator SOP prefers part_of for anatomy-to-anatomy links, and the match quality is poor. Tracker item: #3769 Signed-off-by: @ai4c-agent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018SafyR4sVmrWYzfV91tJ1p
|
Claude finished @mellybelly's task in 4m 2s —— View job Review checklist
SummaryThis is a documentation-only PR ( What I verified:
🔵 SUGGESTION — exclusion rule isn't applied uniformly (non-blocking, worth a look before the sibling implementation PR): 🔵 SUGGESTION — PMIDs not independently re-verified: this review environment had no outbound network access, so I could not re-check the 18 cited PMIDs against Europe PMC myself. The report states they were checked against Europe PMC before use; I'd still recommend a spot re-check when the sibling implementation PR ( No 🔴 CRITICAL or 🟡 IMPORTANT issues — nothing here blocks merging this docs-only PR. |
There was a problem hiding this comment.
Documentation-only PR (report + mkdocs.yaml nav entry, no src/ changes). Spot-checked 13+ UBERON term IDs/labels cited in the report against uberon-edit.obo directly — all accurate, and none duplicate existing has_part/composed_primarily_of axioms for their proposed CL fillers. Verified the relative SOP link resolves and the mkdocs nav entry is well-formed.
Only two 🔵 non-blocking suggestions (full detail in the PR comment):
- The report's "already covered by composed_primarily_of" exclusion rule (used to reject Purkinje cell layer / dentate gyrus granule cell layer) isn't applied uniformly —
ganglionic layer of retina(UBERON:0001792) already hascomposed_primarily_of CL:0000740, yet gets a proposedhas_part CL:0000740to the identical filler. There is Uberon precedent for asserting both properties to the same class, so this isn't necessarily wrong, but the stated rule should be tightened before the sibling implementation PR is triaged. - I had no network access in this review environment to re-verify the 18 cited PMIDs against Europe PMC; worth a spot re-check when the sibling branch (with the actual axioms) comes up for review.
No CRITICAL or IMPORTANT issues. Approving.
matentzn
left a comment
There was a problem hiding this comment.
What precisely is the rationale to have this kind of information in git rather than simply as GitHub issues?
I think the 3 of us + @dosumis should have a conversation about the general strategy re issues vs docs ...but in this case it's not so important we can leave this as is for now and just start doing the work that is outlined, IMO it all makes sense, let's start making PRs! |
Report for #3769.
Documentation only — this PR changes no ontology files. Nothing under
src/is touched, so no axioms are added, removed or altered by merging it.What this adds
docs/reports/has_part_to_cl_scan_2026-09.mdmkdocs.yamlWhy
A scan of all 15,621 non-obsolete terms in
uberon-edit.oboturned up 113 terms whose textual definition asserts cellular composition but which carry no correspondinghas_partaxiom to a CL class. Triaging those against the anti-patterns in #2963 took a fair amount of case-by-case reasoning, and most of that reasoning is about candidates that should not be added. That is the part worth writing down: without it, the next person to run a similar scan re-derives the same ~80 rejections from scratch.What the report contains
robotjar, plus the input snapshot it was run against (uberon-edit.oboatf060b3e,cl-base.owlrelease2025-07-30).composed_primarily_ofor by a superclass; and the deliberateoverlaps ... {notes="soma"}modelling onouter nuclear layer of retina, which is the right treatment for a layer holding somata rather than whole cells.glomerular epitheliumalso subsumes the podocyte-free parietal epithelium; there is no CL class for a spiny stellate cell or a hilar mossy cell; Paneth cells are absent in several mammals, so a taxon GCI may be preferable to a plain assertion.part_offor anatomy-to-anatomy links and the match quality is poor (mouth→digestive tract,tube→anatomical structure).Checks
mkdocs.yamlparses and the new nav entry resolves; the one relative link in the report (../uberon-editor-sop.md) points atdocs/uberon-editor-sop.md.mkdocsis not installed in this environment, so the site build itself was not run locally.src/in the diff —git diff --name-only master... -- src/is empty.Follow-up, not part of this PR
The 33 proposed axioms are implemented on
claude/uberon-has-part-cl-report's sibling branchclaude/uberon-missing-has-part-jlis59(+33 lines inuberon-edit.obo, round-trip stable, ELK-clean, no unsatisfiable classes). That branch has no PR open; happy to raise one, or to trim it to whichever subset survives review of #3769.@ai4c-agent
🤖 Generated with Claude Code
https://claude.ai/code/session_018SafyR4sVmrWYzfV91tJ1p
Generated by Claude Code