chemicalml 0.2.0 → 0.2.1

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.
Files changed (304) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +7 -1
  3. data/CLAUDE.md +48 -41
  4. data/TODO.align/36-molecular-convention-coverage.md +46 -0
  5. data/TODO.align/37-compchem-convention-coverage.md +55 -0
  6. data/TODO.align/38-dictionary-convention-coverage.md +34 -0
  7. data/TODO.align/39-unit-dictionary-convention-coverage.md +33 -0
  8. data/TODO.align/40-unit-type-dictionary-convention-coverage.md +28 -0
  9. data/TODO.align/41-expand-canonical-model-layer.md +43 -0
  10. data/TODO.align/42-translator-wire-new-models.md +31 -0
  11. data/TODO.align/43-dictionary-model-no-to-h.md +39 -0
  12. data/TODO.align/44-schema3-only-and-schema24-module.md +44 -0
  13. data/TODO.align/45-documentation-and-final-verification.md +23 -0
  14. data/TODO.align/46-lattice-vector-content.md +24 -0
  15. data/TODO.align/47-molecule-crystal-spectra-property-lists.md +23 -0
  16. data/TODO.align/48-model-list-and-module-lists.md +21 -0
  17. data/TODO.align/49-more-chemistry-models.md +34 -0
  18. data/TODO.align/50-validation-report.md +29 -0
  19. data/TODO.align/51-convention-auto-detection.md +30 -0
  20. data/TODO.align/52-schema24-legacy-elements.md +28 -0
  21. data/TODO.align/53-round-trip-integration-specs.md +30 -0
  22. data/TODO.align/54-document-versioned-parser-shim.md +38 -0
  23. data/TODO.align/55-molecule-missing-attributes.md +20 -0
  24. data/TODO.align/56-geometry-models.md +24 -0
  25. data/TODO.align/57-compchem-models.md +26 -0
  26. data/TODO.align/58-remaining-models.md +24 -0
  27. data/TODO.align/59-wire-new-models-translator.md +18 -0
  28. data/TODO.align/60-docs-and-final-verification.md +19 -0
  29. data/lib/chemicalml/cml/base/abundance.rb +6 -0
  30. data/lib/chemicalml/cml/base/action.rb +20 -0
  31. data/lib/chemicalml/cml/base/action_list.rb +18 -0
  32. data/lib/chemicalml/cml/base/alternative.rb +28 -0
  33. data/lib/chemicalml/cml/base/amount.rb +2 -0
  34. data/lib/chemicalml/cml/base/angle.rb +12 -0
  35. data/lib/chemicalml/cml/base/annotation.rb +30 -0
  36. data/lib/chemicalml/cml/base/appinfo.rb +32 -0
  37. data/lib/chemicalml/cml/base/arg.rb +46 -0
  38. data/lib/chemicalml/cml/base/array.rb +22 -0
  39. data/lib/chemicalml/cml/base/array_list.rb +2 -0
  40. data/lib/chemicalml/cml/base/atom.rb +18 -0
  41. data/lib/chemicalml/cml/base/atom_array.rb +38 -0
  42. data/lib/chemicalml/cml/base/atom_parity.rb +8 -0
  43. data/lib/chemicalml/cml/base/atom_set.rb +2 -0
  44. data/lib/chemicalml/cml/base/atom_type.rb +4 -0
  45. data/lib/chemicalml/cml/base/atom_type_list.rb +2 -0
  46. data/lib/chemicalml/cml/base/atomic_basis_function.rb +4 -0
  47. data/lib/chemicalml/cml/base/band.rb +2 -0
  48. data/lib/chemicalml/cml/base/basis_set.rb +4 -0
  49. data/lib/chemicalml/cml/base/bond.rb +6 -0
  50. data/lib/chemicalml/cml/base/bond_array.rb +16 -0
  51. data/lib/chemicalml/cml/base/bond_set.rb +2 -0
  52. data/lib/chemicalml/cml/base/bond_stereo.rb +10 -0
  53. data/lib/chemicalml/cml/base/bond_type.rb +2 -0
  54. data/lib/chemicalml/cml/base/bond_type_list.rb +2 -0
  55. data/lib/chemicalml/cml/base/cell_parameter.rb +4 -0
  56. data/lib/chemicalml/cml/base/complex_object.rb +30 -0
  57. data/lib/chemicalml/cml/base/condition_list.rb +4 -0
  58. data/lib/chemicalml/cml/base/crystal.rb +2 -0
  59. data/lib/chemicalml/cml/base/description.rb +2 -0
  60. data/lib/chemicalml/cml/base/dictionary.rb +6 -0
  61. data/lib/chemicalml/cml/base/dimension.rb +10 -0
  62. data/lib/chemicalml/cml/base/eigen.rb +2 -0
  63. data/lib/chemicalml/cml/base/electron.rb +6 -0
  64. data/lib/chemicalml/cml/base/enumeration.rb +32 -0
  65. data/lib/chemicalml/cml/base/expression.rb +32 -0
  66. data/lib/chemicalml/cml/base/float.rb +40 -0
  67. data/lib/chemicalml/cml/base/float_array.rb +42 -0
  68. data/lib/chemicalml/cml/base/fragment.rb +6 -0
  69. data/lib/chemicalml/cml/base/fragment_list.rb +4 -0
  70. data/lib/chemicalml/cml/base/identifier.rb +8 -0
  71. data/lib/chemicalml/cml/base/integer.rb +40 -0
  72. data/lib/chemicalml/cml/base/integer_array.rb +42 -0
  73. data/lib/chemicalml/cml/base/isotope.rb +2 -0
  74. data/lib/chemicalml/cml/base/isotope_list.rb +2 -0
  75. data/lib/chemicalml/cml/base/join.rb +6 -0
  76. data/lib/chemicalml/cml/base/kpoint.rb +2 -0
  77. data/lib/chemicalml/cml/base/label.rb +2 -0
  78. data/lib/chemicalml/cml/base/lattice.rb +2 -0
  79. data/lib/chemicalml/cml/base/lattice_vector.rb +2 -0
  80. data/lib/chemicalml/cml/base/length.rb +10 -0
  81. data/lib/chemicalml/cml/base/line3.rb +6 -0
  82. data/lib/chemicalml/cml/base/link.rb +20 -0
  83. data/lib/chemicalml/cml/base/list.rb +2 -0
  84. data/lib/chemicalml/cml/base/map.rb +12 -0
  85. data/lib/chemicalml/cml/base/matrix.rb +12 -0
  86. data/lib/chemicalml/cml/base/metadata.rb +4 -0
  87. data/lib/chemicalml/cml/base/metadata_list.rb +6 -0
  88. data/lib/chemicalml/cml/base/molecule.rb +10 -0
  89. data/lib/chemicalml/cml/base/molecule_list.rb +2 -0
  90. data/lib/chemicalml/cml/base/name.rb +2 -0
  91. data/lib/chemicalml/cml/base/object.rb +4 -0
  92. data/lib/chemicalml/cml/base/observation.rb +4 -0
  93. data/lib/chemicalml/cml/base/operator.rb +32 -0
  94. data/lib/chemicalml/cml/base/parameter.rb +10 -0
  95. data/lib/chemicalml/cml/base/parameter_list.rb +6 -0
  96. data/lib/chemicalml/cml/base/particle.rb +6 -0
  97. data/lib/chemicalml/cml/base/peak.rb +30 -0
  98. data/lib/chemicalml/cml/base/peak_group.rb +38 -0
  99. data/lib/chemicalml/cml/base/peak_list.rb +2 -0
  100. data/lib/chemicalml/cml/base/peak_structure.rb +14 -0
  101. data/lib/chemicalml/cml/base/plane3.rb +2 -0
  102. data/lib/chemicalml/cml/base/point3.rb +2 -0
  103. data/lib/chemicalml/cml/base/potential_form.rb +2 -0
  104. data/lib/chemicalml/cml/base/product.rb +16 -0
  105. data/lib/chemicalml/cml/base/product_list.rb +14 -0
  106. data/lib/chemicalml/cml/base/property.rb +6 -0
  107. data/lib/chemicalml/cml/base/property_list.rb +6 -0
  108. data/lib/chemicalml/cml/base/reactant.rb +16 -0
  109. data/lib/chemicalml/cml/base/reactant_list.rb +14 -0
  110. data/lib/chemicalml/cml/base/reaction.rb +16 -0
  111. data/lib/chemicalml/cml/base/reaction_list.rb +12 -0
  112. data/lib/chemicalml/cml/base/reaction_scheme.rb +10 -0
  113. data/lib/chemicalml/cml/base/reaction_step.rb +6 -0
  114. data/lib/chemicalml/cml/base/reaction_step_list.rb +8 -0
  115. data/lib/chemicalml/cml/base/region.rb +8 -0
  116. data/lib/chemicalml/cml/base/related_entry.rb +26 -0
  117. data/lib/chemicalml/cml/base/sample.rb +4 -0
  118. data/lib/chemicalml/cml/base/scalar.rb +18 -0
  119. data/lib/chemicalml/cml/base/spectator.rb +2 -0
  120. data/lib/chemicalml/cml/base/spectrum.rb +12 -0
  121. data/lib/chemicalml/cml/base/spectrum_data.rb +2 -0
  122. data/lib/chemicalml/cml/base/spectrum_list.rb +4 -0
  123. data/lib/chemicalml/cml/base/sphere3.rb +2 -0
  124. data/lib/chemicalml/cml/base/string.rb +32 -0
  125. data/lib/chemicalml/cml/base/string_array.rb +40 -0
  126. data/lib/chemicalml/cml/base/substance.rb +12 -0
  127. data/lib/chemicalml/cml/base/substance_list.rb +6 -0
  128. data/lib/chemicalml/cml/base/symmetry.rb +4 -0
  129. data/lib/chemicalml/cml/base/system.rb +4 -0
  130. data/lib/chemicalml/cml/base/table.rb +10 -0
  131. data/lib/chemicalml/cml/base/table_content.rb +2 -0
  132. data/lib/chemicalml/cml/base/table_header_cell.rb +10 -0
  133. data/lib/chemicalml/cml/base/tcell.rb +34 -0
  134. data/lib/chemicalml/cml/base/torsion.rb +12 -0
  135. data/lib/chemicalml/cml/base/trow.rb +32 -0
  136. data/lib/chemicalml/cml/base/unit.rb +12 -0
  137. data/lib/chemicalml/cml/base/unit_list.rb +12 -0
  138. data/lib/chemicalml/cml/base/unit_type.rb +10 -0
  139. data/lib/chemicalml/cml/base/unit_type_list.rb +10 -0
  140. data/lib/chemicalml/cml/base/vector3.rb +2 -0
  141. data/lib/chemicalml/cml/base/xaxis.rb +6 -0
  142. data/lib/chemicalml/cml/base/yaxis.rb +6 -0
  143. data/lib/chemicalml/cml/base.rb +17 -0
  144. data/lib/chemicalml/cml/elements.rb +39 -4
  145. data/lib/chemicalml/cml/role/alternative.rb +10 -0
  146. data/lib/chemicalml/cml/role/annotation.rb +10 -0
  147. data/lib/chemicalml/cml/role/appinfo.rb +10 -0
  148. data/lib/chemicalml/cml/role/arg.rb +10 -0
  149. data/lib/chemicalml/cml/role/cml_module.rb +2 -3
  150. data/lib/chemicalml/cml/role/complex_object.rb +10 -0
  151. data/lib/chemicalml/cml/role/enumeration.rb +10 -0
  152. data/lib/chemicalml/cml/role/expression.rb +10 -0
  153. data/lib/chemicalml/cml/role/float.rb +10 -0
  154. data/lib/chemicalml/cml/role/float_array.rb +10 -0
  155. data/lib/chemicalml/cml/role/integer.rb +10 -0
  156. data/lib/chemicalml/cml/role/integer_array.rb +10 -0
  157. data/lib/chemicalml/cml/role/operator.rb +10 -0
  158. data/lib/chemicalml/cml/role/related_entry.rb +10 -0
  159. data/lib/chemicalml/cml/role/string.rb +10 -0
  160. data/lib/chemicalml/cml/role/string_array.rb +10 -0
  161. data/lib/chemicalml/cml/role/tcell.rb +10 -0
  162. data/lib/chemicalml/cml/role/trow.rb +10 -0
  163. data/lib/chemicalml/cml/role.rb +17 -0
  164. data/lib/chemicalml/cml/schema24/alternative.rb +14 -0
  165. data/lib/chemicalml/cml/schema24/annotation.rb +15 -0
  166. data/lib/chemicalml/cml/schema24/appinfo.rb +15 -0
  167. data/lib/chemicalml/cml/schema24/arg.rb +14 -0
  168. data/lib/chemicalml/cml/schema24/cml_module.rb +18 -0
  169. data/lib/chemicalml/cml/schema24/complex_object.rb +14 -0
  170. data/lib/chemicalml/cml/schema24/configuration.rb +5 -2
  171. data/lib/chemicalml/cml/schema24/enumeration.rb +16 -0
  172. data/lib/chemicalml/cml/schema24/expression.rb +14 -0
  173. data/lib/chemicalml/cml/schema24/float.rb +14 -0
  174. data/lib/chemicalml/cml/schema24/float_array.rb +14 -0
  175. data/lib/chemicalml/cml/schema24/integer.rb +14 -0
  176. data/lib/chemicalml/cml/schema24/integer_array.rb +14 -0
  177. data/lib/chemicalml/cml/schema24/operator.rb +14 -0
  178. data/lib/chemicalml/cml/schema24/related_entry.rb +14 -0
  179. data/lib/chemicalml/cml/schema24/string.rb +14 -0
  180. data/lib/chemicalml/cml/schema24/string_array.rb +14 -0
  181. data/lib/chemicalml/cml/schema24/tcell.rb +14 -0
  182. data/lib/chemicalml/cml/schema24/trow.rb +14 -0
  183. data/lib/chemicalml/cml/schema24.rb +33 -5
  184. data/lib/chemicalml/cml.rb +1 -3
  185. data/lib/chemicalml/context_configuration.rb +8 -2
  186. data/lib/chemicalml/convention/base.rb +17 -3
  187. data/lib/chemicalml/convention/compchem/constraints/array_rules.rb +44 -0
  188. data/lib/chemicalml/convention/compchem/constraints/calculation_requires_finalization.rb +28 -0
  189. data/lib/chemicalml/convention/compchem/constraints/compchem_module_must_contain_job_list.rb +4 -4
  190. data/lib/chemicalml/convention/compchem/constraints/environment_at_most_one_property_list.rb +26 -0
  191. data/lib/chemicalml/convention/compchem/constraints/environment_must_not_contain_parameter.rb +28 -0
  192. data/lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_molecule.rb +26 -0
  193. data/lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_property_list.rb +26 -0
  194. data/lib/chemicalml/convention/compchem/constraints/finalization_must_not_contain_parameter.rb +27 -0
  195. data/lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_molecule.rb +26 -0
  196. data/lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_parameter_list.rb +26 -0
  197. data/lib/chemicalml/convention/compchem/constraints/initialization_must_not_contain_property.rb +28 -0
  198. data/lib/chemicalml/convention/compchem/constraints/job_list_module_must_have_id.rb +24 -0
  199. data/lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_environment.rb +25 -0
  200. data/lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_finalization.rb +25 -0
  201. data/lib/chemicalml/convention/compchem/constraints/job_module_must_have_id.rb +24 -0
  202. data/lib/chemicalml/convention/compchem/constraints/job_must_contain_initialization.rb +6 -9
  203. data/lib/chemicalml/convention/compchem/constraints/matrix_rules.rb +48 -0
  204. data/lib/chemicalml/convention/compchem/constraints/module_predicates.rb +50 -0
  205. data/lib/chemicalml/convention/compchem/constraints/scalar_units.rb +42 -0
  206. data/lib/chemicalml/convention/compchem/constraints.rb +36 -2
  207. data/lib/chemicalml/convention/compchem.rb +16 -0
  208. data/lib/chemicalml/convention/constraint.rb +31 -18
  209. data/lib/chemicalml/convention/coordinator.rb +89 -0
  210. data/lib/chemicalml/convention/detection.rb +33 -0
  211. data/lib/chemicalml/convention/dictionary/constraints/dictionary_must_have_namespace.rb +28 -0
  212. data/lib/chemicalml/convention/dictionary/constraints/dictionary_namespace_should_end_with_slash_or_hash.rb +32 -0
  213. data/lib/chemicalml/convention/dictionary/constraints/entry_id_must_match_pattern.rb +33 -0
  214. data/lib/chemicalml/convention/dictionary/constraints/entry_ids_unique_within_dictionary.rb +3 -3
  215. data/lib/chemicalml/convention/dictionary/constraints/entry_must_contain_definition.rb +28 -0
  216. data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_id_and_term.rb +5 -5
  217. data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_unit_type.rb +30 -0
  218. data/lib/chemicalml/convention/dictionary/constraints/entry_units_co_constraints.rb +44 -0
  219. data/lib/chemicalml/convention/dictionary/constraints.rb +12 -0
  220. data/lib/chemicalml/convention/dictionary.rb +6 -0
  221. data/lib/chemicalml/convention/molecular/constraints/atom_array_must_be_child_of_molecule_or_formula.rb +40 -0
  222. data/lib/chemicalml/convention/molecular/constraints/atom_array_must_contain_atoms.rb +3 -3
  223. data/lib/chemicalml/convention/molecular/constraints/atom_coordinates_must_be_paired.rb +5 -5
  224. data/lib/chemicalml/convention/molecular/constraints/atom_id_must_match_pattern.rb +4 -4
  225. data/lib/chemicalml/convention/molecular/constraints/atom_ids_unique_within_molecule.rb +2 -2
  226. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_element_type.rb +3 -3
  227. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_id.rb +3 -3
  228. data/lib/chemicalml/convention/molecular/constraints/bond_array_must_be_child_of_molecule.rb +36 -0
  229. data/lib/chemicalml/convention/molecular/constraints/bond_ids_unique_within_molecule.rb +43 -0
  230. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_atom_refs2.rb +3 -3
  231. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_order.rb +3 -3
  232. data/lib/chemicalml/convention/molecular/constraints/bond_must_reference_atoms_in_same_molecule.rb +3 -3
  233. data/lib/chemicalml/convention/molecular/constraints/bond_order_other_must_have_dict_ref.rb +33 -0
  234. data/lib/chemicalml/convention/molecular/constraints/bond_order_should_not_be_numeric.rb +2 -2
  235. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_cis_trans_must_have_atom_refs4.rb +45 -0
  236. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_other_must_have_dict_ref.rb +32 -0
  237. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_wedge_hash_must_have_atom_refs2.rb +45 -0
  238. data/lib/chemicalml/convention/molecular/constraints/molecule_atom_array_mutually_exclusive_with_children.rb +32 -0
  239. data/lib/chemicalml/convention/molecular/constraints/molecule_bond_array_mutually_exclusive_with_children.rb +31 -0
  240. data/lib/chemicalml/convention/molecular/constraints/molecule_count_must_not_appear_on_top_level.rb +34 -0
  241. data/lib/chemicalml/convention/molecular/constraints/molecule_must_have_id.rb +3 -3
  242. data/lib/chemicalml/convention/molecular/constraints/property_must_have_dict_ref.rb +3 -3
  243. data/lib/chemicalml/convention/molecular/constraints/scalar_must_have_data_type.rb +3 -3
  244. data/lib/chemicalml/convention/molecular/constraints.rb +20 -0
  245. data/lib/chemicalml/convention/molecular.rb +10 -0
  246. data/lib/chemicalml/convention/registry.rb +17 -0
  247. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_contain_at_least_one_unit.rb +28 -0
  248. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_have_namespace.rb +36 -0
  249. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_contain_definition.rb +27 -0
  250. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_id.rb +27 -0
  251. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_symbol_and_unit_type.rb +3 -3
  252. data/lib/chemicalml/convention/unit_dictionary/constraints.rb +9 -1
  253. data/lib/chemicalml/convention/unit_dictionary.rb +4 -0
  254. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_id_must_match_pattern.rb +31 -0
  255. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_contain_at_least_one_unit_type.rb +27 -0
  256. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_have_namespace.rb +35 -0
  257. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_contain_definition.rb +27 -0
  258. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_have_id_and_name.rb +5 -5
  259. data/lib/chemicalml/convention/unit_type_dictionary/constraints.rb +9 -1
  260. data/lib/chemicalml/convention/unit_type_dictionary.rb +4 -0
  261. data/lib/chemicalml/convention/validation_report.rb +63 -0
  262. data/lib/chemicalml/convention.rb +11 -0
  263. data/lib/chemicalml/dictionary/entry.rb +6 -6
  264. data/lib/chemicalml/dictionary/enum.rb +1 -1
  265. data/lib/chemicalml/dictionary/link.rb +3 -3
  266. data/lib/chemicalml/dictionary/loader.rb +19 -19
  267. data/lib/chemicalml/dictionary/model.rb +5 -5
  268. data/lib/chemicalml/dictionary/registry.rb +9 -9
  269. data/lib/chemicalml/version.rb +1 -1
  270. data/lib/chemicalml/versioned_parser.rb +18 -0
  271. data/lib/chemicalml.rb +1 -2
  272. metadata +123 -34
  273. data/lib/chemicalml/cml/child_mappings.rb +0 -168
  274. data/lib/chemicalml/cml/translator/value_translations.rb +0 -270
  275. data/lib/chemicalml/cml/translator.rb +0 -484
  276. data/lib/chemicalml/model/atom.rb +0 -64
  277. data/lib/chemicalml/model/atom_parity.rb +0 -21
  278. data/lib/chemicalml/model/bond.rb +0 -39
  279. data/lib/chemicalml/model/bond_stereo.rb +0 -29
  280. data/lib/chemicalml/model/cml_array.rb +0 -27
  281. data/lib/chemicalml/model/cml_module.rb +0 -45
  282. data/lib/chemicalml/model/document.rb +0 -29
  283. data/lib/chemicalml/model/formula.rb +0 -34
  284. data/lib/chemicalml/model/identifier.rb +0 -21
  285. data/lib/chemicalml/model/label.rb +0 -21
  286. data/lib/chemicalml/model/matrix.rb +0 -29
  287. data/lib/chemicalml/model/metadata.rb +0 -23
  288. data/lib/chemicalml/model/metadata_list.rb +0 -25
  289. data/lib/chemicalml/model/molecule.rb +0 -45
  290. data/lib/chemicalml/model/name.rb +0 -21
  291. data/lib/chemicalml/model/node.rb +0 -45
  292. data/lib/chemicalml/model/parameter.rb +0 -27
  293. data/lib/chemicalml/model/parameter_list.rb +0 -25
  294. data/lib/chemicalml/model/product.rb +0 -21
  295. data/lib/chemicalml/model/product_list.rb +0 -21
  296. data/lib/chemicalml/model/property.rb +0 -28
  297. data/lib/chemicalml/model/property_list.rb +0 -25
  298. data/lib/chemicalml/model/reactant.rb +0 -21
  299. data/lib/chemicalml/model/reactant_list.rb +0 -21
  300. data/lib/chemicalml/model/reaction.rb +0 -41
  301. data/lib/chemicalml/model/reaction_list.rb +0 -23
  302. data/lib/chemicalml/model/scalar.rb +0 -25
  303. data/lib/chemicalml/model/substance.rb +0 -25
  304. data/lib/chemicalml/model.rb +0 -40
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chemicalml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-07-14 00:00:00.000000000 Z
11
+ date: 2026-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -83,6 +83,31 @@ files:
83
83
  - TODO.align/33-polymorphic-parse.md
