Skip to content

METPO ROBOT-template proposal: CommunityMech roles/interactions/evidence#74

Merged
realmarcin merged 2 commits into
mainfrom
claude/metpo-communitymech-proposal
May 20, 2026
Merged

METPO ROBOT-template proposal: CommunityMech roles/interactions/evidence#74
realmarcin merged 2 commits into
mainfrom
claude/metpo-communitymech-proposal

Conversation

@realmarcin
Copy link
Copy Markdown
Contributor

Summary

Lift 9 CommunityMech enums plus 14 schema predicates into a METPO ROBOT-template proposal under `proposals/metpo_communitymech_v1/`, mirroring the existing kg-microbe `metpo_proposal_*.tsv` format. After sign-off here, the two TSVs copy upstream to `kg-microbe/mappings/` for ID minting.

The METPO proposal pipeline currently covers phenotypic traits, tolerance ranges, and enzyme assays — but has zero coverage of community-level roles, interaction types, and evidence framing. This proposal closes that gap.

Deliverables

File Rows Schema
`metpo_proposal_classes_robot.tsv` 76 (2 headers + 74 classes) 11 columns, ROBOT class template
`metpo_proposal_properties_robot.tsv` 16 (2 headers + 14 properties) 12 columns, ROBOT property template
`proposal.md` (narrative) scope, hierarchy decisions, predicate rationale, verification

Class hierarchy at a glance

CommunityMech enum METPO parent # leaves # intermediate parents
`InteractionTypeEnum` `ecological interaction type` 10 (`STRAIN_COMPETITION` ⊂ `COMPETITION`) 3 valence groupings
`FunctionalRoleEnum` `microbial community member functional role` 5 2 trophic tiers
`CommunityCategoryEnum` `community functional category` 15 5 thematic groupings
`EvidenceItemSupportEnum` `evidence item support level` 5 0 (flat)
`EvidenceSourceEnum` `evidence item source` 5 0 (flat)
`InteractionScopeEnum` `interaction scope` 2 0 (flat)
`AbundanceEnum` `taxon abundance level` 4 0 (flat)
`CommunityOriginEnum` `community origin type` 3 0 (flat)
`EcologicalStateEnum` `community ecological state` 4 0 (flat)

Plus 3 new top-level domain classes under `METPO:1000000`:

  • `microbial community` (`METPO:1007100`)
  • `microbial community ecological interaction` (`METPO:1007101`)
  • `microbial community evidence item` (`METPO:1007102`)

Predicates

14 object properties mapping CommunityMech slots to domain/range pairs over the new classes plus NCBITaxon / CHEBI / GO. Highlights:

  • `has source taxon` / `has target taxon` (interaction → NCBITaxon)
  • `has interaction type` / `has interaction scope` (interaction → enum class)
  • `has exchanged metabolite` / `participates in biological process` (interaction → CHEBI / GO)
  • `has supporting evidence` (interaction → evidence item)
  • `has functional role` / `has abundance level` (microbe → role/abundance class)
  • `has community category` / `has community origin` / `has ecological state` (community → enum class)
  • `has evidence support level` / `has evidence source type` (evidence item → enum class)

No paired "does not X" predicates — the SKILL.md positive/negative pairing convention applies to chemical-tolerance relations, not domain-modeling relations.

ID space and subset

  • Classes: `METPO:1007100`–`METPO:1007220` (placeholder)
  • Properties: `METPO:2007100`–`METPO:2007113` (placeholder)
  • Subset tag on every row: `metpo_communitymech_2026_05`

Verification

  • All 52 CommunityMech enum permissible values are covered by leaf class rows (programmatic check via the enum-name pattern in `definition_source`).
  • All 74 `SC %` parent references resolve either within the proposal or to known METPO IRIs (`METPO:1000000` root, `METPO:1000525` microbe).
  • Classes TSV has 11 columns on every row; properties TSV has 12.
  • (follow-up) `robot template --template ... --output classes.owl` validates with ROBOT.
  • (follow-up) `robot reason --reasoner ELK` over the merged METPO + this proposal reports no unsatisfiable classes.

🤖 Generated with Claude Code

Three files under proposals/metpo_communitymech_v1/ mirror the
existing kg-microbe METPO proposal format and lift 9 CommunityMech
enums plus 14 schema predicates into METPO classes and object
properties:

- metpo_proposal_classes_robot.tsv: 74 class rows (11 columns,
  two-row ROBOT header). Includes 3 new top-level domain classes
  (microbial community, microbial community ecological interaction,
  microbial community evidence item) plus 9 enum-parent grouping
  classes, 10 intermediate grouping classes (positive/negative/
  partitioning interaction valence; primary/secondary trophic role;
  5 thematic community-category groupings), and 52 enum-leaf
  classes. All 52 CommunityMech enum permissible values are covered;
  all parent references resolve within the file or to known METPO
  IRIs (METPO:1000000 root, METPO:1000525 microbe).
