diff --git a/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv b/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv deleted file mode 100644 index dd665fac..00000000 --- a/proposals/metpo_communitymech_metals_v1/metpo_proposal_classes_robot.tsv +++ /dev/null @@ -1,10 +0,0 @@ -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 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 -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 deleted file mode 100644 index c74a94fc..00000000 --- a/proposals/metpo_communitymech_metals_v1/metpo_proposal_properties_robot.tsv +++ /dev/null @@ -1,5 +0,0 @@ -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 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 deleted file mode 100644 index 715a5616..00000000 --- a/proposals/metpo_communitymech_metals_v1/proposal.md +++ /dev/null @@ -1,192 +0,0 @@ -# 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: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 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 - -- **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. diff --git a/proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv b/proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv index 98d97678..ab0c0e8c 100644 --- a/proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv +++ b/proposals/metpo_communitymech_v1/metpo_proposal_classes_robot.tsv @@ -88,3 +88,11 @@ METPO:1007312 isolation medium relationship A growth-media-relationship value in METPO:1007313 environment analog medium relationship A growth-media-relationship value indicating that the medium was designed to mimic the community's natural environment. CommunityMech:communitymech.yaml#MediaRelationshipEnum.ENVIRONMENT_ANALOG METPO:1007310 environment-mimicking medium|environmental analog medium metpo_communitymech_2026_05 HIGH MediaRelationshipEnum.ENVIRONMENT_ANALOG METPO:1007314 referenced-in-study medium relationship A growth-media-relationship value indicating that the medium is referenced in a study of this community but not necessarily used for cultivation. CommunityMech:communitymech.yaml#MediaRelationshipEnum.REFERENCED_IN_STUDY METPO:1007310 study-referenced medium metpo_communitymech_2026_05 MEDIUM MediaRelationshipEnum.REFERENCED_IN_STUDY METPO:1007315 selective enrichment medium relationship A growth-media-relationship value indicating that the medium was used for selective enrichment of specific functional groups within the community. CommunityMech:communitymech.yaml#MediaRelationshipEnum.SELECTIVE_ENRICHMENT METPO:1007310 selective enrichment medium|enrichment medium metpo_communitymech_2026_05 HIGH MediaRelationshipEnum.SELECTIVE_ENRICHMENT +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:1000000 community metal context|community metals framing metpo_communitymech_2026_05 HIGH top-level domain class for the metals cohort +METPO:1008001 community-relevant metal element A METPO grouping class for metal elements (atoms or cations) relevant to microbial community function: metals that are present in the community and/or oxidized, reduced, sequestered, leached, or otherwise metabolized by community members. CommunityMech:communitymech.yaml#MetalElementEnum METPO:1008000 community-relevant metal|metal element category|community metal element metpo_communitymech_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_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_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_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_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_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_2026_05 MEDIUM MetalRelevanceEnum.NOT_APPLICABLE diff --git a/proposals/metpo_communitymech_v1/metpo_proposal_properties_robot.tsv b/proposals/metpo_communitymech_v1/metpo_proposal_properties_robot.tsv index fe43dd73..cc970e7e 100644 --- a/proposals/metpo_communitymech_v1/metpo_proposal_properties_robot.tsv +++ b/proposals/metpo_communitymech_v1/metpo_proposal_properties_robot.tsv @@ -16,3 +16,6 @@ METPO:2007112 has evidence support level A relation between a microbial communit METPO:2007113 has evidence source type A relation between a microbial community evidence item and an evidence-source class indicating the provenance category of the evidence (in vitro, in vivo, computational, review, other). CommunityMech:communitymech.yaml#EvidenceItem.evidence_source owl:ObjectProperty METPO:1007102 METPO:1007160 metpo_communitymech_2026_05 HIGH provenance of evidence required, 1..1 cardinality METPO:2007200 has atmosphere requirement A relation between a community-relevant growth medium and the atmosphere-requirement class describing its O2 / CO2 needs. CommunityMech:communitymech.yaml#GrowthMedia.atmosphere owl:ObjectProperty METPO:1007300 METPO:1007301 metpo_communitymech_2026_05 HIGH atmosphere assignment to growth medium 0..1 cardinality METPO:2007201 has growth media relationship A relation between a community-relevant growth medium and a growth-media-relationship-type class describing how the medium relates to the community (actual cultivation, isolation, environmental analog, etc.). CommunityMech:communitymech.yaml#RelatedMedia.relationship_type owl:ObjectProperty METPO:1007300 METPO:1007310 metpo_communitymech_2026_05 HIGH media-to-community relationship category 0..1 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_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_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_2026_05 HIGH metal-relevance assignment 0..1 cardinality diff --git a/proposals/metpo_communitymech_v1/proposal.md b/proposals/metpo_communitymech_v1/proposal.md index ae037486..cad4cc10 100644 --- a/proposals/metpo_communitymech_v1/proposal.md +++ b/proposals/metpo_communitymech_v1/proposal.md @@ -12,8 +12,18 @@ claims about them. The METPO proposal pipeline at 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 by -lifting 9 community-shaped enums into METPO classes (with grouping parents to -give them a hierarchy) and proposing 14 object properties that connect them. +lifting 12 community-shaped enums (across the v1, v1.1, and v1.2 cohorts: +`FunctionalRoleEnum`, `InteractionTypeEnum`, `InteractionScopeEnum`, +`EvidenceItemSupportEnum`, `EvidenceSourceEnum`, `AbundanceEnum`, +`CommunityCategoryEnum`, `CommunityOriginEnum`, `EcologicalStateEnum`, +`AtmosphereEnum`, `MediaRelationshipEnum`, `MetalRelevanceEnum`) plus +two enums that anchor CHEBI-reused per-element values (`MetalElementEnum`, +`RareEarthElementEnum`) into METPO classes with grouping parents, and +proposing 19 object properties that connect them. The schema's +remaining enums (`DatasetTypeEnum`, `DatasetRepositoryEnum`, +`ExternalResourceRepositoryEnum`, `CultureCollectionEnum`) are pure +machine-identifier categories and out of scope for METPO per the +skill's "what not to lift" rule. After upstream sign-off and ID minting, KGs in the KG-Microbe ecosystem will be able to express CommunityMech assertions as METPO triples, so reasoners @@ -35,8 +45,11 @@ level assertions the same way. | `EcologicalStateEnum` | `community ecological state` (`METPO:1007180`) | 4 | 0 (flat) | 85–95 | | `AtmosphereEnum` (v1.1) | `atmosphere requirement` (`METPO:1007301`) | 6 | 0 (flat) | 228–243 | | `MediaRelationshipEnum` (v1.1) | `growth media relationship type` (`METPO:1007310`) | 5 | 0 (flat) | 107–121 | +| `MetalElementEnum` (v1.2, **CHEBI-reuse**) | `community-relevant metal element` (`METPO:1008001`) | 0 in METPO (per-element leaves are CHEBI IRIs) | 0 (flat) | 348–402 | +| `RareEarthElementEnum` (v1.2, **CHEBI-reuse**) | `community-relevant rare earth element` (`METPO:1008002`) | 0 in METPO (per-REE leaves are CHEBI IRIs) | 0 (flat) | 403–453 | +| `MetalRelevanceEnum` (v1.2) | `community metal relevance level` (`METPO:1008003`) | 4 | 0 (flat) | 455–463 | -Plus four new **top-level domain classes** (children of `METPO:1000000`): +Plus five new **top-level domain classes** (children of `METPO:1000000`): | ID | Label | Lifts CommunityMech class | Added in | | --- | --- | --- | --- | @@ -44,15 +57,17 @@ Plus four new **top-level domain classes** (children of `METPO:1000000`): | `METPO:1007101` | microbial community ecological interaction | `EcologicalInteraction` | v1 | | `METPO:1007102` | microbial community evidence item | `EvidenceItem` | v1 | | `METPO:1007300` | community-relevant growth medium | `GrowthMedia` and `RelatedMedia` | v1.1 | +| `METPO:1008000` | community-relevant metal context | `MicrobialCommunity.metals_present` / `.rare_earth_elements_present` / `.metal_relevance` framing | v1.2 | -Each `enum-parent` class is a child of one of those four domain classes (e.g., +Each `enum-parent` class is a child of one of those five domain classes (e.g., `community functional category` sits under `microbial community`; `evidence item support level` sits under `microbial community evidence item`; -`atmosphere requirement` sits under `community-relevant growth medium`). +`atmosphere requirement` sits under `community-relevant growth medium`; +`community-relevant metal element` sits under `community-relevant metal context`). -Total class rows: **88** (4 top-level domain + 11 enum-parents + 10 intermediate -groupings + 63 leaves from enums; the v1.1 extension added 1 top-level + 2 -enum-parents + 11 leaves on top of v1's 3 + 9 + 10 + 52 = 74). +Total class rows: **96** (5 top-level domain + 14 enum-parents + 10 intermediate +groupings + 67 leaves from enums; the v1.2 extension added 1 top-level + +3 enum-parents + 4 leaves on top of v1.1's totals). ## Hierarchy decisions @@ -100,28 +115,60 @@ These have no obvious internal hierarchy in the schema — every value is a distinct mutually-exclusive state — so we keep them flat under their enum-parent. -## Predicate proposals +### `MetalElementEnum` and `RareEarthElementEnum` — CHEBI-reuse, no per-element leaves (v1.2) + +Every permissible value in these two enums carries a `meaning: CHEBI:xxxxx` +annotation in the schema (e.g., `IRON: meaning: CHEBI:29033` iron(2+) cation; +`LANTHANUM: meaning: CHEBI:32359` lanthanum(3+) cation). Per the upstream +kg-microbe SKILL.md rule *"if the lifted concept already exists in METPO under +a different label, use the existing IRI; record the alias upstream"*, this +proposal deliberately mints **only the grouping-parent METPO classes** +(`community-relevant metal element` / `community-relevant rare earth +element`) and leaves the per-element values as CHEBI IRIs. The per-element +edges flow into `kg-microbe/mappings/metpo_existing_aliases.tsv` when the +cohort is copied upstream. + +Predicate ranges for `has metal element present` and `has rare earth element +present` are set to the broad `CHEBI:24431` (chemical entity) because the +schema mixes atom-form (e.g., `URANIUM` → `CHEBI:27214` uranium atom, +`GOLD` → `CHEBI:29287` gold atom, `CHROMIUM` → `CHEBI:28073`, +`TITANIUM` → `CHEBI:33341`, `PALLADIUM` → `CHEBI:33373`) with cation-form +values; narrower CHEBI parents like `CHEBI:33521` (metal cation) or +`CHEBI:33709` (metal atom) would reject some valid existing data. + +In contrast, `MetalRelevanceEnum` has four qualitative severity values +(PRIMARY / SIGNIFICANT / INCIDENTAL / NOT_APPLICABLE) with **no CHEBI +equivalent**, so v1.2 mints fresh METPO leaves for those four values under +`community metal relevance level` (`METPO:1008003`). -14 object properties, all in the `METPO:2007NNN` placeholder range. Domains and -ranges reuse either the new top-level classes declared in this proposal or -existing METPO/external IRIs (NCBITaxon, CHEBI, GO). +## Predicate proposals -| Property | Domain | Range | Source CommunityMech slot | -| --- | --- | --- | --- | -| `has source taxon` (`METPO:2007100`) | community interaction | NCBITaxon | `EcologicalInteraction.source_taxon` | -| `has target taxon` (`METPO:2007101`) | community interaction | NCBITaxon | `EcologicalInteraction.target_taxon` | -| `has interaction type` (`METPO:2007102`) | community interaction | interaction-type class | `EcologicalInteraction.interaction_type` | -| `has interaction scope` (`METPO:2007103`) | community interaction | scope class | `EcologicalInteraction.scope` | -| `has exchanged metabolite` (`METPO:2007104`) | community interaction | CHEBI | `EcologicalInteraction.metabolites` | -| `participates in biological process` (`METPO:2007105`) | community interaction | GO | `EcologicalInteraction.biological_processes` | -| `has supporting evidence` (`METPO:2007106`) | community interaction | evidence item | `EcologicalInteraction.evidence` | -| `has functional role` (`METPO:2007107`) | microbe (`METPO:1000525`) | functional role class | `TaxonomicComposition.functional_role` | -| `has abundance level` (`METPO:2007108`) | microbe (`METPO:1000525`) | abundance class | `TaxonomicComposition.abundance_level` | -| `has community category` (`METPO:2007109`) | microbial community | community category class | `MicrobialCommunity.community_category` | -| `has community origin` (`METPO:2007110`) | microbial community | community origin class | `MicrobialCommunity.community_origin` | -| `has ecological state` (`METPO:2007111`) | microbial community | ecological state class | `MicrobialCommunity.ecological_state` | -| `has evidence support level` (`METPO:2007112`) | evidence item | evidence support class | `EvidenceItem.supports` | -| `has evidence source type` (`METPO:2007113`) | evidence item | evidence source class | `EvidenceItem.evidence_source` | +19 object properties across the `METPO:2007NNN` (v1, v1.1) and `METPO:2008NNN` +(v1.2) placeholder ranges. Domains and ranges reuse either the new top-level +classes declared in this proposal or existing METPO/external IRIs (NCBITaxon, +CHEBI, GO). + +| Property | Domain | Range | Source CommunityMech slot | Cohort | +| --- | --- | --- | --- | --- | +| `has source taxon` (`METPO:2007100`) | community interaction | NCBITaxon | `EcologicalInteraction.source_taxon` | v1 | +| `has target taxon` (`METPO:2007101`) | community interaction | NCBITaxon | `EcologicalInteraction.target_taxon` | v1 | +| `has interaction type` (`METPO:2007102`) | community interaction | interaction-type class | `EcologicalInteraction.interaction_type` | v1 | +| `has interaction scope` (`METPO:2007103`) | community interaction | scope class | `EcologicalInteraction.scope` | v1 | +| `has exchanged metabolite` (`METPO:2007104`) | community interaction | CHEBI | `EcologicalInteraction.metabolites` | v1 | +| `participates in biological process` (`METPO:2007105`) | community interaction | GO | `EcologicalInteraction.biological_processes` | v1 | +| `has supporting evidence` (`METPO:2007106`) | community interaction | evidence item | `EcologicalInteraction.evidence` | v1 | +| `has functional role` (`METPO:2007107`) | microbe (`METPO:1000525`) | functional role class | `TaxonomicComposition.functional_role` | v1 | +| `has abundance level` (`METPO:2007108`) | microbe (`METPO:1000525`) | abundance class | `TaxonomicComposition.abundance_level` | v1 | +| `has community category` (`METPO:2007109`) | microbial community | community category class | `MicrobialCommunity.community_category` | v1 | +| `has community origin` (`METPO:2007110`) | microbial community | community origin class | `MicrobialCommunity.community_origin` | v1 | +| `has ecological state` (`METPO:2007111`) | microbial community | ecological state class | `MicrobialCommunity.ecological_state` | v1 | +| `has evidence support level` (`METPO:2007112`) | evidence item | evidence support class | `EvidenceItem.supports` | v1 | +| `has evidence source type` (`METPO:2007113`) | evidence item | evidence source class | `EvidenceItem.evidence_source` | v1 | +| `has atmosphere requirement` (`METPO:2007200`) | community-relevant growth medium | atmosphere-requirement class | `GrowthMedia.atmosphere` | v1.1 | +| `has growth media relationship` (`METPO:2007201`) | community-relevant growth medium | media-relationship class | `RelatedMedia.relationship_type` | v1.1 | +| `has metal element present` (`METPO:2008000`) | microbial community | CHEBI:24431 (chemical entity) | `MicrobialCommunity.metals_present` | v1.2 | +| `has rare earth element present` (`METPO:2008001`) | microbial community | CHEBI:24431 (chemical entity) | `MicrobialCommunity.rare_earth_elements_present` | v1.2 | +| `has metal relevance` (`METPO:2008002`) | microbial community | metal-relevance-level class | `MicrobialCommunity.metal_relevance` | v1.2 | No paired "does not X" predicates are proposed here. The SKILL.md positive/negative pairing convention is intended for parametric @@ -134,23 +181,25 @@ semantically meaningful. - **Classes**: - v1: `METPO:1007100`–`METPO:1007220` (placeholder, within the KG-Microbe-reserved 1007xxx range per the SKILL.md placeholder policy) - - v1.1 extension: `METPO:1007300`–`METPO:1007315` (AtmosphereEnum + MediaRelationshipEnum + shared top-level domain class `community-relevant growth medium` at `METPO:1007300`) + - v1.1 extension: `METPO:1007300`–`METPO:1007315` (AtmosphereEnum + MediaRelationshipEnum + new top-level domain class `community-relevant growth medium` at `METPO:1007300`) + - v1.2 extension: `METPO:1008000`–`METPO:1008013` (MetalElementEnum + RareEarthElementEnum grouping parents + MetalRelevanceEnum + new top-level domain class `community-relevant metal context` at `METPO:1008000`). The v1.2 block starts at `1008000` rather than `1007320+` to visually separate the **CHEBI-reuse** metal classes from the all-leaves-minted v1/v1.1 enum classes. - **Properties**: - v1: `METPO:2007100`–`METPO:2007113` - v1.1 extension: `METPO:2007200`–`METPO:2007201` + - v1.2 extension: `METPO:2008000`–`METPO:2008002` - **Subset tag** on every row: `metpo_communitymech_2026_05` - **Definition source** on every leaf row: `CommunityMech:communitymech.yaml#.` for direct enum lifts; `CommunityMech:proposals/metpo_communitymech_v1/proposal.md#hierarchy-decisions` for the 10 intermediate grouping parents introduced in this proposal. - **Priority**: `HIGH` on all rows that come directly from CommunityMech enums; - `MEDIUM` on `OTHER` catch-all leaves and `REFERENCED_IN_STUDY` medium-relationship value. + `MEDIUM` on `OTHER` catch-all leaves, `REFERENCED_IN_STUDY` medium-relationship value, and `INCIDENTAL`/`NOT_APPLICABLE` metal-relevance leaves. ## Files | File | Rows | Notes | | --- | --- | --- | -| `metpo_proposal_classes_robot.tsv` | 1 column header + 1 ROBOT header + 88 class rows = 90 lines (74 in v1 + 14 in v1.1 extension) | mirror of `kg-microbe/mappings/metpo_proposal_classes_robot.tsv` schema | -| `metpo_proposal_properties_robot.tsv` | 1 column header + 1 ROBOT header + 16 property rows = 18 lines (14 in v1 + 2 in v1.1 extension) | mirror of `kg-microbe/mappings/metpo_proposal_properties_robot.tsv` schema | +| `metpo_proposal_classes_robot.tsv` | 1 column header + 1 ROBOT header + 96 class rows = 98 lines (74 in v1 + 14 in v1.1 + 8 in v1.2) | mirror of `kg-microbe/mappings/metpo_proposal_classes_robot.tsv` schema | +| `metpo_proposal_properties_robot.tsv` | 1 column header + 1 ROBOT header + 19 property rows = 21 lines (14 in v1 + 2 in v1.1 + 3 in v1.2) | mirror of `kg-microbe/mappings/metpo_proposal_properties_robot.tsv` schema | | `proposal.md` | (this file) | narrative for reviewer | ## Verification @@ -230,3 +279,23 @@ When this proposal is approved here in CommunityMech: (at least 10 above the v1 high-water marks of `1007220` / `2007113`). Total now: 88 class rows + 16 property rows. Same subset tag. +- **v1.2, 2026-05**: Path B extension absorbing what was previously + a separate `metpo_communitymech_metals_v1` cohort. Added + `MetalElementEnum` and `RareEarthElementEnum` enum-parents + (`METPO:1008001`, `METPO:1008002`) without minting per-element + METPO leaves — the per-element values reuse existing CHEBI IRIs + (e.g., `IRON` → `CHEBI:29033`) recorded upstream in + `metpo_existing_aliases.tsv`. Added `MetalRelevanceEnum` + (`METPO:1008003` + 4 leaves `METPO:1008010`–`METPO:1008013`) + which is minted in full because the four relevance levels have + no CHEBI equivalent. Added a new top-level domain class + `community-relevant metal context` (`METPO:1008000`, child of + `METPO:1000000`). Added 3 predicates `METPO:2008000`–`METPO:2008002` + (`has metal element present` / `has rare earth element present` / + `has metal relevance`). The previously separate + `metpo_communitymech_metals_v1/` proposal directory is removed in + this commit because everything in it now lives here under the same + subset tag. ID block starts at `1008000` / `2008000` to visually + separate the **CHEBI-reuse** metal classes from the all-leaves-minted + v1/v1.1 enum classes. Total now: 96 class rows + 19 property rows. + Same subset tag.