84
84
  - TODO.align/34-polymorphic-specs.md
85
85
  - TODO.align/35-final-spec-lint.md
86
+ - TODO.align/36-molecular-convention-coverage.md
87
+ - TODO.align/37-compchem-convention-coverage.md
88
+ - TODO.align/38-dictionary-convention-coverage.md
89
+ - TODO.align/39-unit-dictionary-convention-coverage.md
90
+ - TODO.align/40-unit-type-dictionary-convention-coverage.md
91
+ - TODO.align/41-expand-canonical-model-layer.md
92
+ - TODO.align/42-translator-wire-new-models.md
93
+ - TODO.align/43-dictionary-model-no-to-h.md
94
+ - TODO.align/44-schema3-only-and-schema24-module.md
95
+ - TODO.align/45-documentation-and-final-verification.md
96
+ - TODO.align/46-lattice-vector-content.md
97
+ - TODO.align/47-molecule-crystal-spectra-property-lists.md
98
+ - TODO.align/48-model-list-and-module-lists.md
99
+ - TODO.align/49-more-chemistry-models.md
100
+ - TODO.align/50-validation-report.md
101
+ - TODO.align/51-convention-auto-detection.md
102
+ - TODO.align/52-schema24-legacy-elements.md
103
+ - TODO.align/53-round-trip-integration-specs.md
104
+ - TODO.align/54-document-versioned-parser-shim.md
105
+ - TODO.align/55-molecule-missing-attributes.md
106
+ - TODO.align/56-geometry-models.md
107
+ - TODO.align/57-compchem-models.md
108
+ - TODO.align/58-remaining-models.md
109
+ - TODO.align/59-wire-new-models-translator.md
110
+ - TODO.align/60-docs-and-final-verification.md
86
111
  - TODO.align/README.md
87
112
  - TODO.align/README.round10.md
88
113
  - TODO.align/README.round11.md
@@ -126,9 +151,13 @@ files:
126
151
  - lib/chemicalml/cml/base/abundance.rb
127
152
  - lib/chemicalml/cml/base/action.rb
128
153
  - lib/chemicalml/cml/base/action_list.rb
154
+ - lib/chemicalml/cml/base/alternative.rb
129
155
  - lib/chemicalml/cml/base/amount.rb
130
156
  - lib/chemicalml/cml/base/angle.rb
157
+ - lib/chemicalml/cml/base/annotation.rb
131
158
  - lib/chemicalml/cml/base/any_cml.rb
159
+ - lib/chemicalml/cml/base/appinfo.rb
160
+ - lib/chemicalml/cml/base/arg.rb
132
161
  - lib/chemicalml/cml/base/array.rb
133
162
  - lib/chemicalml/cml/base/array_list.rb
134
163
  - lib/chemicalml/cml/base/atom.rb
@@ -149,6 +178,7 @@ files:
149
178
  - lib/chemicalml/cml/base/bond_type_list.rb
150
179
  - lib/chemicalml/cml/base/cell_parameter.rb
151
180
  - lib/chemicalml/cml/base/cml_module.rb
181
+ - lib/chemicalml/cml/base/complex_object.rb
152
182
  - lib/chemicalml/cml/base/condition_list.rb
153
183
  - lib/chemicalml/cml/base/crystal.rb
154
184
  - lib/chemicalml/cml/base/definition.rb
@@ -160,11 +190,17 @@ files:
160
190
  - lib/chemicalml/cml/base/documentation.rb
161
191
  - lib/chemicalml/cml/base/eigen.rb
162
192
  - lib/chemicalml/cml/base/electron.rb
193
+ - lib/chemicalml/cml/base/enumeration.rb
194
+ - lib/chemicalml/cml/base/expression.rb
195
+ - lib/chemicalml/cml/base/float.rb
196
+ - lib/chemicalml/cml/base/float_array.rb
163
197
  - lib/chemicalml/cml/base/formula.rb
164
198
  - lib/chemicalml/cml/base/fragment.rb
165
199
  - lib/chemicalml/cml/base/fragment_list.rb
166
200
  - lib/chemicalml/cml/base/gradient.rb
167
201
  - lib/chemicalml/cml/base/identifier.rb
202
+ - lib/chemicalml/cml/base/integer.rb
203
+ - lib/chemicalml/cml/base/integer_array.rb
168
204
  - lib/chemicalml/cml/base/isotope.rb
169
205
  - lib/chemicalml/cml/base/isotope_list.rb
170
206
  - lib/chemicalml/cml/base/join.rb
@@ -188,6 +224,7 @@ files:
188
224
  - lib/chemicalml/cml/base/name.rb
