chemicalml 0.1.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 (740) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +63 -0
  3. data/.github/workflows/links.yml +99 -0
  4. data/.github/workflows/opal.yml +34 -0
  5. data/.github/workflows/performance.yml +25 -0
  6. data/.github/workflows/rake.yml +19 -0
  7. data/.github/workflows/release.yml +34 -0
  8. data/CHANGELOG.md +52 -12
  9. data/CLAUDE.md +48 -41
  10. data/Gemfile +2 -1
  11. data/Rakefile +9 -4
  12. data/TODO.align/18-wire-class-registry.md +46 -0
  13. data/TODO.align/19-schema-aware-translator.md +33 -0
  14. data/TODO.align/20-missing-translator-rules.md +44 -0
  15. data/TODO.align/21-encapsulate-translator.md +33 -0
  16. data/TODO.align/22-dry-role-modules.md +32 -0
  17. data/TODO.align/23-final-spec-lint.md +25 -0
  18. data/TODO.align/24-autoload-wire-classes.md +84 -0
  19. data/TODO.align/25-value-container-schema-awareness.md +44 -0
  20. data/TODO.align/26-remove-dead-code.md +16 -0
  21. data/TODO.align/27-final-spec-lint.md +26 -0
  22. data/TODO.align/28-stereo-model.md +40 -0
  23. data/TODO.align/29-stereo-wire-children.md +30 -0
  24. data/TODO.align/30-stereo-translator.md +32 -0
  25. data/TODO.align/31-final-spec-lint.md +20 -0
  26. data/TODO.align/32-polymorphic-translator.md +43 -0
  27. data/TODO.align/33-polymorphic-parse.md +43 -0
  28. data/TODO.align/34-polymorphic-specs.md +16 -0
  29. data/TODO.align/35-final-spec-lint.md +10 -0
  30. data/TODO.align/36-molecular-convention-coverage.md +46 -0
  31. data/TODO.align/37-compchem-convention-coverage.md +55 -0
  32. data/TODO.align/38-dictionary-convention-coverage.md +34 -0
  33. data/TODO.align/39-unit-dictionary-convention-coverage.md +33 -0
  34. data/TODO.align/40-unit-type-dictionary-convention-coverage.md +28 -0
  35. data/TODO.align/41-expand-canonical-model-layer.md +43 -0
  36. data/TODO.align/42-translator-wire-new-models.md +31 -0
  37. data/TODO.align/43-dictionary-model-no-to-h.md +39 -0
  38. data/TODO.align/44-schema3-only-and-schema24-module.md +44 -0
  39. data/TODO.align/45-documentation-and-final-verification.md +23 -0
  40. data/TODO.align/46-lattice-vector-content.md +24 -0
  41. data/TODO.align/47-molecule-crystal-spectra-property-lists.md +23 -0
  42. data/TODO.align/48-model-list-and-module-lists.md +21 -0
  43. data/TODO.align/49-more-chemistry-models.md +34 -0
  44. data/TODO.align/50-validation-report.md +29 -0
  45. data/TODO.align/51-convention-auto-detection.md +30 -0
  46. data/TODO.align/52-schema24-legacy-elements.md +28 -0
  47. data/TODO.align/53-round-trip-integration-specs.md +30 -0
  48. data/TODO.align/54-document-versioned-parser-shim.md +38 -0
  49. data/TODO.align/55-molecule-missing-attributes.md +20 -0
  50. data/TODO.align/56-geometry-models.md +24 -0
  51. data/TODO.align/57-compchem-models.md +26 -0
  52. data/TODO.align/58-remaining-models.md +24 -0
  53. data/TODO.align/59-wire-new-models-translator.md +18 -0
  54. data/TODO.align/60-docs-and-final-verification.md +19 -0
  55. data/TODO.align/README.round10.md +30 -0
  56. data/TODO.align/README.round11.md +50 -0
  57. data/TODO.align/README.round12.md +73 -0
  58. data/TODO.align/README.round13.md +59 -0
  59. data/TODO.align/README.round14.md +48 -0
  60. data/TODO.align/README.round15.md +86 -0
  61. data/TODO.align/README.round16.md +46 -0
  62. data/TODO.align/README.round3.md +27 -0
  63. data/TODO.align/README.round4.md +18 -0
  64. data/TODO.align/README.round5.md +20 -0
  65. data/TODO.align/README.round6.md +27 -0
  66. data/TODO.align/README.round7.md +43 -0
  67. data/TODO.align/README.round8.md +24 -0
  68. data/TODO.align/README.round9.md +50 -0
  69. data/data/dictionaries/_index.yaml +9 -1
  70. data/data/dictionaries/cif.yaml +155 -0
  71. data/data/dictionaries/cml.yaml +172 -0
  72. data/data/dictionaries/cml_formula.yaml +63 -0
  73. data/data/dictionaries/cml_name.yaml +84 -0
  74. data/data/dictionaries/unit_non_si.yaml +30 -0
  75. data/data/dictionaries/unit_type.yaml +12 -0
  76. data/lib/chemicalml/cml/aliases.rb +20 -0
  77. data/lib/chemicalml/cml/base/abundance.rb +34 -0
  78. data/lib/chemicalml/cml/base/action.rb +50 -0
  79. data/lib/chemicalml/cml/base/action_list.rb +51 -0
  80. data/lib/chemicalml/cml/base/alternative.rb +28 -0
  81. data/lib/chemicalml/cml/base/amount.rb +30 -0
  82. data/lib/chemicalml/cml/base/angle.rb +44 -0
  83. data/lib/chemicalml/cml/base/annotation.rb +30 -0
  84. data/lib/chemicalml/cml/base/any_cml.rb +28 -0
  85. data/lib/chemicalml/cml/base/appinfo.rb +32 -0
  86. data/lib/chemicalml/cml/base/arg.rb +46 -0
  87. data/lib/chemicalml/cml/base/array.rb +23 -1
  88. data/lib/chemicalml/cml/base/array_list.rb +30 -0
  89. data/lib/chemicalml/cml/base/atom.rb +37 -1
  90. data/lib/chemicalml/cml/base/atom_array.rb +39 -1
  91. data/lib/chemicalml/cml/base/atom_parity.rb +9 -1
  92. data/lib/chemicalml/cml/base/atom_set.rb +30 -0
  93. data/lib/chemicalml/cml/base/atom_type.rb +36 -0
  94. data/lib/chemicalml/cml/base/atom_type_list.rb +33 -0
  95. data/lib/chemicalml/cml/base/atomic_basis_function.rb +44 -0
  96. data/lib/chemicalml/cml/base/band.rb +34 -0
  97. data/lib/chemicalml/cml/base/band_list.rb +31 -0
  98. data/lib/chemicalml/cml/base/basis_set.rb +35 -0
  99. data/lib/chemicalml/cml/base/bond.rb +11 -1
  100. data/lib/chemicalml/cml/base/bond_array.rb +17 -1
  101. data/lib/chemicalml/cml/base/bond_set.rb +30 -0
  102. data/lib/chemicalml/cml/base/bond_stereo.rb +11 -1
  103. data/lib/chemicalml/cml/base/bond_type.rb +34 -0
  104. data/lib/chemicalml/cml/base/bond_type_list.rb +33 -0
  105. data/lib/chemicalml/cml/base/cell_parameter.rb +38 -0
  106. data/lib/chemicalml/cml/base/cml_module.rb +1 -1
  107. data/lib/chemicalml/cml/base/complex_object.rb +30 -0
  108. data/lib/chemicalml/cml/base/condition_list.rb +37 -0
  109. data/lib/chemicalml/cml/base/crystal.rb +37 -0
  110. data/lib/chemicalml/cml/base/definition.rb +30 -0
  111. data/lib/chemicalml/cml/base/description.rb +32 -0
  112. data/lib/chemicalml/cml/base/dictionary.rb +7 -1
  113. data/lib/chemicalml/cml/base/dictionary_entry.rb +1 -1
  114. data/lib/chemicalml/cml/base/dimension.rb +42 -0
  115. data/lib/chemicalml/cml/base/document.rb +9 -1
  116. data/lib/chemicalml/cml/base/documentation.rb +30 -0
  117. data/lib/chemicalml/cml/base/eigen.rb +36 -0
  118. data/lib/chemicalml/cml/base/electron.rb +42 -0
  119. data/lib/chemicalml/cml/base/enumeration.rb +32 -0
  120. data/lib/chemicalml/cml/base/expression.rb +32 -0
  121. data/lib/chemicalml/cml/base/float.rb +40 -0
  122. data/lib/chemicalml/cml/base/float_array.rb +42 -0
  123. data/lib/chemicalml/cml/base/formula.rb +1 -1
  124. data/lib/chemicalml/cml/base/fragment.rb +41 -0
  125. data/lib/chemicalml/cml/base/fragment_list.rb +35 -0
  126. data/lib/chemicalml/cml/base/gradient.rb +32 -0
  127. data/lib/chemicalml/cml/base/identifier.rb +9 -1
  128. data/lib/chemicalml/cml/base/integer.rb +40 -0
  129. data/lib/chemicalml/cml/base/integer_array.rb +42 -0
  130. data/lib/chemicalml/cml/base/isotope.rb +36 -0
  131. data/lib/chemicalml/cml/base/isotope_list.rb +33 -0
  132. data/lib/chemicalml/cml/base/join.rb +36 -0
  133. data/lib/chemicalml/cml/base/kpoint.rb +34 -0
  134. data/lib/chemicalml/cml/base/kpoint_list.rb +31 -0
  135. data/lib/chemicalml/cml/base/label.rb +3 -1
  136. data/lib/chemicalml/cml/base/lattice.rb +37 -0
  137. data/lib/chemicalml/cml/base/lattice_vector.rb +32 -0
  138. data/lib/chemicalml/cml/base/length.rb +42 -0
  139. data/lib/chemicalml/cml/base/line3.rb +36 -0
  140. data/lib/chemicalml/cml/base/link.rb +58 -0
  141. data/lib/chemicalml/cml/base/list.rb +3 -1
  142. data/lib/chemicalml/cml/base/map.rb +40 -0
  143. data/lib/chemicalml/cml/base/matrix.rb +13 -1
  144. data/lib/chemicalml/cml/base/mechanism.rb +31 -0
  145. data/lib/chemicalml/cml/base/mechanism_component.rb +30 -0
  146. data/lib/chemicalml/cml/base/metadata.rb +5 -1
  147. data/lib/chemicalml/cml/base/metadata_list.rb +7 -1
  148. data/lib/chemicalml/cml/base/molecule.rb +27 -1
  149. data/lib/chemicalml/cml/base/molecule_list.rb +33 -0
  150. data/lib/chemicalml/cml/base/name.rb +3 -1
  151. data/lib/chemicalml/cml/base/object.rb +34 -0
  152. data/lib/chemicalml/cml/base/observation.rb +32 -0
  153. data/lib/chemicalml/cml/base/operator.rb +32 -0
  154. data/lib/chemicalml/cml/base/parameter.rb +11 -1
  155. data/lib/chemicalml/cml/base/parameter_list.rb +7 -1
  156. data/lib/chemicalml/cml/base/particle.rb +36 -0
  157. data/lib/chemicalml/cml/base/peak.rb +70 -0
  158. data/lib/chemicalml/cml/base/peak_group.rb +69 -0
  159. data/lib/chemicalml/cml/base/peak_list.rb +35 -0
  160. data/lib/chemicalml/cml/base/peak_structure.rb +44 -0
  161. data/lib/chemicalml/cml/base/plane3.rb +32 -0
  162. data/lib/chemicalml/cml/base/point3.rb +32 -0
  163. data/lib/chemicalml/cml/base/potential.rb +30 -0
  164. data/lib/chemicalml/cml/base/potential_form.rb +32 -0
  165. data/lib/chemicalml/cml/base/potential_list.rb +31 -0
  166. data/lib/chemicalml/cml/base/product.rb +17 -1
  167. data/lib/chemicalml/cml/base/product_list.rb +15 -1
  168. data/lib/chemicalml/cml/base/property.rb +7 -1
  169. data/lib/chemicalml/cml/base/property_list.rb +7 -1
  170. data/lib/chemicalml/cml/base/reactant.rb +17 -1
  171. data/lib/chemicalml/cml/base/reactant_list.rb +15 -1
  172. data/lib/chemicalml/cml/base/reaction.rb +25 -1
  173. data/lib/chemicalml/cml/base/reaction_list.rb +13 -1
  174. data/lib/chemicalml/cml/base/reaction_scheme.rb +43 -0
  175. data/lib/chemicalml/cml/base/reaction_step.rb +41 -0
  176. data/lib/chemicalml/cml/base/reaction_step_list.rb +39 -0
  177. data/lib/chemicalml/cml/base/reactive_centre.rb +30 -0
  178. data/lib/chemicalml/cml/base/region.rb +36 -0
  179. data/lib/chemicalml/cml/base/related_entry.rb +26 -0
  180. data/lib/chemicalml/cml/base/sample.rb +32 -0
  181. data/lib/chemicalml/cml/base/scalar.rb +19 -1
  182. data/lib/chemicalml/cml/base/spectator.rb +30 -0
  183. data/lib/chemicalml/cml/base/spectator_list.rb +31 -0
  184. data/lib/chemicalml/cml/base/spectrum.rb +53 -0
  185. data/lib/chemicalml/cml/base/spectrum_data.rb +35 -0
  186. data/lib/chemicalml/cml/base/spectrum_list.rb +35 -0
  187. data/lib/chemicalml/cml/base/sphere3.rb +32 -0
  188. data/lib/chemicalml/cml/base/stmml.rb +28 -0
  189. data/lib/chemicalml/cml/base/string.rb +32 -0
  190. data/lib/chemicalml/cml/base/string_array.rb +40 -0
  191. data/lib/chemicalml/cml/base/substance.rb +13 -1
  192. data/lib/chemicalml/cml/base/substance_list.rb +37 -0
  193. data/lib/chemicalml/cml/base/symmetry.rb +36 -0
  194. data/lib/chemicalml/cml/base/system.rb +37 -0
  195. data/lib/chemicalml/cml/base/table.rb +43 -0
  196. data/lib/chemicalml/cml/base/table_cell.rb +30 -0
  197. data/lib/chemicalml/cml/base/table_content.rb +35 -0
  198. data/lib/chemicalml/cml/base/table_header.rb +31 -0
  199. data/lib/chemicalml/cml/base/table_header_cell.rb +40 -0
  200. data/lib/chemicalml/cml/base/table_row.rb +31 -0
  201. data/lib/chemicalml/cml/base/table_row_list.rb +31 -0
  202. data/lib/chemicalml/cml/base/tcell.rb +34 -0
  203. data/lib/chemicalml/cml/base/torsion.rb +44 -0
  204. data/lib/chemicalml/cml/base/transform3.rb +30 -0
  205. data/lib/chemicalml/cml/base/transition_state.rb +28 -0
  206. data/lib/chemicalml/cml/base/trow.rb +32 -0
  207. data/lib/chemicalml/cml/base/unit.rb +13 -1
  208. data/lib/chemicalml/cml/base/unit_list.rb +13 -1
  209. data/lib/chemicalml/cml/base/unit_type.rb +11 -1
  210. data/lib/chemicalml/cml/base/unit_type_list.rb +11 -1
  211. data/lib/chemicalml/cml/base/vector3.rb +32 -0
  212. data/lib/chemicalml/cml/base/xaxis.rb +38 -0
  213. data/lib/chemicalml/cml/base/yaxis.rb +38 -0
  214. data/lib/chemicalml/cml/base/z_matrix.rb +30 -0
  215. data/lib/chemicalml/cml/base.rb +102 -0
  216. data/lib/chemicalml/cml/elements.rb +166 -43
  217. data/lib/chemicalml/cml/role/abundance.rb +12 -0
  218. data/lib/chemicalml/cml/role/action.rb +12 -0
  219. data/lib/chemicalml/cml/role/action_list.rb +12 -0
  220. data/lib/chemicalml/cml/role/alternative.rb +10 -0
  221. data/lib/chemicalml/cml/role/amount.rb +12 -0
  222. data/lib/chemicalml/cml/role/angle.rb +12 -0
  223. data/lib/chemicalml/cml/role/annotation.rb +10 -0
  224. data/lib/chemicalml/cml/role/any_cml.rb +12 -0
  225. data/lib/chemicalml/cml/role/appinfo.rb +10 -0
  226. data/lib/chemicalml/cml/role/arg.rb +10 -0
  227. data/lib/chemicalml/cml/role/array_list.rb +12 -0
  228. data/lib/chemicalml/cml/role/atom_set.rb +12 -0
  229. data/lib/chemicalml/cml/role/atom_type.rb +12 -0
  230. data/lib/chemicalml/cml/role/atom_type_list.rb +12 -0
  231. data/lib/chemicalml/cml/role/atomic_basis_function.rb +12 -0
  232. data/lib/chemicalml/cml/role/band.rb +12 -0
  233. data/lib/chemicalml/cml/role/band_list.rb +12 -0
  234. data/lib/chemicalml/cml/role/basis_set.rb +12 -0
  235. data/lib/chemicalml/cml/role/bond_set.rb +12 -0
  236. data/lib/chemicalml/cml/role/bond_type.rb +12 -0
  237. data/lib/chemicalml/cml/role/bond_type_list.rb +12 -0
  238. data/lib/chemicalml/cml/role/cell_parameter.rb +12 -0
  239. data/lib/chemicalml/cml/role/cml_module.rb +2 -3
  240. data/lib/chemicalml/cml/role/complex_object.rb +10 -0
  241. data/lib/chemicalml/cml/role/condition_list.rb +12 -0
  242. data/lib/chemicalml/cml/role/crystal.rb +12 -0
  243. data/lib/chemicalml/cml/role/definition.rb +12 -0
  244. data/lib/chemicalml/cml/role/description.rb +12 -0
  245. data/lib/chemicalml/cml/role/dimension.rb +12 -0
  246. data/lib/chemicalml/cml/role/documentation.rb +12 -0
  247. data/lib/chemicalml/cml/role/eigen.rb +12 -0
  248. data/lib/chemicalml/cml/role/electron.rb +12 -0
  249. data/lib/chemicalml/cml/role/enumeration.rb +10 -0
  250. data/lib/chemicalml/cml/role/expression.rb +10 -0
  251. data/lib/chemicalml/cml/role/float.rb +10 -0
  252. data/lib/chemicalml/cml/role/float_array.rb +10 -0
  253. data/lib/chemicalml/cml/role/fragment.rb +12 -0
  254. data/lib/chemicalml/cml/role/fragment_list.rb +12 -0
  255. data/lib/chemicalml/cml/role/gradient.rb +12 -0
  256. data/lib/chemicalml/cml/role/integer.rb +10 -0
  257. data/lib/chemicalml/cml/role/integer_array.rb +10 -0
  258. data/lib/chemicalml/cml/role/isotope.rb +12 -0
  259. data/lib/chemicalml/cml/role/isotope_list.rb +12 -0
  260. data/lib/chemicalml/cml/role/join.rb +12 -0
  261. data/lib/chemicalml/cml/role/kpoint.rb +12 -0
  262. data/lib/chemicalml/cml/role/kpoint_list.rb +12 -0
  263. data/lib/chemicalml/cml/role/lattice.rb +12 -0
  264. data/lib/chemicalml/cml/role/lattice_vector.rb +12 -0
  265. data/lib/chemicalml/cml/role/length.rb +12 -0
  266. data/lib/chemicalml/cml/role/line3.rb +12 -0
  267. data/lib/chemicalml/cml/role/link.rb +12 -0
  268. data/lib/chemicalml/cml/role/map.rb +12 -0
  269. data/lib/chemicalml/cml/role/mechanism.rb +12 -0
  270. data/lib/chemicalml/cml/role/mechanism_component.rb +12 -0
  271. data/lib/chemicalml/cml/role/molecule_list.rb +12 -0
  272. data/lib/chemicalml/cml/role/object.rb +12 -0
  273. data/lib/chemicalml/cml/role/observation.rb +12 -0
  274. data/lib/chemicalml/cml/role/operator.rb +10 -0
  275. data/lib/chemicalml/cml/role/particle.rb +12 -0
  276. data/lib/chemicalml/cml/role/peak.rb +12 -0
  277. data/lib/chemicalml/cml/role/peak_group.rb +12 -0
  278. data/lib/chemicalml/cml/role/peak_list.rb +12 -0
  279. data/lib/chemicalml/cml/role/peak_structure.rb +12 -0
  280. data/lib/chemicalml/cml/role/plane3.rb +12 -0
  281. data/lib/chemicalml/cml/role/point3.rb +12 -0
  282. data/lib/chemicalml/cml/role/potential.rb +12 -0
  283. data/lib/chemicalml/cml/role/potential_form.rb +12 -0
  284. data/lib/chemicalml/cml/role/potential_list.rb +12 -0
  285. data/lib/chemicalml/cml/role/reaction_scheme.rb +12 -0
  286. data/lib/chemicalml/cml/role/reaction_step.rb +12 -0
  287. data/lib/chemicalml/cml/role/reaction_step_list.rb +12 -0
  288. data/lib/chemicalml/cml/role/reactive_centre.rb +12 -0
  289. data/lib/chemicalml/cml/role/region.rb +12 -0
  290. data/lib/chemicalml/cml/role/related_entry.rb +10 -0
  291. data/lib/chemicalml/cml/role/sample.rb +12 -0
  292. data/lib/chemicalml/cml/role/spectator.rb +12 -0
  293. data/lib/chemicalml/cml/role/spectator_list.rb +12 -0
  294. data/lib/chemicalml/cml/role/spectrum.rb +12 -0
  295. data/lib/chemicalml/cml/role/spectrum_data.rb +12 -0
  296. data/lib/chemicalml/cml/role/spectrum_list.rb +12 -0
  297. data/lib/chemicalml/cml/role/sphere3.rb +12 -0
  298. data/lib/chemicalml/cml/role/stmml.rb +12 -0
  299. data/lib/chemicalml/cml/role/string.rb +10 -0
  300. data/lib/chemicalml/cml/role/string_array.rb +10 -0
  301. data/lib/chemicalml/cml/role/substance_list.rb +12 -0
  302. data/lib/chemicalml/cml/role/symmetry.rb +12 -0
  303. data/lib/chemicalml/cml/role/system.rb +12 -0
  304. data/lib/chemicalml/cml/role/table.rb +12 -0
  305. data/lib/chemicalml/cml/role/table_cell.rb +12 -0
  306. data/lib/chemicalml/cml/role/table_content.rb +12 -0
  307. data/lib/chemicalml/cml/role/table_header.rb +12 -0
  308. data/lib/chemicalml/cml/role/table_header_cell.rb +12 -0
  309. data/lib/chemicalml/cml/role/table_row.rb +12 -0
  310. data/lib/chemicalml/cml/role/table_row_list.rb +12 -0
  311. data/lib/chemicalml/cml/role/tcell.rb +10 -0
  312. data/lib/chemicalml/cml/role/torsion.rb +12 -0
  313. data/lib/chemicalml/cml/role/transform3.rb +12 -0
  314. data/lib/chemicalml/cml/role/transition_state.rb +12 -0
  315. data/lib/chemicalml/cml/role/trow.rb +10 -0
  316. data/lib/chemicalml/cml/role/vector3.rb +12 -0
  317. data/lib/chemicalml/cml/role/xaxis.rb +12 -0
  318. data/lib/chemicalml/cml/role/yaxis.rb +12 -0
  319. data/lib/chemicalml/cml/role/z_matrix.rb +12 -0
  320. data/lib/chemicalml/cml/role.rb +103 -1
  321. data/lib/chemicalml/cml/schema24/abundance.rb +13 -0
  322. data/lib/chemicalml/cml/schema24/action.rb +13 -0
  323. data/lib/chemicalml/cml/schema24/action_list.rb +13 -0
  324. data/lib/chemicalml/cml/schema24/alternative.rb +14 -0
  325. data/lib/chemicalml/cml/schema24/amount.rb +13 -0
  326. data/lib/chemicalml/cml/schema24/angle.rb +13 -0
  327. data/lib/chemicalml/cml/schema24/annotation.rb +15 -0
  328. data/lib/chemicalml/cml/schema24/any_cml.rb +13 -0
  329. data/lib/chemicalml/cml/schema24/appinfo.rb +15 -0
  330. data/lib/chemicalml/cml/schema24/arg.rb +14 -0
  331. data/lib/chemicalml/cml/schema24/array.rb +15 -0
  332. data/lib/chemicalml/cml/schema24/array_list.rb +13 -0
  333. data/lib/chemicalml/cml/schema24/atom.rb +15 -0
  334. data/lib/chemicalml/cml/schema24/atom_array.rb +15 -0
  335. data/lib/chemicalml/cml/schema24/atom_parity.rb +15 -0
  336. data/lib/chemicalml/cml/schema24/atom_set.rb +13 -0
  337. data/lib/chemicalml/cml/schema24/atom_type.rb +13 -0
  338. data/lib/chemicalml/cml/schema24/atom_type_list.rb +13 -0
  339. data/lib/chemicalml/cml/schema24/atomic_basis_function.rb +13 -0
  340. data/lib/chemicalml/cml/schema24/band.rb +13 -0
  341. data/lib/chemicalml/cml/schema24/band_list.rb +13 -0
  342. data/lib/chemicalml/cml/schema24/basis_set.rb +13 -0
  343. data/lib/chemicalml/cml/schema24/bond.rb +15 -0
  344. data/lib/chemicalml/cml/schema24/bond_array.rb +15 -0
  345. data/lib/chemicalml/cml/schema24/bond_set.rb +13 -0
  346. data/lib/chemicalml/cml/schema24/bond_stereo.rb +15 -0
  347. data/lib/chemicalml/cml/schema24/bond_type.rb +13 -0
  348. data/lib/chemicalml/cml/schema24/bond_type_list.rb +13 -0
  349. data/lib/chemicalml/cml/schema24/cell_parameter.rb +13 -0
  350. data/lib/chemicalml/cml/schema24/cml_module.rb +18 -0
  351. data/lib/chemicalml/cml/schema24/complex_object.rb +14 -0
  352. data/lib/chemicalml/cml/schema24/condition_list.rb +13 -0
  353. data/lib/chemicalml/cml/schema24/configuration.rb +5 -2
  354. data/lib/chemicalml/cml/schema24/context.rb +18 -0
  355. data/lib/chemicalml/cml/schema24/crystal.rb +13 -0
  356. data/lib/chemicalml/cml/schema24/definition.rb +13 -0
  357. data/lib/chemicalml/cml/schema24/description.rb +13 -0
  358. data/lib/chemicalml/cml/schema24/dictionary.rb +15 -0
  359. data/lib/chemicalml/cml/schema24/dictionary_entry.rb +15 -0
  360. data/lib/chemicalml/cml/schema24/dimension.rb +13 -0
  361. data/lib/chemicalml/cml/schema24/document.rb +15 -0
  362. data/lib/chemicalml/cml/schema24/documentation.rb +13 -0
  363. data/lib/chemicalml/cml/schema24/eigen.rb +13 -0
  364. data/lib/chemicalml/cml/schema24/electron.rb +13 -0
  365. data/lib/chemicalml/cml/schema24/enumeration.rb +16 -0
  366. data/lib/chemicalml/cml/schema24/expression.rb +14 -0
  367. data/lib/chemicalml/cml/schema24/float.rb +14 -0
  368. data/lib/chemicalml/cml/schema24/float_array.rb +14 -0
  369. data/lib/chemicalml/cml/schema24/formula.rb +15 -0
  370. data/lib/chemicalml/cml/schema24/fragment.rb +13 -0
  371. data/lib/chemicalml/cml/schema24/fragment_list.rb +13 -0
  372. data/lib/chemicalml/cml/schema24/gradient.rb +13 -0
  373. data/lib/chemicalml/cml/schema24/identifier.rb +15 -0
  374. data/lib/chemicalml/cml/schema24/integer.rb +14 -0
  375. data/lib/chemicalml/cml/schema24/integer_array.rb +14 -0
  376. data/lib/chemicalml/cml/schema24/isotope.rb +13 -0
  377. data/lib/chemicalml/cml/schema24/isotope_list.rb +13 -0
  378. data/lib/chemicalml/cml/schema24/join.rb +13 -0
  379. data/lib/chemicalml/cml/schema24/kpoint.rb +13 -0
  380. data/lib/chemicalml/cml/schema24/kpoint_list.rb +13 -0
  381. data/lib/chemicalml/cml/schema24/label.rb +15 -0
  382. data/lib/chemicalml/cml/schema24/lattice.rb +13 -0
  383. data/lib/chemicalml/cml/schema24/lattice_vector.rb +13 -0
  384. data/lib/chemicalml/cml/schema24/length.rb +13 -0
  385. data/lib/chemicalml/cml/schema24/line3.rb +13 -0
  386. data/lib/chemicalml/cml/schema24/link.rb +13 -0
  387. data/lib/chemicalml/cml/schema24/list.rb +15 -0
  388. data/lib/chemicalml/cml/schema24/map.rb +13 -0
  389. data/lib/chemicalml/cml/schema24/matrix.rb +15 -0
  390. data/lib/chemicalml/cml/schema24/mechanism.rb +13 -0
  391. data/lib/chemicalml/cml/schema24/mechanism_component.rb +13 -0
  392. data/lib/chemicalml/cml/schema24/metadata.rb +15 -0
  393. data/lib/chemicalml/cml/schema24/metadata_list.rb +15 -0
  394. data/lib/chemicalml/cml/schema24/molecule.rb +15 -0
  395. data/lib/chemicalml/cml/schema24/molecule_list.rb +13 -0
  396. data/lib/chemicalml/cml/schema24/name.rb +15 -0
  397. data/lib/chemicalml/cml/schema24/object.rb +13 -0
  398. data/lib/chemicalml/cml/schema24/observation.rb +13 -0
  399. data/lib/chemicalml/cml/schema24/operator.rb +14 -0
  400. data/lib/chemicalml/cml/schema24/parameter.rb +15 -0
  401. data/lib/chemicalml/cml/schema24/parameter_list.rb +15 -0
  402. data/lib/chemicalml/cml/schema24/particle.rb +13 -0
  403. data/lib/chemicalml/cml/schema24/peak.rb +13 -0
  404. data/lib/chemicalml/cml/schema24/peak_group.rb +13 -0
  405. data/lib/chemicalml/cml/schema24/peak_list.rb +13 -0
  406. data/lib/chemicalml/cml/schema24/peak_structure.rb +13 -0
  407. data/lib/chemicalml/cml/schema24/plane3.rb +13 -0
  408. data/lib/chemicalml/cml/schema24/point3.rb +13 -0
  409. data/lib/chemicalml/cml/schema24/potential.rb +13 -0
  410. data/lib/chemicalml/cml/schema24/potential_form.rb +13 -0
  411. data/lib/chemicalml/cml/schema24/potential_list.rb +13 -0
  412. data/lib/chemicalml/cml/schema24/product.rb +15 -0
  413. data/lib/chemicalml/cml/schema24/product_list.rb +15 -0
  414. data/lib/chemicalml/cml/schema24/property.rb +15 -0
  415. data/lib/chemicalml/cml/schema24/property_list.rb +15 -0
  416. data/lib/chemicalml/cml/schema24/reactant.rb +15 -0
  417. data/lib/chemicalml/cml/schema24/reactant_list.rb +15 -0
  418. data/lib/chemicalml/cml/schema24/reaction.rb +15 -0
  419. data/lib/chemicalml/cml/schema24/reaction_list.rb +15 -0
  420. data/lib/chemicalml/cml/schema24/reaction_scheme.rb +13 -0
  421. data/lib/chemicalml/cml/schema24/reaction_step.rb +13 -0
  422. data/lib/chemicalml/cml/schema24/reaction_step_list.rb +13 -0
  423. data/lib/chemicalml/cml/schema24/reactive_centre.rb +13 -0
  424. data/lib/chemicalml/cml/schema24/region.rb +13 -0
  425. data/lib/chemicalml/cml/schema24/related_entry.rb +14 -0
  426. data/lib/chemicalml/cml/schema24/sample.rb +13 -0
  427. data/lib/chemicalml/cml/schema24/scalar.rb +15 -0
  428. data/lib/chemicalml/cml/schema24/spectator.rb +13 -0
  429. data/lib/chemicalml/cml/schema24/spectator_list.rb +13 -0
  430. data/lib/chemicalml/cml/schema24/spectrum.rb +13 -0
  431. data/lib/chemicalml/cml/schema24/spectrum_data.rb +13 -0
  432. data/lib/chemicalml/cml/schema24/spectrum_list.rb +13 -0
  433. data/lib/chemicalml/cml/schema24/sphere3.rb +13 -0
  434. data/lib/chemicalml/cml/schema24/stmml.rb +13 -0
  435. data/lib/chemicalml/cml/schema24/string.rb +14 -0
  436. data/lib/chemicalml/cml/schema24/string_array.rb +14 -0
  437. data/lib/chemicalml/cml/schema24/substance.rb +15 -0
  438. data/lib/chemicalml/cml/schema24/substance_list.rb +13 -0
  439. data/lib/chemicalml/cml/schema24/symmetry.rb +13 -0
  440. data/lib/chemicalml/cml/schema24/system.rb +13 -0
  441. data/lib/chemicalml/cml/schema24/table.rb +13 -0
  442. data/lib/chemicalml/cml/schema24/table_cell.rb +13 -0
  443. data/lib/chemicalml/cml/schema24/table_content.rb +13 -0
  444. data/lib/chemicalml/cml/schema24/table_header.rb +13 -0
  445. data/lib/chemicalml/cml/schema24/table_header_cell.rb +13 -0
  446. data/lib/chemicalml/cml/schema24/table_row.rb +13 -0
  447. data/lib/chemicalml/cml/schema24/table_row_list.rb +13 -0
  448. data/lib/chemicalml/cml/schema24/tcell.rb +14 -0
  449. data/lib/chemicalml/cml/schema24/torsion.rb +13 -0
  450. data/lib/chemicalml/cml/schema24/transform3.rb +13 -0
  451. data/lib/chemicalml/cml/schema24/transition_state.rb +13 -0
  452. data/lib/chemicalml/cml/schema24/trow.rb +14 -0
  453. data/lib/chemicalml/cml/schema24/unit.rb +15 -0
  454. data/lib/chemicalml/cml/schema24/unit_list.rb +15 -0
  455. data/lib/chemicalml/cml/schema24/unit_type.rb +15 -0
  456. data/lib/chemicalml/cml/schema24/unit_type_list.rb +15 -0
  457. data/lib/chemicalml/cml/schema24/vector3.rb +13 -0
  458. data/lib/chemicalml/cml/schema24/xaxis.rb +13 -0
  459. data/lib/chemicalml/cml/schema24/yaxis.rb +13 -0
  460. data/lib/chemicalml/cml/schema24/z_matrix.rb +13 -0
  461. data/lib/chemicalml/cml/schema24.rb +159 -19
  462. data/lib/chemicalml/cml/schema3/abundance.rb +13 -0
  463. data/lib/chemicalml/cml/schema3/action.rb +13 -0
  464. data/lib/chemicalml/cml/schema3/action_list.rb +13 -0
  465. data/lib/chemicalml/cml/schema3/amount.rb +13 -0
  466. data/lib/chemicalml/cml/schema3/angle.rb +13 -0
  467. data/lib/chemicalml/cml/schema3/any_cml.rb +13 -0
  468. data/lib/chemicalml/cml/schema3/array.rb +15 -0
  469. data/lib/chemicalml/cml/schema3/array_list.rb +13 -0
  470. data/lib/chemicalml/cml/schema3/atom.rb +15 -0
  471. data/lib/chemicalml/cml/schema3/atom_array.rb +15 -0
  472. data/lib/chemicalml/cml/schema3/atom_parity.rb +15 -0
  473. data/lib/chemicalml/cml/schema3/atom_set.rb +13 -0
  474. data/lib/chemicalml/cml/schema3/atom_type.rb +13 -0
  475. data/lib/chemicalml/cml/schema3/atom_type_list.rb +13 -0
  476. data/lib/chemicalml/cml/schema3/atomic_basis_function.rb +13 -0
  477. data/lib/chemicalml/cml/schema3/band.rb +13 -0
  478. data/lib/chemicalml/cml/schema3/band_list.rb +13 -0
  479. data/lib/chemicalml/cml/schema3/basis_set.rb +13 -0
  480. data/lib/chemicalml/cml/schema3/bond.rb +15 -0
  481. data/lib/chemicalml/cml/schema3/bond_array.rb +15 -0
  482. data/lib/chemicalml/cml/schema3/bond_set.rb +13 -0
  483. data/lib/chemicalml/cml/schema3/bond_stereo.rb +15 -0
  484. data/lib/chemicalml/cml/schema3/bond_type.rb +13 -0
  485. data/lib/chemicalml/cml/schema3/bond_type_list.rb +13 -0
  486. data/lib/chemicalml/cml/schema3/cell_parameter.rb +13 -0
  487. data/lib/chemicalml/cml/schema3/cml_module.rb +15 -0
  488. data/lib/chemicalml/cml/schema3/condition_list.rb +13 -0
  489. data/lib/chemicalml/cml/schema3/context.rb +18 -0
  490. data/lib/chemicalml/cml/schema3/crystal.rb +13 -0
  491. data/lib/chemicalml/cml/schema3/definition.rb +13 -0
  492. data/lib/chemicalml/cml/schema3/description.rb +13 -0
  493. data/lib/chemicalml/cml/schema3/dictionary.rb +15 -0
  494. data/lib/chemicalml/cml/schema3/dictionary_entry.rb +15 -0
  495. data/lib/chemicalml/cml/schema3/dimension.rb +13 -0
  496. data/lib/chemicalml/cml/schema3/document.rb +15 -0
  497. data/lib/chemicalml/cml/schema3/documentation.rb +13 -0
  498. data/lib/chemicalml/cml/schema3/eigen.rb +13 -0
  499. data/lib/chemicalml/cml/schema3/electron.rb +13 -0
  500. data/lib/chemicalml/cml/schema3/formula.rb +15 -0
  501. data/lib/chemicalml/cml/schema3/fragment.rb +13 -0
  502. data/lib/chemicalml/cml/schema3/fragment_list.rb +13 -0
  503. data/lib/chemicalml/cml/schema3/gradient.rb +13 -0
  504. data/lib/chemicalml/cml/schema3/identifier.rb +15 -0
  505. data/lib/chemicalml/cml/schema3/isotope.rb +13 -0
  506. data/lib/chemicalml/cml/schema3/isotope_list.rb +13 -0
  507. data/lib/chemicalml/cml/schema3/join.rb +13 -0
  508. data/lib/chemicalml/cml/schema3/kpoint.rb +13 -0
  509. data/lib/chemicalml/cml/schema3/kpoint_list.rb +13 -0
  510. data/lib/chemicalml/cml/schema3/label.rb +15 -0
  511. data/lib/chemicalml/cml/schema3/lattice.rb +13 -0
  512. data/lib/chemicalml/cml/schema3/lattice_vector.rb +13 -0
  513. data/lib/chemicalml/cml/schema3/length.rb +13 -0
  514. data/lib/chemicalml/cml/schema3/line3.rb +13 -0
  515. data/lib/chemicalml/cml/schema3/link.rb +13 -0
  516. data/lib/chemicalml/cml/schema3/list.rb +15 -0
  517. data/lib/chemicalml/cml/schema3/map.rb +13 -0
  518. data/lib/chemicalml/cml/schema3/matrix.rb +15 -0
  519. data/lib/chemicalml/cml/schema3/mechanism.rb +13 -0
  520. data/lib/chemicalml/cml/schema3/mechanism_component.rb +13 -0
  521. data/lib/chemicalml/cml/schema3/metadata.rb +15 -0
  522. data/lib/chemicalml/cml/schema3/metadata_list.rb +15 -0
  523. data/lib/chemicalml/cml/schema3/molecule.rb +15 -0
  524. data/lib/chemicalml/cml/schema3/molecule_list.rb +13 -0
  525. data/lib/chemicalml/cml/schema3/name.rb +15 -0
  526. data/lib/chemicalml/cml/schema3/object.rb +13 -0
  527. data/lib/chemicalml/cml/schema3/observation.rb +13 -0
  528. data/lib/chemicalml/cml/schema3/parameter.rb +15 -0
  529. data/lib/chemicalml/cml/schema3/parameter_list.rb +15 -0
  530. data/lib/chemicalml/cml/schema3/particle.rb +13 -0
  531. data/lib/chemicalml/cml/schema3/peak.rb +13 -0
  532. data/lib/chemicalml/cml/schema3/peak_group.rb +13 -0
  533. data/lib/chemicalml/cml/schema3/peak_list.rb +13 -0
  534. data/lib/chemicalml/cml/schema3/peak_structure.rb +13 -0
  535. data/lib/chemicalml/cml/schema3/plane3.rb +13 -0
  536. data/lib/chemicalml/cml/schema3/point3.rb +13 -0
  537. data/lib/chemicalml/cml/schema3/potential.rb +13 -0
  538. data/lib/chemicalml/cml/schema3/potential_form.rb +13 -0
  539. data/lib/chemicalml/cml/schema3/potential_list.rb +13 -0
  540. data/lib/chemicalml/cml/schema3/product.rb +15 -0
  541. data/lib/chemicalml/cml/schema3/product_list.rb +15 -0
  542. data/lib/chemicalml/cml/schema3/property.rb +15 -0
  543. data/lib/chemicalml/cml/schema3/property_list.rb +15 -0
  544. data/lib/chemicalml/cml/schema3/reactant.rb +15 -0
  545. data/lib/chemicalml/cml/schema3/reactant_list.rb +15 -0
  546. data/lib/chemicalml/cml/schema3/reaction.rb +15 -0
  547. data/lib/chemicalml/cml/schema3/reaction_list.rb +15 -0
  548. data/lib/chemicalml/cml/schema3/reaction_scheme.rb +13 -0
  549. data/lib/chemicalml/cml/schema3/reaction_step.rb +13 -0
  550. data/lib/chemicalml/cml/schema3/reaction_step_list.rb +13 -0
  551. data/lib/chemicalml/cml/schema3/reactive_centre.rb +13 -0
  552. data/lib/chemicalml/cml/schema3/region.rb +13 -0
  553. data/lib/chemicalml/cml/schema3/sample.rb +13 -0
  554. data/lib/chemicalml/cml/schema3/scalar.rb +15 -0
  555. data/lib/chemicalml/cml/schema3/spectator.rb +13 -0
  556. data/lib/chemicalml/cml/schema3/spectator_list.rb +13 -0
  557. data/lib/chemicalml/cml/schema3/spectrum.rb +13 -0
  558. data/lib/chemicalml/cml/schema3/spectrum_data.rb +13 -0
  559. data/lib/chemicalml/cml/schema3/spectrum_list.rb +13 -0
  560. data/lib/chemicalml/cml/schema3/sphere3.rb +13 -0
  561. data/lib/chemicalml/cml/schema3/stmml.rb +13 -0
  562. data/lib/chemicalml/cml/schema3/substance.rb +15 -0
  563. data/lib/chemicalml/cml/schema3/substance_list.rb +13 -0
  564. data/lib/chemicalml/cml/schema3/symmetry.rb +13 -0
  565. data/lib/chemicalml/cml/schema3/system.rb +13 -0
  566. data/lib/chemicalml/cml/schema3/table.rb +13 -0
  567. data/lib/chemicalml/cml/schema3/table_cell.rb +13 -0
  568. data/lib/chemicalml/cml/schema3/table_content.rb +13 -0
  569. data/lib/chemicalml/cml/schema3/table_header.rb +13 -0
  570. data/lib/chemicalml/cml/schema3/table_header_cell.rb +13 -0
  571. data/lib/chemicalml/cml/schema3/table_row.rb +13 -0
  572. data/lib/chemicalml/cml/schema3/table_row_list.rb +13 -0
  573. data/lib/chemicalml/cml/schema3/torsion.rb +13 -0
  574. data/lib/chemicalml/cml/schema3/transform3.rb +13 -0
  575. data/lib/chemicalml/cml/schema3/transition_state.rb +13 -0
  576. data/lib/chemicalml/cml/schema3/unit.rb +15 -0
  577. data/lib/chemicalml/cml/schema3/unit_list.rb +15 -0
  578. data/lib/chemicalml/cml/schema3/unit_type.rb +15 -0
  579. data/lib/chemicalml/cml/schema3/unit_type_list.rb +15 -0
  580. data/lib/chemicalml/cml/schema3/vector3.rb +13 -0
  581. data/lib/chemicalml/cml/schema3/xaxis.rb +13 -0
  582. data/lib/chemicalml/cml/schema3/yaxis.rb +13 -0
  583. data/lib/chemicalml/cml/schema3/z_matrix.rb +13 -0
  584. data/lib/chemicalml/cml/schema3.rb +132 -17
  585. data/lib/chemicalml/cml/wire_class_registry.rb +42 -0
  586. data/lib/chemicalml/cml.rb +136 -44
  587. data/lib/chemicalml/context_configuration.rb +8 -2
  588. data/lib/chemicalml/convention/base.rb +17 -3
  589. data/lib/chemicalml/convention/compchem/constraints/array_rules.rb +44 -0
  590. data/lib/chemicalml/convention/compchem/constraints/calculation_requires_finalization.rb +28 -0
  591. data/lib/chemicalml/convention/compchem/constraints/compchem_module_must_contain_job_list.rb +4 -4
  592. data/lib/chemicalml/convention/compchem/constraints/environment_at_most_one_property_list.rb +26 -0
  593. data/lib/chemicalml/convention/compchem/constraints/environment_must_not_contain_parameter.rb +28 -0
  594. data/lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_molecule.rb +26 -0
  595. data/lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_property_list.rb +26 -0
  596. data/lib/chemicalml/convention/compchem/constraints/finalization_must_not_contain_parameter.rb +27 -0
  597. data/lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_molecule.rb +26 -0
  598. data/lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_parameter_list.rb +26 -0
  599. data/lib/chemicalml/convention/compchem/constraints/initialization_must_not_contain_property.rb +28 -0
  600. data/lib/chemicalml/convention/compchem/constraints/job_list_module_must_have_id.rb +24 -0
  601. data/lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_environment.rb +25 -0
  602. data/lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_finalization.rb +25 -0
  603. data/lib/chemicalml/convention/compchem/constraints/job_module_must_have_id.rb +24 -0
  604. data/lib/chemicalml/convention/compchem/constraints/job_must_contain_initialization.rb +6 -9
  605. data/lib/chemicalml/convention/compchem/constraints/matrix_rules.rb +48 -0
  606. data/lib/chemicalml/convention/compchem/constraints/module_predicates.rb +50 -0
  607. data/lib/chemicalml/convention/compchem/constraints/scalar_units.rb +42 -0
  608. data/lib/chemicalml/convention/compchem/constraints.rb +36 -2
  609. data/lib/chemicalml/convention/compchem.rb +16 -0
  610. data/lib/chemicalml/convention/constraint.rb +31 -18
  611. data/lib/chemicalml/convention/coordinator.rb +89 -0
  612. data/lib/chemicalml/convention/detection.rb +33 -0
  613. data/lib/chemicalml/convention/dictionary/constraints/dictionary_must_have_namespace.rb +28 -0
  614. data/lib/chemicalml/convention/dictionary/constraints/dictionary_namespace_should_end_with_slash_or_hash.rb +32 -0
  615. data/lib/chemicalml/convention/dictionary/constraints/entry_id_must_match_pattern.rb +33 -0
  616. data/lib/chemicalml/convention/dictionary/constraints/entry_ids_unique_within_dictionary.rb +3 -3
  617. data/lib/chemicalml/convention/dictionary/constraints/entry_must_contain_definition.rb +28 -0
  618. data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_id_and_term.rb +5 -5
  619. data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_unit_type.rb +30 -0
  620. data/lib/chemicalml/convention/dictionary/constraints/entry_units_co_constraints.rb +44 -0
  621. data/lib/chemicalml/convention/dictionary/constraints.rb +12 -0
  622. data/lib/chemicalml/convention/dictionary.rb +6 -0
  623. data/lib/chemicalml/convention/molecular/constraints/atom_array_must_be_child_of_molecule_or_formula.rb +40 -0
  624. data/lib/chemicalml/convention/molecular/constraints/atom_array_must_contain_atoms.rb +3 -3
  625. data/lib/chemicalml/convention/molecular/constraints/atom_coordinates_must_be_paired.rb +32 -0
  626. data/lib/chemicalml/convention/molecular/constraints/atom_id_must_match_pattern.rb +26 -0
  627. data/lib/chemicalml/convention/molecular/constraints/atom_ids_unique_within_molecule.rb +2 -2
  628. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_element_type.rb +20 -0
  629. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_id.rb +20 -0
  630. data/lib/chemicalml/convention/molecular/constraints/bond_array_must_be_child_of_molecule.rb +36 -0
  631. data/lib/chemicalml/convention/molecular/constraints/bond_ids_unique_within_molecule.rb +43 -0
  632. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_atom_refs2.rb +20 -0
  633. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_order.rb +20 -0
  634. data/lib/chemicalml/convention/molecular/constraints/bond_must_reference_atoms_in_same_molecule.rb +3 -3
  635. data/lib/chemicalml/convention/molecular/constraints/bond_order_other_must_have_dict_ref.rb +33 -0
  636. data/lib/chemicalml/convention/molecular/constraints/bond_order_should_not_be_numeric.rb +27 -0
  637. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_cis_trans_must_have_atom_refs4.rb +45 -0
  638. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_other_must_have_dict_ref.rb +32 -0
  639. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_wedge_hash_must_have_atom_refs2.rb +45 -0
  640. data/lib/chemicalml/convention/molecular/constraints/molecule_atom_array_mutually_exclusive_with_children.rb +32 -0
  641. data/lib/chemicalml/convention/molecular/constraints/molecule_bond_array_mutually_exclusive_with_children.rb +31 -0
  642. data/lib/chemicalml/convention/molecular/constraints/molecule_count_must_not_appear_on_top_level.rb +34 -0
  643. data/lib/chemicalml/convention/molecular/constraints/molecule_must_have_id.rb +20 -0
  644. data/lib/chemicalml/convention/molecular/constraints/property_must_have_dict_ref.rb +20 -0
  645. data/lib/chemicalml/convention/molecular/constraints/scalar_must_have_data_type.rb +20 -0
  646. data/lib/chemicalml/convention/molecular/constraints.rb +40 -3
  647. data/lib/chemicalml/convention/molecular.rb +20 -0
  648. data/lib/chemicalml/convention/registry.rb +17 -0
  649. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_contain_at_least_one_unit.rb +28 -0
  650. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_have_namespace.rb +36 -0
  651. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_contain_definition.rb +27 -0
  652. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_id.rb +27 -0
  653. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_symbol_and_unit_type.rb +3 -3
  654. data/lib/chemicalml/convention/unit_dictionary/constraints.rb +9 -1
  655. data/lib/chemicalml/convention/unit_dictionary.rb +4 -0
  656. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_id_must_match_pattern.rb +31 -0
  657. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_contain_at_least_one_unit_type.rb +27 -0
  658. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_have_namespace.rb +35 -0
  659. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_contain_definition.rb +27 -0
  660. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_have_id_and_name.rb +5 -5
  661. data/lib/chemicalml/convention/unit_type_dictionary/constraints.rb +9 -1
  662. data/lib/chemicalml/convention/unit_type_dictionary.rb +4 -0
  663. data/lib/chemicalml/convention/validation_report.rb +63 -0
  664. data/lib/chemicalml/convention.rb +11 -0
  665. data/lib/chemicalml/dictionary/entry.rb +6 -6
  666. data/lib/chemicalml/dictionary/enum.rb +1 -1
  667. data/lib/chemicalml/dictionary/link.rb +3 -3
  668. data/lib/chemicalml/dictionary/loader.rb +19 -19
  669. data/lib/chemicalml/dictionary/model.rb +5 -5
  670. data/lib/chemicalml/dictionary/registry.rb +9 -9
  671. data/lib/chemicalml/version.rb +1 -1
  672. data/lib/chemicalml/versioned_parser.rb +71 -12
  673. data/lib/chemicalml.rb +4 -3
  674. metadata +594 -69
  675. data/lib/chemicalml/cml/array.rb +0 -10
  676. data/lib/chemicalml/cml/atom.rb +0 -10
  677. data/lib/chemicalml/cml/atom_array.rb +0 -10
  678. data/lib/chemicalml/cml/atom_parity.rb +0 -10
  679. data/lib/chemicalml/cml/bond.rb +0 -10
  680. data/lib/chemicalml/cml/bond_array.rb +0 -10
  681. data/lib/chemicalml/cml/bond_stereo.rb +0 -10
  682. data/lib/chemicalml/cml/cml_module.rb +0 -10
  683. data/lib/chemicalml/cml/dictionary.rb +0 -10
  684. data/lib/chemicalml/cml/dictionary_entry.rb +0 -10
  685. data/lib/chemicalml/cml/document.rb +0 -10
  686. data/lib/chemicalml/cml/formula.rb +0 -10
  687. data/lib/chemicalml/cml/identifier.rb +0 -10
  688. data/lib/chemicalml/cml/label.rb +0 -10
  689. data/lib/chemicalml/cml/list.rb +0 -10
  690. data/lib/chemicalml/cml/matrix.rb +0 -10
  691. data/lib/chemicalml/cml/metadata.rb +0 -10
  692. data/lib/chemicalml/cml/metadata_list.rb +0 -10
  693. data/lib/chemicalml/cml/molecule.rb +0 -10
  694. data/lib/chemicalml/cml/name.rb +0 -10
  695. data/lib/chemicalml/cml/parameter.rb +0 -10
  696. data/lib/chemicalml/cml/parameter_list.rb +0 -10
  697. data/lib/chemicalml/cml/product.rb +0 -10
  698. data/lib/chemicalml/cml/product_list.rb +0 -10
  699. data/lib/chemicalml/cml/property.rb +0 -10
  700. data/lib/chemicalml/cml/property_list.rb +0 -10
  701. data/lib/chemicalml/cml/reactant.rb +0 -10
  702. data/lib/chemicalml/cml/reactant_list.rb +0 -10
  703. data/lib/chemicalml/cml/reaction.rb +0 -10
  704. data/lib/chemicalml/cml/reaction_list.rb +0 -10
  705. data/lib/chemicalml/cml/scalar.rb +0 -10
  706. data/lib/chemicalml/cml/substance.rb +0 -10
  707. data/lib/chemicalml/cml/translator/value_translations.rb +0 -265
  708. data/lib/chemicalml/cml/translator.rb +0 -233
  709. data/lib/chemicalml/cml/unit.rb +0 -10
  710. data/lib/chemicalml/cml/unit_list.rb +0 -10
  711. data/lib/chemicalml/cml/unit_type.rb +0 -10
  712. data/lib/chemicalml/cml/unit_type_list.rb +0 -10
  713. data/lib/chemicalml/cml/wire_class_macro.rb +0 -45
  714. data/lib/chemicalml/model/atom.rb +0 -40
  715. data/lib/chemicalml/model/bond.rb +0 -33
  716. data/lib/chemicalml/model/cml_array.rb +0 -27
  717. data/lib/chemicalml/model/cml_module.rb +0 -45
  718. data/lib/chemicalml/model/document.rb +0 -29
  719. data/lib/chemicalml/model/formula.rb +0 -34
  720. data/lib/chemicalml/model/identifier.rb +0 -21
  721. data/lib/chemicalml/model/label.rb +0 -21
  722. data/lib/chemicalml/model/matrix.rb +0 -29
  723. data/lib/chemicalml/model/metadata.rb +0 -23
  724. data/lib/chemicalml/model/metadata_list.rb +0 -25
  725. data/lib/chemicalml/model/molecule.rb +0 -38
  726. data/lib/chemicalml/model/name.rb +0 -21
  727. data/lib/chemicalml/model/node.rb +0 -45
  728. data/lib/chemicalml/model/parameter.rb +0 -27
  729. data/lib/chemicalml/model/parameter_list.rb +0 -25
  730. data/lib/chemicalml/model/product.rb +0 -21
  731. data/lib/chemicalml/model/product_list.rb +0 -21
  732. data/lib/chemicalml/model/property.rb +0 -28
  733. data/lib/chemicalml/model/property_list.rb +0 -25
  734. data/lib/chemicalml/model/reactant.rb +0 -21
  735. data/lib/chemicalml/model/reactant_list.rb +0 -21
  736. data/lib/chemicalml/model/reaction.rb +0 -41
  737. data/lib/chemicalml/model/reaction_list.rb +0 -23
  738. data/lib/chemicalml/model/scalar.rb +0 -25
  739. data/lib/chemicalml/model/substance.rb +0 -25
  740. data/lib/chemicalml/model.rb +0 -38
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module BasisSet
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::BasisSet
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :atomic_basis_functions, :atomicBasisFunction, collection: true
16
+
17
+ attribute :ref, :string
18
+ attribute :role, :string
19
+ xml do
20
+ namespace Chemicalml::Cml::Namespace
21
+ map_element "atomicBasisFunction", to: :atomic_basis_functions
22
+ root "basisSet"
23
+ map_attribute "id", to: :id
24
+ map_attribute "title", to: :title
25
+ map_attribute "dictRef", to: :dict_ref
26
+ map_attribute "convention", to: :convention
27
+ map_attribute "ref", to: :ref
28
+ map_attribute "role", to: :role
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -11,14 +11,24 @@ module Chemicalml
11
11
  attribute :atom_refs2, :string
