Class: PropertyAssertion
A structured record of data that doesn't fit nicely within the constraints of other NMDC AttributeValues. Uses primitive ranges only.
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
- AttributeValue
- PropertyAssertion
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
- from schema: https://w3id.org/nmdc/nmdc
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