Skip to content

Add terms for skull and calvarial bone marrow - #3758

Open
cmungall wants to merge 6 commits into
masterfrom
claude/nature-article-review-eecmlk
Open

Add terms for skull and calvarial bone marrow#3758
cmungall wants to merge 6 commits into
masterfrom
claude/nature-article-review-eecmlk

Conversation

@cmungall

@cmungall cmungall commented Aug 21, 2026

Copy link
Copy Markdown
Member

Why

Reviewing Park, Abramishvili, Davanzo et al., "Functional role of skull lymphoid structures in CNS immunosurveillance" (Nature, 19 Aug 2026, PMID:42618784) turned up a gap that is bigger than the paper: UBERON has no representation of skull bone marrow at all.

The only bone-marrow-by-site terms in the edit file are red bone marrow of sternum (UBERON:8410080) and red bone marrow of iliac crest. Skull marrow has been an active subject since Herisson et al. described transcalvarial vascular channels in 2018, and nearly every paper in the field is built on a skull-vs-other-site comparison. We could express one side of that comparison and not the other.

⚠️ Do not merge yet — the IDs are temporary

UBERON:9903758 / UBERON:9903759 come from the 9900000–10000000 block that uberon-idranges.owl allocates to "Temporary IDs". They must be minted from a real allocated range first. This PR was opened as a draft for that reason; it was taken out of draft by dragon-ai-agent at 16:48 UTC, not because the IDs were resolved.

What this adds

Two terms, following the existing by-site pattern:

ID Name Logical definition xref
UBERON:9903758 bone marrow of skull bone marrow and part_of some skull (UBERON:0003129) SCTID:712962003
UBERON:9903759 bone marrow of calvaria bone marrow of skull and part_of some vault of skull (UBERON:0004339)

Synonyms: skull bone marrow, cranial bone marrow, skull BM on the first; calvarial bone marrow, calvarial marrow on the second.

Citations — all six verified against PubMed

Every PMID in the two definitions, checked via PubMed esummary and confirmed to resolve to the paper cited:

PMID Title Journal Supports
30150661 Direct vascular channels connect skull bone marrow and the brain surface enabling myeloid cell migration (Herisson et al.) Nat Neurosci 2018 osseous channels between skull marrow and brain surface
34083447 Skull and vertebral bone marrow are myeloid cell reservoirs for the meninges and CNS parenchyma (Cugurra et al.) Science 2021 skull marrow as a local myeloid reservoir for meninges/CNS
35301477 Cerebrospinal fluid regulates skull bone marrow niches via direct access through dural channels (Mazzitelli et al.) Nat Neurosci 2022 CSF access to skull marrow via dural channels
37996526 Skull bone marrow channels as immune gateways to the central nervous system (Mazzitelli et al.) Nat Neurosci 2023 review; the "communicates directly with the dura mater through osseous skull channels" clause
41389063 Functional Specialization of the Calvarial Bone Marrow (Koh & Adams) Physiology 2026 review; diploic location and regional heterogeneity of calvarial marrow
42618784 Functional role of skull lymphoid structures in CNS immunosurveillance (Park et al.) Nature 2026 the source paper; lymphoid structures and their regional distribution

Note for anyone re-checking: Europe PMC has no record of PMID:42618784; PubMed does. A verification path that queries only Europe PMC will report it missing.

Cross-ontology situation

  • SNOMED has the grouping class. SCTID:712962003 "Structure of bone marrow of cranium", xrefed on bone marrow of skull. Not exact — SNOMED scopes it to the cranium, so it excludes the mandibular marrow this class admits. Its parent SCTID:421320006 is already xrefed on bone marrow, and its children cover frontal, temporal, sphenoid and nasal-orbit marrow. Recorded in external_ontology_notes rather than left implicit.
  • FMA has no counterpart for either term, but does have the per-bone classes. FMA descends from Bone marrow of flat bone (FMA:303320) straight to individual bones — FMA:303380 frontal, FMA:303382 parietal, FMA:303388 occipital, FMA:303390 sutural, FMA:303454 temporal — with no skull-level or calvaria-level grouper in between. So no FMA xref is assertable here, and both stanzas say so. Those per-bone classes are the ready xref targets if the regional calvarial marrow terms below are ever added.
  • Worth noting separately: red bone marrow of sternum (UBERON:8410080) has no FMA xref either, though FMA:303392 "Bone marrow of sternum" exists. Pre-existing, out of scope here.

Modelling decisions worth a reviewer's eye

  • bone marrow of calvaria takes bone marrow of skull as its genus, not bone marrow directly. UBERON asserts skull has_part cranium but never cranium part_of skull, so vault of skull → neurocranium → cranium dead-ends without reaching skull, and defining it as bone marrow + part_of vault of skull would leave the subsumption unentailed. CI's logical-definition check confirms the intended entailment; ai4c-reviewer independently verified the chain. The alternative fix is adding the missing cranium part_of skull upstream, which may be the better call.
  • Genus is bone marrow, not red bone marrow, even though calvarial marrow is haematopoietically active in mouse and human. Fatty conversion is age- and site-dependent; a red bone marrow of calvaria child can follow if needed.
  • bone marrow of skull carries a terminology_notes warning. Extended Data Fig. 1b of the paper plots Skull, Skull Base, Vertebrae, Sternum, Femur and Dura as separate sampled tissues — so this literature's "skull bone marrow" is the narrower calvarial compartment, and basicranial marrow is deliberately excluded from it. The note says so and points at basicranium (UBERON:0002517).
  • bone marrow of calvaria carries a calvaria-vs-vault caveat. vault of skull records that the vault may not be precisely equivalent to the calvaria; the new class documents that it inherits that ambiguity and means the marrow of whatever vault of skull covers.

Status

Related gaps found, deliberately left alone

  • tertiary lymphoid structure — zero hits for "tertiary lymphoid", "ectopic lymphoid" or "lymphoid aggregate". Wanted by tumour immunology, iBALT and meningeal lymphoid aggregate work; deserves its own NTR.
  • diploe — FMA:76630 exists and HP:0030312 already depends on the concept. The bone marrow of calvaria definition refers to "diploic spaces" with nothing to point at.
  • skull–meninges connection — well replicated, but blocked on whether it is modelled as a bony canal or a vessel, and there is no diploic vein term to anchor against.
  • skull bone marrow lymphoid structure — the paper's headline entity, deliberately not added. Described as germinal-centre-like throughout; human evidence is a reanalysis of a single dataset.
  • Regional calvarial marrow terms, now with FMA xref targets in hand, plus bone marrow of basicranium and the rest of the by-site series (femur FMA:303348, tibia FMA:303360, vertebra FMA:303412).

Full review: https://claude.ai/code/artifact/8ec95325-9943-42f9-8d7d-93bc03a20caf

claude added 2 commits August 20, 2026 05:01
Motivated by a review of Park et al. (2026) "Functional role of skull
lymphoid structures in CNS immunosurveillance", Nature,
doi:10.1038/s41586-026-10951-4.

UBERON had no representation of skull/calvarial bone marrow at all, even
though this compartment has been an active subject of neuroimmunology
since 2018 (Herisson et al. 2018, PMID:30150661; Cugurra et al. 2021,
PMID:34083447; Mazzitelli et al. 2022, PMID:35301477) and is the subject
of the Park et al. paper. The only bone-marrow-by-site terms present were
'red bone marrow of sternum' (UBERON:8410080) and 'red bone marrow of
iliac crest'; this made it impossible to annotate the growing body of
scRNA-seq and imaging data that contrasts skull marrow with other marrow
sites.

Two new terms, following the existing bone-marrow-by-site pattern:

- UBERON:9900001 'bone marrow of skull'
    bone marrow and part_of some skull (UBERON:0003129)
    syn: skull bone marrow, cranial bone marrow, skull BM

- UBERON:9900002 'bone marrow of calvaria'
    bone marrow of skull and part_of some vault of skull (UBERON:0004339)
    syn: calvarial bone marrow, calvarial marrow

'bone marrow of calvaria' is defined relative to 'bone marrow of skull'
rather than to 'bone marrow' directly, because UBERON does not assert
cranium part_of skull (only skull has_part cranium), so the subsumption
would not otherwise be entailed.

All definition xrefs are verified PMIDs. Note that the Park et al. paper
is not yet indexed in PubMed/Europe PMC, so it is cited by DOI in the
term comments rather than as a definition xref; the DOI should be
replaced with a PMID once one is assigned.

IDs are in the temporary UBERON:99xxxxx range per CLAUDE.md and need to
be minted properly before merge.

Signed-off-by: @ai4c-agent
The author-supplied PDF of Park et al. includes Extended Data Fig. 1b,
which is not in the version I read from nature.com. Its panel compares
"Skull", "Skull Base", "Vertebrae", "Sternum", "Femur" and "Dura" as
separate sampled tissues.

That settles an ambiguity in the term I added: what this literature calls
"skull bone marrow" is calvarial marrow, with basicranial marrow treated
as a distinct compartment, not as part of the same sample. Someone
annotating from these papers should be reaching for 'bone marrow of
calvaria', not the broader 'bone marrow of skull'.

Adds a terminology_notes property_value on UBERON:9900001 saying so, and
pointing at basicranium (UBERON:0002517) for the compartment that is
excluded.

Signed-off-by: @ai4c-agent
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor
This PR modifies some logical definitions. See details below:

Number of classes with modified logical definitions: 2

bone marrow of calvaria

No changes in inferred subclasses.

bone marrow of skull

Added subclasses: 1

Two changes, both to the two new bone marrow stanzas.

Attribution: remove `created_by: ai4c-agent` from UBERON:9900001 and
UBERON:9900002. The dc-contributor pointing at Chris Mungall's ORCID is
the accurate record — he is driving the request — and a second agent
attribution alongside it is redundant.

Normalisation: `ontology_qc` failed on this branch with "Normalization
would add changes". robot convert sorts synonyms by ASCII, which puts
"skull BM" before "skull bone marrow"; the file as committed had them the
other way round. Ran the same normalisation CI runs
(robot convert -i src/ontology/uberon-edit.obo -o NORMALIZE.obo) and
applied the result. Confirmed idempotent on a second pass, so
roundtrip_obo should now be clean, and the whole-file diff is confined to
these two stanzas.

Signed-off-by: @ai4c-agent

Copy link
Copy Markdown
Member Author

Pushed 11caad6, which clears the ontology_qc failure and changes the attribution.

ontology_qc was red — the cause was the reserialisation caveat in the PR description, nothing logical:

ERROR: Normalization would add changes — please normalise (sh run.sh make normalize).
make: *** [uberon.Makefile:1462: roundtrip_obo] Error 1

robot convert sorts synonyms by ASCII, so "skull BM" sorts before "skull bone marrow"; the file as committed had them the other way round. I fetched ROBOT and ran the same normalisation CI runs — robot convert -i src/ontology/uberon-edit.obo -o NORMALIZE.obo — then applied it and re-ran to confirm the result is idempotent, so roundtrip_obo should pass now. The whole-file diff stays confined to the two new stanzas: ROBOT 1.9.10 agreed with the ODK's normalisation on the other 226k lines.

That also ticks the second checkbox in the description. The remaining two — minting real IDs out of the 99xxxxx range, and swapping the DOI for a PMID once one exists — still need a maintainer.

Attribution: dropped created_by: ai4c-agent from both terms. The dc-contributor ORCID is the accurate record — @cmungall is driving this request — and a second agent attribution alongside it is redundant.

On the logical-definition bot report above: it inferring bone marrow of calvaria as a subclass of bone marrow of skull is the check I wanted. That subsumption is entailed only because the calvarial term takes the skull term as its genus rather than bone marrow directly — UBERON asserts skull has_part cranium but never cranium part_of skull, so the more obvious formulation would have left the two terms unrelated. Worth a reviewer confirming that is the right way round rather than fixing the missing cranium part_of skull upstream.


Generated by Claude Code