- metpo_proposal_properties_robot.tsv: 14 owl:ObjectProperty rows
  (12 columns) with domain/range mapped to the new top-level
  classes or external IRIs (NCBITaxon, CHEBI, GO). Captures
  EcologicalInteraction.source_taxon/target_taxon/interaction_type/
  scope/metabolites/biological_processes/evidence,
  TaxonomicComposition.functional_role/abundance_level,
  MicrobialCommunity.community_category/community_origin/
  ecological_state, and EvidenceItem.supports/evidence_source.
- proposal.md: narrative walking through scope, hierarchy decisions
  (InteractionType valence groupings, FunctionalRole trophic tiers,
  CommunityCategory thematic groupings, COMPETITION /
  STRAIN_COMPETITION parent/child relationship), predicate
  domain/range rationale, ID-space conventions, verification
  procedure (robot template + reason), and the upstream path to
  kg-microbe/mappings/.

ID space: METPO:1007100-1007220 for classes and
METPO:2007100-2007113 for properties, all marked as placeholder
per the kg-microbe SKILL.md placeholder policy; real METPO IDs
will be minted upstream after sign-off. Subset tag on every row:
metpo_communitymech_2026_05.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 20, 2026 01:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a METPO ROBOT-template proposal package to lift CommunityMech community-role / interaction / evidence enums and key predicates into METPO-ready TSV templates, enabling upstream ID minting and integration into the KG-Microbe METPO proposal pipeline.

Changes:

  • Added a narrative proposal (proposal.md) describing scope, hierarchy decisions, predicates, ID ranges, and verification steps.
  • Added a ROBOT class template TSV defining new domain classes plus lifted enum classes and groupings.
  • Added a ROBOT property template TSV defining 14 object properties that connect interactions/communities/evidence items to taxa and ontology terms.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.

