$ linkml lint ancient.yml
/home/james/git/mixs-minas/extension-ancient/src/mixs/schema/ancient.yml
warning Enum 'DamageTreatmentEnum' does not have recommended slot 'description' (recommended)
warning Enum 'LibTypeEnum' does not have recommended slot 'description' (recommended)
warning Enum 'BioCulturalLabel' does not have recommended slot 'description' (recommended)
warning Enum 'LibStrand' does not have recommended slot 'description' (recommended)
warning Subset 'combination_classes' does not have recommended slot 'description' (recommended)
warning Subset 'sequencing' does not have recommended slot 'description' (recommended)
warning Subset 'environment' does not have recommended slot 'description' (recommended)
warning Subset 'nucleic acid sequence source' does not have recommended slot 'description' (recommended)
warning Subset 'investigation' does not have recommended slot 'description' (recommended)
warning Subset 'ethics' does not have recommended slot 'description' (recommended)
warning Permissible value of Enum 'DamageTreatmentEnum' has name 'partial-udg' (standard_naming)
warning Permissible value of Enum 'DamageTreatmentEnum' has name 'full-udg' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC P' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC MC' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC CL' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC CV' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC CNV' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC R' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC CB' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC OC' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC O' (standard_naming)
warning Permissible value of Enum 'BioCulturalLabel' has name 'BC NC' (standard_naming)
✖ Found 22 problems in 1 schema
Validating against test data
$ linkml validate -s /home/james/git/mixs-minas/extension-ancient/src/mixs/schema/ancient.yml minas-ancient-test.csv --target-class Ancient
[ERROR] [minas-ancient-test.csv/0] Additional properties are not allowed ('sample_id' was unexpected) in /
[ERROR] [minas-ancient-test.csv/0] 'Natural History Museum London 2' is not of type 'array', 'null' in /collection_context_name
[ERROR] [minas-ancient-test.csv/0] 'Non-udg' is not of type 'array' in /damage_treatment
[ERROR] [minas-ancient-test.csv/0] '2024-07-01' is not a 'date-time' in /dna_extraction_date
[ERROR] [minas-ancient-test.csv/0] 'Museum of Mongolia' is not of type 'array', 'null' in /ethical_authority
[ERROR] [minas-ancient-test.csv/0] '2024-01-01' is not a 'date-time' in /ethical_date
[ERROR] [minas-ancient-test.csv/0] 'GN12112322' is not of type 'array', 'null' in /ethical_id
[ERROR] [minas-ancient-test.csv/0] 'XYZ' is not of type 'array', 'null' in /experimental_procedures
[ERROR] [minas-ancient-test.csv/0] 12 is not of type 'array', 'null' in /lib_concentration
[ERROR] [minas-ancient-test.csv/0] '10.10023/1203981' is not of type 'array', 'null' in /lib_preparation_protocol
[ERROR] [minas-ancient-test.csv/0] 'FALSE' is not of type 'boolean', 'null' in /neg_cont_status
[ERROR] [minas-ancient-test.csv/0] 12 is not of type 'array', 'null' in /num_capture_amp_cycles
[ERROR] [minas-ancient-test.csv/0] 'formalin' is not of type 'array', 'null' in /preservational_treatment
[ERROR] [minas-ancient-test.csv/0] 1920 is not of type 'string', 'null' in /recovery_date
[ERROR] [minas-ancient-test.csv/0] 'acetone' is not of type 'array', 'null' in /samp_decontam_pretreat
[ERROR] [minas-ancient-test.csv/0] 10900 is not of type 'string' in /sample_age
[ERROR] [minas-ancient-test.csv/0] 'C14' is not of type 'array', 'null' in /sample_age_inference_methods
[ERROR] [minas-ancient-test.csv/0] 'BC MC' is not of type 'array', 'null' in /biocultural_label
[ERROR] [minas-ancient-test.csv/0] 'Microbes only' is not of type 'array', 'null' in /ethics_perm_scope
[ERROR] [minas-ancient-test.csv/0] 'single' is not of type 'array', 'null' in /lib_strandedness
[ERROR] [minas-ancient-test.csv/0] 'Y. pestis' is not of type 'array', 'null' in /probe_set
[ERROR] [minas-ancient-test.csv/0] 'UDI configurs' is not of type 'array', 'null' in /mid_config
[ERROR] [minas-ancient-test.csv/1] Additional properties are not allowed ('sample_id' was unexpected) in /
[ERROR] [minas-ancient-test.csv/1] 'cultural_era' is a required property in /
[ERROR] [minas-ancient-test.csv/1] 'damage_treatment' is a required property in /
[ERROR] [minas-ancient-test.csv/1] 'sample_age' is a required property in /
[ERROR] [minas-ancient-test.csv/2] Additional properties are not allowed ('sample_id' was unexpected) in /
[ERROR] [minas-ancient-test.csv/2] 'cultural_era' is a required property in /
[ERROR] [minas-ancient-test.csv/2] 'damage_treatment' is a required property in /
[ERROR] [minas-ancient-test.csv/2] 'sample_age' is a required property in /
multivalued doesn't seem to mean what we think it does
optional columns don't seem to be supported (although that might be valid in this context, the sample_id column would come from the core mixs terms which I am avoiding at the moment)
Need to check if there is just a date object,not just date-time
LinkML seems to have a specific representation of boolean which does not include FALSE or false
string does not allow pure numbers (sample_age) -> formatting requirement? or switch to integer (with second column for unit)
Test cases
Linting
Validating against test data
minas-ancient-test.csv