From 56123c0e2cf475b5c985bdba83ab89e315457aaf Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Tue, 19 May 2026 20:33:33 -0700 Subject: [PATCH 1/2] Add METPO metals cohort proposal (CommunityMech metals/REE/relevance) New cohort under proposals/metpo_communitymech_metals_v1/ lifting three metal-related CommunityMech enums into METPO, following the metpo-proposal skill's new-cohort path. Independent of the v1 cohort (no shared rows), separate ID block (1008NNN / 2008NNN), separate subset tag (metpo_communitymech_metals_2026_05). Scoping choice: the per-element MetalElementEnum (17 values) and RareEarthElementEnum (16 values) values all carry meaning: CHEBI:xxxx annotations in the schema. Per the kg-microbe SKILL.md rule "use the existing IRI; record the alias upstream", this proposal does NOT mint per-element METPO classes. Only the grouping-parent classes are minted; the alias mapping flows into kg-microbe/mappings/metpo_existing_aliases.tsv when the cohort is copied upstream. Classes minted (8 rows): - METPO:1008000 community-relevant metal context (top-level domain class under METPO:1007100) - METPO:1008001 community-relevant metal element (enum-parent for MetalElementEnum, NO leaves - CHEBI IRIs serve as leaves) - METPO:1008002 community-relevant rare earth element (enum-parent for RareEarthElementEnum, NO leaves - CHEBI IRIs) - METPO:1008003 community metal relevance level (enum-parent for MetalRelevanceEnum) - METPO:1008010-1008013 the 4 MetalRelevance leaves (PRIMARY / SIGNIFICANT / INCIDENTAL / NOT_APPLICABLE) - these ARE minted because they have no CHEBI equivalent Predicates minted (3 rows): - METPO:2008000 has metal element present (community -> CHEBI:33521 metal cation) - range deliberately points at the CHEBI parent so per-element edges are CHEBI IRIs - METPO:2008001 has rare earth element present (community -> CHEBI:33530 rare earth atom group) - METPO:2008002 has metal relevance (community -> METPO:1008003 metal relevance level) Verification: 4/4 MetalRelevance leaves present, 0 per-element leaves leaked, 8/8 SC % parents resolve, both TSVs column-count clean. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../metpo_proposal_classes_robot.tsv | 10 + .../metpo_proposal_properties_robot.tsv | 5 + .../metpo_communitymech_metals_v1/proposal.md | 189 ++++++++++++++++++ 3 files changed, 204 insertions(+) create mode 100644 proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv create mode 100644 proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv create mode 100644 proposals/metpo_communitymech_metals_v1/proposal.md diff --git a/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv b/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv new file mode 100644 index 00000000..b82a0988 --- /dev/null +++ b/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv @@ -0,0 +1,10 @@ +proposed_id label definition definition_source parent synonyms xrefs subset priority observations traits_addressed +ID LABEL A IAO:0000115 >A IAO:0000119 SC % A oboInOwl:hasExactSynonym SPLIT=| A oboInOwl:hasDbXref SPLIT=| A oboInOwl:inSubset +METPO:1008000 community-relevant metal context A top-level framing class for metal- and rare-earth-element interactions of a microbial community, capturing which metals are present, which are rare-earth elements, and how relevant metals are to the community's function. CommunityMech:communitymech.yaml#MicrobialCommunity.metals_present METPO:1007100 community metal context|community metals framing metpo_communitymech_metals_2026_05 HIGH top-level domain class for the metals cohort +METPO:1008001 community-relevant metal element A METPO grouping class for metal elements that microbial communities can interact with - present in, oxidize, reduce, sequester, leach, or otherwise metabolize. Per CommunityMech.schema, each enum value carries a CHEBI cross-reference and the per-element leaves SHOULD reuse the existing CHEBI IRIs rather than minting fresh METPO classes; this parent provides the METPO-side grouping anchor. CommunityMech:communitymech.yaml#MetalElementEnum METPO:1008000 community-relevant metal|metal element category|community metal element metpo_communitymech_metals_2026_05 HIGH enum-parent for MetalElementEnum; CHEBI IRIs are the per-element leaves (see proposal.md) +METPO:1008002 community-relevant rare earth element A METPO grouping class for the rare-earth elements (lanthanides plus Y, Sc) that microbial communities can interact with. Per CommunityMech.schema, each enum value carries a CHEBI cross-reference and the per-element leaves SHOULD reuse the existing CHEBI IRIs rather than minting fresh METPO classes; this parent provides the METPO-side grouping anchor. CommunityMech:communitymech.yaml#RareEarthElementEnum METPO:1008000 community-relevant REE|rare earth element category|community REE element metpo_communitymech_metals_2026_05 HIGH enum-parent for RareEarthElementEnum; CHEBI IRIs are the per-element leaves (see proposal.md) +METPO:1008003 community metal relevance level A grouping class for the qualitative severity with which metal or rare-earth-element cycling characterizes a microbial community, ranging from primary defining function through significant participation to incidental or non-applicable. CommunityMech:communitymech.yaml#MetalRelevanceEnum METPO:1008000 metal relevance category|metal/REE relevance level metpo_communitymech_metals_2026_05 HIGH enum-parent for MetalRelevanceEnum +METPO:1008010 primary metal relevance A metal-relevance level indicating that metal or rare-earth-element extraction or cycling is a primary function of the microbial community (e.g., biomining communities, acid mine drainage chemolithoautotrophs). CommunityMech:communitymech.yaml#MetalRelevanceEnum.PRIMARY METPO:1008003 primary metal-cycling relevance metpo_communitymech_metals_2026_05 HIGH MetalRelevanceEnum.PRIMARY +METPO:1008011 significant metal relevance A metal-relevance level indicating that the microbial community participates significantly in metal or rare-earth-element metabolism but it is not the community's primary function. CommunityMech:communitymech.yaml#MetalRelevanceEnum.SIGNIFICANT METPO:1008003 significant metal-cycling participation metpo_communitymech_metals_2026_05 HIGH MetalRelevanceEnum.SIGNIFICANT +METPO:1008012 incidental metal relevance A metal-relevance level indicating an incidental metal or rare-earth-element interaction in the microbial community (e.g., trace metals are present but not actively cycled). CommunityMech:communitymech.yaml#MetalRelevanceEnum.INCIDENTAL METPO:1008003 incidental metal interaction metpo_communitymech_metals_2026_05 MEDIUM MetalRelevanceEnum.INCIDENTAL +METPO:1008013 not-applicable metal relevance A metal-relevance level indicating that the microbial community has no significant metal or rare-earth-element relevance (default for communities focused on non-metal substrates). CommunityMech:communitymech.yaml#MetalRelevanceEnum.NOT_APPLICABLE METPO:1008003 no metal relevance metpo_communitymech_metals_2026_05 MEDIUM MetalRelevanceEnum.NOT_APPLICABLE diff --git a/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv b/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv new file mode 100644 index 00000000..4e539d73 --- /dev/null +++ b/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv @@ -0,0 +1,5 @@ +proposed_id label definition definition_source type domain range xrefs subset priority traits_addressed observations +ID LABEL A IAO:0000115 >A IAO:0000119 TYPE DOMAIN RANGE A oboInOwl:hasDbXref SPLIT=| A oboInOwl:inSubset +METPO:2008000 has metal element present A relation between a microbial community and a CHEBI metal cation or atom that is present in or processed by the community (e.g., iron, copper, mercury, uranium). Range deliberately points at the CHEBI metal-cation parent so per-element leaves remain CHEBI IRIs rather than fresh METPO classes. CommunityMech:communitymech.yaml#MicrobialCommunity.metals_present owl:ObjectProperty METPO:1007100 CHEBI:33521 metpo_communitymech_metals_2026_05 HIGH metal-element membership of community 0..* cardinality +METPO:2008001 has rare earth element present A relation between a microbial community and a CHEBI rare-earth-element atom or cation that is present in or processed by the community (lanthanides plus Y, Sc). Range points at the CHEBI rare-earth-atom parent so per-REE leaves remain CHEBI IRIs. CommunityMech:communitymech.yaml#MicrobialCommunity.rare_earth_elements_present owl:ObjectProperty METPO:1007100 CHEBI:33530 metpo_communitymech_metals_2026_05 HIGH rare-earth-element membership of community 0..* cardinality +METPO:2008002 has metal relevance A relation between a microbial community and a metal-relevance-level class indicating how central metal or rare-earth-element cycling is to the community (primary defining function vs significant participant vs incidental vs not applicable). CommunityMech:communitymech.yaml#MicrobialCommunity.metal_relevance owl:ObjectProperty METPO:1007100 METPO:1008003 metpo_communitymech_metals_2026_05 HIGH metal-relevance assignment 0..1 cardinality diff --git a/proposals/metpo_communitymech_metals_v1/proposal.md b/proposals/metpo_communitymech_metals_v1/proposal.md new file mode 100644 index 00000000..6b3bda49 --- /dev/null +++ b/proposals/metpo_communitymech_metals_v1/proposal.md @@ -0,0 +1,189 @@ +# METPO ROBOT Template Proposal — CommunityMech Metals Cohort (v1, 2026-05) + +## Context + +CommunityMech's metal-related schema slots +(`MicrobialCommunity.metals_present`, `.rare_earth_elements_present`, +`.metal_relevance`) are populated across the biomining, AMD, +metal-reduction, and metal-tailings community YAMLs in +`kb/communities/`. Lifting these into METPO lets KG-Microbe consumers +filter communities by metal/REE membership and by how central metal +cycling is to community function. + +A scoping choice deserves emphasis at the top: **the per-element enum +values in `MetalElementEnum` and `RareEarthElementEnum` already carry +`meaning: CHEBI:xxxxx` cross-references in the schema, so this proposal +does NOT mint per-element METPO classes**. Doing so would duplicate +CHEBI's `Iron(2+) cation` (CHEBI:29033) etc. as parallel +`METPO:iron`-style identifiers, contradicting the upstream kg-microbe +SKILL.md rule that "if the lifted concept already exists in METPO +under a different label, use the existing IRI; record the alias in +mappings/metpo_existing_aliases.tsv". This proposal instead lifts +only: + +- The two **grouping parents** (`community-relevant metal element`, + `community-relevant rare earth element`) that anchor the METPO side + of the alias mapping. +- The 4 **MetalRelevanceEnum** leaves (PRIMARY / SIGNIFICANT / + INCIDENTAL / NOT_APPLICABLE), which have no CHEBI equivalent — they + are qualitative severity categories, not chemical entities. +- Three **predicates** wiring all of the above to + `MicrobialCommunity`. + +The per-element CHEBI IRIs flow upstream into +`kg-microbe/mappings/metpo_existing_aliases.tsv` when this proposal is +copied to the kg-microbe pipeline. + +## Scope + +| CommunityMech enum / slot | METPO parent | Leaves | +| --- | --- | --- | +| `MetalElementEnum` (17 values) | `community-relevant metal element` (`METPO:1008001`) | none in METPO — reuse CHEBI IRIs | +| `RareEarthElementEnum` (16 values) | `community-relevant rare earth element` (`METPO:1008002`) | none in METPO — reuse CHEBI IRIs | +| `MetalRelevanceEnum` (4 values) | `community metal relevance level` (`METPO:1008003`) | 4 leaves (`METPO:1008010`–`METPO:1008013`) | + +Plus one new top-level domain class: + +| ID | Label | Lifts | +| --- | --- | --- | +| `METPO:1008000` | community-relevant metal context | the metal-context framing of `MicrobialCommunity` (parent `METPO:1007100`) | + +Total class rows: **8** (1 top-level + 3 enum-parents + 4 +MetalRelevance leaves). + +## Hierarchy decisions + +### Why no per-element METPO classes + +The kg-microbe upstream SKILL.md states: + +> If the lifted concept already exists in METPO under a different +> label, use the existing IRI; record the alias in +> `mappings/metpo_existing_aliases.tsv`. + +Each `MetalElementEnum` value (e.g., `IRON: meaning: CHEBI:29033`) +already exists in CHEBI as a chemical entity. Minting a new METPO IRI +per metal would: + +1. Force downstream consumers to choose between two competing IRIs + for the same chemical. +2. Multiply maintenance burden when CHEBI updates labels or adds + synonyms. +3. Leak the schema-internal enum design into the public ontology + without semantic justification (an enum is a serialization + convenience, not a new ontological category). + +The same reasoning applies to `RareEarthElementEnum`. Both +grouping-parent METPO classes (`METPO:1008001`, `METPO:1008002`) are +included so the alias-mapping table has a METPO-side anchor; the +actual per-element edges are CHEBI IRIs. + +### Why mint METPO leaves for MetalRelevanceEnum + +`MetalRelevanceEnum`'s four values (PRIMARY / SIGNIFICANT / +INCIDENTAL / NOT_APPLICABLE) are **qualitative severity categories +specific to CommunityMech**. They do not exist in CHEBI, PATO, GO, +or other ontologies we cross-reference, and they describe the +community's relationship to metal cycling rather than a chemical +entity. Minting fresh METPO leaves under +`community metal relevance level` is the right call. + +### Flat hierarchy under each enum-parent + +None of the three enums has internal `is_a` structure in the schema +(no comments indicating one value is a specialization of another). +The 4 MetalRelevance leaves are mutually exclusive severity bins. +Kept flat. + +## Predicate proposals + +3 object properties, all in the `METPO:2008NNN` placeholder range. +All have `MicrobialCommunity` (`METPO:1007100`) as domain. + +| Property | Range | Source slot | +| --- | --- | --- | +| `has metal element present` (`METPO:2008000`) | `CHEBI:33521` (metal cation) | `MicrobialCommunity.metals_present` | +| `has rare earth element present` (`METPO:2008001`) | `CHEBI:33530` (rare earth atom) | `MicrobialCommunity.rare_earth_elements_present` | +| `has metal relevance` (`METPO:2008002`) | `METPO:1008003` (metal relevance level) | `MicrobialCommunity.metal_relevance` | + +The first two predicates deliberately point their `RANGE` at a CHEBI +parent class (`CHEBI:33521` metal cation; `CHEBI:33530` rare earth +atom group) so that: + +1. Per-element edges in community YAMLs (e.g., + `Alaska_Tundra ... CHEBI:29033`) validate as `CHEBI:29033 ⊑ + CHEBI:33521` already known to CHEBI. +2. No METPO per-element leaf needs to be minted just to satisfy the + predicate's range constraint. + +## ID space and subset + +- **Classes**: `METPO:1008000`–`METPO:1008013` (placeholder, in a + fresh `1008NNN` block to keep the metals cohort cleanly separated + from the `metpo_communitymech_v1` cohort which uses `1007NNN`) +- **Properties**: `METPO:2008000`–`METPO:2008002` (placeholder) +- **Subset tag** on every row: `metpo_communitymech_metals_2026_05` +- **Definition source**: `CommunityMech:communitymech.yaml#.` + for enum lifts; `CommunityMech:communitymech.yaml#MicrobialCommunity.` + for the top-level domain class. +- **Priority**: `HIGH` on all enum-parent and PRIMARY/SIGNIFICANT + rows; `MEDIUM` on `INCIDENTAL` and `NOT_APPLICABLE` leaves (these + are catch-all categories). + +## Files + +| File | Rows | Notes | +| --- | --- | --- | +| `metpo_proposal_classes_robot.tsv` | 1 column header + 1 ROBOT header + 8 class rows = 10 lines | mirror of `kg-microbe/mappings/metpo_proposal_classes_robot.tsv` schema | +| `metpo_proposal_properties_robot.tsv` | 1 column header + 1 ROBOT header + 3 property rows = 5 lines | mirror of `kg-microbe/mappings/metpo_proposal_properties_robot.tsv` schema | +| `proposal.md` | (this file) | narrative for reviewer | + +## Verification + +```bash +# Column-count sanity +awk -F'\t' 'NF != 11 {print NR": "NF" cols"}' proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv +awk -F'\t' 'NF != 12 {print NR": "NF" cols"}' proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv + +# Parse with ROBOT if available +robot template --template proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv --output /tmp/metals_classes.owl +robot template --template proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv --output /tmp/metals_properties.owl +``` + +Round-trip check: pick two metal-relevant community YAMLs that +exercise the enums: +- `kb/communities/Alaska_Tundra_Permafrost_Iron_Redox_Community.yaml` + (Fe-redox, `metal_relevance: SIGNIFICANT`, single-metal IRON) +- `kb/communities/Bayan_Obo_REE_Tailings_Consortium.yaml` + (rare-earth elements + `metal_relevance: PRIMARY`) + +Confirm that every `MetalRelevanceEnum` value cited in these YAMLs +maps to a leaf class in this proposal, and that each +`MetalElementEnum` / `RareEarthElementEnum` value resolves to its +CHEBI IRI (which sits under the METPO grouping parent via the +alias-table mapping). + +## Upstream path + +When this cohort is approved here: + +1. Copy both TSVs to `kg-microbe/mappings/`. +2. Generate an `metpo_existing_aliases.tsv` entry for every + `MetalElementEnum.` and `RareEarthElementEnum.` value, + mapping the schema-side enum name to the existing CHEBI IRI from + the schema's `meaning:` annotation. Format follows the existing + `kg-microbe/mappings/metpo_existing_aliases.tsv` rows. +3. METPO maintainers mint real IDs to replace the `METPO:1008NNN` + placeholders for the 8 minted classes; CHEBI IRIs need no minting. +4. The CommunityMech `datamodel/communitymech.py` regeneration can + later emit either the METPO IRI (for grouping queries) or the + CHEBI IRI (for chemical-entity queries) when serializing + `metals_present` and `rare_earth_elements_present` values. + +## Change log + +- **v1, 2026-05**: Initial proposal for the metals cohort. 8 class + rows (1 top-level + 3 enum-parents + 4 MetalRelevance leaves) + + 3 property rows. Per-element CHEBI IRIs deferred to + `metpo_existing_aliases.tsv` upstream rather than minting fresh + METPO leaves. From 8ae1289929b92cabc6ae3f6c70679135a3faff2e Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Tue, 19 May 2026 20:44:00 -0700 Subject: [PATCH 2/2] Address Copilot review on PR #77 Five fixes for the five actionable Copilot comments: - Properties TSV (METPO:2008000 has metal element present): range CHEBI:33521 (metal cation) was too narrow because MetalElementEnum mixes atom-form values (URANIUM/CHEBI:27214, GOLD/CHEBI:29287, CHROMIUM/CHEBI:28073, TITANIUM/CHEBI:33341, PALLADIUM/CHEBI:33373) with cation-form values. Broadened to CHEBI:24431 (chemical entity) and rewrote the definition to describe the relation semantics only ("a CHEBI chemical entity that represents a metal element (atom or cation)..."). Moved the heterogeneous-schema rationale to the observations column. - Properties TSV (METPO:2008001 has rare earth element present): same range fix (CHEBI:33530 -> CHEBI:24431) for consistency and same definition-cleanup. RareEarthElementEnum values are all cation-form, but using the same broad range keeps the two metal predicates symmetric and forward-compatible if schema later adds atom-form REE values. - Classes TSV (METPO:1008001 community-relevant metal element): cleaned the IAO:0000115 definition to describe the grouping concept only ("a METPO grouping class for metal elements relevant to microbial community function..."), removed the "Per CommunityMech.schema... leaves SHOULD reuse CHEBI IRIs..." policy text from the definition, moved it to the observations column. - Classes TSV (METPO:1008002 community-relevant rare earth element): same definition cleanup as above. - proposal.md: updated the predicate-proposals table and the rationale paragraph to reflect the CHEBI:24431 range choice and enumerate the specific atom-form values that motivated the broadening. The "no METPO per-element leaves" intent is preserved. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../metpo_proposal_classes_robot.tsv | 4 +-- .../metpo_proposal_properties_robot.tsv | 4 +-- .../metpo_communitymech_metals_v1/proposal.md | 25 +++++++++++-------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv b/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv index b82a0988..dd665fac 100644 --- a/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv +++ b/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv @@ -1,8 +1,8 @@ proposed_id label definition definition_source parent synonyms xrefs subset priority observations traits_addressed ID LABEL A IAO:0000115 >A IAO:0000119 SC % A oboInOwl:hasExactSynonym SPLIT=| A oboInOwl:hasDbXref SPLIT=| A oboInOwl:inSubset METPO:1008000 community-relevant metal context A top-level framing class for metal- and rare-earth-element interactions of a microbial community, capturing which metals are present, which are rare-earth elements, and how relevant metals are to the community's function. CommunityMech:communitymech.yaml#MicrobialCommunity.metals_present METPO:1007100 community metal context|community metals framing metpo_communitymech_metals_2026_05 HIGH top-level domain class for the metals cohort -METPO:1008001 community-relevant metal element A METPO grouping class for metal elements that microbial communities can interact with - present in, oxidize, reduce, sequester, leach, or otherwise metabolize. Per CommunityMech.schema, each enum value carries a CHEBI cross-reference and the per-element leaves SHOULD reuse the existing CHEBI IRIs rather than minting fresh METPO classes; this parent provides the METPO-side grouping anchor. CommunityMech:communitymech.yaml#MetalElementEnum METPO:1008000 community-relevant metal|metal element category|community metal element metpo_communitymech_metals_2026_05 HIGH enum-parent for MetalElementEnum; CHEBI IRIs are the per-element leaves (see proposal.md) -METPO:1008002 community-relevant rare earth element A METPO grouping class for the rare-earth elements (lanthanides plus Y, Sc) that microbial communities can interact with. Per CommunityMech.schema, each enum value carries a CHEBI cross-reference and the per-element leaves SHOULD reuse the existing CHEBI IRIs rather than minting fresh METPO classes; this parent provides the METPO-side grouping anchor. CommunityMech:communitymech.yaml#RareEarthElementEnum METPO:1008000 community-relevant REE|rare earth element category|community REE element metpo_communitymech_metals_2026_05 HIGH enum-parent for RareEarthElementEnum; CHEBI IRIs are the per-element leaves (see proposal.md) +METPO:1008001 community-relevant metal element A METPO grouping class for metal elements relevant to microbial community function: metals (atoms or cations) that community members are present in, oxidize, reduce, sequester, leach, or otherwise metabolize. CommunityMech:communitymech.yaml#MetalElementEnum METPO:1008000 community-relevant metal|metal element category|community metal element metpo_communitymech_metals_2026_05 HIGH Per-element leaves are CHEBI IRIs (recorded upstream in metpo_existing_aliases.tsv) rather than fresh METPO classes; this parent provides the METPO-side grouping anchor. See proposal.md hierarchy decisions. enum-parent for MetalElementEnum; CHEBI IRIs are the per-element leaves (see proposal.md) +METPO:1008002 community-relevant rare earth element A METPO grouping class for rare-earth elements (lanthanides plus Y, Sc) relevant to microbial community function: REE atoms or cations that community members sequester, bioleach, or otherwise process. CommunityMech:communitymech.yaml#RareEarthElementEnum METPO:1008000 community-relevant REE|rare earth element category|community REE element metpo_communitymech_metals_2026_05 HIGH Per-element leaves are CHEBI IRIs (recorded upstream in metpo_existing_aliases.tsv) rather than fresh METPO classes; this parent provides the METPO-side grouping anchor. See proposal.md hierarchy decisions. enum-parent for RareEarthElementEnum; CHEBI IRIs are the per-element leaves (see proposal.md) METPO:1008003 community metal relevance level A grouping class for the qualitative severity with which metal or rare-earth-element cycling characterizes a microbial community, ranging from primary defining function through significant participation to incidental or non-applicable. CommunityMech:communitymech.yaml#MetalRelevanceEnum METPO:1008000 metal relevance category|metal/REE relevance level metpo_communitymech_metals_2026_05 HIGH enum-parent for MetalRelevanceEnum METPO:1008010 primary metal relevance A metal-relevance level indicating that metal or rare-earth-element extraction or cycling is a primary function of the microbial community (e.g., biomining communities, acid mine drainage chemolithoautotrophs). CommunityMech:communitymech.yaml#MetalRelevanceEnum.PRIMARY METPO:1008003 primary metal-cycling relevance metpo_communitymech_metals_2026_05 HIGH MetalRelevanceEnum.PRIMARY METPO:1008011 significant metal relevance A metal-relevance level indicating that the microbial community participates significantly in metal or rare-earth-element metabolism but it is not the community's primary function. CommunityMech:communitymech.yaml#MetalRelevanceEnum.SIGNIFICANT METPO:1008003 significant metal-cycling participation metpo_communitymech_metals_2026_05 HIGH MetalRelevanceEnum.SIGNIFICANT diff --git a/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv b/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv index 4e539d73..c74a94fc 100644 --- a/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv +++ b/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv @@ -1,5 +1,5 @@ proposed_id label definition definition_source type domain range xrefs subset priority traits_addressed observations ID LABEL A IAO:0000115 >A IAO:0000119 TYPE DOMAIN RANGE A oboInOwl:hasDbXref SPLIT=| A oboInOwl:inSubset -METPO:2008000 has metal element present A relation between a microbial community and a CHEBI metal cation or atom that is present in or processed by the community (e.g., iron, copper, mercury, uranium). Range deliberately points at the CHEBI metal-cation parent so per-element leaves remain CHEBI IRIs rather than fresh METPO classes. CommunityMech:communitymech.yaml#MicrobialCommunity.metals_present owl:ObjectProperty METPO:1007100 CHEBI:33521 metpo_communitymech_metals_2026_05 HIGH metal-element membership of community 0..* cardinality -METPO:2008001 has rare earth element present A relation between a microbial community and a CHEBI rare-earth-element atom or cation that is present in or processed by the community (lanthanides plus Y, Sc). Range points at the CHEBI rare-earth-atom parent so per-REE leaves remain CHEBI IRIs. CommunityMech:communitymech.yaml#MicrobialCommunity.rare_earth_elements_present owl:ObjectProperty METPO:1007100 CHEBI:33530 metpo_communitymech_metals_2026_05 HIGH rare-earth-element membership of community 0..* cardinality +METPO:2008000 has metal element present A relation between a microbial community and a CHEBI chemical entity that represents a metal element (atom or cation) present in or processed by the community. CommunityMech:communitymech.yaml#MicrobialCommunity.metals_present owl:ObjectProperty METPO:1007100 CHEBI:24431 metpo_communitymech_metals_2026_05 HIGH metal-element membership of community 0..* cardinality. Range is the broad CHEBI:24431 (chemical entity) because the schema-side MetalElementEnum mixes atom-form (e.g., CHEBI:27214 uranium atom, CHEBI:29287 gold atom) and cation-form (e.g., CHEBI:29033 iron(2+) cation) values; a narrower CHEBI parent would reject some valid existing data. +METPO:2008001 has rare earth element present A relation between a microbial community and a CHEBI chemical entity that represents a rare-earth element (atom or cation) present in or processed by the community. CommunityMech:communitymech.yaml#MicrobialCommunity.rare_earth_elements_present owl:ObjectProperty METPO:1007100 CHEBI:24431 metpo_communitymech_metals_2026_05 HIGH rare-earth-element membership of community 0..* cardinality. Range is the broad CHEBI:24431 (chemical entity) for consistency with the metal-element predicate; the per-REE leaves in RareEarthElementEnum are all CHEBI cation-form entities (e.g., CHEBI:32359 lanthanum(3+) cation). METPO:2008002 has metal relevance A relation between a microbial community and a metal-relevance-level class indicating how central metal or rare-earth-element cycling is to the community (primary defining function vs significant participant vs incidental vs not applicable). CommunityMech:communitymech.yaml#MicrobialCommunity.metal_relevance owl:ObjectProperty METPO:1007100 METPO:1008003 metpo_communitymech_metals_2026_05 HIGH metal-relevance assignment 0..1 cardinality diff --git a/proposals/metpo_communitymech_metals_v1/proposal.md b/proposals/metpo_communitymech_metals_v1/proposal.md index 6b3bda49..715a5616 100644 --- a/proposals/metpo_communitymech_metals_v1/proposal.md +++ b/proposals/metpo_communitymech_metals_v1/proposal.md @@ -102,19 +102,22 @@ All have `MicrobialCommunity` (`METPO:1007100`) as domain. | Property | Range | Source slot | | --- | --- | --- | -| `has metal element present` (`METPO:2008000`) | `CHEBI:33521` (metal cation) | `MicrobialCommunity.metals_present` | -| `has rare earth element present` (`METPO:2008001`) | `CHEBI:33530` (rare earth atom) | `MicrobialCommunity.rare_earth_elements_present` | +| `has metal element present` (`METPO:2008000`) | `CHEBI:24431` (chemical entity) | `MicrobialCommunity.metals_present` | +| `has rare earth element present` (`METPO:2008001`) | `CHEBI:24431` (chemical entity) | `MicrobialCommunity.rare_earth_elements_present` | | `has metal relevance` (`METPO:2008002`) | `METPO:1008003` (metal relevance level) | `MicrobialCommunity.metal_relevance` | -The first two predicates deliberately point their `RANGE` at a CHEBI -parent class (`CHEBI:33521` metal cation; `CHEBI:33530` rare earth -atom group) so that: - -1. Per-element edges in community YAMLs (e.g., - `Alaska_Tundra ... CHEBI:29033`) validate as `CHEBI:29033 ⊑ - CHEBI:33521` already known to CHEBI. -2. No METPO per-element leaf needs to be minted just to satisfy the - predicate's range constraint. +The first two predicates use the broad `CHEBI:24431` (chemical +entity) as range because the schema-side enums mix atom-form and +cation-form CHEBI values: `MetalElementEnum` includes atom-form +entries (`URANIUM` → `CHEBI:27214` uranium atom, `GOLD` → `CHEBI:29287` +gold atom, `CHROMIUM` → `CHEBI:28073`, `TITANIUM` → `CHEBI:33341`, +`PALLADIUM` → `CHEBI:33373`) alongside cation-form entries +(`IRON` → `CHEBI:29033` iron(2+) cation, etc.); narrower CHEBI parents +like `CHEBI:33521` (metal cation) or `CHEBI:33709` (metal atom) would +reject some valid existing data. The intent is to keep per-element +edges as CHEBI IRIs (no METPO per-element leaves minted); the range +type-hint is deliberately loose to accommodate the heterogeneous +schema values. ## ID space and subset