File Description
proposals/metpo_communitymech_v1/proposal.md Narrative spec for the METPO lift (scope, hierarchy, predicates, verification, upstream steps).
proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv ROBOT class template with new domain classes and lifted enum class hierarchy.
proposals/metpo_communitymech_v1/metpo_proposal_properties_robot.tsv ROBOT property template mapping CommunityMech slots to METPO object properties with domain/range.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread proposals/metpo_communitymech_v1/proposal.md
Comment thread proposals/metpo_communitymech_v1/proposal.md Outdated
Comment thread proposals/metpo_communitymech_v1/proposal.md Outdated
Comment thread proposals/metpo_communitymech_v1/metpo_proposal_properties_robot.tsv Outdated
Comment thread proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv Outdated
Comment thread proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv Outdated
realmarcin added a commit that referenced this pull request May 20, 2026
Document the workflow used to produce
proposals/metpo_communitymech_v1/ (PR #74) so future cohorts can
follow the same conventions: ROBOT-template column structure (11
classes / 12 properties), ID-space conventions (METPO:1007NNN and
METPO:2007NNN placeholder ranges), Aristotelian definitions with
schema-anchored definition_source values, hierarchy-design rules
for intermediate parents, predicate domain/range conventions,
trailing-tab fix-up for the ROBOT header row, and the verification
commands (awk column-count check, enum-coverage check, parent-
integrity check, optional robot template + reason). Points at the
upstream kg-microbe metpo-proposal SKILL.md for the shared
conventions and at proposals/metpo_communitymech_v1/ as the
reference cohort.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Five fixes for the five actionable Copilot comments:

- proposal.md: rewrite the broken relative link to the kg-microbe
  metpo-proposal SKILL.md as an absolute GitHub URL (the SKILL.md
  is not in this repo, so the prior relative link 404'd on GitHub).
- proposal.md: add `kb/communities/` prefixes to the three example
  YAML filenames in the verification round-trip section so
  reviewers can copy-paste the paths.
- properties TSV: narrow the `has supporting evidence` (METPO:2007106)
  definition by dropping the "(or community claim)" parenthetical
  that disagreed with the declared domain METPO:1007101 (community
  interaction only). The definition now matches the domain exactly.
- classes TSV: replace the 10 `TODO:add_citation` placeholder
  definition_source values on the intermediate grouping parents with
  a project-internal anchor URL
  `CommunityMech:proposals/metpo_communitymech_v1/proposal.md#hierarchy-decisions`.
  These 10 classes are organizational scaffolding introduced in this
  proposal (not lifted from an external textbook), so citing the
  proposal narrative is the honest provenance; the per-enum-value
  leaves continue to cite the CommunityMech schema directly.
- classes TSV: replace the overbroad `ecological interaction`
  exact synonym on METPO:1007101 with two precise variants
  (`microbial community interaction|microbial ecological interaction`).
  The previous `ecological interaction` synonym dropped the
  community qualifier and would have asserted a misleading exact
  equivalence with the broader ecological-interaction concept.

One Copilot comment (markdown table leading `||`) could not be
reproduced - the proposal.md tables use standard single-pipe GFM
syntax with no `||` anywhere in the file; replied to the thread
asking for clarification.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@realmarcin realmarcin merged commit a6514a2 into main May 20, 2026
@realmarcin realmarcin deleted the claude/metpo-communitymech-proposal branch May 20, 2026 03:24
realmarcin added a commit that referenced this pull request May 20, 2026
Per the same broken-link finding that triggered the Path A fix on
PR #74, the skill.md had two more relative paths into the
kg-microbe repo that 404 on GitHub:

- "Do NOT use for..." section: relative link to upstream skill
  replaced with absolute GitHub URL
- "Required reading" section: three local absolute paths under
  /Users/marcin/... replaced with GitHub URLs to the kg-microbe
  source files, keeping the local clone path as a hint for
  developers with a checkout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
realmarcin added a commit that referenced this pull request May 20, 2026
* Add METPO ROBOT-template proposal lifting CommunityMech enums

Three files under proposals/metpo_communitymech_v1/ mirror the
existing kg-microbe METPO proposal format and lift 9 CommunityMech
enums plus 14 schema predicates into METPO classes and object
properties:

- metpo_proposal_classes_robot.tsv: 74 class rows (11 columns,
  two-row ROBOT header). Includes 3 new top-level domain classes
  (microbial community, microbial community ecological interaction,
  microbial community evidence item) plus 9 enum-parent grouping
  classes, 10 intermediate grouping classes (positive/negative/
  partitioning interaction valence; primary/secondary trophic role;
  5 thematic community-category groupings), and 52 enum-leaf
  classes. All 52 CommunityMech enum permissible values are covered;
  all parent references resolve within the file or to known METPO
  IRIs (METPO:1000000 root, METPO:1000525 microbe).
- metpo_proposal_properties_robot.tsv: 14 owl:ObjectProperty rows
  (12 columns) with domain/range mapped to the new top-level
  classes or external IRIs (NCBITaxon, CHEBI, GO). Captures
  EcologicalInteraction.source_taxon/target_taxon/interaction_type/
  scope/metabolites/biological_processes/evidence,
  TaxonomicComposition.functional_role/abundance_level,
  MicrobialCommunity.community_category/community_origin/
  ecological_state, and EvidenceItem.supports/evidence_source.
- proposal.md: narrative walking through scope, hierarchy decisions
  (InteractionType valence groupings, FunctionalRole trophic tiers,
  CommunityCategory thematic groupings, COMPETITION /
  STRAIN_COMPETITION parent/child relationship), predicate
  domain/range rationale, ID-space conventions, verification
  procedure (robot template + reason), and the upstream path to
  kg-microbe/mappings/.

ID space: METPO:1007100-1007220 for classes and
METPO:2007100-2007113 for properties, all marked as placeholder
per the kg-microbe SKILL.md placeholder policy; real METPO IDs
will be minted upstream after sign-off. Subset tag on every row:
metpo_communitymech_2026_05.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add metpo-proposal skill

Document the workflow used to produce
proposals/metpo_communitymech_v1/ (PR #74) so future cohorts can
follow the same conventions: ROBOT-template column structure (11
classes / 12 properties), ID-space conventions (METPO:1007NNN and
METPO:2007NNN placeholder ranges), Aristotelian definitions with
schema-anchored definition_source values, hierarchy-design rules
for intermediate parents, predicate domain/range conventions,
trailing-tab fix-up for the ROBOT header row, and the verification
commands (awk column-count check, enum-coverage check, parent-
integrity check, optional robot template + reason). Points at the
upstream kg-microbe metpo-proposal SKILL.md for the shared
conventions and at proposals/metpo_communitymech_v1/ as the
reference cohort.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Extend metpo-proposal skill with update-path guidance

The initial skill assumed every invocation creates a new cohort.
Add an "Updating an existing proposal" section covering the three
real update paths and the decision rule for picking between them:

- Path A: edit in place on an open PR before merge. IDs and
  subset tag unchanged; just modify rows in response to reviewer
  feedback.
- Path B: extend in place after merge. Append-only rows in the
  same cohort directory, contiguous fresh ID block at least 10
  above the highest existing ID, same subset tag, new entries in
  the Scope/ID-space/Change-log sections of proposal.md.
- Path C: new cohort version. Fresh proposals/<name>_v<N>/ dir,
  fresh subset tag, non-overlapping ID block, mandatory
  "Relationship to vN-1" section in the new proposal.md, original
  cohort marked superseded but retained on disk.

Each path lists what NOT to do: never edit merged IDs, never mix
Path B + Path C in the same PR, never delete rows (mark LOW
priority instead and retire via Path C).

Decision rule lives at the top of the section as a table keyed on
review/merge state and the type of change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Address Copilot review on PR #75: replace kg-microbe relative links

Per the same broken-link finding that triggered the Path A fix on
PR #74, the skill.md had two more relative paths into the
kg-microbe repo that 404 on GitHub:

- "Do NOT use for..." section: relative link to upstream skill
  replaced with absolute GitHub URL
- "Required reading" section: three local absolute paths under
  /Users/marcin/... replaced with GitHub URLs to the kg-microbe
  source files, keeping the local clone path as a hint for
  developers with a checkout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants