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.
- module:
materials0.2.0 - module version: 0.1 · dev
- extends: Composition (
allOf) - schema file:
/materials/dev/MaterialComposition.schema.json - earlier versions: 0.1.0
| Term | Constraints | Consensus mapping | Alternative mappings |
|---|---|---|---|
type | array, 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 alias | https://w3id.org/oo-ld/schemas/materials/0.2/Composition.schema.json | - |
components | array | matcomp:/properties/components | - |
| MaterialComposition | |||
type | default ["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 alias | https://w3id.org/oo-ld/schemas/materials/0.2/MaterialComposition.schema.json | - |
items Component | matcomp:/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. | string | comp:/$defs/Component/properties/constituent |
|
$ref MassFraction | comp:/$defs/Component/properties/amount |
| |
type | array, default ["QuantityValue"] | @type | - |
value * | number | qudt:value | |
unit | string, format iri-reference | qudt:has unit |
|
standard_uncertaintyStandard uncertainty, expressed in the unit of value (GUM convention) | number | qudt:standard uncertainty |
|
relative_standard_uncertaintyDimensionless ratio, not percent; ratio-scale quantities only, undefined at value 0; redundant with standard_uncertainty (u = r * |v|), give only one | number | qudt:relative standard uncertainty | - |
type | default ["MassFraction"] | @type | - |
unit | enum, default "percent" | qudt:has unit |
|
"percent" | value alias | qunit:Percent |
|
"part_per_million" | value alias | qunit:Parts per Million |
|
type | array, default ["MaterialComponent"] | @type | - |
constituentIRI of the material this component is made of | string, format iri-reference | matcomp:/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.