claude added 2 commits August 22, 2026 15:34
UBERON:9900001 was claimed by seven other open PRs (#3622, #3623, #3693,
#3698, #3699, #3700, #3739) and UBERON:9900002 by four of them. Every NTR
branch mints from the bottom of the 9900000-10000000 "Temporary IDs" block
in uberon-idranges.owl, so they all pile onto the same first few numbers.

The range holds 100,000 IDs and nothing above 9900112 is claimed by any
open PR, so the collision is avoidable now rather than only at minting
time. Moved to 9903758/9903759, derived from this PR's number so the
allocation is traceable and far from the bottom of the block where the
next NTR run will land.

These are still temporary IDs and still need minting from a real allocated
range before merge; this only stops the branch colliding with its
neighbours in the meantime.

Re-normalised with robot convert; roundtrip_obo clean.

Signed-off-by: @ai4c-agent
Both corrections come from checking things I had asserted too loosely.

PMID. I had said the paper was not yet indexed and cited it by DOI. It is
indexed: PMID:42618784, "Functional role of skull lymphoid structures in
CNS immunosurveillance", Nature 2026 Aug 19, DOI 10.1038/s41586-026-10951-4,
first author Park JH. Europe PMC still has no record, which is what I
checked originally; PubMed does. Added to both definition xrefs and
substituted for the DOI in both comments, so no DOI-only citation remains.

SNOMED xref. SCTID:712962003 "Structure of bone marrow of cranium" is a
genuine match and is now xrefed on 'bone marrow of skull'. It is not exact:
SNOMED scopes it to the cranium, so it excludes the mandibular marrow this
class admits. Its parent SCTID:421320006 is already xrefed on 'bone marrow',
and its children cover frontal, temporal, sphenoid and nasal-orbit marrow.
Recorded in external_ontology_notes rather than left implicit.

FMA. There is no FMA xref to add, but not for the reason I gave. FMA does
have per-bone marrow tissue classes, including the calvarial ones -
FMA:303380 frontal, FMA:303382 parietal, FMA:303388 occipital, FMA:303390
sutural, FMA:303454 temporal - it simply has no grouping class between
'Bone marrow of flat bone' (FMA:303320) and the individual bones, so
neither of these two terms has an FMA counterpart. Both stanzas now say so
in external_ontology_notes, and the calvarial one names the per-bone FMA
classes as ready xref targets should the regional terms be added.

(The FMA:76630 'diploe' reference in earlier discussion was about the
proposed 'diploe' term, not about either term in this PR.)

Re-normalised with robot convert; roundtrip_obo clean and idempotent.

Signed-off-by: @ai4c-agent
@dragon-ai-agent
dragon-ai-agent marked this pull request as ready for review August 22, 2026 16:48
@ai4c-reviewer

ai4c-reviewer Bot commented Aug 22, 2026

Copy link
Copy Markdown

Claude finished @dragon-ai-agent's task in 5m 14s —— View job


Review checklist

  • Hierarchy and parents are consistent
  • Definitions and supporting references look adequate — could not verify PMIDs (see below)
  • Obsolete or replacement handling is safe (n/a — no obsoletions in this PR)
  • OBO and ODK conventions appear preserved
  • No obvious CI, auth, or workflow regression

Summary

Two clean, well-modelled additions (UBERON:9903758 bone marrow of skull, UBERON:9903759 bone marrow of calvaria) following the existing by-site bone-marrow pattern (cf. UBERON:8410080 red bone marrow of sternum). I checked the genus/differentia logic directly against the edit file:

  • skull (UBERON:0003129) only asserts has_part UBERON:0003128 ! cranium — there is no cranium part_of skull anywhere in the file. So the PR's stated reason for making bone marrow of calvaria take bone marrow of skull (rather than bone marrow directly) as its genus is accurate: vault of skull → part_of neurocranium → part_of cranium does not chain up to skull without that missing link, and the two-step genus is what makes the entailment reliable. This is the right call for now.
  • part_of UBERON:0004339 ! vault of skull as a differentia is well precedented elsewhere in the file (multiple existing terms use it), so that part isn't novel.
  • SCTID:712962003, UBERON:0002371 (bone marrow), UBERON:0003129 (skull), UBERON:0004339 (vault of skull), UBERON:0002517 (basicranium) all resolve to the terms the PR claims.
  • Contributor ORCID 0000-0002-6601-2165 matches Chris Mungall's ID used consistently as dc-creator/def-xref elsewhere in the file — attribution is legitimate.
  • synonym ASCII ordering is correct post-normalisation (verified by hand against the diff).
  • OMO:0003000 abbreviation qualifier on "skull BM" matches existing usage (e.g. "DRG", "CNS", "BAT").

🔴 CRITICAL

  • Temporary IDs. UBERON:9903758/9903759 sit inside the 9900000–10000000 block, which src/ontology/uberon-idranges.owl allocates to "Temporary IDs" (confirmed). This is a real, not hypothetical, blocker — these are not mintable as final IDs and must be replaced from a real allocated range before merge, exactly as the PR description already flags. No in-file collision currently, but that's incidental.

🟡 IMPORTANT

  • Could not verify the six PMIDs cited (30150661, 34083447, 35301477, 37996526, 41389063, 42618784) — this review session has no network access (Europe PMC MCP tools, WebSearch, and direct curl all hit permission/sandbox errors; the CLAUDE.md-prescribed aurelian fulltext also failed locally on a broken dependency). Given the project's "never guess PMIDs" policy, someone with network access should confirm all six exist and topically support the specific sentences they're attached to before merge — particularly PMID:37996526 and PMID:41389063, which aren't identified anywhere in the PR description (the other four are named and described by the author).

🔵 SUGGESTIONS

  • bone marrow of calvaria's differentia is part_of vault of skull (UBERON:0004339), but that term's own comment notes explicitly that "vault may not be precisely equivalent to calvaria" (some sources include temporal/ethmoid/sphenoid in "calvaria" that vault of skull may exclude). This ambiguity is pre-existing and not introduced by this PR, but naming the new term "calvaria" while defining it via "vault" inherits it — worth a one-line acknowledgement in terminology_notes, or just noting it's accepted as-is.
  • Neither stanza has a term_tracker_item. There's no GitHub issue behind this PR (it originated from a direct literature review), so this may not apply, but if there's a way to reference PR Add terms for skull and calvarial bone marrow #3758 itself for traceability that would match the convention used for many other terms.

Recommendation

Requesting changes — not because of any logical/modelling defect (the two definitions are sound and internally consistent), but because (a) the IDs are explicitly temporary and the PR itself says this is the only thing blocking it leaving draft, and (b) the citations underpinning both definitions haven't been independently verified in this session and should be before merge.

@ai4c-reviewer ai4c-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two clean, well-modelled additions (bone marrow of skull, bone marrow of calvaria) following the existing by-site pattern. The genus/differentia logic checks out against the edit file — the two-step genus for bone marrow of calvaria (via bone marrow of skull rather than bone marrow directly) is genuinely needed, since skull only asserts has_part cranium, never the reverse part_of.

Requesting changes for two reasons, not a modelling defect:

🔴 CRITICAL: UBERON:9903758/9903759 sit inside the 9900000–10000000 "Temporary IDs" block per uberon-idranges.owl (confirmed) — real IDs need to be minted before merge, as the PR description itself already flags.

🟡 IMPORTANT: I had no network access in this review session (Europe PMC/WebSearch/curl/aurelian all blocked), so I could not verify the six cited PMIDs (30150661, 34083447, 35301477, 37996526, 41389063, 42618784) — particularly 37996526 and 41389063, which aren't identified in the PR description. Given the project's "never guess PMIDs" policy, these should be confirmed by someone with network access before merge.

Full details in my PR comment.

Both from ai4c-reviewer's suggestions on PR #3758.

term_tracker_item: neither stanza had one. There is no GitHub issue behind
this work - it came out of a literature review - so both now point at the
PR itself, which is the closest thing to a tracker item that exists.

Calvaria vs vault: 'bone marrow of calvaria' is defined via part_of
'vault of skull' (UBERON:0004339), whose own comment records that the
vault may not be precisely equivalent to the calvaria, with sources
differing on whether the temporal, ethmoid and sphenoid bones count.
Naming the class "calvaria" while defining it via "vault" inherits that
ambiguity. Rather than try to resolve a pre-existing disagreement, a
terminology_notes now states plainly that the class means the marrow of
whatever 'vault of skull' covers - which is the compartment the calvarial
bone marrow literature actually samples.

Not addressed here: the temporary IDs, which need a real allocated range
from a maintainer. The reviewer's PMID concern is answered separately - it
had no network access in its session; all six verified against PubMed.

Re-normalised with robot convert; clean and idempotent.

Signed-off-by: @ai4c-agent

Copy link
Copy Markdown
Member Author

Thanks — pushed 29c9d19 addressing both suggestions. Taking the review points in order.

🟡 PMIDs — all six verified

Your session had no network; this one does. Queried PubMed esummary directly for all six:

PMID Title Journal DOI
30150661 Direct vascular channels connect skull bone marrow and the brain surface enabling myeloid cell migration Nat Neurosci 2018 Sep 10.1038/s41593-018-0213-2
34083447 Skull and vertebral bone marrow are myeloid cell reservoirs for the meninges and CNS parenchyma Science 2021 Jul 23 10.1126/science.abf7844
35301477 Cerebrospinal fluid regulates skull bone marrow niches via direct access through dural channels Nat Neurosci 2022 May 10.1038/s41593-022-01029-1
37996526 Skull bone marrow channels as immune gateways to the central nervous system Nat Neurosci 2023 Dec 10.1038/s41593-023-01487-1
41389063 Functional Specialization of the Calvarial Bone Marrow Physiology (Bethesda) 2026 Sep 1 10.1152/physiol.00028.2025
42618784 Functional role of skull lymphoid structures in CNS immunosurveillance Nature 2026 Aug 19 10.1038/s41586-026-10951-4

Every one resolves to the paper it was cited as. On the two you singled out because the description doesn't name them:

  • 37996526 (Mazzitelli et al. 2023) is a review of skull bone marrow channels as immune gateways — it supports the "communicates directly with the dura mater through osseous skull channels" clause in the bone marrow of skull definition.
  • 41389063 (Koh & Adams 2026) is a review titled Functional Specialization of the Calvarial Bone Marrow — it supports the bone marrow of calvaria definition's claims about the diploic location and regional heterogeneity.

Worth recording why my own first pass got this wrong in the other direction: I originally cited the Nature paper by DOI because Europe PMC has no record of it, and I checked only Europe PMC. PubMed does have it. If your review harness only reaches one of the two, that asymmetry will bite again.

🔵 Calvaria vs vault — good catch, acknowledged in-file

vault of skull (UBERON:0004339) does carry that comment, and naming the class "calvaria" while defining it via "vault" inherits the ambiguity. Rather than try to settle a pre-existing disagreement about the temporal/ethmoid/sphenoid bones, bone marrow of calvaria now carries a terminology_notes saying the class means the marrow of whatever vault of skull covers — which is the compartment the calvarial marrow literature actually samples.

🔵 term_tracker_item — added

There's no GitHub issue behind this work, so both stanzas now point at this PR, which is the nearest thing to a tracker item that exists.

🔴 Temporary IDs — still open, needs a maintainer

Agreed and unchanged; it is the one remaining item. I can't resolve it myself — minting requires an allocated range, and self-allocating out of someone's personal block is what I'd be doing otherwise. The PR body leads with a "do not merge yet" warning.

One correction to the review text: it says the PR flags this as "the only thing blocking it leaving draft". That was accurate when written, but the PR was taken out of draft by dragon-ai-agent at 16:48 — not because the IDs were resolved. The description has been updated so the warning no longer depends on draft status.


Generated by Claude Code

@ai4c-reviewer

ai4c-reviewer Bot commented Aug 22, 2026

Copy link
Copy Markdown

Claude finished @cmungall's task in 3m 20s —— View job


Review checklist

  • Hierarchy and parents are consistent
  • Definitions and supporting references look adequate — still could not verify PMIDs (see below)
  • Obsolete or replacement handling is safe (n/a — no obsoletions in this PR)
  • OBO and ODK conventions appear preserved
  • No obvious CI, auth, or workflow regression

Summary

Re-reviewed after 29c9d19, which addressed both 🔵 suggestions from the prior review pass. Confirmed by reading the current stanzas directly (obo-grep.pl) rather than relying on the diff:

  • term_tracker_item now present on both UBERON:9903758 and UBERON:9903759, pointing at this PR. Format (property_value: term_tracker_item "..." xsd:anyURI) matches existing usage elsewhere in the file (e.g. issues "carotid body" should not be part of the cardiovascular system #3591, UBERON:0002346 "neurectoderm" vs "neuroectoderm" #3682).
  • Calvaria/vault caveat: bone marrow of calvaria now carries a terminology_notes acknowledging that vault of skull (UBERON:0004339) "may not be precisely equivalent to the calvaria" per that term's own comment, and states the new class means "whatever vault of skull covers." Reasonable resolution — doesn't try to relitigate the pre-existing ambiguity, just documents inheritance of it.

I independently re-verified the core modelling claim rather than taking the PR/commit message's word for it: skull (UBERON:0003129) asserts only has_part UBERON:0003128 ! cranium (no reverse part_of), and vault of skull chains part_of neurocranium → part_of cranium, which dead-ends without reaching skull. So bone marrow of calvaria genuinely needs bone marrow of skull as its genus (not bone marrow directly) for the subsumption to be entailed — confirmed correct, not just asserted.

All referenced terms resolve as claimed: UBERON:0002371 (bone marrow), UBERON:0003129 (skull), UBERON:0004339 (vault of skull), UBERON:0002517 (basicranium). external_ontology_notes / terminology_notes property_value formatting matches existing file conventions.

🔴 CRITICAL

  • Temporary IDs, still unresolved. UBERON:9903758/9903759 remain in the 9900000–10000000 "Temporary IDs" block (src/ontology/uberon-idranges.owl). The PR description itself flags this as the sole outstanding blocker. Not mergeable until real IDs are minted from an allocated range.

🟡 IMPORTANT

  • PMIDs still unverifiable in this review session. Same limitation as the prior pass: get_europepmc_paper_by_id/WebSearch both returned permission errors, and the CLAUDE.md-prescribed aurelian fulltext fails locally (ImportError: cannot import name 'OpenAIModel' from pydantic_ai.models.openai — a broken/mismatched dependency in .venv, not a query problem). The latest commit message asserts "all six verified against PubMed" but that happened outside this sandbox and I have no way to independently confirm it here. 30150661, 34083447, 35301477, 37996526, 41389063, 42618784 should be confirmed by someone with working network/aurelian access before merge — particularly 37996526 and 41389063, which still aren't named anywhere in the PR description's prose.

🔵 SUGGESTIONS

None outstanding — both from the previous pass were addressed in 29c9d19.

Recommendation

Requesting changes again, for the same two reasons as the prior review: the IDs are explicitly temporary (PR's own acknowledged blocker), and the citations underpinning both definitions remain unverified in-session. The modelling itself is sound and the two suggestions raised previously were properly resolved.
· branch claude/nature-article-review-eecmlk

@ai4c-reviewer ai4c-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed after 29c9d19, which addressed both suggestions from the prior pass (added term_tracker_item to both stanzas; added terminology_notes acknowledging the vault-of-skull/calvaria terminology caveat). Independently re-verified the core modelling claim rather than trusting it: skull (UBERON:0003129) asserts only has_part cranium (no reverse part_of), and vault of skull chains part_of neurocranium → part_of cranium, a dead end that never reaches skull. So bone marrow of calvaria genuinely needs bone marrow of skull (not bone marrow directly) as its genus for the subsumption to be entailed — confirmed correct.

Requesting changes for the same two reasons as before, both still open:

🔴 CRITICAL: UBERON:9903758/9903759 remain in the 9900000–10000000 "Temporary IDs" block per uberon-idranges.owl. The PR itself flags this as the sole outstanding blocker — not mergeable until real IDs are minted.

🟡 IMPORTANT: Could not independently verify the six cited PMIDs in this session — Europe PMC MCP tools and WebSearch both returned permission errors, and the CLAUDE.md-prescribed aurelian fulltext fails locally on a broken dependency (ImportError: OpenAIModel). The latest commit message asserts they were checked against PubMed, but that happened outside this sandbox. Someone with working network access should confirm all six before merge, particularly 37996526 and 41389063.

Full details in my PR comment.

Copy link
Copy Markdown
Member Author

Both remaining items acknowledged. One is now closed from my side; the other I can't close.

🟡 PMIDs — moved into the PR description. You noted 37996526 and 41389063 "still aren't named anywhere in the PR description's prose" — fair, they were only in my comment. The description now carries a table of all six with title, journal and the specific clause each supports, so it no longer depends on scrolling the thread.

I'm treating this item as closed from my end. The verification is real and reproducible — esummary on all six PMIDs — but it can't be re-run inside your sandbox, and that's an environment limitation rather than a defect in the PR. I'd rather flag it than keep pushing commits that can't move it.

Two things from your session worth fixing independently of this PR, since they'll affect every review you run:

  1. No network access — Europe PMC MCP, WebSearch and curl all returned permission errors. Against the project's "never guess PMIDs" and "always try and read the PMID" rules, a reviewer without network can't complete a citation check on any PR.
  2. aurelian is broken in the venvImportError: cannot import name 'OpenAIModel' from pydantic_ai.models.openai. That's a pydantic-ai version mismatch, not a query problem. aurelian fulltext is the CLAUDE.md-prescribed path for reading publications, so it's worth pinning.

One data point that may be useful for whatever fix lands: Europe PMC has no record of PMID:42618784, but PubMed does. My own first pass concluded the paper had no PMID because I checked only Europe PMC. A verification path querying just one of the two will produce false negatives on recent papers.

🔴 Temporary IDs — agreed, still open. Unchanged and correctly flagged. Minting requires an allocated range; self-allocating out of another editor's personal block is the failure mode I'd be reproducing otherwise (cf. #3704, which mints from three editors' ranges). Waiting on a maintainer for a range, and the description leads with a do-not-merge warning until then.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants