Skip to content

Class: PropertyAssertion

A structured record of data that doesn't fit nicely within the constraints of other NMDC AttributeValues. Uses primitive ranges only.

URI: nmdc:PropertyAssertion

classDiagram class PropertyAssertion click PropertyAssertion href "../PropertyAssertion" AttributeValue <|-- PropertyAssertion click AttributeValue href "../AttributeValue" PropertyAssertion : has_attribute_id PropertyAssertion : has_attribute_label PropertyAssertion : has_boolean_value PropertyAssertion : has_datetime_value PropertyAssertion : has_maximum_numeric_value PropertyAssertion : has_minimum_numeric_value PropertyAssertion : has_numeric_value PropertyAssertion : has_quantity_kind_id PropertyAssertion : has_raw_value PropertyAssertion : has_unit PropertyAssertion : has_value_term_id PropertyAssertion : type

Inheritance

Slots

Name Cardinality and Range Description Inheritance
has_attribute_label 0..1
String
Human-readable label for the property (e direct
has_attribute_id 0..1
Uriorcurie
CURIE or IRI for the property (MIxS slot, NMDC slot, ENVO/OBI term, etc direct
has_quantity_kind_id 0..1
Uriorcurie
Optional CURIE or IRI for the physical quantity kind (e direct
has_value_term_id 0..1
Uriorcurie
CURIE or IRI for categorical values (ENVO, PATO, METPO, etc direct
has_boolean_value 0..1
Boolean
Links a quantity value to a boolean direct
has_datetime_value 0..1
String
Date-time value for the property in ISO-8601 format direct
has_numeric_value 0..1
Decimal
Links a quantity value to a number direct
has_minimum_numeric_value 0..1
Decimal
The minimum value part, expressed as number, of the quantity value when the v... direct
has_maximum_numeric_value 0..1
Decimal
The maximum value part, expressed as number, of the quantity value when the v... direct
has_unit 0..1
String
UCUM unit code (required only when numeric value is present) direct
has_raw_value 1
String
Original contributor string representation (unparsed) AttributeValue
type 1
Uriorcurie
the class_uri of the class that has been instantiated AttributeValue

Usages

used by used in type used
Biosample misc_param range PropertyAssertion

Examples

Value
None
None
None

Comments

  • This class enables flexible metadata capture for properties that don't align with existing, policy-governed slots in NMDC schema.
  • Interoperability note: This approach is aligned with the BERtron schema's 'properties' slot pattern (see https://github.com/ber-data/bertron-schema), which uses any_of to support both TextValue and QuantityValue ranges. NMDC's PropertyAssertion provides a more granular approach by using primitive types with optional semantic annotations, enabling better validation while maintaining flexibility for diverse metadata types.
  • PropertyAssertion supports both categorical values (via has_value_term_id) and numeric values (via has_numeric_value with optional min/max ranges), along with temporal (has_datetime_value) and boolean (has_boolean_value) data types.

Identifier and Mapping Information

Schema Source

Mappings

Mapping Type Mapped Value

LinkML Source

Direct

name: PropertyAssertion
description: A structured record of data that doesn't fit nicely within the constraints
  of other NMDC AttributeValues. Uses primitive ranges only.
comments:
- This class enables flexible metadata capture for properties that don't align with
  existing, policy-governed slots in NMDC schema.
- 'Interoperability note: This approach is aligned with the BERtron schema''s ''properties''
  slot pattern (see https://github.com/ber-data/bertron-schema), which uses any_of
  to support both TextValue and QuantityValue ranges. NMDC''s PropertyAssertion provides
  a more granular approach by using primitive types with optional semantic annotations,
  enabling better validation while maintaining flexibility for diverse metadata types.'
- PropertyAssertion supports both categorical values (via has_value_term_id) and numeric
  values (via has_numeric_value with optional min/max ranges), along with temporal
  (has_datetime_value) and boolean (has_boolean_value) data types.
examples:
- description: Data provided from submission that doesn't conform to required abs_air_humidity
    units
  object:
    type: nmdc:PropertyAssertion
    has_raw_value: 50 kPa
    has_attribute_id: MIXS:0000122
    has_attribute_label: absolute air humidity
    has_numeric_value: 50
    has_unit: kPa
- description: Data provided from submission that doesn't conform to required UCUM
    unit
  object:
    type: nmdc:PropertyAssertion
    has_raw_value: 5.5 mL/L
    has_attribute_id: MIXS:0000119
    has_attribute_label: dissolved oxygen
    has_numeric_value: 5.5
    has_unit: mL/L
- description: Unit provided is invalid for UCUM and standard
  object:
    type: nmdc:PropertyAssertion
    has_raw_value: 250 W/m2
    has_attribute_id: MIXS:0000112
    has_attribute_label: solar irradiance
    has_numeric_value: 250
    has_unit: W/m2
from_schema: https://w3id.org/nmdc/nmdc
is_a: AttributeValue
slots:
- has_attribute_label
- has_attribute_id
- has_quantity_kind_id
- has_value_term_id
- has_boolean_value
- has_datetime_value
- has_numeric_value
- has_minimum_numeric_value
- has_maximum_numeric_value
- has_unit
slot_usage:
  has_raw_value:
    name: has_raw_value
    description: Original contributor string representation (unparsed)
    required: true
  has_unit:
    name: has_unit
    description: UCUM unit code (required only when numeric value is present)
    required: false
class_uri: nmdc:PropertyAssertion

Induced

name: PropertyAssertion
description: A structured record of data that doesn't fit nicely within the constraints
  of other NMDC AttributeValues. Uses primitive ranges only.
comments:
- This class enables flexible metadata capture for properties that don't align with
  existing, policy-governed slots in NMDC schema.
- 'Interoperability note: This approach is aligned with the BERtron schema''s ''properties''
  slot pattern (see https://github.com/ber-data/bertron-schema), which uses any_of
  to support both TextValue and QuantityValue ranges. NMDC''s PropertyAssertion provides
  a more granular approach by using primitive types with optional semantic annotations,
  enabling better validation while maintaining flexibility for diverse metadata types.'
- PropertyAssertion supports both categorical values (via has_value_term_id) and numeric
  values (via has_numeric_value with optional min/max ranges), along with temporal
  (has_datetime_value) and boolean (has_boolean_value) data types.
examples:
- description: Data provided from submission that doesn't conform to required abs_air_humidity
    units
  object:
    type: nmdc:PropertyAssertion
    has_raw_value: 50 kPa
    has_attribute_id: MIXS:0000122
    has_attribute_label: absolute air humidity
    has_numeric_value: 50
    has_unit: kPa
- description: Data provided from submission that doesn't conform to required UCUM
    unit
  object:
    type: nmdc:PropertyAssertion
    has_raw_value: 5.5 mL/L
    has_attribute_id: MIXS:0000119
    has_attribute_label: dissolved oxygen
    has_numeric_value: 5.5
    has_unit: mL/L
- description: Unit provided is invalid for UCUM and standard
  object:
    type: nmdc:PropertyAssertion
    has_raw_value: 250 W/m2
    has_attribute_id: MIXS:0000112
    has_attribute_label: solar irradiance
    has_numeric_value: 250
    has_unit: W/m2
from_schema: https://w3id.org/nmdc/nmdc
is_a: AttributeValue
slot_usage:
  has_raw_value:
    name: has_raw_value
    description: Original contributor string representation (unparsed)
    required: true
  has_unit:
    name: has_unit
    description: UCUM unit code (required only when numeric value is present)
    required: false
attributes:
  has_attribute_label:
    name: has_attribute_label
    description: Human-readable label for the property (e.g., MIxS label, ENVO term
      label).
    comments:
    - This provides a human-friendly name for the asserted property. For example,
      "bicarbonate ion concentration" or "total phosphorus". The label helps with
      readability and data discovery.
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_attribute_label
    owner: PropertyAssertion
    domain_of:
    - PropertyAssertion
    range: string
  has_attribute_id:
    name: has_attribute_id
    description: CURIE or IRI for the property (MIxS slot, NMDC slot, ENVO/OBI term,
      etc.).
    comments:
    - This provides a resolvable identifier for the property being asserted. Examples
      include MIXS:0000117 for total phosphorus, or ENVO:01001357 for bicarbonate
      ion concentration.
    - Prefer using standard ontology terms (ENVO, PATO, OBI, etc.) or MIxS identifiers
      when available to enhance interoperability.
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_attribute_id
    owner: PropertyAssertion
    domain_of:
    - PropertyAssertion
    range: uriorcurie
  has_quantity_kind_id:
    name: has_quantity_kind_id
    description: Optional CURIE or IRI for the physical quantity kind (e.g., qudt:QuantityKind).
    comments:
    - This slot enables precise semantic description of what physical quantity is
      being measured, independent of the specific units used. For example, qudt:MassConcentration
      or qudt:Temperature.
    - Using quantity kind identifiers from QUDT or similar vocabularies improves data
      integration and enables automated unit conversion.
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_quantity_kind_id
    owner: PropertyAssertion
    domain_of:
    - PropertyAssertion
    range: uriorcurie
  has_value_term_id:
    name: has_value_term_id
    description: CURIE or IRI for categorical values (ENVO, PATO, METPO, etc.).
    comments:
    - Use this slot when the value of the property is a controlled vocabulary term
      rather than a numeric or free-text value. For example, ENVO:00002297 for "desert
      ecosystem" or PATO:0001199 for "dry".
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_value_term_id
    owner: PropertyAssertion
    domain_of:
    - PropertyAssertion
    range: uriorcurie
  has_boolean_value:
    name: has_boolean_value
    description: Links a quantity value to a boolean
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_boolean_value
    owner: PropertyAssertion
    domain_of:
    - PropertyAssertion
    range: boolean
  has_datetime_value:
    name: has_datetime_value
    description: Date-time value for the property in ISO-8601 format.
    comments:
    - Use this slot for temporal properties. The value should follow ISO-8601 format
      (e.g., "2025-06-12T14:30:00Z").
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_datetime_value
    owner: PropertyAssertion
    domain_of:
    - PropertyAssertion
    range: string
  has_numeric_value:
    name: has_numeric_value
    description: Links a quantity value to a number
    from_schema: https://w3id.org/nmdc/nmdc
    mappings:
    - qud:quantityValue
    - schema:value
    rank: 1000
    alias: has_numeric_value
    owner: PropertyAssertion
    domain_of:
    - QuantityValue
    - PropertyAssertion
    range: decimal
  has_minimum_numeric_value:
    name: has_minimum_numeric_value
    description: The minimum value part, expressed as number, of the quantity value
      when the value covers a range.
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    is_a: has_numeric_value
    alias: has_minimum_numeric_value
    owner: PropertyAssertion
    domain_of:
    - QuantityValue
    - PropertyAssertion
    range: decimal
  has_maximum_numeric_value:
    name: has_maximum_numeric_value
    description: The maximum value part, expressed as number, of the quantity value
      when the value covers a range.
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    is_a: has_numeric_value
    alias: has_maximum_numeric_value
    owner: PropertyAssertion
    domain_of:
    - QuantityValue
    - PropertyAssertion
    range: decimal
  has_unit:
    name: has_unit
    description: UCUM unit code (required only when numeric value is present)
    from_schema: https://w3id.org/nmdc/nmdc
    aliases:
    - scale
    mappings:
    - qud:unit
    - schema:unitCode
    rank: 1000
    alias: has_unit
    owner: PropertyAssertion
    domain_of:
    - QuantityValue
    - PropertyAssertion
    range: string
    required: false
  has_raw_value:
    name: has_raw_value
    description: Original contributor string representation (unparsed)
    from_schema: https://w3id.org/nmdc/nmdc
    rank: 1000
    alias: has_raw_value
    owner: PropertyAssertion
    domain_of:
    - AttributeValue
    range: string
    required: true
  type:
    name: type
    description: the class_uri of the class that has been instantiated
    notes:
    - makes it easier to read example data files
    - required for polymorphic MongoDB collections
    examples:
    - value: nmdc:Biosample
    - value: nmdc:Study
    from_schema: https://w3id.org/nmdc/nmdc
    see_also:
    - https://github.com/microbiomedata/nmdc-schema/issues/1048
    - https://github.com/microbiomedata/nmdc-schema/issues/1233
    - https://github.com/microbiomedata/nmdc-schema/issues/248
    structured_aliases:
      workflow_execution_class:
        literal_form: workflow_execution_class
        predicate: NARROW_SYNONYM
        contexts:
        - https://bitbucket.org/berkeleylab/jgi-jat/macros/nmdc_metadata.yaml
    rank: 1000
    slot_uri: rdf:type
    designates_type: true
    alias: type
    owner: PropertyAssertion
    domain_of:
    - EukEval
    - FunctionalAnnotationAggMember
    - PeptideQuantification
    - ProteinQuantification
    - MobilePhaseSegment
    - PortionOfSubstance
    - MagBin
    - MetaboliteIdentification
    - GenomeFeature
    - FunctionalAnnotation
    - AttributeValue
    - NamedThing
    - OntologyRelation
    - FailureCategorization
    - Protocol
    - CreditAssociation
    - Doi
    range: uriorcurie
    required: true
class_uri: nmdc:PropertyAssertion