Skip to content

QuantityValue

A number with a unit, optionally with its standard uncertainty. It is the base schema every other quantity in this module extends.

TermConstraintsConsensus mappingAlternative mappings
typearray, default ["QuantityValue"]@type-
"QuantityValue"type aliasqudt:Quantity value
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-

* marks a required property.

{
  "$schema": "https://oo-ld.org/latest/meta/oold-meta-schema.json",
  "$id": "QuantityValue.schema.json",
  "x-oold-uuid": "0d241e1a-9bf9-5441-81ff-5313948143c0",
  "x-oold-version": "0.1.0",
  "title": "QuantityValue",
  "examples": [
    {
      "type": [
        "QuantityValue"
      ],
      "value": 12.7,
      "unit": "http://qudt.org/vocab/unit/SEC",
      "standard_uncertainty": 0.05
    }
  ],
  "type": "object",
  "properties": {
    "type": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "QuantityValue"
      ]
    },
    "value": {
      "type": "number"
    },
    "unit": {
      "type": "string",
      "format": "iri-reference"
    },
    "standard_uncertainty": {
      "type": "number",
      "description": "Standard uncertainty, expressed in the unit of value (GUM convention)"
    },
    "relative_standard_uncertainty": {
      "type": "number",
      "description": "Dimensionless ratio, not percent; ratio-scale quantities only, undefined at value 0; redundant with standard_uncertainty (u = r * |v|), give only one"
    }
  },
  "required": [
    "value"
  ],
  "@context": {
    "@version": 1.1,
    "qudt": "http://qudt.org/schema/qudt/",
    "qunit": "http://qudt.org/vocab/unit/",
    "schema": "http://schema.org/",
    "obo": "http://purl.obolibrary.org/obo/",
    "emmo": "https://w3id.org/emmo#",
    "type": {
      "@id": "@type",
      "@container": "@set"
    },
    "QuantityValue": "qudt:QuantityValue",
    "value": "qudt:value",
    "unit": {
      "@id": "qudt:hasUnit",
      "@type": "@vocab"
    },
    "standard_uncertainty": "qudt:standardUncertainty",
    "relative_standard_uncertainty": "qudt:relativeStandardUncertainty"
  },
  "x-oold-context": {
    "value": {
      "schema:value": {
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/schemaorg.sssom.tsv"
        }
      },
      "obo:OBI_0001937": {
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv"
        }
      }
    },
    "unit": {
      "schema:unitCode": {
        "@type": "@vocab",
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/schemaorg.sssom.tsv",
          "comment": "URL branch of schema:unitCode, carrying the QUDT unit IRI"
        }
      },
      "obo:IAO_0000039": {
        "@type": "@vocab",
        "x-oold-sssom": {
          "predicate_id": "skos:closeMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv",
          "comment": "range is iao:measurement unit label; unit-label vs QUDT-IRI mapping needed"
        }
      },
      "emmo:EMMO_eeb06032_dd4f_476e_9da6_aa24302b7588": {
        "@type": "@vocab",
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv",
          "object_source": "https://w3id.org/emmo",
          "object_source_version": "https://w3id.org/emmo/1.0.4",
          "comment": "hasReferencePart; pinned 1.0.4 branch snapshot (units are individuals there)"
        }
      }
    },
    "standard_uncertainty": {
      "emmo:EMMO_bba7f0f0_3707_42b9_b3fa_fd04610ef147": {
        "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": "standardUncertainty (VIM4 3.6); 1.0.4 branch only"
        }
      }
    },
    "QuantityValue": {
      "schema:QuantitativeValue": {
        "x-oold-sssom": {
          "predicate_id": "skos:closeMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/schemaorg.sssom.tsv",
          "comment": "broader: also covers intervals/ranges"
        }
      },
      "obo:OBI_0001931": {
        "x-oold-sssom": {
          "predicate_id": "skos:exactMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv"
        }
      },
      "emmo:EMMO_f658c301_ce93_46cf_9639_4eace2c5d1d5": {
        "x-oold-sssom": {
          "predicate_id": "skos:closeMatch",
          "mapping_set_id": "https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv",
          "comment": "EMMO QuantityValue requires a nested numerical part (EMMO#376)"
        }
      }
    }
  }
}
$schema: https://oo-ld.org/latest/meta/oold-meta-schema.json
$id: QuantityValue.schema.json
x-oold-uuid: 0d241e1a-9bf9-5441-81ff-5313948143c0
x-oold-version: 0.1.0
title: QuantityValue
examples:
- type:
  - QuantityValue
  value: 12.7
  unit: http://qudt.org/vocab/unit/SEC
  standard_uncertainty: 0.05
type: object
properties:
  type:
    type: array
    items:
      type: string
    default:
    - QuantityValue
  value:
    type: number
  unit:
    type: string
    format: iri-reference
  standard_uncertainty:
    type: number
    description: Standard uncertainty, expressed in the unit of value (GUM convention)
  relative_standard_uncertainty:
    type: number
    description: Dimensionless ratio, not percent; ratio-scale quantities only, undefined at value 0;
      redundant with standard_uncertainty (u = r * |v|), give only one
required:
- value
'@context':
  '@version': 1.1
  qudt: http://qudt.org/schema/qudt/
  qunit: http://qudt.org/vocab/unit/
  schema: http://schema.org/
  obo: http://purl.obolibrary.org/obo/
  emmo: https://w3id.org/emmo#
  type:
    '@id': '@type'
    '@container': '@set'
  QuantityValue: qudt:QuantityValue
  value: qudt:value
  unit:
    '@id': qudt:hasUnit
    '@type': '@vocab'
  standard_uncertainty: qudt:standardUncertainty
  relative_standard_uncertainty: qudt:relativeStandardUncertainty
x-oold-context:
  value:
    schema:value:
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/schemaorg.sssom.tsv
    obo:OBI_0001937:
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv
  unit:
    schema:unitCode:
      '@type': '@vocab'
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/schemaorg.sssom.tsv
        comment: URL branch of schema:unitCode, carrying the QUDT unit IRI
    obo:IAO_0000039:
      '@type': '@vocab'
      x-oold-sssom:
        predicate_id: skos:closeMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv
        comment: range is iao:measurement unit label; unit-label vs QUDT-IRI mapping needed
    emmo:EMMO_eeb06032_dd4f_476e_9da6_aa24302b7588:
      '@type': '@vocab'
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv
        object_source: https://w3id.org/emmo
        object_source_version: https://w3id.org/emmo/1.0.4
        comment: hasReferencePart; pinned 1.0.4 branch snapshot (units are individuals there)
  standard_uncertainty:
    emmo:EMMO_bba7f0f0_3707_42b9_b3fa_fd04610ef147:
      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: standardUncertainty (VIM4 3.6); 1.0.4 branch only
  QuantityValue:
    schema:QuantitativeValue:
      x-oold-sssom:
        predicate_id: skos:closeMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/schemaorg.sssom.tsv
        comment: 'broader: also covers intervals/ranges'
    obo:OBI_0001931:
      x-oold-sssom:
        predicate_id: skos:exactMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/pmdco.sssom.tsv
    emmo:EMMO_f658c301_ce93_46cf_9639_4eace2c5d1d5:
      x-oold-sssom:
        predicate_id: skos:closeMatch
        mapping_set_id: https://w3id.org/oo-ld/schemas/mappings/emmo.sssom.tsv
        comment: EMMO QuantityValue requires a nested numerical part (EMMO#376)
{
  "$schema": "https://w3id.org/oo-ld/schemas/quantities/0.1/QuantityValue.schema.json",
  "@context": "https://w3id.org/oo-ld/schemas/quantities/0.1/QuantityValue.schema.json",
  "@id": "https://example.org/instance",
  "type": [
    "QuantityValue"
  ],
  "value": 12.7,
  "unit": "http://qudt.org/vocab/unit/SEC",
  "standard_uncertainty": 0.05
}

@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix qunit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://example.org/instance> a qudt:QuantityValue ;
    qudt:hasUnit qunit:SEC ;
    qudt:standardUncertainty 5e-02 ;
    qudt:value 1.27e+01 .
@prefix emmo: <https://w3id.org/emmo#> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix qunit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://example.org/instance> a emmo:EMMO_f658c301_ce93_46cf_9639_4eace2c5d1d5 ;
    qudt:value 1.27e+01 ;
    emmo:EMMO_bba7f0f0_3707_42b9_b3fa_fd04610ef147 5e-02 ;
    emmo:EMMO_eeb06032_dd4f_476e_9da6_aa24302b7588 qunit:SEC .
@prefix obo: <http://purl.obolibrary.org/obo/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix qunit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://example.org/instance> a obo:OBI_0001931 ;
    obo:IAO_0000039 qunit:SEC ;
    obo:OBI_0001937 1.27e+01 ;
    qudt:standardUncertainty 5e-02 .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix qunit: <http://qudt.org/vocab/unit/> .
@prefix schema1: <http://schema.org/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://example.org/instance> a schema1:QuantitativeValue ;
    qudt:standardUncertainty 5e-02 ;
    schema1:unitCode qunit:SEC ;
    schema1:value 1.27e+01 .

Decisions

Uncertainty is flat, and deliberately incomplete. Only two forms are here: standard_uncertainty, in the unit of the value following the GUM convention, and relative_standard_uncertainty, a dimensionless ratio and not a percentage. These are the only two that released vocabularies actually map. Expanded uncertainty, coverage factor and coverage intervals have no flat target in QUDT, EMMO, PMDco or schema.org, so inventing terms for them here would create mappings that mean nothing to anyone else. They belong in a separate, node-shaped uncertainty record once there is something to map them to.

Numbers are not datatype-coerced. JSON numbers project to xsd:double, which is the only fractional datatype that survives the round-trip back into a native JSON number. Coercing to xsd:decimal looks tidier and quietly breaks re-validation, because the value returns from RDF as a string. QUDT constrains these properties to xsd:decimal on qudt:Quantifiable, but our nodes are not typed as Quantifiable, so no constraint is violated; a QUDT-strict consumer can canonicalize on ingest.

The unit is an IRI, and unit is coerced with @type: @vocab. Modelling the unit as a reference to a unit individual keeps the class-versus-individual question out of the data entirely. The @vocab coercion is what lets a subclass declare its unit individuals as terms and give each one community aliases, which is the next step.

Class alternatives sit on the inline type term rather than in x-oold-instance-rdf-type, because that keyword materializes all declared types on every export. That is right for consensus co-typing and wrong for either/or community alignments, where the point is to pick one.

EMMO has no synonym for value. EMMO models a quantity value as a node with a nested numerical part, and this schema's value is a literal, so no term definition on this schema can produce it: the EMMO reading falls back to qudt:value. The correspondence is not lost, it belongs to the other side. A schema whose value is an object can declare, in its mapping set for QUDT, that qudt:value nests under it, and then reads this schema's data as its own nested shape. See Shapes, not only names and emmo-repo/EMMO#376.

Where the mappings come from

Each synonym records the ontology and the exact version it was checked against. The EMMO mappings target the 1.0.4 development branch rather than the 1.0.3 release, because that is where units became individuals and the VIM4 data properties appeared. The published build at w3id.org/emmo/1.0.4 lags its own branch, so the pin names the commit rather than the version IRI.

References