Skip to content

MaterialComposition

The materials a material is made of and how much of each. This is the as-specified claim: a recipe names ingredients, and an ingredient is a material with a composition of its own.

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 arraymatcomp:/properties/components-
MaterialComposition
typedefault ["MaterialComposition"]@type-
"MaterialComposition"
The materials a material is made of and how much of each. As specified, typically: a recipe names ingredients, which are materials with a composition of their own, and that is not the same claim as an elemental analysis.
type aliashttps://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json-
items Componentmatcomp:/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 ["MaterialComponent"]@type-
constituent
IRI of the material this component is made of
string, format iri-referencematcomp:/properties/components/items/properties/constituent

* marks a required property.

{
  "$schema": "https://oo-ld.org/latest/meta/oold-meta-schema.json",
  "$id": "MaterialComposition.schema.json",
  "x-oold-uuid": "5490e369-afe0-5e5c-8a76-ac9bc3a0f10f",
  "x-oold-version": "0.1.0",
  "title": "MaterialComposition",
  "description": "The materials a material is made of and how much of each. As specified, typically: a recipe names ingredients, which are materials with a composition of their own, and that is not the same claim as an elemental analysis.",
  "$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": [
        "MaterialComposition"
      ],
      "components": [
        {
          "type": [
            "MaterialComponent"
          ],
          "constituent": "https://example.org/material/batch1",
          "amount": {
            "type": [
              "MassFraction"
            ],
            "value": 96.7,
            "unit": "percent"
          }
        }
      ]
    }
  ],
  "allOf": [
    {
      "$ref": "Composition.schema.json"
    }
  ],
  "@context": [
    "Composition.schema.json",
    {
      "matcomp": {
        "@id": "https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#",
        "@prefix": true
      },
      "MaterialComposition": "https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json",
      "MaterialComponent": "matcomp:/properties/components/items",
      "constituent": {
        "@id": "matcomp:/properties/components/items/properties/constituent",
        "@type": "@id"
      },
      "components": {
        "@id": "matcomp:/properties/components",
        "@type": "@id",
        "@container": "@set"
      }
    }
  ],
  "properties": {
    "type": {
      "default": [
        "MaterialComposition"
      ]
    },
    "components": {
      "items": {
        "allOf": [
          {
            "$ref": "Composition.schema.json#/$defs/Component"
          }
        ],
        "properties": {
          "type": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": [
              "MaterialComponent"
            ]
          },
          "constituent": {
            "type": "string",
            "format": "iri-reference",
            "x-oold-range": "Material.schema.json",
            "description": "IRI of the material this component is made of"
          }
        }
      }
    }
  },
  "x-oold-context": {
    "MaterialComponent": {
      "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; the constituent is the portion it is a quality of"
        }
      }
    },
    "constituent": {
      "pmd:PMD_0025999": {
        "@type": "@id",
        "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": "relational quality of; a Material is a portion of matter in PMDco"
        }
      }
    }
  }
}
$schema: https://oo-ld.org/latest/meta/oold-meta-schema.json
$id: MaterialComposition.schema.json
x-oold-uuid: 5490e369-afe0-5e5c-8a76-ac9bc3a0f10f
x-oold-version: 0.1.0
title: MaterialComposition
description: 'The materials a material is made of and how much of each. As specified, typically: a recipe
  names ingredients, which are materials with a composition of their own, and that is not the same claim
  as an elemental analysis.'
$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:
  - MaterialComposition
  components:
  - type:
    - MaterialComponent
    constituent: https://example.org/material/batch1
    amount:
      type:
      - MassFraction
      value: 96.7
      unit: percent
allOf:
- $ref: Composition.schema.json
'@context':
- Composition.schema.json
- matcomp:
    '@id': https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#
    '@prefix': true
  MaterialComposition: https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json
  MaterialComponent: matcomp:/properties/components/items
  constituent:
    '@id': matcomp:/properties/components/items/properties/constituent
    '@type': '@id'
  components:
    '@id': matcomp:/properties/components
    '@type': '@id'
    '@container': '@set'
properties:
  type:
    default:
    - MaterialComposition
  components:
    items:
      allOf:
      - $ref: Composition.schema.json#/$defs/Component
      properties:
        type:
          type: array
          items:
            type: string
          default:
          - MaterialComponent
        constituent:
          type: string
          format: iri-reference
          x-oold-range: Material.schema.json
          description: IRI of the material this component is made of
x-oold-context:
  MaterialComponent:
    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; the constituent is the portion it is a quality of
  constituent:
    pmd:PMD_0025999:
      '@type': '@id'
      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: relational quality of; a Material is a portion of matter in PMDco
{
  "$schema": "https://w3id.org/oo-ld/schemas/materials/dev/MaterialComposition.schema.json",
  "@context": "https://w3id.org/oo-ld/schemas/materials/dev/MaterialComposition.schema.json",
  "@id": "https://example.org/instance",
  "type": [
    "MaterialComposition"
  ],
  "components": [
    {
      "type": [
        "MaterialComponent"
      ],
      "constituent": "https://example.org/material/batch1",
      "amount": {
        "type": [
          "MassFraction"
        ],
        "value": 96.7,
        "unit": "percent"
      }
    }
  ]
}

PREFIX comp_Component: <https://w3id.org/oo-ld/schemas/materials/0.2/Composition.schema.json#/$defs/Component/properties/>
PREFIX ex: <https://example.org/>
PREFIX ex_material: <https://example.org/material/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX matcomp_components: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/components/>
PREFIX matcomp_components_items: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/components/items/properties/>
PREFIX matcomp_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/>
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:MaterialComposition.schema.json ;
    matcomp_properties:components genid:c14n0 ;
.

genid:c14n0
    a matcomp_components:items ;
    comp_Component:amount genid:c14n1 ;
    matcomp_components_items:constituent ex_material:batch1 ;
.

genid:c14n1
    a qkind:MassFraction ;
    qudt:hasUnit qunit:PERCENT ;
    qudt:value 9.67e+01 ;
.
PREFIX emmo: <https://w3id.org/emmo#>
PREFIX ex: <https://example.org/>
PREFIX ex_material: <https://example.org/material/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX matcomp_components: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/components/>
PREFIX matcomp_components_items: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/components/items/properties/>
PREFIX matcomp_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/>
PREFIX materials: <https://w3id.org/oo-ld/schemas/materials/0.2/>
PREFIX qudt: <http://qudt.org/schema/qudt/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ex:instance
    a materials:MaterialComposition.schema.json ;
    matcomp_properties:components genid:c14n0 ;
.

genid:c14n0
    a matcomp_components:items ;
    emmo:EMMO_95d706e4_8b16_48a1_8dfd_40ccd4df1c12 genid:c14n1 ;
    matcomp_components_items:constituent ex_material:batch1 ;
.

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 ex: <https://example.org/>
PREFIX ex_material: <https://example.org/material/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX matcomp_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/>
PREFIX materials: <https://w3id.org/oo-ld/schemas/materials/0.2/>
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 materials:MaterialComposition.schema.json ;
    matcomp_properties:components genid:c14n1 ;
.

genid:c14n0
    a pmd:PMD_0025997 ;
    obo:IAO_0000039 obo:UO_0000163 ;
    obo:OBI_0001937 9.67e+01 ;
.

genid:c14n1
    a pmd:PMD_0020102 ;
    pmd:PMD_0000077 genid:c14n0 ;
    pmd:PMD_0025999 ex_material:batch1 ;
.
PREFIX comp_Component: <https://w3id.org/oo-ld/schemas/materials/0.2/Composition.schema.json#/$defs/Component/properties/>
PREFIX ex: <https://example.org/>
PREFIX ex_material: <https://example.org/material/>
PREFIX genid: <https://schemas.oo-ld.org/.well-known/genid/>
PREFIX matcomp_components: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/components/>
PREFIX matcomp_components_items: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/components/items/properties/>
PREFIX matcomp_properties: <https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json#/properties/>
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:MaterialComposition.schema.json ;
    matcomp_properties:components genid:c14n0 ;
.

genid:c14n0
    a matcomp_components:items ;
    comp_Component:amount genid:c14n1 ;
    matcomp_components_items:constituent ex_material:batch1 ;
.

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

flowchart LR
  n0["instance<br>MaterialComposition"]
  n1["blank node<br>matcomp:MaterialComponent"]
  n2["blank node<br>qkind:Mass Fraction"]
  n3["batch1"]
  n4["qunit:Percent"]
  n5[/"96.7"/]
  n0 -->|matcomp:components| n1
  n1 -->|comp:amount| n2
  n1 -->|matcomp:constituent| n3
  n2 -->|qudt:has unit| n4
  n2 -->|qudt:value| n5
flowchart LR
  n0["instance<br>MaterialComposition"]
  n1["blank node<br>matcomp:MaterialComponent"]
  n2["blank node<br>emmo:MassFraction"]
  n3["batch1"]
  n4[/"96.7"/]
  n5["emmo:WeightPercent"]
  n0 -->|matcomp:components| n1
  n1 -->|emmo:hasQuantityPart| n2
  n1 -->|matcomp:constituent| n3
  n2 -->|qudt:value| n4
  n2 -->|emmo:hasReferencePart| n5
flowchart LR
  n0["instance<br>MaterialComposition"]
  n1["blank node<br>pmd:mass ratio"]
  n2["blank node<br>pmd:fraction value specification"]
  n3["obo:mass percentage"]
  n4[/"96.7"/]
  n5["batch1"]
  n0 -->|matcomp:components| n1
  n2 -->|obo:has measurement unit label| n3
  n2 -->|obo:has specified numeric value| n4
  n1 -->|pmd:specified by value| n2
  n1 -->|pmd:relational quality of| n5
flowchart LR
  n0["instance<br>MaterialComposition"]
  n1["blank node<br>matcomp:MaterialComponent"]
  n2["blank node<br>qkind:Mass Fraction"]
  n3["batch1"]
  n4["qunit:Percent"]
  n5[/"96.7"/]
  n0 -->|matcomp:components| n1
  n1 -->|comp:amount| n2
  n1 -->|matcomp:constituent| n3
  n2 -->|schema:unitCode| n4
  n2 -->|schema:value| n5

The constituent is a reference, @type: "@id" with x-oold-range, not an embedded object: an ingredient is an entity with its own identity, and embedding a material inside a material would close a cycle that JSON-LD cannot resolve.

Here the two ontologies swap places. PMDco fits: its proportion is a relational quality of a portion of matter, and a portion may be of any substance, so constituent is relational quality of unchanged. EMMO does not: hasSpeciesPart ranges over species, and while EMMO has Mixture and hasPortionPart, nothing attaches a fraction to a portion, so these terms keep their placeholder IRIs in the EMMO reading.