12
12
  attribute :order, :string
13
13
  attribute :title, :string
14
+ attribute :dict_ref, :string
15
+ attribute :bond_stereo, :bondStereo
14
16
 
17
+ attribute :convention, :string
18
+ attribute :ref, :string
19
+ attribute :bond_refs, :string
15
20
  xml do
16
- namespace Chemicalml::Cml::Namespace
21
+ namespace Chemicalml::Cml::Namespace
17
22
  root "bond"
18
23
  map_attribute "id", to: :id
19
24
  map_attribute "atomRefs2", to: :atom_refs2
20
25
  map_attribute "order", to: :order
21
26
  map_attribute "title", to: :title
27
+ map_attribute "dictRef", to: :dict_ref
28
+ map_element "bondStereo", to: :bond_stereo
29
+ map_attribute "convention", to: :convention
30
+ map_attribute "ref", to: :ref
31
+ map_attribute "bondRefs", to: :bond_refs
22
32
  end
23
33
  end
24
34
  end
@@ -9,10 +9,26 @@ module Chemicalml
9
9
  include Chemicalml::Cml::Role::BondArray
10
10
  attribute :bonds, :bond, collection: true
11
11
 
12
+ attribute :title, :string
13
+ attribute :id, :string
14
+ attribute :convention, :string
15
+ attribute :dict_ref, :string
16
+ attribute :bond_i_d_array, :string
17
+ attribute :atom_ref1_array, :string
18
+ attribute :atom_ref2_array, :string
19
+ attribute :order_array, :string
12
20
  xml do
13
- namespace Chemicalml::Cml::Namespace
21
+ namespace Chemicalml::Cml::Namespace
14
22
  root "bondArray"
15
23
  map_element "bond", to: :bonds
24
+ map_attribute "title", to: :title
25
+ map_attribute "id", to: :id
26
+ map_attribute "convention", to: :convention
27
+ map_attribute "dictRef", to: :dict_ref
28
+ map_attribute "bondIDArray", to: :bond_i_d_array
29
+ map_attribute "atomRef1Array", to: :atom_ref1_array
30
+ map_attribute "atomRef2Array", to: :atom_ref2_array
31
+ map_attribute "orderArray", to: :order_array
16
32
  end
17
33
  end
18
34
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module BondSet
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::BondSet
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :size, :string
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "bondSet"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_attribute "size", to: :size
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -12,13 +12,23 @@ module Chemicalml
12
12
  attribute :dict_ref, :string
13
13
  attribute :content, :string
14
14
 
15
+ attribute :atom_ref_array, :string
16
+ attribute :title, :string
17
+ attribute :id, :string
18
+ attribute :convention, :string
19
+ attribute :convention_value, :string
15
20
  xml do
16
- namespace Chemicalml::Cml::Namespace
21
+ namespace Chemicalml::Cml::Namespace
17
22
  root "bondStereo"
18
23
  map_attribute "atomRefs2", to: :atom_refs2
19
24
  map_attribute "atomRefs4", to: :atom_refs4
20
25
  map_attribute "dictRef", to: :dict_ref
21
26
  map_content to: :content
27
+ map_attribute "atomRefArray", to: :atom_ref_array
28
+ map_attribute "title", to: :title
29
+ map_attribute "id", to: :id
30
+ map_attribute "convention", to: :convention
31
+ map_attribute "conventionValue", to: :convention_value
22
32
  end
23
33
  end
24
34
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module BondType
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::BondType
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :order, :string
15
+ attribute :ref, :string
16
+
17
+ attribute :name, :string
18
+ xml do
19
+ namespace Chemicalml::Cml::Namespace
20
+ root "bondType"
21
+ map_attribute "id", to: :id
22
+ map_attribute "title", to: :title
23
+ map_attribute "dictRef", to: :dict_ref
24
+ map_attribute "convention", to: :convention
25
+ map_attribute "order", to: :order
26
+ map_attribute "ref", to: :ref
27
+ map_attribute "name", to: :name
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module BondTypeList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::BondTypeList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :bond_types, :bondType, collection: true
16
+
17
+ attribute :ref, :string
18
+ xml do
19
+ namespace Chemicalml::Cml::Namespace
20
+ map_element "bondType", to: :bond_types
21
+ root "bondTypeList"
22
+ map_attribute "id", to: :id
23
+ map_attribute "title", to: :title
24
+ map_attribute "dictRef", to: :dict_ref
25
+ map_attribute "convention", to: :convention
26
+ map_attribute "ref", to: :ref
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module CellParameter
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::CellParameter
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :cellType, :string
15
+ attribute :parameterType, :string
16
+ attribute :units, :string
17
+
18
+ attribute :cell_parameter_type, :string
19
+ attribute :cell_parameter_error, :string
20
+ xml do
21
+ namespace Chemicalml::Cml::Namespace
22
+ root "cellParameter"
23
+ map_attribute "id", to: :id
24
+ map_attribute "title", to: :title
25
+ map_attribute "dictRef", to: :dict_ref
26
+ map_attribute "convention", to: :convention
27
+ map_attribute "cellType", to: :cellType
28
+ map_attribute "parameterType", to: :parameterType
29
+ map_attribute "units", to: :units
30
+ map_attribute "cellParameterType", to: :cell_parameter_type
31
+ map_attribute "cellParameterError", to: :cell_parameter_error
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -19,7 +19,7 @@ module Chemicalml
19
19
  attribute :lists, :list, collection: true
20
20
 
21
21
  xml do
22
- namespace Chemicalml::Cml::Namespace
22
+ namespace Chemicalml::Cml::Namespace
23
23
  root "module"
24
24
  map_attribute "id", to: :id
25
25
  map_attribute "title", to: :title
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module ComplexObject
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::ComplexObject
10
+ attribute :title, :string
11
+ attribute :id, :string
12
+ attribute :convention, :string
13
+ attribute :dict_ref, :string
14
+ attribute :content, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "complexObject"
19
+ map_attribute "title", to: :title
20
+ map_attribute "id", to: :id
21
+ map_attribute "convention", to: :convention
22
+ map_attribute "dictRef", to: :dict_ref
23
+ map_content to: :content
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module ConditionList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::ConditionList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :scalars, :scalar, collection: true
16
+ attribute :metadata, :metadata
17
+
18
+ attribute :ref, :string
19
+ attribute :role, :string
20
+ xml do
21
+ namespace Chemicalml::Cml::Namespace
22
+ map_element "scalar", to: :scalars
23
+ map_element "metadata", to: :metadata
24
+ root "conditionList"
25
+ map_attribute "id", to: :id
26
+ map_attribute "title", to: :title
27
+ map_attribute "dictRef", to: :dict_ref
28
+ map_attribute "convention", to: :convention
29
+ map_attribute "ref", to: :ref
30
+ map_attribute "role", to: :role
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Crystal
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Crystal
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :scalars, :scalar, collection: true
16
+ attribute :lattice, :lattice
17
+ attribute :symmetry, :symmetry
18
+
19
+ attribute :z, :string
20
+ xml do
21
+ namespace Chemicalml::Cml::Namespace
22
+ map_element "scalar", to: :scalars
23
+ map_element "lattice", to: :lattice
24
+ map_element "symmetry", to: :symmetry
25
+ root "crystal"
26
+ map_attribute "id", to: :id
27
+ map_attribute "title", to: :title
28
+ map_attribute "dictRef", to: :dict_ref
29
+ map_attribute "convention", to: :convention
30
+ map_attribute "z", to: :z
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Definition
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Definition
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :content, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "definition"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_content to: :content
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Description
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Description
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :content, :string
15
+
16
+ attribute :object_class, :string
17
+ xml do
18
+ namespace Chemicalml::Cml::Namespace
19
+ root "description"
20
+ map_attribute "id", to: :id
21
+ map_attribute "title", to: :title
22
+ map_attribute "dictRef", to: :dict_ref
23
+ map_attribute "convention", to: :convention
24
+ map_content to: :content
25
+ map_attribute "objectClass", to: :object_class
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -14,8 +14,11 @@ module Chemicalml
14
14
  attribute :description, :string
15
15
  attribute :entries, :entry, collection: true
16
16
 
17
+ attribute :id, :string
18
+ attribute :dict_ref, :string
19
+ attribute :href, :string
17
20
  xml do
18
- namespace Chemicalml::Cml::Namespace
21
+ namespace Chemicalml::Cml::Namespace
19
22
  root "dictionary"
20
23
  map_attribute "title", to: :title
21
24
  map_attribute "namespace", to: :namespace
@@ -23,6 +26,9 @@ module Chemicalml
23
26
  map_attribute "convention", to: :convention
24
27
  map_element "description", to: :description
25
28
  map_element "entry", to: :entries
29
+ map_attribute "id", to: :id
30
+ map_attribute "dictRef", to: :dict_ref
31
+ map_attribute "href", to: :href
26
32
  end
27
33
  end
28
34
  end
@@ -16,7 +16,7 @@ module Chemicalml
16
16
  attribute :description, :string
17
17
 
18
18
  xml do
19
- namespace Chemicalml::Cml::Namespace
19
+ namespace Chemicalml::Cml::Namespace
20
20
  root "entry"
21
21
  map_attribute "id", to: :id
22
22
  map_attribute "term", to: :term
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Dimension
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Dimension
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :dataType, :string
15
+ attribute :units, :string
16
+
17
+ attribute :dimension_basis, :string
18
+ attribute :name, :string
19
+ attribute :power, :string
20
+ attribute :preserve, :string
21
+ attribute :unit_type, :string
22
+ xml do
23
+ namespace Chemicalml::Cml::Namespace
24
+ root "dimension"
25
+ map_attribute "id", to: :id
26
+ map_attribute "title", to: :title
27
+ map_attribute "dictRef", to: :dict_ref
28
+ map_attribute "convention", to: :convention
29
+ map_attribute "dataType", to: :dataType
30
+ map_attribute "units", to: :units
31
+ map_attribute "dimensionBasis", to: :dimension_basis
32
+ map_attribute "name", to: :name
33
+ map_attribute "power", to: :power
34
+ map_attribute "preserve", to: :preserve
35
+ map_attribute "unitType", to: :unit_type
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -7,13 +7,21 @@ module Chemicalml
7
7
  def self.included(klass)
8
8
  klass.class_eval do
9
9
  include Chemicalml::Cml::Role::Document
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
10
14
  attribute :molecules, :molecule, collection: true
11
15
  attribute :reaction_lists, :reactionList, collection: true
12
16
  attribute :reactions, :reaction, collection: true
13
17
 
14
18
  xml do
15
- namespace Chemicalml::Cml::Namespace
19
+ namespace Chemicalml::Cml::Namespace
16
20
  root "cml"
21
+ map_attribute "id", to: :id
22
+ map_attribute "title", to: :title
23
+ map_attribute "dictRef", to: :dict_ref
24
+ map_attribute "convention", to: :convention
17
25
  map_element "molecule", to: :molecules
18
26
  map_element "reactionList", to: :reaction_lists
19
27
  map_element "reaction", to: :reactions
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Documentation
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Documentation
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :content, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "documentation"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_content to: :content
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Eigen
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Eigen
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :units, :string
15
+ attribute :type, :string
16
+ attribute :content, :string
17
+
18
+ attribute :eigen_orientation, :string
19
+ xml do
20
+ namespace Chemicalml::Cml::Namespace
21
+ root "eigen"
22
+ map_attribute "id", to: :id
23
+ map_attribute "title", to: :title
24
+ map_attribute "dictRef", to: :dict_ref
25
+ map_attribute "convention", to: :convention
26
+ map_attribute "units", to: :units
27
+ map_attribute "type", to: :type
28
+ map_content to: :content
29
+ map_attribute "eigenOrientation", to: :eigen_orientation
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Electron
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Electron
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :atomRef, :string
15
+ attribute :bondRef, :string
16
+ attribute :count, :string
17
+ attribute :spinMultiplicity, :string
18
+
19
+ attribute :atom_refs, :string
20
+ attribute :bond_refs, :string
21
+ attribute :ref, :string
22
+ xml do
23
+ namespace Chemicalml::Cml::Namespace
24
+ root "electron"
25
+ map_attribute "id", to: :id
26
+ map_attribute "title", to: :title
27
+ map_attribute "dictRef", to: :dict_ref
28
+ map_attribute "convention", to: :convention
29
+ map_attribute "atomRef", to: :atomRef
30
+ map_attribute "bondRef", to: :bondRef
31
+ map_attribute "count", to: :count
32
+ map_attribute "spinMultiplicity", to: :spinMultiplicity
33
+ map_attribute "atomRefs", to: :atom_refs
34
+ map_attribute "bondRefs", to: :bond_refs
35
+ map_attribute "ref", to: :ref
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end