189
225
  - lib/chemicalml/cml/base/object.rb
190
226
  - lib/chemicalml/cml/base/observation.rb
227
+ - lib/chemicalml/cml/base/operator.rb
191
228
  - lib/chemicalml/cml/base/parameter.rb
192
229
  - lib/chemicalml/cml/base/parameter_list.rb
193
230
  - lib/chemicalml/cml/base/particle.rb
@@ -213,6 +250,7 @@ files:
213
250
  - lib/chemicalml/cml/base/reaction_step_list.rb
214
251
  - lib/chemicalml/cml/base/reactive_centre.rb
215
252
  - lib/chemicalml/cml/base/region.rb
253
+ - lib/chemicalml/cml/base/related_entry.rb
216
254
  - lib/chemicalml/cml/base/sample.rb
217
255
  - lib/chemicalml/cml/base/scalar.rb
218
256
  - lib/chemicalml/cml/base/spectator.rb
@@ -222,6 +260,8 @@ files:
222
260
  - lib/chemicalml/cml/base/spectrum_list.rb
223
261
  - lib/chemicalml/cml/base/sphere3.rb
224
262
  - lib/chemicalml/cml/base/stmml.rb
263
+ - lib/chemicalml/cml/base/string.rb
264
+ - lib/chemicalml/cml/base/string_array.rb
225
265
  - lib/chemicalml/cml/base/substance.rb
226
266
  - lib/chemicalml/cml/base/substance_list.rb
227
267
  - lib/chemicalml/cml/base/symmetry.rb
@@ -233,9 +273,11 @@ files:
233
273
  - lib/chemicalml/cml/base/table_header_cell.rb
234
274
  - lib/chemicalml/cml/base/table_row.rb
235
275
  - lib/chemicalml/cml/base/table_row_list.rb
276
+ - lib/chemicalml/cml/base/tcell.rb
236
277
  - lib/chemicalml/cml/base/torsion.rb
237
278
  - lib/chemicalml/cml/base/transform3.rb
238
279
  - lib/chemicalml/cml/base/transition_state.rb
280
+ - lib/chemicalml/cml/base/trow.rb
239
281
  - lib/chemicalml/cml/base/unit.rb
240
282
  - lib/chemicalml/cml/base/unit_list.rb
241
283
  - lib/chemicalml/cml/base/unit_type.rb
@@ -244,16 +286,19 @@ files:
244
286
  - lib/chemicalml/cml/base/xaxis.rb
245
287
  - lib/chemicalml/cml/base/yaxis.rb
246
288
  - lib/chemicalml/cml/base/z_matrix.rb
247
- - lib/chemicalml/cml/child_mappings.rb
248
289
  - lib/chemicalml/cml/elements.rb
249
290
  - lib/chemicalml/cml/namespace.rb
250
291
  - lib/chemicalml/cml/role.rb
251
292
  - lib/chemicalml/cml/role/abundance.rb
252
293
  - lib/chemicalml/cml/role/action.rb
253
294
  - lib/chemicalml/cml/role/action_list.rb
295
+ - lib/chemicalml/cml/role/alternative.rb
254
296
  - lib/chemicalml/cml/role/amount.rb
255
297
  - lib/chemicalml/cml/role/angle.rb
298
+ - lib/chemicalml/cml/role/annotation.rb
256
299
  - lib/chemicalml/cml/role/any_cml.rb
300
+ - lib/chemicalml/cml/role/appinfo.rb
301
+ - lib/chemicalml/cml/role/arg.rb
257
302
  - lib/chemicalml/cml/role/array.rb
258
303
  - lib/chemicalml/cml/role/array_list.rb
259
304
  - lib/chemicalml/cml/role/atom.rb
@@ -274,6 +319,7 @@ files:
274
319
  - lib/chemicalml/cml/role/bond_type_list.rb
275
320
  - lib/chemicalml/cml/role/cell_parameter.rb
276
321
  - lib/chemicalml/cml/role/cml_module.rb
322
+ - lib/chemicalml/cml/role/complex_object.rb
277
323
  - lib/chemicalml/cml/role/condition_list.rb
278
324
  - lib/chemicalml/cml/role/crystal.rb
279
325
  - lib/chemicalml/cml/role/definition.rb
@@ -285,11 +331,17 @@ files:
285
331
  - lib/chemicalml/cml/role/documentation.rb
286
332
  - lib/chemicalml/cml/role/eigen.rb
287
333
  - lib/chemicalml/cml/role/electron.rb
334
+ - lib/chemicalml/cml/role/enumeration.rb
335
+ - lib/chemicalml/cml/role/expression.rb
336
+ - lib/chemicalml/cml/role/float.rb
337
+ - lib/chemicalml/cml/role/float_array.rb
288
338
  - lib/chemicalml/cml/role/formula.rb
289
339
  - lib/chemicalml/cml/role/fragment.rb
290
340
  - lib/chemicalml/cml/role/fragment_list.rb
291
341
  - lib/chemicalml/cml/role/gradient.rb
292
342
  - lib/chemicalml/cml/role/identifier.rb
343
+ - lib/chemicalml/cml/role/integer.rb
344
+ - lib/chemicalml/cml/role/integer_array.rb
293
345
  - lib/chemicalml/cml/role/isotope.rb
294
346
  - lib/chemicalml/cml/role/isotope_list.rb
295
347
  - lib/chemicalml/cml/role/join.rb
@@ -313,6 +365,7 @@ files:
313
365
  - lib/chemicalml/cml/role/name.rb
314
366
  - lib/chemicalml/cml/role/object.rb
315
367
  - lib/chemicalml/cml/role/observation.rb
368
+ - lib/chemicalml/cml/role/operator.rb
316
369
  - lib/chemicalml/cml/role/parameter.rb
317
370
  - lib/chemicalml/cml/role/parameter_list.rb
318
371
  - lib/chemicalml/cml/role/particle.rb
@@ -338,6 +391,7 @@ files:
338
391
  - lib/chemicalml/cml/role/reaction_step_list.rb
339
392
  - lib/chemicalml/cml/role/reactive_centre.rb
340
393
  - lib/chemicalml/cml/role/region.rb
394
+ - lib/chemicalml/cml/role/related_entry.rb
341
395
  - lib/chemicalml/cml/role/sample.rb
342
396
  - lib/chemicalml/cml/role/scalar.rb
343
397
  - lib/chemicalml/cml/role/spectator.rb
@@ -347,6 +401,8 @@ files:
347
401
  - lib/chemicalml/cml/role/spectrum_list.rb
348
402
  - lib/chemicalml/cml/role/sphere3.rb
349
403
  - lib/chemicalml/cml/role/stmml.rb
404
+ - lib/chemicalml/cml/role/string.rb
405
+ - lib/chemicalml/cml/role/string_array.rb
350
406
  - lib/chemicalml/cml/role/substance.rb
351
407
  - lib/chemicalml/cml/role/substance_list.rb
352
408
  - lib/chemicalml/cml/role/symmetry.rb
@@ -358,9 +414,11 @@ files:
358
414
  - lib/chemicalml/cml/role/table_header_cell.rb
359
415
  - lib/chemicalml/cml/role/table_row.rb
360
416
  - lib/chemicalml/cml/role/table_row_list.rb
417
+ - lib/chemicalml/cml/role/tcell.rb
361
418
  - lib/chemicalml/cml/role/torsion.rb
362
419
  - lib/chemicalml/cml/role/transform3.rb
363
420
  - lib/chemicalml/cml/role/transition_state.rb
421
+ - lib/chemicalml/cml/role/trow.rb
364
422
  - lib/chemicalml/cml/role/unit.rb
365
423
  - lib/chemicalml/cml/role/unit_list.rb
366
424
  - lib/chemicalml/cml/role/unit_type.rb
@@ -373,9 +431,13 @@ files:
373
431
  - lib/chemicalml/cml/schema24/abundance.rb
374
432
  - lib/chemicalml/cml/schema24/action.rb
375
433
  - lib/chemicalml/cml/schema24/action_list.rb
434
+ - lib/chemicalml/cml/schema24/alternative.rb
376
435
  - lib/chemicalml/cml/schema24/amount.rb
377
436
  - lib/chemicalml/cml/schema24/angle.rb
437
+ - lib/chemicalml/cml/schema24/annotation.rb
378
438
  - lib/chemicalml/cml/schema24/any_cml.rb
439
+ - lib/chemicalml/cml/schema24/appinfo.rb
440
+ - lib/chemicalml/cml/schema24/arg.rb
379
441
  - lib/chemicalml/cml/schema24/array.rb
380
442
  - lib/chemicalml/cml/schema24/array_list.rb
381
443
  - lib/chemicalml/cml/schema24/atom.rb
@@ -395,6 +457,8 @@ files:
395
457
  - lib/chemicalml/cml/schema24/bond_type.rb
396
458
  - lib/chemicalml/cml/schema24/bond_type_list.rb
397
459
  - lib/chemicalml/cml/schema24/cell_parameter.rb
460
+ - lib/chemicalml/cml/schema24/cml_module.rb
461
+ - lib/chemicalml/cml/schema24/complex_object.rb
398
462
  - lib/chemicalml/cml/schema24/condition_list.rb
399
463
  - lib/chemicalml/cml/schema24/configuration.rb
400
464
  - lib/chemicalml/cml/schema24/context.rb
@@ -408,11 +472,17 @@ files:
408
472
  - lib/chemicalml/cml/schema24/documentation.rb
409
473
  - lib/chemicalml/cml/schema24/eigen.rb
410
474
  - lib/chemicalml/cml/schema24/electron.rb
475
+ - lib/chemicalml/cml/schema24/enumeration.rb
476
+ - lib/chemicalml/cml/schema24/expression.rb
477
+ - lib/chemicalml/cml/schema24/float.rb
478
+ - lib/chemicalml/cml/schema24/float_array.rb
411
479
  - lib/chemicalml/cml/schema24/formula.rb
412
480
  - lib/chemicalml/cml/schema24/fragment.rb
413
481
  - lib/chemicalml/cml/schema24/fragment_list.rb
414
482
  - lib/chemicalml/cml/schema24/gradient.rb
415
483
  - lib/chemicalml/cml/schema24/identifier.rb
484
+ - lib/chemicalml/cml/schema24/integer.rb
485
+ - lib/chemicalml/cml/schema24/integer_array.rb
416
486
  - lib/chemicalml/cml/schema24/isotope.rb
417
487
  - lib/chemicalml/cml/schema24/isotope_list.rb
418
488
  - lib/chemicalml/cml/schema24/join.rb
@@ -436,6 +506,7 @@ files:
436
506
  - lib/chemicalml/cml/schema24/name.rb
437
507
  - lib/chemicalml/cml/schema24/object.rb
438
508
  - lib/chemicalml/cml/schema24/observation.rb
509
+ - lib/chemicalml/cml/schema24/operator.rb
439
510
  - lib/chemicalml/cml/schema24/parameter.rb
440
511
  - lib/chemicalml/cml/schema24/parameter_list.rb
441
512
  - lib/chemicalml/cml/schema24/particle.rb
@@ -461,6 +532,7 @@ files:
461
532
  - lib/chemicalml/cml/schema24/reaction_step_list.rb
462
533
  - lib/chemicalml/cml/schema24/reactive_centre.rb
463
534
  - lib/chemicalml/cml/schema24/region.rb
535
+ - lib/chemicalml/cml/schema24/related_entry.rb
464
536
  - lib/chemicalml/cml/schema24/sample.rb
465
537
  - lib/chemicalml/cml/schema24/scalar.rb
466
538
  - lib/chemicalml/cml/schema24/spectator.rb
@@ -470,6 +542,8 @@ files:
470
542
  - lib/chemicalml/cml/schema24/spectrum_list.rb
471
543
  - lib/chemicalml/cml/schema24/sphere3.rb
472
544
  - lib/chemicalml/cml/schema24/stmml.rb
545
+ - lib/chemicalml/cml/schema24/string.rb
546
+ - lib/chemicalml/cml/schema24/string_array.rb
473
547
  - lib/chemicalml/cml/schema24/substance.rb
474
548
  - lib/chemicalml/cml/schema24/substance_list.rb
475
549
  - lib/chemicalml/cml/schema24/symmetry.rb
@@ -481,9 +555,11 @@ files:
481
555
  - lib/chemicalml/cml/schema24/table_header_cell.rb
482
556
  - lib/chemicalml/cml/schema24/table_row.rb
483
557
  - lib/chemicalml/cml/schema24/table_row_list.rb
558
+ - lib/chemicalml/cml/schema24/tcell.rb
484
559
  - lib/chemicalml/cml/schema24/torsion.rb
485
560
  - lib/chemicalml/cml/schema24/transform3.rb
486
561
  - lib/chemicalml/cml/schema24/transition_state.rb
562
+ - lib/chemicalml/cml/schema24/trow.rb
487
563
  - lib/chemicalml/cml/schema24/unit.rb
488
564
  - lib/chemicalml/cml/schema24/unit_list.rb
489
565
  - lib/chemicalml/cml/schema24/unit_type.rb
@@ -616,8 +692,6 @@ files:
616
692
  - lib/chemicalml/cml/schema3/xaxis.rb
617
693
  - lib/chemicalml/cml/schema3/yaxis.rb
618
694
  - lib/chemicalml/cml/schema3/z_matrix.rb
619
- - lib/chemicalml/cml/translator.rb
620
- - lib/chemicalml/cml/translator/value_translations.rb
621
695
  - lib/chemicalml/cml/visitable.rb
622
696
  - lib/chemicalml/cml/wire_class_registry.rb
623
697
  - lib/chemicalml/context_configuration.rb
@@ -625,35 +699,79 @@ files:
625
699
  - lib/chemicalml/convention/base.rb
626
700
  - lib/chemicalml/convention/compchem.rb
627
701
  - lib/chemicalml/convention/compchem/constraints.rb
702
+ - lib/chemicalml/convention/compchem/constraints/array_rules.rb
703
+ - lib/chemicalml/convention/compchem/constraints/calculation_requires_finalization.rb
628
704
  - lib/chemicalml/convention/compchem/constraints/compchem_module_must_contain_job_list.rb
705
+ - lib/chemicalml/convention/compchem/constraints/environment_at_most_one_property_list.rb
706
+ - lib/chemicalml/convention/compchem/constraints/environment_must_not_contain_parameter.rb
707
+ - lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_molecule.rb
708
+ - lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_property_list.rb
709
+ - lib/chemicalml/convention/compchem/constraints/finalization_must_not_contain_parameter.rb
710
+ - lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_molecule.rb
711
+ - lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_parameter_list.rb
712
+ - lib/chemicalml/convention/compchem/constraints/initialization_must_not_contain_property.rb
713
+ - lib/chemicalml/convention/compchem/constraints/job_list_module_must_have_id.rb
714
+ - lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_environment.rb
715
+ - lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_finalization.rb
716
+ - lib/chemicalml/convention/compchem/constraints/job_module_must_have_id.rb
629
717
  - lib/chemicalml/convention/compchem/constraints/job_must_contain_initialization.rb
718
+ - lib/chemicalml/convention/compchem/constraints/matrix_rules.rb
719
+ - lib/chemicalml/convention/compchem/constraints/module_predicates.rb
720
+ - lib/chemicalml/convention/compchem/constraints/scalar_units.rb
630
721
  - lib/chemicalml/convention/constraint.rb
722
+ - lib/chemicalml/convention/coordinator.rb
723
+ - lib/chemicalml/convention/detection.rb
631
724
  - lib/chemicalml/convention/dictionary.rb
632
725
  - lib/chemicalml/convention/dictionary/constraints.rb
726
+ - lib/chemicalml/convention/dictionary/constraints/dictionary_must_have_namespace.rb
727
+ - lib/chemicalml/convention/dictionary/constraints/dictionary_namespace_should_end_with_slash_or_hash.rb
728
+ - lib/chemicalml/convention/dictionary/constraints/entry_id_must_match_pattern.rb
633
729
  - lib/chemicalml/convention/dictionary/constraints/entry_ids_unique_within_dictionary.rb
730
+ - lib/chemicalml/convention/dictionary/constraints/entry_must_contain_definition.rb
634
731
  - lib/chemicalml/convention/dictionary/constraints/entry_must_have_id_and_term.rb
732
+ - lib/chemicalml/convention/dictionary/constraints/entry_must_have_unit_type.rb
733
+ - lib/chemicalml/convention/dictionary/constraints/entry_units_co_constraints.rb
635
734
  - lib/chemicalml/convention/molecular.rb
636
735
  - lib/chemicalml/convention/molecular/constraints.rb
736
+ - lib/chemicalml/convention/molecular/constraints/atom_array_must_be_child_of_molecule_or_formula.rb
637
737
  - lib/chemicalml/convention/molecular/constraints/atom_array_must_contain_atoms.rb
638
738
  - lib/chemicalml/convention/molecular/constraints/atom_coordinates_must_be_paired.rb
639
739
  - lib/chemicalml/convention/molecular/constraints/atom_id_must_match_pattern.rb
640
740
  - lib/chemicalml/convention/molecular/constraints/atom_ids_unique_within_molecule.rb
641
741
  - lib/chemicalml/convention/molecular/constraints/atom_must_have_element_type.rb
642
742
  - lib/chemicalml/convention/molecular/constraints/atom_must_have_id.rb
743
+ - lib/chemicalml/convention/molecular/constraints/bond_array_must_be_child_of_molecule.rb
744
+ - lib/chemicalml/convention/molecular/constraints/bond_ids_unique_within_molecule.rb
643
745
  - lib/chemicalml/convention/molecular/constraints/bond_must_have_atom_refs2.rb
644
746
  - lib/chemicalml/convention/molecular/constraints/bond_must_have_order.rb
645
747
  - lib/chemicalml/convention/molecular/constraints/bond_must_reference_atoms_in_same_molecule.rb
748
+ - lib/chemicalml/convention/molecular/constraints/bond_order_other_must_have_dict_ref.rb
646
749
  - lib/chemicalml/convention/molecular/constraints/bond_order_should_not_be_numeric.rb
750
+ - lib/chemicalml/convention/molecular/constraints/bond_stereo_cis_trans_must_have_atom_refs4.rb
751
+ - lib/chemicalml/convention/molecular/constraints/bond_stereo_other_must_have_dict_ref.rb
752
+ - lib/chemicalml/convention/molecular/constraints/bond_stereo_wedge_hash_must_have_atom_refs2.rb
753
+ - lib/chemicalml/convention/molecular/constraints/molecule_atom_array_mutually_exclusive_with_children.rb
754
+ - lib/chemicalml/convention/molecular/constraints/molecule_bond_array_mutually_exclusive_with_children.rb
755
+ - lib/chemicalml/convention/molecular/constraints/molecule_count_must_not_appear_on_top_level.rb
647
756
  - lib/chemicalml/convention/molecular/constraints/molecule_must_have_id.rb
648
757
  - lib/chemicalml/convention/molecular/constraints/property_must_have_dict_ref.rb
649
758
  - lib/chemicalml/convention/molecular/constraints/scalar_must_have_data_type.rb
650
759
  - lib/chemicalml/convention/registry.rb
651
760
  - lib/chemicalml/convention/unit_dictionary.rb
652
761
  - lib/chemicalml/convention/unit_dictionary/constraints.rb
762
+ - lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_contain_at_least_one_unit.rb
763
+ - lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_have_namespace.rb
764
+ - lib/chemicalml/convention/unit_dictionary/constraints/unit_must_contain_definition.rb
765
+ - lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_id.rb
653
766
  - lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_symbol_and_unit_type.rb
654
767
  - lib/chemicalml/convention/unit_type_dictionary.rb
655
768
  - lib/chemicalml/convention/unit_type_dictionary/constraints.rb
769
+ - lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_id_must_match_pattern.rb
770
+ - lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_contain_at_least_one_unit_type.rb
771
+ - lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_have_namespace.rb
772
+ - lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_contain_definition.rb
656
773
  - lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_have_id_and_name.rb
774
+ - lib/chemicalml/convention/validation_report.rb
657
775
  - lib/chemicalml/convention/violation.rb
658
776
  - lib/chemicalml/dictionary.rb
659
777
  - lib/chemicalml/dictionary/entry.rb
@@ -663,35 +781,6 @@ files:
663
781
  - lib/chemicalml/dictionary/model.rb
664
782
  - lib/chemicalml/dictionary/registry.rb
665
783
  - lib/chemicalml/errors.rb
