Skip to content

ChemicalComposition

The species a substance is made of and how much of each. This is the as-analysed claim: an elemental analysis names species, not ingredients.

TermConstraintsConsensus mappingAlternative mappings
typearray, default ["Composition"]@type-
"Composition"
What every composition is: a list of components, each a constituent with an amount. What a constituent may be is what differs, so the subschemas declare it. Terms in this schema's own IRI space are placeholders for a vocabulary that is not agreed yet, not a third ontology: they carry no axioms, and each records what it means in EMMO and in PMDco.
type aliashttps://w3id.org/oo-ld/schemas/materials/0.2/Composition.schema.json-
components arraychem:/properties/components-
ChemicalComposition
typedefault ["ChemicalComposition"]@type-
"ChemicalComposition"
The chemical species a substance is made of and how much of each. As analysed, typically: an elemental analysis names species, not ingredients.
type aliashttps://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json
items Componentchem:/properties/components
type array, default ["Component"]@type-
constituent
What the component is made of. Which kind of thing that may be is what a composition fixes: a chemical species, or another material.
stringcomp:/$defs/Component/properties/constituent
$ref MassFractioncomp:/$defs/Component/properties/amount
typearray, default ["QuantityValue"]@type-
value *numberqudt:value
unitstring, format iri-referencequdt:has unit
standard_uncertainty
Standard uncertainty, expressed in the unit of value (GUM convention)
numberqudt:standard uncertainty
relative_standard_uncertainty
Dimensionless ratio, not percent; ratio-scale quantities only, undefined at value 0; redundant with standard_uncertainty (u = r * |v|), give only one
numberqudt:relative standard uncertainty-
typedefault ["MassFraction"]@type-
unitenum, default "percent"qudt:has unit
"percent"value aliasqunit:Percent
"part_per_million"value aliasqunit:Parts per Million
typearray, default ["ChemicalComponent"]@type-
constituent
The chemical species or compound, as a species alias
stringchem:/properties/components/items/properties/constituent

* marks a required property.

{
  "$schema": "https://oo-ld.org/latest/meta/oold-meta-schema.json",
  "$id": "ChemicalComposition.schema.json",
  "x-oold-uuid": "1fd3fc76-9606-522f-83e4-665ce088f0a8",
  "x-oold-version": "0.1.0",
  "title": "ChemicalComposition",
  "description": "The chemical species a substance is made of and how much of each. As analysed, typically: an elemental analysis names species, not ingredients.",
  "$comment": "`components` embeds an object of this module, and its terms are kept apart by the scope the composition term carries in Material.schema.json. Scoping Composition here as well would layer the base's plain `constituent` over this schema's own and lose both its coercion and its mapping, so OOLD-CMP-5266 is answered one level up.",
  "examples": [
    {
      "type": [
        "ChemicalComposition"
      ],
      "components": [
        {
          "type": [
            "ChemicalComponent"
          ],
          "constituent": "Fe",
          "amount": {
            "type": [
              "MassFraction"
            ],
            "value": 96.7,
            "unit": "percent"
          }
        }
      ]
    }
  ],
  "allOf": [
    {
      "$ref": "Composition.schema.json"
    }
  ],
  "@context": [
    "Composition.schema.json",
    {
      "chem": {
        "@id": "https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#",
        "@prefix": true
      },
      "ChemicalComposition": "https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json",
      "ChemicalComponent": "chem:/properties/components/items",
      "Fe": "emmo:EMMO_71b5082d-9908-5011-8ad0-b2ab70ffd08c",
      "Si": "emmo:EMMO_4f9670f5-14ca-53da-a1ea-9b0550a61035",
      "C": "emmo:EMMO_a7180b5f-d46d-5751-b3bc-ae28a6655992",
      "components": {
        "@id": "chem:/properties/components",
        "@type": "@id",
        "@container": "@set"
      },
      "constituent": {
        "@id": "chem:/properties/components/items/properties/constituent",
        "@type": "@vocab"
      }
    }
  ],
  "properties": {
    "type": {
      "default": [
        "ChemicalComposition"
      ]
    },
    "components": {
      "items": {
        "allOf": [
          {
            "$ref": "Composition.schema.json#/$defs/Component"
          }
        ],
        "properties": {
          "type": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": [
              "ChemicalComponent"
            ]
          },
          "constituent": {
            "type": "string",
            "description": "The chemical species or compound, as a species alias",
            "examples": [
              "Fe",
              "Si",
              "C"
            ]
          }
        }
      }
    }
  },
  "x-oold-context": {
    "ChemicalComposition": {
      "emmo:EMMO_7efd64d1_05a1_49cd_a7f0_783ca050d4f3": {
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv",
          "object_source_version": "https://w3id.org/emmo/1.0.4",
          "comment": "ChemicalComposition, the union of total, partial and single component"
        }
      },
      "pmd:PMD_0000551": {
        "x-oold-sssom": {
          "predicate_id": "skos:closeMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv",
          "object_source_version": "https://w3id.org/pmd/co/3.1.0",
          "comment": "chemical composition is a quality of the material, not a symbolic construct"
        }
      }
    },
    "ChemicalComponent": {
      "emmo:EMMO_172e2c96_180b_40f8_a3e7_b624471f40c2": {
        "x-oold-sssom": {
          "predicate_id": "skos:closeMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv",
          "object_source_version": "https://w3id.org/emmo/1.0.4",
          "comment": "SingleComponentComposition"
        }
      },
      "pmd:PMD_0020102": {
        "x-oold-sssom": {
          "predicate_id": "skos:closeMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv",
          "object_source_version": "https://w3id.org/pmd/co/3.1.0",
          "comment": "mass ratio, while the amount is a mass fraction"
        }
      }
    },
    "components": {
      "emmo:EMMO_b2282816_b7a3_44c6_b2cb_3feff1ceb7fe": {
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv",
          "object_source_version": "https://w3id.org/emmo/1.0.4",
          "comment": "hasSpatialTile"
        }
      }
    },
    "constituent": {
      "emmo:EMMO_18fdd2cd_4b0a_43a5_a938_66d8290a066c": {
        "@type": "@vocab",
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv",
          "object_source_version": "https://w3id.org/emmo/1.0.4",
          "comment": "hasSpeciesPart, 1.0.4 only"
        }
      }
    }
  }
}
$schema: https://oo-ld.org/latest/meta/oold-meta-schema.json
$id: ChemicalComposition.schema.json
x-oold-uuid: 1fd3fc76-9606-522f-83e4-665ce088f0a8
x-oold-version: 0.1.0
title: ChemicalComposition
description: 'The chemical species a substance is made of and how much of each. As analysed, typically:
  an elemental analysis names species, not ingredients.'
$comment: '`components` embeds an object of this module, and its terms are kept apart by the scope the
  composition term carries in Material.schema.json. Scoping Composition here as well would layer the base''s
  plain `constituent` over this schema''s own and lose both its coercion and its mapping, so OOLD-CMP-5266
  is answered one level up.'
examples:
- type:
  - ChemicalComposition
  components:
  - type:
    - ChemicalComponent
    constituent: Fe
    amount:
      type:
      - MassFraction
      value: 96.7
      unit: percent
allOf:
- $ref: Composition.schema.json
'@context':
- Composition.schema.json
- chem:
    '@id': https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#
    '@prefix': true
  ChemicalComposition: https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json
  ChemicalComponent: chem:/properties/components/items
  Fe: emmo:EMMO_71b5082d-9908-5011-8ad0-b2ab70ffd08c
  Si: emmo:EMMO_4f9670f5-14ca-53da-a1ea-9b0550a61035
  C: emmo:EMMO_a7180b5f-d46d-5751-b3bc-ae28a6655992
  components:
    '@id': chem:/properties/components
    '@type': '@id'
    '@container': '@set'
  constituent:
    '@id': chem:/properties/components/items/properties/constituent
    '@type': '@vocab'
properties:
  type:
    default:
    - ChemicalComposition
  components:
    items:
      allOf:
      - $ref: Composition.schema.json#/$defs/Component
      properties:
        type:
          type: array
          items:
            type: string
          default:
          - ChemicalComponent
        constituent:
          type: string
          description: The chemical species or compound, as a species alias
          examples:
          - Fe
          - Si
          - C
x-oold-context:
  ChemicalComposition:
    emmo:EMMO_7efd64d1_05a1_49cd_a7f0_783ca050d4f3:
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv
        object_source_version: https://w3id.org/emmo/1.0.4
        comment: ChemicalComposition, the union of total, partial and single component
    pmd:PMD_0000551:
      x-oold-sssom:
        predicate_id: skos:closeMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv
        object_source_version: https://w3id.org/pmd/co/3.1.0
        comment: chemical composition is a quality of the material, not a symbolic construct
  ChemicalComponent:
    emmo:EMMO_172e2c96_180b_40f8_a3e7_b624471f40c2:
      x-oold-sssom:
        predicate_id: skos:closeMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv
        object_source_version: https://w3id.org/emmo/1.0.4
        comment: SingleComponentComposition
    pmd:PMD_0020102:
      x-oold-sssom:
        predicate_id: skos:closeMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv
        object_source_version: https://w3id.org/pmd/co/3.1.0
        comment: mass ratio, while the amount is a mass fraction
  components:
    emmo:EMMO_b2282816_b7a3_44c6_b2cb_3feff1ceb7fe:
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv
        object_source_version: https://w3id.org/emmo/1.0.4
        comment: hasSpatialTile
  constituent:
    emmo:EMMO_18fdd2cd_4b0a_43a5_a938_66d8290a066c:
      '@type': '@vocab'
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv
        object_source_version: https://w3id.org/emmo/1.0.4
        comment: hasSpeciesPart, 1.0.4 only
{
  "$schema": "https://w3id.org/oo-ld/schemas/materials/dev/ChemicalComposition.schema.json",
  "@context": "https://w3id.org/oo-ld/schemas/materials/dev/ChemicalComposition.schema.json",
  "@id": "https://example.org/instance",
  "type": [
    "ChemicalComposition"
  ],
  "components": [
    {
      "type": [
        "ChemicalComponent"
      ],
      "constituent": "Fe",
      "amount": {
        "type": [
          "MassFraction"
        ],
        "value": 96.7,
        "unit": "percent"
      }
    }
  ]
}

PREFIX chem_components: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/components/>
PREFIX chem_components_items: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/components/items/properties/>
PREFIX chem_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/>
PREFIX comp_Component: <https://w3id.org/oo-ld/schemas/materials/0.2/Composition.schema.json#/$defs/Component/properties/>
PREFIX emmo: <https://w3id.org/emmo#>
PREFIX ex: <https://example.org/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX materials: <https://w3id.org/oo-ld/schemas/materials/0.2/>
PREFIX qkind: <http://qudt.org/vocab/quantitykind/>
PREFIX qudt: <http://qudt.org/schema/qudt/>
PREFIX qunit: <http://qudt.org/vocab/unit/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ex:instance
    a materials:ChemicalComposition.schema.json ;
    chem_properties:components genid:c14n1 ;
.

genid:c14n0
    a qkind:MassFraction ;
    qudt:hasUnit qunit:PERCENT ;
    qudt:value 9.67e+01 ;
.

genid:c14n1
    a chem_components:items ;
    chem_components_items:constituent emmo:EMMO_71b5082d-9908-5011-8ad0-b2ab70ffd08c ;
    comp_Component:amount genid:c14n0 ;
.
PREFIX emmo: <https://w3id.org/emmo#>
PREFIX ex: <https://example.org/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX qudt: <http://qudt.org/schema/qudt/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ex:instance
    a emmo:EMMO_7efd64d1_05a1_49cd_a7f0_783ca050d4f3 ;
    emmo:EMMO_b2282816_b7a3_44c6_b2cb_3feff1ceb7fe genid:c14n0 ;
.

genid:c14n0
    a emmo:EMMO_172e2c96_180b_40f8_a3e7_b624471f40c2 ;
    emmo:EMMO_18fdd2cd_4b0a_43a5_a938_66d8290a066c emmo:EMMO_71b5082d-9908-5011-8ad0-b2ab70ffd08c ;
    emmo:EMMO_95d706e4_8b16_48a1_8dfd_40ccd4df1c12 genid:c14n1 ;
.

genid:c14n1
    a emmo:EMMO_7c055d65_2929_40e1_af4f_4bf10995ad50 ;
    qudt:value 9.67e+01 ;
    emmo:EMMO_eeb06032_dd4f_476e_9da6_aa24302b7588 emmo:WeightPercent ;
.
PREFIX chem_components_items: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/components/items/properties/>
PREFIX chem_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/>
PREFIX emmo: <https://w3id.org/emmo#>
PREFIX ex: <https://example.org/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX pmd: <https://w3id.org/pmd/co/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ex:instance
    a pmd:PMD_0000551 ;
    chem_properties:components genid:c14n0 ;
.

genid:c14n0
    a pmd:PMD_0020102 ;
    chem_components_items:constituent emmo:EMMO_71b5082d-9908-5011-8ad0-b2ab70ffd08c ;
    pmd:PMD_0000077 genid:c14n1 ;
.

genid:c14n1
    a pmd:PMD_0025997 ;
    obo:IAO_0000039 obo:UO_0000163 ;
    obo:OBI_0001937 9.67e+01 ;
.
PREFIX chem_components: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/components/>
PREFIX chem_components_items: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/components/items/properties/>
PREFIX chem_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/ChemicalComposition.schema.json#/properties/>
PREFIX comp_Component: <https://w3id.org/oo-ld/schemas/materials/0.2/Composition.schema.json#/$defs/Component/properties/>
PREFIX emmo: <https://w3id.org/emmo#>
PREFIX ex: <https://example.org/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX materials: <https://w3id.org/oo-ld/schemas/materials/0.2/>
PREFIX qkind: <http://qudt.org/vocab/quantitykind/>
PREFIX qunit: <http://qudt.org/vocab/unit/>
PREFIX schema1: <http://schema.org/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ex:instance
    a materials:ChemicalComposition.schema.json ;
    chem_properties:components genid:c14n1 ;
.

genid:c14n0
    a qkind:MassFraction ;
    schema1:unitCode qunit:PERCENT ;
    schema1:value 9.67e+01 ;
.

genid:c14n1
    a chem_components:items ;
    chem_components_items:constituent emmo:EMMO_71b5082d-9908-5011-8ad0-b2ab70ffd08c ;
    comp_Component:amount genid:c14n0 ;
.

flowchart LR
  n0["instance<br>ChemicalComposition"]
  n1["blank node<br>chem:ChemicalComponent"]
  n2["blank node<br>qkind:Mass Fraction"]
  n3["qunit:Percent"]
  n4[/"96.7"/]
  n5["emmo:IronSymbol"]
  n0 -->|chem:components| n1
  n2 -->|qudt:has unit| n3
  n2 -->|qudt:value| n4
  n1 -->|chem:constituent| n5
  n1 -->|comp:amount| n2
flowchart LR
  n0["instance<br>emmo:ChemicalComposition"]
  n1["blank node<br>emmo:SingleComponentComposition"]
  n2["emmo:IronSymbol"]
  n3["blank node<br>emmo:MassFraction"]
  n4[/"96.7"/]
  n5["emmo:WeightPercent"]
  n0 -->|emmo:hasSpatialTile| n1
  n1 -->|emmo:hasSpeciesPart| n2
  n1 -->|emmo:hasQuantityPart| n3
  n3 -->|qudt:value| n4
  n3 -->|emmo:hasReferencePart| n5
flowchart LR
  n0["instance<br>pmd:chemical composition"]
  n1["blank node<br>pmd:mass ratio"]
  n2["emmo:IronSymbol"]
  n3["blank node<br>pmd:fraction value specification"]
  n4["obo:mass percentage"]
  n5[/"96.7"/]
  n0 -->|chem:components| n1
  n1 -->|chem:constituent| n2
  n1 -->|pmd:specified by value| n3
  n3 -->|obo:has measurement unit label| n4
  n3 -->|obo:has specified numeric value| n5
flowchart LR
  n0["instance<br>ChemicalComposition"]
  n1["blank node<br>chem:ChemicalComponent"]
  n2["blank node<br>qkind:Mass Fraction"]
  n3["qunit:Percent"]
  n4[/"96.7"/]
  n5["emmo:IronSymbol"]
  n0 -->|chem:components| n1
  n2 -->|schema:unitCode| n3
  n2 -->|schema:value| n4
  n1 -->|chem:constituent| n5
  n1 -->|comp:amount| n2

EMMO fits this case exactly. A composition there is a language construct, and SingleComponentComposition is the smallest sub-expression that still says something: one species, one fraction. components is EMMO's hasSpatialTile, constituent its hasSpeciesPart, whose range ChemicalSpecies is ChemicalElement or ChemicalNomenclature or ChemicalFormula, so Fe and SiC both fit.

PMDco reads the same document through its own pattern, where the component is a mass ratio and the amount the fraction value specification it is specified by.

flowchart LR
    a{{substance1}}--> |a| A([Substance])
    b{{composition1}}--> |a| B([ChemicalComposition])
    c1{{comp_Fe}} & c2{{comp_Si}} & c3{{comp_C}}--> |a| C([ChemicalComponent])
    d1{{Fe}} & d2{{Si}} & d3{{C}}--> |a| D([ChemicalSpecies])
    e1{{wt_Fe}} & e2{{wt_Si}} & e3{{wt_C}}--> |a| E1([MassFraction])-->|subClassOf| E2([ChemicalCompositionQuantity])
    g1{{%}} & g2{{ppm}}--> |a| G([MassFractionUnit])

    a -->|composition| b
    b -->|components| c1 & c2 & c3
    c1 -->|constituent| d1
    c2 -->|constituent| d2
    c3 -->|constituent| d3
    c1 -->|amount| e1
    c2 -->|amount| e2
    c3 -->|amount| e3
    e1 -->|value| f1[96.7]
    e2 -->|value| f2[3.3]
    e3 -->|value| f3[120]
    e2 -->|standard_uncertainty| f4[0.1]
    e1 -->|unit| g1
    e2 -->|unit| g1
    e3 -->|unit| g2

    classDef cls fill:#ffc,stroke:#f8f200,color:#000
    classDef indv fill:#cfc,stroke:#96daa1,color:#000
    classDef literal fill:none,stroke:#800,color:#000

    class A,B,C,D,E1,E2,G cls
    class a,b,c1,c2,c3,d1,d2,d3,e1,e2,e3,g1,g2 indv
    class f1,f2,f3,f4 literal