nmdc-schema 11.12.0rc2__py3-none-any.whl → 11.12.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nmdc_schema/__init__.py +1 -0
- nmdc_schema/migration_recursion.py +2 -0
- nmdc_schema/migrators/cli/run_migrator.py +10 -14
- nmdc_schema/migrators/helpers.py +24 -0
- nmdc_schema/migrators/migrator_from_11_11_0_to_11_12_0.py +35 -0
- nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_12_0/__init__.py +28 -0
- nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_12_0/migrator_from_11_11_0_to_11_12_0_part_1.py +187 -0
- nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_12_0/migrator_from_11_11_0_to_11_12_0_part_2.py +113 -0
- nmdc_schema/nmdc-pydantic.py +194 -12
- nmdc_schema/nmdc.py +149 -7
- nmdc_schema/nmdc.schema.json +148 -4
- nmdc_schema/nmdc_materialized_patterns.json +291 -51
- nmdc_schema/nmdc_materialized_patterns.schema.json +148 -4
- nmdc_schema/nmdc_materialized_patterns.yaml +243 -41
- nmdc_schema/nmdc_schema_validation_plugin.py +103 -0
- {nmdc_schema-11.12.0rc2.dist-info → nmdc_schema-11.12.1.dist-info}/METADATA +1 -1
- {nmdc_schema-11.12.0rc2.dist-info → nmdc_schema-11.12.1.dist-info}/RECORD +20 -15
- {nmdc_schema-11.12.0rc2.dist-info → nmdc_schema-11.12.1.dist-info}/entry_points.txt +0 -1
- {nmdc_schema-11.12.0rc2.dist-info → nmdc_schema-11.12.1.dist-info}/WHEEL +0 -0
- {nmdc_schema-11.12.0rc2.dist-info → nmdc_schema-11.12.1.dist-info}/licenses/LICENSE +0 -0
nmdc_schema/nmdc.schema.json
CHANGED
|
@@ -2647,9 +2647,9 @@
|
|
|
2647
2647
|
]
|
|
2648
2648
|
},
|
|
2649
2649
|
"misc_param": {
|
|
2650
|
-
"description": "
|
|
2650
|
+
"description": "Structured miscellaneous property assertions for this Biosample. Use when a value cannot cleanly fit an existing, policy-governed slot.",
|
|
2651
2651
|
"items": {
|
|
2652
|
-
"$ref": "#/$defs/
|
|
2652
|
+
"$ref": "#/$defs/PropertyAssertion"
|
|
2653
2653
|
},
|
|
2654
2654
|
"type": [
|
|
2655
2655
|
"array",
|
|
@@ -8515,7 +8515,7 @@
|
|
|
8515
8515
|
},
|
|
8516
8516
|
"Instrument": {
|
|
8517
8517
|
"additionalProperties": false,
|
|
8518
|
-
"description": "A material entity that is designed to perform a function in a scientific investigation, but is not a reagent.",
|
|
8518
|
+
"description": "A material entity that is designed to perform a function in a scientific investigation, but is not a reagent. This class models the make and model of the instrument, not the specific instance of the instrument.",
|
|
8519
8519
|
"properties": {
|
|
8520
8520
|
"alternative_identifiers": {
|
|
8521
8521
|
"description": "A list of alternative identifiers for the entity.",
|
|
@@ -13128,10 +13128,113 @@
|
|
|
13128
13128
|
"title": "ProfilePositionEnum",
|
|
13129
13129
|
"type": "string"
|
|
13130
13130
|
},
|
|
13131
|
+
"PropertyAssertion": {
|
|
13132
|
+
"additionalProperties": false,
|
|
13133
|
+
"description": "A structured record of data that doesn't fit nicely within the constraints of other NMDC AttributeValues. Uses primitive ranges only.",
|
|
13134
|
+
"properties": {
|
|
13135
|
+
"has_attribute_id": {
|
|
13136
|
+
"description": "CURIE or IRI for the property (MIxS slot, NMDC slot, ENVO/OBI term, etc.).",
|
|
13137
|
+
"type": [
|
|
13138
|
+
"string",
|
|
13139
|
+
"null"
|
|
13140
|
+
]
|
|
13141
|
+
},
|
|
13142
|
+
"has_attribute_label": {
|
|
13143
|
+
"description": "Human-readable label for the property (e.g., MIxS label, ENVO term label).",
|
|
13144
|
+
"type": [
|
|
13145
|
+
"string",
|
|
13146
|
+
"null"
|
|
13147
|
+
]
|
|
13148
|
+
},
|
|
13149
|
+
"has_boolean_value": {
|
|
13150
|
+
"description": "Links a quantity value to a boolean",
|
|
13151
|
+
"type": [
|
|
13152
|
+
"boolean",
|
|
13153
|
+
"null"
|
|
13154
|
+
]
|
|
13155
|
+
},
|
|
13156
|
+
"has_datetime_value": {
|
|
13157
|
+
"description": "Date-time value for the property in ISO-8601 format.",
|
|
13158
|
+
"type": [
|
|
13159
|
+
"string",
|
|
13160
|
+
"null"
|
|
13161
|
+
]
|
|
13162
|
+
},
|
|
13163
|
+
"has_maximum_numeric_value": {
|
|
13164
|
+
"description": "The maximum value part, expressed as number, of the quantity value when the value covers a range.",
|
|
13165
|
+
"type": [
|
|
13166
|
+
"number",
|
|
13167
|
+
"null"
|
|
13168
|
+
]
|
|
13169
|
+
},
|
|
13170
|
+
"has_minimum_numeric_value": {
|
|
13171
|
+
"description": "The minimum value part, expressed as number, of the quantity value when the value covers a range.",
|
|
13172
|
+
"type": [
|
|
13173
|
+
"number",
|
|
13174
|
+
"null"
|
|
13175
|
+
]
|
|
13176
|
+
},
|
|
13177
|
+
"has_numeric_value": {
|
|
13178
|
+
"description": "Links a quantity value to a number",
|
|
13179
|
+
"type": [
|
|
13180
|
+
"number",
|
|
13181
|
+
"null"
|
|
13182
|
+
]
|
|
13183
|
+
},
|
|
13184
|
+
"has_quantity_kind_id": {
|
|
13185
|
+
"description": "Optional CURIE or IRI for the physical quantity kind (e.g., qudt:QuantityKind).",
|
|
13186
|
+
"type": [
|
|
13187
|
+
"string",
|
|
13188
|
+
"null"
|
|
13189
|
+
]
|
|
13190
|
+
},
|
|
13191
|
+
"has_raw_value": {
|
|
13192
|
+
"description": "Original contributor string representation (unparsed)",
|
|
13193
|
+
"type": "string"
|
|
13194
|
+
},
|
|
13195
|
+
"has_unit": {
|
|
13196
|
+
"description": "UCUM unit code (required only when numeric value is present)",
|
|
13197
|
+
"type": [
|
|
13198
|
+
"string",
|
|
13199
|
+
"null"
|
|
13200
|
+
]
|
|
13201
|
+
},
|
|
13202
|
+
"has_value_term_id": {
|
|
13203
|
+
"description": "CURIE or IRI for categorical values (ENVO, PATO, METPO, etc.).",
|
|
13204
|
+
"type": [
|
|
13205
|
+
"string",
|
|
13206
|
+
"null"
|
|
13207
|
+
]
|
|
13208
|
+
},
|
|
13209
|
+
"type": {
|
|
13210
|
+
"description": "the class_uri of the class that has been instantiated",
|
|
13211
|
+
"enum": [
|
|
13212
|
+
"nmdc:PropertyAssertion"
|
|
13213
|
+
],
|
|
13214
|
+
"type": "string"
|
|
13215
|
+
}
|
|
13216
|
+
},
|
|
13217
|
+
"required": [
|
|
13218
|
+
"has_raw_value",
|
|
13219
|
+
"type"
|
|
13220
|
+
],
|
|
13221
|
+
"title": "PropertyAssertion",
|
|
13222
|
+
"type": "object"
|
|
13223
|
+
},
|
|
13131
13224
|
"Protocol": {
|
|
13132
13225
|
"additionalProperties": false,
|
|
13133
13226
|
"description": "",
|
|
13134
13227
|
"properties": {
|
|
13228
|
+
"analysis_type": {
|
|
13229
|
+
"description": "Select all the data types associated or available for this biosample",
|
|
13230
|
+
"items": {
|
|
13231
|
+
"$ref": "#/$defs/AnalysisTypeEnum"
|
|
13232
|
+
},
|
|
13233
|
+
"type": [
|
|
13234
|
+
"array",
|
|
13235
|
+
"null"
|
|
13236
|
+
]
|
|
13237
|
+
},
|
|
13135
13238
|
"description": {
|
|
13136
13239
|
"description": "a human-readable description of a thing",
|
|
13137
13240
|
"type": [
|
|
@@ -13146,6 +13249,10 @@
|
|
|
13146
13249
|
"null"
|
|
13147
13250
|
]
|
|
13148
13251
|
},
|
|
13252
|
+
"protocol_for": {
|
|
13253
|
+
"$ref": "#/$defs/ProtocolForEnum",
|
|
13254
|
+
"description": "The type of planned process that the protocol describes."
|
|
13255
|
+
},
|
|
13149
13256
|
"type": {
|
|
13150
13257
|
"description": "the class_uri of the class that has been instantiated",
|
|
13151
13258
|
"enum": [
|
|
@@ -13184,6 +13291,43 @@
|
|
|
13184
13291
|
"title": "ProtocolCategoryEnum",
|
|
13185
13292
|
"type": "string"
|
|
13186
13293
|
},
|
|
13294
|
+
"ProtocolForEnum": {
|
|
13295
|
+
"description": "The permitted values for describing the type of planned process that a protocol describes.",
|
|
13296
|
+
"enum": [
|
|
13297
|
+
"AnnotatingWorkflow",
|
|
13298
|
+
"ChemicalConversionProcess",
|
|
13299
|
+
"ChromatographicSeparationProcess",
|
|
13300
|
+
"CollectingBiosamplesFromSite",
|
|
13301
|
+
"DataEmitterProcess",
|
|
13302
|
+
"DataGeneration",
|
|
13303
|
+
"DissolvingProcess",
|
|
13304
|
+
"Extraction",
|
|
13305
|
+
"FiltrationProcess",
|
|
13306
|
+
"LibraryPreparation",
|
|
13307
|
+
"MagsAnalysis",
|
|
13308
|
+
"MassSpectrometry",
|
|
13309
|
+
"MaterialProcessing",
|
|
13310
|
+
"MetabolomicsAnalysis",
|
|
13311
|
+
"MetagenomeAnnotation",
|
|
13312
|
+
"MetagenomeAssembly",
|
|
13313
|
+
"MetaproteomicsAnalysis",
|
|
13314
|
+
"MetatranscriptomeAnnotation",
|
|
13315
|
+
"MetatranscriptomeAssembly",
|
|
13316
|
+
"MetatranscriptomeExpressionAnalysis",
|
|
13317
|
+
"MixingProcess",
|
|
13318
|
+
"NomAnalysis",
|
|
13319
|
+
"NucleotideSequencing",
|
|
13320
|
+
"PlannedProcess",
|
|
13321
|
+
"Pooling",
|
|
13322
|
+
"ReadBasedTaxonomyAnalysis",
|
|
13323
|
+
"ReadQcAnalysis",
|
|
13324
|
+
"StorageProcess",
|
|
13325
|
+
"SubSamplingProcess",
|
|
13326
|
+
"WorkflowExecution"
|
|
13327
|
+
],
|
|
13328
|
+
"title": "ProtocolForEnum",
|
|
13329
|
+
"type": "string"
|
|
13330
|
+
},
|
|
13187
13331
|
"QuadPosEnum": {
|
|
13188
13332
|
"description": "",
|
|
13189
13333
|
"enum": [
|
|
@@ -15579,5 +15723,5 @@
|
|
|
15579
15723
|
},
|
|
15580
15724
|
"title": "NMDC",
|
|
15581
15725
|
"type": "object",
|
|
15582
|
-
"version": "11.12.
|
|
15726
|
+
"version": "11.12.1"
|
|
15583
15727
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"not importing any MIxS terms where the relationship between the name (SCN) and the id isn't 1:1"
|
|
7
7
|
],
|
|
8
8
|
"id": "https://w3id.org/nmdc/nmdc",
|
|
9
|
-
"version": "11.12.
|
|
9
|
+
"version": "11.12.1",
|
|
10
10
|
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
|
|
11
11
|
"prefixes": {
|
|
12
12
|
"BFO": {
|
|
@@ -417,47 +417,6 @@
|
|
|
417
417
|
"default_prefix": "nmdc",
|
|
418
418
|
"default_range": "string",
|
|
419
419
|
"types": {
|
|
420
|
-
"external_identifier": {
|
|
421
|
-
"name": "external_identifier",
|
|
422
|
-
"description": "A CURIE representing an external identifier",
|
|
423
|
-
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
424
|
-
"see_also": [
|
|
425
|
-
"https://microbiomedata.github.io/nmdc-schema/identifiers/"
|
|
426
|
-
],
|
|
427
|
-
"typeof": "uriorcurie",
|
|
428
|
-
"uri": "xsd:anyURI",
|
|
429
|
-
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\.]+:[a-zA-Z0-9_][a-zA-Z0-9_\\-\\/\\.,]*$"
|
|
430
|
-
},
|
|
431
|
-
"bytes": {
|
|
432
|
-
"name": "bytes",
|
|
433
|
-
"description": "An integer value that corresponds to a size in bytes",
|
|
434
|
-
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
435
|
-
"see_also": [
|
|
436
|
-
"UO:0000233"
|
|
437
|
-
],
|
|
438
|
-
"base": "int",
|
|
439
|
-
"uri": "xsd:long"
|
|
440
|
-
},
|
|
441
|
-
"decimal_degree": {
|
|
442
|
-
"name": "decimal_degree",
|
|
443
|
-
"description": "A decimal degree expresses latitude or longitude as decimal fractions.",
|
|
444
|
-
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
445
|
-
"see_also": [
|
|
446
|
-
"https://en.wikipedia.org/wiki/Decimal_degrees"
|
|
447
|
-
],
|
|
448
|
-
"base": "float",
|
|
449
|
-
"uri": "xsd:decimal"
|
|
450
|
-
},
|
|
451
|
-
"language_code": {
|
|
452
|
-
"name": "language_code",
|
|
453
|
-
"description": "A language code conforming to ISO_639-1",
|
|
454
|
-
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
455
|
-
"see_also": [
|
|
456
|
-
"https://en.wikipedia.org/wiki/ISO_639-1"
|
|
457
|
-
],
|
|
458
|
-
"base": "str",
|
|
459
|
-
"uri": "xsd:language"
|
|
460
|
-
},
|
|
461
420
|
"string": {
|
|
462
421
|
"name": "string",
|
|
463
422
|
"description": "A character string",
|
|
@@ -708,6 +667,47 @@
|
|
|
708
667
|
"base": "str",
|
|
709
668
|
"uri": "xsd:string",
|
|
710
669
|
"repr": "str"
|
|
670
|
+
},
|
|
671
|
+
"external_identifier": {
|
|
672
|
+
"name": "external_identifier",
|
|
673
|
+
"description": "A CURIE representing an external identifier",
|
|
674
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
675
|
+
"see_also": [
|
|
676
|
+
"https://microbiomedata.github.io/nmdc-schema/identifiers/"
|
|
677
|
+
],
|
|
678
|
+
"typeof": "uriorcurie",
|
|
679
|
+
"uri": "xsd:anyURI",
|
|
680
|
+
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\.]+:[a-zA-Z0-9_][a-zA-Z0-9_\\-\\/\\.,]*$"
|
|
681
|
+
},
|
|
682
|
+
"bytes": {
|
|
683
|
+
"name": "bytes",
|
|
684
|
+
"description": "An integer value that corresponds to a size in bytes",
|
|
685
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
686
|
+
"see_also": [
|
|
687
|
+
"UO:0000233"
|
|
688
|
+
],
|
|
689
|
+
"base": "int",
|
|
690
|
+
"uri": "xsd:long"
|
|
691
|
+
},
|
|
692
|
+
"decimal_degree": {
|
|
693
|
+
"name": "decimal_degree",
|
|
694
|
+
"description": "A decimal degree expresses latitude or longitude as decimal fractions.",
|
|
695
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
696
|
+
"see_also": [
|
|
697
|
+
"https://en.wikipedia.org/wiki/Decimal_degrees"
|
|
698
|
+
],
|
|
699
|
+
"base": "float",
|
|
700
|
+
"uri": "xsd:decimal"
|
|
701
|
+
},
|
|
702
|
+
"language_code": {
|
|
703
|
+
"name": "language_code",
|
|
704
|
+
"description": "A language code conforming to ISO_639-1",
|
|
705
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
706
|
+
"see_also": [
|
|
707
|
+
"https://en.wikipedia.org/wiki/ISO_639-1"
|
|
708
|
+
],
|
|
709
|
+
"base": "str",
|
|
710
|
+
"uri": "xsd:language"
|
|
711
711
|
}
|
|
712
712
|
},
|
|
713
713
|
"enums": {
|
|
@@ -7502,6 +7502,106 @@
|
|
|
7502
7502
|
}
|
|
7503
7503
|
}
|
|
7504
7504
|
},
|
|
7505
|
+
"ProtocolForEnum": {
|
|
7506
|
+
"name": "ProtocolForEnum",
|
|
7507
|
+
"description": "The permitted values for describing the type of planned process that a protocol describes.",
|
|
7508
|
+
"comments": [
|
|
7509
|
+
"These are the non-abstract class descendants of PlannedProcess."
|
|
7510
|
+
],
|
|
7511
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
7512
|
+
"permissible_values": {
|
|
7513
|
+
"AnnotatingWorkflow": {
|
|
7514
|
+
"text": "AnnotatingWorkflow"
|
|
7515
|
+
},
|
|
7516
|
+
"ChemicalConversionProcess": {
|
|
7517
|
+
"text": "ChemicalConversionProcess"
|
|
7518
|
+
},
|
|
7519
|
+
"ChromatographicSeparationProcess": {
|
|
7520
|
+
"text": "ChromatographicSeparationProcess"
|
|
7521
|
+
},
|
|
7522
|
+
"CollectingBiosamplesFromSite": {
|
|
7523
|
+
"text": "CollectingBiosamplesFromSite"
|
|
7524
|
+
},
|
|
7525
|
+
"DataEmitterProcess": {
|
|
7526
|
+
"text": "DataEmitterProcess"
|
|
7527
|
+
},
|
|
7528
|
+
"DataGeneration": {
|
|
7529
|
+
"text": "DataGeneration"
|
|
7530
|
+
},
|
|
7531
|
+
"DissolvingProcess": {
|
|
7532
|
+
"text": "DissolvingProcess"
|
|
7533
|
+
},
|
|
7534
|
+
"Extraction": {
|
|
7535
|
+
"text": "Extraction"
|
|
7536
|
+
},
|
|
7537
|
+
"FiltrationProcess": {
|
|
7538
|
+
"text": "FiltrationProcess"
|
|
7539
|
+
},
|
|
7540
|
+
"LibraryPreparation": {
|
|
7541
|
+
"text": "LibraryPreparation"
|
|
7542
|
+
},
|
|
7543
|
+
"MagsAnalysis": {
|
|
7544
|
+
"text": "MagsAnalysis"
|
|
7545
|
+
},
|
|
7546
|
+
"MassSpectrometry": {
|
|
7547
|
+
"text": "MassSpectrometry"
|
|
7548
|
+
},
|
|
7549
|
+
"MaterialProcessing": {
|
|
7550
|
+
"text": "MaterialProcessing"
|
|
7551
|
+
},
|
|
7552
|
+
"MetabolomicsAnalysis": {
|
|
7553
|
+
"text": "MetabolomicsAnalysis"
|
|
7554
|
+
},
|
|
7555
|
+
"MetagenomeAnnotation": {
|
|
7556
|
+
"text": "MetagenomeAnnotation"
|
|
7557
|
+
},
|
|
7558
|
+
"MetagenomeAssembly": {
|
|
7559
|
+
"text": "MetagenomeAssembly"
|
|
7560
|
+
},
|
|
7561
|
+
"MetaproteomicsAnalysis": {
|
|
7562
|
+
"text": "MetaproteomicsAnalysis"
|
|
7563
|
+
},
|
|
7564
|
+
"MetatranscriptomeAnnotation": {
|
|
7565
|
+
"text": "MetatranscriptomeAnnotation"
|
|
7566
|
+
},
|
|
7567
|
+
"MetatranscriptomeAssembly": {
|
|
7568
|
+
"text": "MetatranscriptomeAssembly"
|
|
7569
|
+
},
|
|
7570
|
+
"MetatranscriptomeExpressionAnalysis": {
|
|
7571
|
+
"text": "MetatranscriptomeExpressionAnalysis"
|
|
7572
|
+
},
|
|
7573
|
+
"MixingProcess": {
|
|
7574
|
+
"text": "MixingProcess"
|
|
7575
|
+
},
|
|
7576
|
+
"NomAnalysis": {
|
|
7577
|
+
"text": "NomAnalysis"
|
|
7578
|
+
},
|
|
7579
|
+
"NucleotideSequencing": {
|
|
7580
|
+
"text": "NucleotideSequencing"
|
|
7581
|
+
},
|
|
7582
|
+
"PlannedProcess": {
|
|
7583
|
+
"text": "PlannedProcess"
|
|
7584
|
+
},
|
|
7585
|
+
"Pooling": {
|
|
7586
|
+
"text": "Pooling"
|
|
7587
|
+
},
|
|
7588
|
+
"ReadBasedTaxonomyAnalysis": {
|
|
7589
|
+
"text": "ReadBasedTaxonomyAnalysis"
|
|
7590
|
+
},
|
|
7591
|
+
"ReadQcAnalysis": {
|
|
7592
|
+
"text": "ReadQcAnalysis"
|
|
7593
|
+
},
|
|
7594
|
+
"StorageProcess": {
|
|
7595
|
+
"text": "StorageProcess"
|
|
7596
|
+
},
|
|
7597
|
+
"SubSamplingProcess": {
|
|
7598
|
+
"text": "SubSamplingProcess"
|
|
7599
|
+
},
|
|
7600
|
+
"WorkflowExecution": {
|
|
7601
|
+
"text": "WorkflowExecution"
|
|
7602
|
+
}
|
|
7603
|
+
}
|
|
7604
|
+
},
|
|
7505
7605
|
"SampleTypeEnum": {
|
|
7506
7606
|
"name": "SampleTypeEnum",
|
|
7507
7607
|
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
@@ -8747,7 +8847,7 @@
|
|
|
8747
8847
|
"annotations": {
|
|
8748
8848
|
"storage_units": {
|
|
8749
8849
|
"tag": "storage_units",
|
|
8750
|
-
"value": "%|mmol/L|umol/L"
|
|
8850
|
+
"value": "%|mmol/L|umol/L|mg/L|g/L"
|
|
8751
8851
|
}
|
|
8752
8852
|
},
|
|
8753
8853
|
"description": "When solutions A (containing substance X) and B are combined together, this slot captures the concentration of X in the combination",
|
|
@@ -9208,8 +9308,7 @@
|
|
|
9208
9308
|
"qud:unit",
|
|
9209
9309
|
"schema:unitCode"
|
|
9210
9310
|
],
|
|
9211
|
-
"range": "
|
|
9212
|
-
"required": true
|
|
9311
|
+
"range": "string"
|
|
9213
9312
|
},
|
|
9214
9313
|
"type": {
|
|
9215
9314
|
"name": "type",
|
|
@@ -9335,6 +9434,53 @@
|
|
|
9335
9434
|
"multivalued": true,
|
|
9336
9435
|
"pattern": "^[Hh][Tt][Tt][Pp][Ss]?:\\/\\/(?!.*[Dd][Oo][Ii]\\.[Oo][Rr][Gg]).*$"
|
|
9337
9436
|
},
|
|
9437
|
+
"has_attribute_label": {
|
|
9438
|
+
"name": "has_attribute_label",
|
|
9439
|
+
"description": "Human-readable label for the property (e.g., MIxS label, ENVO term label).",
|
|
9440
|
+
"comments": [
|
|
9441
|
+
"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."
|
|
9442
|
+
],
|
|
9443
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
9444
|
+
"range": "string"
|
|
9445
|
+
},
|
|
9446
|
+
"has_attribute_id": {
|
|
9447
|
+
"name": "has_attribute_id",
|
|
9448
|
+
"description": "CURIE or IRI for the property (MIxS slot, NMDC slot, ENVO/OBI term, etc.).",
|
|
9449
|
+
"comments": [
|
|
9450
|
+
"This provides a resolvable identifier for the property being asserted. Examples include MIXS:0000117 for total phosphorus, or ENVO:01001357 for bicarbonate ion concentration.",
|
|
9451
|
+
"Prefer using standard ontology terms (ENVO, PATO, OBI, etc.) or MIxS identifiers when available to enhance interoperability."
|
|
9452
|
+
],
|
|
9453
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
9454
|
+
"range": "uriorcurie"
|
|
9455
|
+
},
|
|
9456
|
+
"has_quantity_kind_id": {
|
|
9457
|
+
"name": "has_quantity_kind_id",
|
|
9458
|
+
"description": "Optional CURIE or IRI for the physical quantity kind (e.g., qudt:QuantityKind).",
|
|
9459
|
+
"comments": [
|
|
9460
|
+
"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.",
|
|
9461
|
+
"Using quantity kind identifiers from QUDT or similar vocabularies improves data integration and enables automated unit conversion."
|
|
9462
|
+
],
|
|
9463
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
9464
|
+
"range": "uriorcurie"
|
|
9465
|
+
},
|
|
9466
|
+
"has_value_term_id": {
|
|
9467
|
+
"name": "has_value_term_id",
|
|
9468
|
+
"description": "CURIE or IRI for categorical values (ENVO, PATO, METPO, etc.).",
|
|
9469
|
+
"comments": [
|
|
9470
|
+
"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\"."
|
|
9471
|
+
],
|
|
9472
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
9473
|
+
"range": "uriorcurie"
|
|
9474
|
+
},
|
|
9475
|
+
"has_datetime_value": {
|
|
9476
|
+
"name": "has_datetime_value",
|
|
9477
|
+
"description": "Date-time value for the property in ISO-8601 format.",
|
|
9478
|
+
"comments": [
|
|
9479
|
+
"Use this slot for temporal properties. The value should follow ISO-8601 format (e.g., \"2025-06-12T14:30:00Z\")."
|
|
9480
|
+
],
|
|
9481
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
9482
|
+
"range": "string"
|
|
9483
|
+
},
|
|
9338
9484
|
"processing_institution_workflow_metadata": {
|
|
9339
9485
|
"name": "processing_institution_workflow_metadata",
|
|
9340
9486
|
"description": "Information about how workflow results were generated when the processing is done by an external organziation (e.g., JGI) such as software tool name and version or pipeline name and version.",
|
|
@@ -17871,8 +18017,11 @@
|
|
|
17871
18017
|
"value": "m"
|
|
17872
18018
|
}
|
|
17873
18019
|
},
|
|
17874
|
-
"description": "
|
|
18020
|
+
"description": "Structured miscellaneous property assertions for this Biosample. Use when a value cannot cleanly fit an existing, policy-governed slot.",
|
|
17875
18021
|
"title": "miscellaneous parameter",
|
|
18022
|
+
"todos": [
|
|
18023
|
+
"This slot should not be available in the submission portal."
|
|
18024
|
+
],
|
|
17876
18025
|
"examples": [
|
|
17877
18026
|
{
|
|
17878
18027
|
"value": "Bicarbonate ion concentration;2075 micromole per kilogram"
|
|
@@ -17885,7 +18034,7 @@
|
|
|
17885
18034
|
"is_a": "core field",
|
|
17886
18035
|
"string_serialization": "{text};{float} {unit}",
|
|
17887
18036
|
"slot_uri": "MIXS:0000752",
|
|
17888
|
-
"range": "
|
|
18037
|
+
"range": "PropertyAssertion",
|
|
17889
18038
|
"multivalued": true,
|
|
17890
18039
|
"inlined_as_list": true
|
|
17891
18040
|
},
|
|
@@ -26084,6 +26233,12 @@
|
|
|
26084
26233
|
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
26085
26234
|
"range": "FailureWhatEnum"
|
|
26086
26235
|
},
|
|
26236
|
+
"protocol_for": {
|
|
26237
|
+
"name": "protocol_for",
|
|
26238
|
+
"description": "The type of planned process that the protocol describes.",
|
|
26239
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
26240
|
+
"range": "ProtocolForEnum"
|
|
26241
|
+
},
|
|
26087
26242
|
"emsl_store_temp": {
|
|
26088
26243
|
"name": "emsl_store_temp",
|
|
26089
26244
|
"description": "The temperature at which the sample should be stored upon delivery to EMSL",
|
|
@@ -29515,7 +29670,9 @@
|
|
|
29515
29670
|
},
|
|
29516
29671
|
"has_unit": {
|
|
29517
29672
|
"name": "has_unit",
|
|
29518
|
-
"description": "The unit of the quantity"
|
|
29673
|
+
"description": "The unit of the quantity",
|
|
29674
|
+
"range": "UnitEnum",
|
|
29675
|
+
"required": true
|
|
29519
29676
|
},
|
|
29520
29677
|
"has_numeric_value": {
|
|
29521
29678
|
"name": "has_numeric_value",
|
|
@@ -29662,6 +29819,77 @@
|
|
|
29662
29819
|
},
|
|
29663
29820
|
"class_uri": "nmdc:GeolocationValue"
|
|
29664
29821
|
},
|
|
29822
|
+
"PropertyAssertion": {
|
|
29823
|
+
"name": "PropertyAssertion",
|
|
29824
|
+
"description": "A structured record of data that doesn't fit nicely within the constraints of other NMDC AttributeValues. Uses primitive ranges only.",
|
|
29825
|
+
"comments": [
|
|
29826
|
+
"This class enables flexible metadata capture for properties that don't align with existing, policy-governed slots in NMDC schema.",
|
|
29827
|
+
"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.",
|
|
29828
|
+
"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."
|
|
29829
|
+
],
|
|
29830
|
+
"examples": [
|
|
29831
|
+
{
|
|
29832
|
+
"description": "Data provided from submission that doesn't conform to required abs_air_humidity units",
|
|
29833
|
+
"object": {
|
|
29834
|
+
"type": "nmdc:PropertyAssertion",
|
|
29835
|
+
"has_raw_value": "50 kPa",
|
|
29836
|
+
"has_attribute_id": "MIXS:0000122",
|
|
29837
|
+
"has_attribute_label": "absolute air humidity",
|
|
29838
|
+
"has_numeric_value": 50,
|
|
29839
|
+
"has_unit": "kPa"
|
|
29840
|
+
}
|
|
29841
|
+
},
|
|
29842
|
+
{
|
|
29843
|
+
"description": "Data provided from submission that doesn't conform to required UCUM unit",
|
|
29844
|
+
"object": {
|
|
29845
|
+
"type": "nmdc:PropertyAssertion",
|
|
29846
|
+
"has_raw_value": "5.5 mL/L",
|
|
29847
|
+
"has_attribute_id": "MIXS:0000119",
|
|
29848
|
+
"has_attribute_label": "dissolved oxygen",
|
|
29849
|
+
"has_numeric_value": 5.5,
|
|
29850
|
+
"has_unit": "mL/L"
|
|
29851
|
+
}
|
|
29852
|
+
},
|
|
29853
|
+
{
|
|
29854
|
+
"description": "Unit provided is invalid for UCUM and standard",
|
|
29855
|
+
"object": {
|
|
29856
|
+
"type": "nmdc:PropertyAssertion",
|
|
29857
|
+
"has_raw_value": "250 W/m2",
|
|
29858
|
+
"has_attribute_id": "MIXS:0000112",
|
|
29859
|
+
"has_attribute_label": "solar irradiance",
|
|
29860
|
+
"has_numeric_value": 250,
|
|
29861
|
+
"has_unit": "W/m2"
|
|
29862
|
+
}
|
|
29863
|
+
}
|
|
29864
|
+
],
|
|
29865
|
+
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
29866
|
+
"is_a": "AttributeValue",
|
|
29867
|
+
"slots": [
|
|
29868
|
+
"has_attribute_label",
|
|
29869
|
+
"has_attribute_id",
|
|
29870
|
+
"has_quantity_kind_id",
|
|
29871
|
+
"has_value_term_id",
|
|
29872
|
+
"has_boolean_value",
|
|
29873
|
+
"has_datetime_value",
|
|
29874
|
+
"has_numeric_value",
|
|
29875
|
+
"has_minimum_numeric_value",
|
|
29876
|
+
"has_maximum_numeric_value",
|
|
29877
|
+
"has_unit"
|
|
29878
|
+
],
|
|
29879
|
+
"slot_usage": {
|
|
29880
|
+
"has_raw_value": {
|
|
29881
|
+
"name": "has_raw_value",
|
|
29882
|
+
"description": "Original contributor string representation (unparsed)",
|
|
29883
|
+
"required": true
|
|
29884
|
+
},
|
|
29885
|
+
"has_unit": {
|
|
29886
|
+
"name": "has_unit",
|
|
29887
|
+
"description": "UCUM unit code (required only when numeric value is present)",
|
|
29888
|
+
"required": false
|
|
29889
|
+
}
|
|
29890
|
+
},
|
|
29891
|
+
"class_uri": "nmdc:PropertyAssertion"
|
|
29892
|
+
},
|
|
29665
29893
|
"NamedThing": {
|
|
29666
29894
|
"name": "NamedThing",
|
|
29667
29895
|
"description": "a databased entity or concept/class",
|
|
@@ -29763,7 +29991,7 @@
|
|
|
29763
29991
|
},
|
|
29764
29992
|
"Instrument": {
|
|
29765
29993
|
"name": "Instrument",
|
|
29766
|
-
"description": "A material entity that is designed to perform a function in a scientific investigation, but is not a reagent.",
|
|
29994
|
+
"description": "A material entity that is designed to perform a function in a scientific investigation, but is not a reagent. This class models the make and model of the instrument, not the specific instance of the instrument.",
|
|
29767
29995
|
"from_schema": "https://w3id.org/nmdc/nmdc",
|
|
29768
29996
|
"aliases": [
|
|
29769
29997
|
"device"
|
|
@@ -29786,7 +30014,17 @@
|
|
|
29786
30014
|
}
|
|
29787
30015
|
}
|
|
29788
30016
|
},
|
|
29789
|
-
"class_uri": "nmdc:Instrument"
|
|
30017
|
+
"class_uri": "nmdc:Instrument",
|
|
30018
|
+
"unique_keys": {
|
|
30019
|
+
"main": {
|
|
30020
|
+
"unique_key_name": "main",
|
|
30021
|
+
"unique_key_slots": [
|
|
30022
|
+
"vendor",
|
|
30023
|
+
"model"
|
|
30024
|
+
],
|
|
30025
|
+
"description": "A unique instrument is defined by its vendor and model."
|
|
30026
|
+
}
|
|
30027
|
+
}
|
|
29790
30028
|
},
|
|
29791
30029
|
"PlannedProcess": {
|
|
29792
30030
|
"name": "PlannedProcess",
|
|
@@ -29814,7 +30052,9 @@
|
|
|
29814
30052
|
"url",
|
|
29815
30053
|
"name",
|
|
29816
30054
|
"type",
|
|
29817
|
-
"description"
|
|
30055
|
+
"description",
|
|
30056
|
+
"protocol_for",
|
|
30057
|
+
"analysis_type"
|
|
29818
30058
|
],
|
|
29819
30059
|
"class_uri": "nmdc:Protocol"
|
|
29820
30060
|
},
|