666
- - lib/chemicalml/model.rb
667
- - lib/chemicalml/model/atom.rb
668
- - lib/chemicalml/model/atom_parity.rb
669
- - lib/chemicalml/model/bond.rb
670
- - lib/chemicalml/model/bond_stereo.rb
671
- - lib/chemicalml/model/cml_array.rb
672
- - lib/chemicalml/model/cml_module.rb
673
- - lib/chemicalml/model/document.rb
674
- - lib/chemicalml/model/formula.rb
675
- - lib/chemicalml/model/identifier.rb
676
- - lib/chemicalml/model/label.rb
677
- - lib/chemicalml/model/matrix.rb
678
- - lib/chemicalml/model/metadata.rb
679
- - lib/chemicalml/model/metadata_list.rb
680
- - lib/chemicalml/model/molecule.rb
681
- - lib/chemicalml/model/name.rb
682
- - lib/chemicalml/model/node.rb
683
- - lib/chemicalml/model/parameter.rb
684
- - lib/chemicalml/model/parameter_list.rb
685
- - lib/chemicalml/model/product.rb
686
- - lib/chemicalml/model/product_list.rb
687
- - lib/chemicalml/model/property.rb
688
- - lib/chemicalml/model/property_list.rb
689
- - lib/chemicalml/model/reactant.rb
690
- - lib/chemicalml/model/reactant_list.rb
691
- - lib/chemicalml/model/reaction.rb
692
- - lib/chemicalml/model/reaction_list.rb
693
- - lib/chemicalml/model/scalar.rb
694
- - lib/chemicalml/model/substance.rb
695
784
  - lib/chemicalml/schema.rb
696
785
  - lib/chemicalml/schema/definition.rb
697
786
  - lib/chemicalml/schema/registry.rb
@@ -1,168 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Chemicalml
4
- module Cml
5
- # Defines which child elements each CML container can hold.
6
- # Adding a new parent-child relationship = adding one entry
7
- # here. Used by a script to update the Base mixins.
8
- #
9
- # Format: parent_class_name => [[child_xml_name, child_ruby_attr, child_type_symbol], ...]
10
- module ChildMappings
11
- MAPPINGS = {
12
- # Molecule — already has names, identifiers, formulas, properties,
13
- # labels, atom_array, bond_array, molecules. Add more.
14
- "Molecule" => [
15
- ["crystal", "crystal", :crystal],
16
- ["spectrum", "spectra", :spectrum],
17
- ["propertyList", "property_lists", :propertyList],
18
- ],
19
- # Crystal — holds scalar lattice parameters
20
- "Crystal" => [
21
- ["scalar", "scalars", :scalar],
22
- ["lattice", "lattice", :lattice],
23
- ["symmetry", "symmetry", :symmetry],
24
- ],
25
- # Lattice — holds latticeVector children
26
- "Lattice" => [
27
- ["latticeVector", "lattice_vectors", :latticeVector],
28
- ],
29
- # Spectrum — holds axes and peaks
30
- "Spectrum" => [
31
- ["xaxis", "xaxis", :xaxis],
32
- ["yaxis", "yaxis", :yaxis],
33
- ["peakList", "peak_list", :peakList],
34
- ["conditionList", "condition_list", :conditionList],
35
- ],
36
- # PeakList — holds peaks
37
- "PeakList" => [
38
- ["peak", "peaks", :peak],
39
- ["peakGroup", "peak_groups", :peakGroup],
40
- ],
41
- # PeakGroup — holds peaks
42
- "PeakGroup" => [
43
- ["peak", "peaks", :peak],
44
- ],
45
- # Reaction — already has reactantList, productList. Add more.
46
- "Reaction" => [
47
- ["spectatorList", "spectator_list", :spectatorList],
48
- ["conditionList", "condition_list", :conditionList],
49
- ["metadataList", "metadata_lists", :metadataList],
50
- ],
51
- # ReactionScheme
52
- "ReactionScheme" => [
53
- ["reactionStepList", "reaction_step_lists", :reactionStepList],
54
- ["reaction", "reactions", :reaction],
55
- ],
56
- # ReactionStepList
57
- "ReactionStepList" => [
58
- ["reactionStep", "reaction_steps", :reactionStep],
59
- ],
60
- # ReactionStep
61
- "ReactionStep" => [
62
- ["reaction", "reaction", :reaction],
63
- ["reactantList", "reactant_list", :reactantList],
64
- ["productList", "product_list", :productList],
65
- ],
66
- # ConditionList
67
- "ConditionList" => [
68
- ["scalar", "scalars", :scalar],
69
- ["metadata", "metadata", :metadata],
70
- ],
71
- # FragmentList
72
- "FragmentList" => [
73
- ["fragment", "fragments", :fragment],
74
- ],
75
- # Fragment
76
- "Fragment" => [
77
- ["molecule", "molecule", :molecule],
78
- ["atomArray", "atom_array", :atomArray],
79
- ["bondArray", "bond_array", :bondArray],
80
- ],
81
- # IsotopeList
82
- "IsotopeList" => [
83
- ["isotope", "isotopes", :isotope],
84
- ],
85
- # BandList
86
- "BandList" => [
87
- ["band", "bands", :band],
88
- ],
89
- # KpointList
90
- "KpointList" => [
91
- ["kpoint", "kpoints", :kpoint],
92
- ],
93
- # PotentialList
94
- "PotentialList" => [
95
- ["potential", "potentials", :potential],
96
- ],
97
- # Table
98
- "Table" => [
99
- ["tableContent", "table_content", :tableContent],
100
- ["tableHeader", "table_header", :tableHeader],
101
- ],
102
- # TableContent
103
- "TableContent" => [
104
- ["tableRow", "table_rows", :tableRow],
105
- ["tableRowList", "table_row_lists", :tableRowList],
106
- ],
107
- # TableHeader
108
- "TableHeader" => [
109
- ["tableHeaderCell", "table_header_cells", :tableHeaderCell],
110
- ],
111
- # TableRow
112
- "TableRow" => [
113
- ["tableCell", "table_cells", :tableCell],
114
- ],
115
- # TableRowList
116
- "TableRowList" => [
117
- ["tableRow", "table_rows", :tableRow],
118
- ],
119
- # SpectatorList
120
- "SpectatorList" => [
121
- ["spectator", "spectators", :spectator],
122
- ],
123
- # MoleculeList
124
- "MoleculeList" => [
125
- ["molecule", "molecules", :molecule],
126
- ],
127
- # SubstanceList
128
- "SubstanceList" => [
129
- ["substance", "substances", :substance],
130
- ],
131
- # ActionList
132
- "ActionList" => [
133
- ["action", "actions", :action],
134
- ],
135
- # AtomTypeList
136
- "AtomTypeList" => [
137
- ["atomType", "atom_types", :atomType],
138
- ],
139
- # BondTypeList
140
- "BondTypeList" => [
141
- ["bondType", "bond_types", :bondType],
142
- ],
143
- # Mechanism
144
- "Mechanism" => [
145
- ["mechanismComponent", "mechanism_components", :mechanismComponent],
146
- ],
147
- # SpectrumList
148
- "SpectrumList" => [
149
- ["spectrum", "spectra", :spectrum],
150
- ],
151
- # SpectrumData
152
- "SpectrumData" => [
153
- ["xaxis", "xaxis", :xaxis],
154
- ["yaxis", "yaxis", :yaxis],
155
- ],
156
- # BasisSet
157
- "BasisSet" => [
158
- ["atomicBasisFunction", "atomic_basis_functions", :atomicBasisFunction],
159
- ],
160
- # System
161
- "System" => [
162
- ["atomArray", "atom_array", :atomArray],
163
- ["molecule", "molecules", :molecule],
164
- ],
165
- }.freeze
166
- end
167
- end
168
- end