@mat3ra/esse 2025.7.1-0 → 2025.7.29-0

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 (143) hide show
  1. package/README.md +4 -4
  2. package/dist/js/example/core/abstract/vector_2d.json +4 -0
  3. package/dist/js/example/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +693 -0
  4. package/dist/js/example/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +566 -0
  5. package/dist/js/example/materials_category/defective_structures/two_dimensional/adatom/configuration.json +553 -0
  6. package/dist/js/example/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +693 -0
  7. package/dist/js/example/materials_category/defective_structures/two_dimensional/island/configuration.json +841 -0
  8. package/dist/js/example/materials_category/defective_structures/two_dimensional/terrace/configuration.json +846 -0
  9. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +271 -0
  10. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +271 -0
  11. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +271 -0
  12. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +136 -0
  13. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanoribbon.json +419 -0
  14. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanotape.json +282 -0
  15. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +1 -11
  16. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +305 -0
  17. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.json +306 -0
  18. package/dist/js/example/materials_category/processed_structures/two_dimensional/passivation/configuration.json +551 -0
  19. package/dist/js/example/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +4 -0
  20. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +128 -0
  21. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +138 -0
  22. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +135 -0
  23. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +145 -0
  24. package/dist/js/example/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +547 -0
  25. package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +1 -1
  26. package/dist/js/example/materials_category_components/operations/core/modifications/perturb.json +131 -0
  27. package/dist/js/schema/core/abstract/vector_2d.json +11 -0
  28. package/dist/js/schema/core/primitive/array_of_2_numbers.json +11 -0
  29. package/dist/js/schema/job.json +14 -0
  30. package/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +11616 -0
  31. package/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +11622 -0
  32. package/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +3517 -0
  33. package/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +11616 -0
  34. package/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +5197 -0
  35. package/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +5214 -0
  36. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +787 -0
  37. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +1722 -0
  38. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +1722 -0
  39. package/dist/js/schema/{materials_category_components/operations/core/combinations/stack_component.json → materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json} +46 -790
  40. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +2734 -0
  41. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +1917 -0
  42. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +1595 -1622
  43. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +1810 -0
  44. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.json +1815 -0
  45. package/dist/js/schema/{materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.json → materials_category/processed_structures/two_dimensional/passivation/configuration.json} +1003 -907
  46. package/dist/js/schema/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +12 -0
  47. package/dist/js/schema/materials_category_components/entities/auxiliary/two_dimensional/termination.json +1 -0
  48. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +757 -0
  49. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +936 -0
  50. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +821 -0
  51. package/dist/js/schema/materials_category_components/entities/core/zero_dimensional/vacancy.json +20 -0
  52. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +785 -0
  53. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +1100 -0
  54. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +773 -0
  55. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +18 -18
  56. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +18 -18
  57. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +18 -18
  58. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +17 -18
  59. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +2585 -0
  60. package/dist/js/schema/materials_category_components/operations/core/combinations/enums.json +12 -0
  61. package/dist/js/schema/materials_category_components/operations/core/combinations/merge.json +12 -1627
  62. package/dist/js/schema/materials_category_components/operations/core/combinations/stack.json +3 -1551
  63. package/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json +768 -0
  64. package/dist/js/schema/software/flavor.json +7 -0
  65. package/dist/js/schema/software_directory/ml/unit/execution/evaluate/cross_validate.json +7 -0
  66. package/dist/js/schema/software_directory/ml/unit/execution/initialize.json +7 -0
  67. package/dist/js/schema/software_directory/ml/unit/execution/score.json +7 -0
  68. package/dist/js/schema/software_directory/ml/unit/execution/train.json +7 -0
  69. package/dist/js/schema/software_directory/ml/unit/execution.json +28 -0
  70. package/dist/js/schema/software_directory/modeling/unit/execution.json +7 -0
  71. package/dist/js/schema/software_directory/scripting/unit/execution.json +7 -0
  72. package/dist/js/schema/workflow/subworkflow/unit.json +7 -0
  73. package/dist/js/schema/workflow/subworkflow.json +7 -0
  74. package/dist/js/schema/workflow/unit/execution.json +7 -0
  75. package/dist/js/schema/workflow/unit.json +7 -0
  76. package/dist/js/schema/workflow.json +14 -0
  77. package/dist/js/schemas.json +1 -1
  78. package/dist/js/types.d.ts +31925 -4987
  79. package/example/core/abstract/vector_2d.json +4 -0
  80. package/example/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +18 -0
  81. package/example/materials_category/defective_structures/one-dimensional/grain_boundary_linear/configuration.json +16 -0
  82. package/example/materials_category/defective_structures/two-dimensional/adatom/configuration.json +24 -0
  83. package/example/materials_category/defective_structures/two-dimensional/grain_boundary_planar/configuration.json +18 -0
  84. package/example/materials_category/defective_structures/two-dimensional/island/configuration.json +37 -0
  85. package/example/materials_category/defective_structures/two-dimensional/terrace/configuration.json +42 -0
  86. package/example/materials_category/defective_structures/zero-dimensional/point_defect/base_configuration.json +19 -0
  87. package/example/materials_category/defective_structures/zero-dimensional/point_defect/interstitial.json +21 -0
  88. package/example/materials_category/defective_structures/zero-dimensional/point_defect/substitutional.json +21 -0
  89. package/example/materials_category/defective_structures/zero-dimensional/point_defect/vacancy.json +11 -0
  90. package/example/materials_category/pristine_structures/two-dimensional/nanoribbon.json +42 -0
  91. package/example/materials_category/pristine_structures/two-dimensional/nanotape.json +30 -0
  92. package/example/materials_category/pristine_structures/two-dimensional/slab.json +1 -11
  93. package/example/materials_category/pristine_structures/two-dimensional/slab_strained_supercell.json +55 -0
  94. package/example/materials_category/pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json +56 -0
  95. package/example/materials_category/processed_structures/two-dimensional/passivation/configuration.json +45 -0
  96. package/example/materials_category_components/entities/auxiliary/one-dimensional/miller_indices_2d.json +2 -0
  97. package/example/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +7 -2
  98. package/example/materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json +11 -0
  99. package/example/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines.json +8 -0
  100. package/example/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json +18 -0
  101. package/example/materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json +22 -0
  102. package/example/materials_category_components/operations/core/combinations/merge.json +2 -2
  103. package/example/materials_category_components/operations/core/modifications/perturb.json +6 -0
  104. package/package.json +1 -1
  105. package/schema/core/abstract/vector_2d.json +10 -0
  106. package/schema/core/primitive/array_of_2_numbers.json +11 -0
  107. package/schema/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +65 -0
  108. package/schema/materials_category/defective_structures/one-dimensional/grain_boundary_linear/configuration.json +34 -0
  109. package/schema/materials_category/defective_structures/two-dimensional/adatom/configuration.json +26 -0
  110. package/schema/materials_category/defective_structures/two-dimensional/grain_boundary_planar/configuration.json +16 -0
  111. package/schema/materials_category/defective_structures/two-dimensional/island/configuration.json +48 -0
  112. package/schema/materials_category/defective_structures/two-dimensional/terrace/configuration.json +55 -0
  113. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/base_configuration.json +30 -0
  114. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/interstitial.json +23 -0
  115. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/substitutional.json +23 -0
  116. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/vacancy.json +23 -0
  117. package/schema/materials_category/manifest.yaml +53 -156
  118. package/schema/materials_category/pristine_structures/two-dimensional/nanoribbon.json +29 -0
  119. package/schema/materials_category/pristine_structures/two-dimensional/nanotape.json +29 -0
  120. package/schema/materials_category/pristine_structures/two-dimensional/slab.json +18 -6
  121. package/schema/materials_category/pristine_structures/two-dimensional/slab_strained_supercell.json +25 -0
  122. package/schema/materials_category/pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json +18 -0
  123. package/schema/materials_category/processed_structures/two-dimensional/passivation/configuration.json +45 -0
  124. package/schema/materials_category_components/entities/auxiliary/one-dimensional/miller_indices_2d.json +13 -0
  125. package/schema/materials_category_components/entities/auxiliary/two-dimensional/termination.json +1 -0
  126. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +4 -0
  127. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json +30 -0
  128. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/void_region.json +18 -0
  129. package/schema/materials_category_components/entities/core/zero-dimensional/vacancy.json +20 -0
  130. package/schema/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines.json +20 -0
  131. package/schema/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json +37 -0
  132. package/schema/materials_category_components/entities/reusable/three-dimensional/crystal_lattice_base.json +20 -0
  133. package/schema/materials_category_components/entities/reusable/two-dimensional/crystal_lattice_planes.json +6 -11
  134. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json +32 -0
  135. package/schema/materials_category_components/operations/core/combinations/enums.json +12 -0
  136. package/schema/materials_category_components/operations/core/combinations/merge.json +9 -23
  137. package/schema/materials_category_components/operations/core/combinations/stack.json +3 -5
  138. package/schema/materials_category_components/operations/core/modifications/perturb.json +16 -0
  139. package/schema/software/flavor.json +7 -0
  140. package/dist/js/example/materials_category_components/operations/core/combinations/stack_component.json +0 -128
  141. package/example/materials_category_components/operations/core/combinations/stack_component.json +0 -3
  142. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json +0 -33
  143. package/schema/materials_category_components/operations/core/combinations/stack_component.json +0 -14
@@ -2,1782 +2,1755 @@
2
2
  "$id": "materials-category/pristine-structures/two-dimensional/slab",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Slab Configuration Schema",
5
- "description": "A slab structure configuration that can optionally include a supercell transformation in the xy plane",
5
+ "description": "A slab unit cell consisting of repeated unique atomic layers and vacuum.",
6
6
  "type": "object",
7
7
  "required": [
8
8
  "stack_components",
9
9
  "direction"
10
10
  ],
11
11
  "properties": {
12
- "xy_supercell_matrix": {
13
- "$schema": "http://json-schema.org/draft-07/schema#",
14
- "title": "Supercell Matrix 2D Schema",
15
- "description": "Supercell matrix for xy plane transformations",
16
- "type": "array",
17
- "minItems": 2,
18
- "maxItems": 2,
19
- "default": [
20
- [
21
- 1,
22
- 0
23
- ],
24
- [
25
- 0,
26
- 1
27
- ]
28
- ],
29
- "items": {
30
- "type": "array",
31
- "minItems": 2,
32
- "maxItems": 2,
33
- "items": {
34
- "type": "integer"
35
- }
36
- }
37
- },
38
12
  "stack_components": {
39
13
  "type": "array",
40
14
  "minItems": 2,
41
- "description": "Components of the slab unit cell: repeated unique atomic layers and vacuum",
42
- "items": {
43
- "oneOf": [
44
- {
45
- "$schema": "http://json-schema.org/draft-07/schema#",
46
- "title": "Atomic Layers Unique Repeated Schema",
47
- "description": "Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination",
48
- "type": "object",
49
- "required": [
50
- "crystal",
51
- "miller_indices",
52
- "number_of_repetitions",
53
- "termination_top",
54
- "use_conventional_cell"
55
- ],
56
- "properties": {
57
- "termination_top": {
58
- "$schema": "http://json-schema.org/draft-07/schema#",
59
- "title": "Termination Schema",
60
- "description": "Defines a specific termination of a slab",
61
- "type": "object",
62
- "required": [
63
- "chemical_elements",
64
- "space_group_symmetry_label"
65
- ],
66
- "properties": {
67
- "chemical_elements": {
68
- "title": "Chemical Elements",
69
- "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
70
- "type": "string",
71
- "anyOf": [
72
- {
73
- "enum": [
74
- "H",
75
- "He",
76
- "Li",
77
- "Be",
78
- "B",
79
- "C",
80
- "N",
81
- "O",
82
- "F",
83
- "Ne",
84
- "Na",
85
- "Mg",
86
- "Al",
87
- "Si",
88
- "P",
89
- "S",
90
- "Cl",
91
- "Ar",
92
- "K",
93
- "Ca",
94
- "Sc",
95
- "Ti",
96
- "V",
97
- "Cr",
98
- "Mn",
99
- "Fe",
100
- "Co",
101
- "Ni",
102
- "Cu",
103
- "Zn",
104
- "Ga",
105
- "Ge",
106
- "As",
107
- "Se",
108
- "Br",
109
- "Kr",
110
- "Rb",
111
- "Sr",
112
- "Y",
113
- "Zr",
114
- "Nb",
115
- "Mo",
116
- "Tc",
117
- "Ru",
118
- "Rh",
119
- "Pd",
120
- "Ag",
121
- "Cd",
122
- "In",
123
- "Sn",
124
- "Sb",
125
- "Te",
126
- "I",
127
- "Xe",
128
- "Cs",
129
- "Ba",
130
- "La",
131
- "Ce",
132
- "Pr",
133
- "Nd",
134
- "Pm",
135
- "Sm",
136
- "Eu",
137
- "Gd",
138
- "Tb",
139
- "Dy",
140
- "Ho",
141
- "Er",
142
- "Tm",
143
- "Yb",
144
- "Lu",
145
- "Hf",
146
- "Ta",
147
- "W",
148
- "Re",
149
- "Os",
150
- "Ir",
151
- "Pt",
152
- "Au",
153
- "Hg",
154
- "Tl",
155
- "Pb",
156
- "Bi",
157
- "Po",
158
- "At",
159
- "Rn",
160
- "Fr",
161
- "Ra",
162
- "Ac",
163
- "Th",
164
- "Pa",
165
- "U",
166
- "Np",
167
- "Pu",
168
- "Am",
169
- "Cm",
170
- "Bk",
171
- "Cf",
172
- "Es",
173
- "Fm",
174
- "Md",
175
- "No",
176
- "Lr",
177
- "Rf",
178
- "Db",
179
- "Sg",
180
- "Bh",
181
- "Hs",
182
- "Mt",
183
- "Ds",
184
- "Rg",
185
- "Cn",
186
- "Nh",
187
- "Fl",
188
- "Mc",
189
- "Lv",
190
- "Ts",
191
- "Og"
192
- ]
193
- },
194
- {
195
- "type": "string",
196
- "pattern": "^([A-Z][a-z]?[0-9]*)+$"
197
- }
198
- ]
199
- },
200
- "space_group_symmetry_label": {
201
- "title": "Space Group Symmetry Label",
202
- "description": "Space group symmetry designation for the termination",
203
- "type": "string"
204
- }
15
+ "maxItems": 2,
16
+ "items": [
17
+ {
18
+ "$schema": "http://json-schema.org/draft-07/schema#",
19
+ "title": "Atomic Layers Unique Repeated Schema",
20
+ "description": "Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination",
21
+ "type": "object",
22
+ "required": [
23
+ "crystal",
24
+ "miller_indices",
25
+ "number_of_repetitions",
26
+ "termination_top"
27
+ ],
28
+ "properties": {
29
+ "termination_top": {
30
+ "$schema": "http://json-schema.org/draft-07/schema#",
31
+ "title": "Termination Schema",
32
+ "description": "Defines a specific termination of a slab",
33
+ "type": "object",
34
+ "required": [
35
+ "chemical_elements",
36
+ "space_group_symmetry_label"
37
+ ],
38
+ "properties": {
39
+ "chemical_elements": {
40
+ "title": "Chemical Elements",
41
+ "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
42
+ "type": "string",
43
+ "anyOf": [
44
+ {
45
+ "enum": [
46
+ "H",
47
+ "He",
48
+ "Li",
49
+ "Be",
50
+ "B",
51
+ "C",
52
+ "N",
53
+ "O",
54
+ "F",
55
+ "Ne",
56
+ "Na",
57
+ "Mg",
58
+ "Al",
59
+ "Si",
60
+ "P",
61
+ "S",
62
+ "Cl",
63
+ "Ar",
64
+ "K",
65
+ "Ca",
66
+ "Sc",
67
+ "Ti",
68
+ "V",
69
+ "Cr",
70
+ "Mn",
71
+ "Fe",
72
+ "Co",
73
+ "Ni",
74
+ "Cu",
75
+ "Zn",
76
+ "Ga",
77
+ "Ge",
78
+ "As",
79
+ "Se",
80
+ "Br",
81
+ "Kr",
82
+ "Rb",
83
+ "Sr",
84
+ "Y",
85
+ "Zr",
86
+ "Nb",
87
+ "Mo",
88
+ "Tc",
89
+ "Ru",
90
+ "Rh",
91
+ "Pd",
92
+ "Ag",
93
+ "Cd",
94
+ "In",
95
+ "Sn",
96
+ "Sb",
97
+ "Te",
98
+ "I",
99
+ "Xe",
100
+ "Cs",
101
+ "Ba",
102
+ "La",
103
+ "Ce",
104
+ "Pr",
105
+ "Nd",
106
+ "Pm",
107
+ "Sm",
108
+ "Eu",
109
+ "Gd",
110
+ "Tb",
111
+ "Dy",
112
+ "Ho",
113
+ "Er",
114
+ "Tm",
115
+ "Yb",
116
+ "Lu",
117
+ "Hf",
118
+ "Ta",
119
+ "W",
120
+ "Re",
121
+ "Os",
122
+ "Ir",
123
+ "Pt",
124
+ "Au",
125
+ "Hg",
126
+ "Tl",
127
+ "Pb",
128
+ "Bi",
129
+ "Po",
130
+ "At",
131
+ "Rn",
132
+ "Fr",
133
+ "Ra",
134
+ "Ac",
135
+ "Th",
136
+ "Pa",
137
+ "U",
138
+ "Np",
139
+ "Pu",
140
+ "Am",
141
+ "Cm",
142
+ "Bk",
143
+ "Cf",
144
+ "Es",
145
+ "Fm",
146
+ "Md",
147
+ "No",
148
+ "Lr",
149
+ "Rf",
150
+ "Db",
151
+ "Sg",
152
+ "Bh",
153
+ "Hs",
154
+ "Mt",
155
+ "Ds",
156
+ "Rg",
157
+ "Cn",
158
+ "Nh",
159
+ "Fl",
160
+ "Mc",
161
+ "Lv",
162
+ "Ts",
163
+ "Og"
164
+ ]
165
+ },
166
+ {
167
+ "type": "string",
168
+ "description": "A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'",
169
+ "pattern": "^([A-Z][a-z]?[0-9]*)+$"
170
+ }
171
+ ]
172
+ },
173
+ "space_group_symmetry_label": {
174
+ "title": "Space Group Symmetry Label",
175
+ "description": "Space group symmetry designation for the termination",
176
+ "type": "string"
205
177
  }
206
- },
207
- "number_of_repetitions": {
208
- "type": "integer",
209
- "minimum": 1,
210
- "description": "Number of repetitions of the unique atomic layers"
211
- },
212
- "crystal": {
213
- "$schema": "http://json-schema.org/draft-07/schema#",
214
- "title": "Crystal Schema",
215
- "description": "A crystal structure, referencing the base material schema",
216
- "type": "object",
217
- "required": [
218
- "basis",
219
- "lattice"
220
- ],
221
- "properties": {
222
- "formula": {
223
- "description": "reduced chemical formula",
224
- "type": "string"
225
- },
226
- "unitCellFormula": {
227
- "description": "chemical formula based on the number of atoms of each element in the supercell",
228
- "type": "string"
229
- },
230
- "basis": {
231
- "$schema": "http://json-schema.org/draft-07/schema#",
232
- "title": "basis schema",
233
- "type": "object",
234
- "required": [
235
- "elements",
236
- "coordinates"
237
- ],
238
- "properties": {
239
- "elements": {
240
- "$schema": "http://json-schema.org/draft-07/schema#",
241
- "title": "atomic elements schema",
242
- "description": "atomic elements schema",
243
- "type": "array",
244
- "items": {
245
- "$schema": "http://json-schema.org/draft-07/schema#",
246
- "title": "atomic element schema",
247
- "description": "chemical element of an atom according to the periodic table",
248
- "type": "object",
249
- "required": [
250
- "id",
251
- "value"
252
- ],
253
- "properties": {
254
- "value": {
255
- "description": "All elements, including extra elements",
256
- "anyOf": [
257
- {
258
- "enum": [
259
- "H",
260
- "He",
261
- "Li",
262
- "Be",
263
- "B",
264
- "C",
265
- "N",
266
- "O",
267
- "F",
268
- "Ne",
269
- "Na",
270
- "Mg",
271
- "Al",
272
- "Si",
273
- "P",
274
- "S",
275
- "Cl",
276
- "Ar",
277
- "K",
278
- "Ca",
279
- "Sc",
280
- "Ti",
281
- "V",
282
- "Cr",
283
- "Mn",
284
- "Fe",
285
- "Co",
286
- "Ni",
287
- "Cu",
288
- "Zn",
289
- "Ga",
290
- "Ge",
291
- "As",
292
- "Se",
293
- "Br",
294
- "Kr",
295
- "Rb",
296
- "Sr",
297
- "Y",
298
- "Zr",
299
- "Nb",
300
- "Mo",
301
- "Tc",
302
- "Ru",
303
- "Rh",
304
- "Pd",
305
- "Ag",
306
- "Cd",
307
- "In",
308
- "Sn",
309
- "Sb",
310
- "Te",
311
- "I",
312
- "Xe",
313
- "Cs",
314
- "Ba",
315
- "La",
316
- "Ce",
317
- "Pr",
318
- "Nd",
319
- "Pm",
320
- "Sm",
321
- "Eu",
322
- "Gd",
323
- "Tb",
324
- "Dy",
325
- "Ho",
326
- "Er",
327
- "Tm",
328
- "Yb",
329
- "Lu",
330
- "Hf",
331
- "Ta",
332
- "W",
333
- "Re",
334
- "Os",
335
- "Ir",
336
- "Pt",
337
- "Au",
338
- "Hg",
339
- "Tl",
340
- "Pb",
341
- "Bi",
342
- "Po",
343
- "At",
344
- "Rn",
345
- "Fr",
346
- "Ra",
347
- "Ac",
348
- "Th",
349
- "Pa",
350
- "U",
351
- "Np",
352
- "Pu",
353
- "Am",
354
- "Cm",
355
- "Bk",
356
- "Cf",
357
- "Es",
358
- "Fm",
359
- "Md",
360
- "No",
361
- "Lr",
362
- "Rf",
363
- "Db",
364
- "Sg",
365
- "Bh",
366
- "Hs",
367
- "Mt",
368
- "Ds",
369
- "Rg",
370
- "Cn",
371
- "Nh",
372
- "Fl",
373
- "Mc",
374
- "Lv",
375
- "Ts",
376
- "Og"
377
- ]
378
- },
379
- {
380
- "description": "Extra elements, used for convenience purposed",
381
- "enum": [
382
- "X",
383
- "Vac"
384
- ]
385
- }
386
- ],
387
- "type": "string"
388
- },
389
- "id": {
390
- "description": "integer id of this entry",
391
- "type": "integer"
392
- }
393
- }
394
- }
395
- },
396
- "coordinates": {
397
- "$schema": "http://json-schema.org/draft-07/schema#",
398
- "title": "atomic coordinates schema",
399
- "description": "atomic coordinates schema",
400
- "type": "array",
401
- "items": {
402
- "$schema": "http://json-schema.org/draft-07/schema#",
403
- "title": "atomic coordinate schema",
404
- "description": "coordinate of an atom",
405
- "type": "object",
406
- "required": [
407
- "id",
408
- "value"
409
- ],
410
- "properties": {
411
- "value": {
412
- "$schema": "http://json-schema.org/draft-07/schema#",
413
- "title": "coordinate 3d schema",
414
- "type": "array",
415
- "minItems": 3,
416
- "maxItems": 3,
417
- "description": "value of this entry",
418
- "items": {
419
- "type": "number"
420
- }
421
- },
422
- "id": {
423
- "description": "integer id of this entry",
424
- "type": "integer"
425
- }
426
- }
427
- }
428
- },
429
- "units": {
178
+ }
179
+ },
180
+ "number_of_repetitions": {
181
+ "type": "integer",
182
+ "minimum": 1,
183
+ "description": "Number of repetitions of the unique atomic layers"
184
+ },
185
+ "miller_indices": {
186
+ "$schema": "http://json-schema.org/draft-07/schema#",
187
+ "title": "Miller Indices Schema",
188
+ "description": "Miller indices [h, k, l] defining crystallographic planes",
189
+ "default": [
190
+ 0,
191
+ 0,
192
+ 1
193
+ ],
194
+ "type": "array",
195
+ "minItems": 3,
196
+ "maxItems": 3,
197
+ "items": {
198
+ "type": "integer"
199
+ }
200
+ },
201
+ "crystal": {
202
+ "$schema": "http://json-schema.org/draft-07/schema#",
203
+ "title": "Crystal Schema",
204
+ "description": "A crystal structure, referencing the base material schema",
205
+ "type": "object",
206
+ "required": [
207
+ "basis",
208
+ "lattice"
209
+ ],
210
+ "properties": {
211
+ "formula": {
212
+ "description": "reduced chemical formula",
213
+ "type": "string"
214
+ },
215
+ "unitCellFormula": {
216
+ "description": "chemical formula based on the number of atoms of each element in the supercell",
217
+ "type": "string"
218
+ },
219
+ "basis": {
220
+ "$schema": "http://json-schema.org/draft-07/schema#",
221
+ "title": "basis schema",
222
+ "type": "object",
223
+ "required": [
224
+ "elements",
225
+ "coordinates"
226
+ ],
227
+ "properties": {
228
+ "elements": {
229
+ "$schema": "http://json-schema.org/draft-07/schema#",
230
+ "title": "atomic elements schema",
231
+ "description": "atomic elements schema",
232
+ "type": "array",
233
+ "items": {
430
234
  "$schema": "http://json-schema.org/draft-07/schema#",
431
- "title": "basis units enum",
432
- "enum": [
433
- "crystal",
434
- "cartesian"
235
+ "title": "atomic element schema",
236
+ "description": "chemical element of an atom according to the periodic table",
237
+ "type": "object",
238
+ "required": [
239
+ "id",
240
+ "value"
435
241
  ],
436
- "default": "crystal"
437
- },
438
- "labels": {
439
- "$schema": "http://json-schema.org/draft-07/schema#",
440
- "title": "atomic labels schema",
441
- "description": "atomic labels schema",
442
- "type": "array",
443
- "items": {
444
- "$schema": "http://json-schema.org/draft-07/schema#",
445
- "title": "atomic label schema",
446
- "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
447
- "type": "object",
448
- "required": [
449
- "id",
450
- "value"
451
- ],
452
- "properties": {
453
- "value": {
454
- "anyOf": [
455
- {
456
- "type": [
457
- "integer",
458
- "string",
459
- "number"
460
- ]
461
- },
462
- {
463
- "$schema": "http://json-schema.org/draft-07/schema#",
464
- "title": "integer positive single digit",
465
- "type": "integer",
466
- "minimum": 1,
467
- "maximum": 9
468
- }
469
- ],
470
- "description": "value of this entry"
471
- },
472
- "id": {
473
- "description": "integer id of this entry",
474
- "type": "integer"
475
- }
242
+ "properties": {
243
+ "value": {
244
+ "description": "All elements, including extra elements",
245
+ "anyOf": [
246
+ {
247
+ "enum": [
248
+ "H",
249
+ "He",
250
+ "Li",
251
+ "Be",
252
+ "B",
253
+ "C",
254
+ "N",
255
+ "O",
256
+ "F",
257
+ "Ne",
258
+ "Na",
259
+ "Mg",
260
+ "Al",
261
+ "Si",
262
+ "P",
263
+ "S",
264
+ "Cl",
265
+ "Ar",
266
+ "K",
267
+ "Ca",
268
+ "Sc",
269
+ "Ti",
270
+ "V",
271
+ "Cr",
272
+ "Mn",
273
+ "Fe",
274
+ "Co",
275
+ "Ni",
276
+ "Cu",
277
+ "Zn",
278
+ "Ga",
279
+ "Ge",
280
+ "As",
281
+ "Se",
282
+ "Br",
283
+ "Kr",
284
+ "Rb",
285
+ "Sr",
286
+ "Y",
287
+ "Zr",
288
+ "Nb",
289
+ "Mo",
290
+ "Tc",
291
+ "Ru",
292
+ "Rh",
293
+ "Pd",
294
+ "Ag",
295
+ "Cd",
296
+ "In",
297
+ "Sn",
298
+ "Sb",
299
+ "Te",
300
+ "I",
301
+ "Xe",
302
+ "Cs",
303
+ "Ba",
304
+ "La",
305
+ "Ce",
306
+ "Pr",
307
+ "Nd",
308
+ "Pm",
309
+ "Sm",
310
+ "Eu",
311
+ "Gd",
312
+ "Tb",
313
+ "Dy",
314
+ "Ho",
315
+ "Er",
316
+ "Tm",
317
+ "Yb",
318
+ "Lu",
319
+ "Hf",
320
+ "Ta",
321
+ "W",
322
+ "Re",
323
+ "Os",
324
+ "Ir",
325
+ "Pt",
326
+ "Au",
327
+ "Hg",
328
+ "Tl",
329
+ "Pb",
330
+ "Bi",
331
+ "Po",
332
+ "At",
333
+ "Rn",
334
+ "Fr",
335
+ "Ra",
336
+ "Ac",
337
+ "Th",
338
+ "Pa",
339
+ "U",
340
+ "Np",
341
+ "Pu",
342
+ "Am",
343
+ "Cm",
344
+ "Bk",
345
+ "Cf",
346
+ "Es",
347
+ "Fm",
348
+ "Md",
349
+ "No",
350
+ "Lr",
351
+ "Rf",
352
+ "Db",
353
+ "Sg",
354
+ "Bh",
355
+ "Hs",
356
+ "Mt",
357
+ "Ds",
358
+ "Rg",
359
+ "Cn",
360
+ "Nh",
361
+ "Fl",
362
+ "Mc",
363
+ "Lv",
364
+ "Ts",
365
+ "Og"
366
+ ]
367
+ },
368
+ {
369
+ "description": "Extra elements, used for convenience purposed",
370
+ "enum": [
371
+ "X",
372
+ "Vac"
373
+ ]
374
+ }
375
+ ],
376
+ "type": "string"
377
+ },
378
+ "id": {
379
+ "description": "integer id of this entry",
380
+ "type": "integer"
476
381
  }
477
382
  }
478
383
  }
479
- }
480
- },
481
- "lattice": {
482
- "$schema": "http://json-schema.org/draft-07/schema#",
483
- "title": "lattice schema",
484
- "type": "object",
485
- "required": [
486
- "a",
487
- "b",
488
- "c",
489
- "alpha",
490
- "beta",
491
- "gamma"
492
- ],
493
- "properties": {
494
- "a": {
495
- "description": "length of the first lattice vector",
496
- "type": "number"
497
- },
498
- "b": {
499
- "description": "length of the second lattice vector",
500
- "type": "number"
501
- },
502
- "c": {
503
- "description": "length of the third lattice vector",
504
- "type": "number"
505
- },
506
- "alpha": {
507
- "description": "angle between first and second lattice vector",
508
- "type": "number"
509
- },
510
- "beta": {
511
- "description": "angle between second and third lattice vector",
512
- "type": "number"
513
- },
514
- "gamma": {
515
- "description": "angle between first and third lattice vector",
516
- "type": "number"
517
- },
518
- "vectors": {
384
+ },
385
+ "coordinates": {
386
+ "$schema": "http://json-schema.org/draft-07/schema#",
387
+ "title": "atomic coordinates schema",
388
+ "description": "atomic coordinates schema",
389
+ "type": "array",
390
+ "items": {
519
391
  "$schema": "http://json-schema.org/draft-07/schema#",
520
- "title": "lattice vectors schema",
392
+ "title": "atomic coordinate schema",
393
+ "description": "coordinate of an atom",
521
394
  "type": "object",
522
395
  "required": [
523
- "a",
524
- "b",
525
- "c"
396
+ "id",
397
+ "value"
526
398
  ],
527
399
  "properties": {
528
- "a": {
529
- "$schema": "http://json-schema.org/draft-07/schema#",
530
- "title": "vector 3d schema",
531
- "type": "array",
532
- "minItems": 3,
533
- "maxItems": 3,
534
- "items": {
535
- "type": "number"
536
- }
537
- },
538
- "b": {
400
+ "value": {
539
401
  "$schema": "http://json-schema.org/draft-07/schema#",
540
- "title": "vector 3d schema",
402
+ "title": "coordinate 3d schema",
541
403
  "type": "array",
542
404
  "minItems": 3,
543
405
  "maxItems": 3,
406
+ "description": "value of this entry",
544
407
  "items": {
545
408
  "type": "number"
546
409
  }
547
410
  },
548
- "c": {
549
- "$schema": "http://json-schema.org/draft-07/schema#",
550
- "title": "vector 3d schema",
551
- "type": "array",
552
- "minItems": 3,
553
- "maxItems": 3,
554
- "items": {
555
- "type": "number"
556
- }
557
- },
558
- "alat": {
559
- "description": "lattice parameter for fractional coordinates",
560
- "type": "number",
561
- "default": 1
562
- },
563
- "units": {
564
- "$schema": "http://json-schema.org/draft-07/schema#",
565
- "title": "lattice vectors units enum",
566
- "enum": [
567
- "angstrom",
568
- "bohr"
569
- ],
570
- "default": "angstrom"
411
+ "id": {
412
+ "description": "integer id of this entry",
413
+ "type": "integer"
571
414
  }
572
415
  }
573
- },
574
- "type": {
575
- "$schema": "http://json-schema.org/draft-07/schema#",
576
- "title": "lattice type enum",
577
- "type": "string",
578
- "enum": [
579
- "CUB",
580
- "BCC",
581
- "FCC",
582
- "TET",
583
- "MCL",
584
- "ORC",
585
- "ORCC",
586
- "ORCF",
587
- "ORCI",
588
- "HEX",
589
- "BCT",
590
- "TRI",
591
- "MCLC",
592
- "RHL"
593
- ],
594
- "default": "TRI"
595
- },
596
- "units": {
416
+ }
417
+ },
418
+ "units": {
419
+ "$schema": "http://json-schema.org/draft-07/schema#",
420
+ "title": "basis units enum",
421
+ "enum": [
422
+ "crystal",
423
+ "cartesian"
424
+ ],
425
+ "default": "crystal"
426
+ },
427
+ "labels": {
428
+ "$schema": "http://json-schema.org/draft-07/schema#",
429
+ "title": "atomic labels schema",
430
+ "description": "atomic labels schema",
431
+ "type": "array",
432
+ "items": {
597
433
  "$schema": "http://json-schema.org/draft-07/schema#",
598
- "title": "Lattice units schema",
434
+ "title": "atomic label schema",
435
+ "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
599
436
  "type": "object",
600
- "default": {
601
- "length": "angstrom",
602
- "angle": "degree"
603
- },
437
+ "required": [
438
+ "id",
439
+ "value"
440
+ ],
604
441
  "properties": {
605
- "length": {
606
- "$schema": "http://json-schema.org/draft-07/schema#",
607
- "title": "lattice units length enum",
608
- "enum": [
609
- "angstrom",
610
- "bohr"
442
+ "value": {
443
+ "anyOf": [
444
+ {
445
+ "type": [
446
+ "integer",
447
+ "string",
448
+ "number"
449
+ ]
450
+ },
451
+ {
452
+ "$schema": "http://json-schema.org/draft-07/schema#",
453
+ "title": "integer positive single digit",
454
+ "type": "integer",
455
+ "minimum": 1,
456
+ "maximum": 9
457
+ }
611
458
  ],
612
- "default": "angstrom"
459
+ "description": "value of this entry"
613
460
  },
614
- "angle": {
615
- "$schema": "http://json-schema.org/draft-07/schema#",
616
- "title": "lattice units angle enum",
617
- "enum": [
618
- "degree",
619
- "radian"
620
- ],
621
- "default": "degree"
461
+ "id": {
462
+ "description": "integer id of this entry",
463
+ "type": "integer"
622
464
  }
623
465
  }
624
466
  }
625
467
  }
626
- },
627
- "derivedProperties": {
628
- "$schema": "http://json-schema.org/draft-07/schema#",
629
- "title": "derived properties schema",
630
- "type": "array",
631
- "items": {
632
- "oneOf": [
633
- {
468
+ }
469
+ },
470
+ "lattice": {
471
+ "$schema": "http://json-schema.org/draft-07/schema#",
472
+ "title": "lattice schema",
473
+ "type": "object",
474
+ "required": [
475
+ "a",
476
+ "b",
477
+ "c",
478
+ "alpha",
479
+ "beta",
480
+ "gamma"
481
+ ],
482
+ "properties": {
483
+ "a": {
484
+ "description": "length of the first lattice vector",
485
+ "type": "number"
486
+ },
487
+ "b": {
488
+ "description": "length of the second lattice vector",
489
+ "type": "number"
490
+ },
491
+ "c": {
492
+ "description": "length of the third lattice vector",
493
+ "type": "number"
494
+ },
495
+ "alpha": {
496
+ "description": "angle between first and second lattice vector",
497
+ "type": "number"
498
+ },
499
+ "beta": {
500
+ "description": "angle between second and third lattice vector",
501
+ "type": "number"
502
+ },
503
+ "gamma": {
504
+ "description": "angle between first and third lattice vector",
505
+ "type": "number"
506
+ },
507
+ "vectors": {
508
+ "$schema": "http://json-schema.org/draft-07/schema#",
509
+ "title": "lattice vectors schema",
510
+ "type": "object",
511
+ "required": [
512
+ "a",
513
+ "b",
514
+ "c"
515
+ ],
516
+ "properties": {
517
+ "a": {
634
518
  "$schema": "http://json-schema.org/draft-07/schema#",
635
- "title": "volume schema",
636
- "type": "object",
637
- "required": [
638
- "value"
639
- ],
640
- "properties": {
641
- "name": {
642
- "enum": [
643
- "volume"
644
- ]
645
- },
646
- "units": {
647
- "enum": [
648
- "angstrom^3"
649
- ]
650
- },
651
- "value": {
652
- "type": "number"
653
- }
519
+ "title": "vector 3d schema",
520
+ "type": "array",
521
+ "minItems": 3,
522
+ "maxItems": 3,
523
+ "items": {
524
+ "type": "number"
654
525
  }
655
526
  },
656
- {
527
+ "b": {
657
528
  "$schema": "http://json-schema.org/draft-07/schema#",
658
- "title": "density schema",
659
- "type": "object",
660
- "required": [
661
- "value"
662
- ],
663
- "properties": {
664
- "name": {
665
- "enum": [
666
- "density"
667
- ]
668
- },
669
- "units": {
670
- "enum": [
671
- "g/cm^3"
672
- ]
673
- },
674
- "value": {
675
- "type": "number"
676
- }
529
+ "title": "vector 3d schema",
530
+ "type": "array",
531
+ "minItems": 3,
532
+ "maxItems": 3,
533
+ "items": {
534
+ "type": "number"
677
535
  }
678
536
  },
679
- {
537
+ "c": {
680
538
  "$schema": "http://json-schema.org/draft-07/schema#",
681
- "title": "symmetry schema",
682
- "type": "object",
683
- "properties": {
684
- "pointGroupSymbol": {
685
- "description": "point group symbol in Schoenflies notation",
686
- "type": "string"
687
- },
688
- "spaceGroupSymbol": {
689
- "description": "space group symbol in Hermann–Mauguin notation",
690
- "type": "string"
691
- },
692
- "tolerance": {
693
- "type": "object",
694
- "description": "tolerance used for symmetry calculation",
695
- "$schema": "http://json-schema.org/draft-07/schema#",
696
- "title": "scalar schema",
697
- "required": [
698
- "value"
699
- ],
700
- "properties": {
701
- "units": {
702
- "enum": [
703
- "angstrom"
704
- ]
705
- },
706
- "value": {
707
- "type": "number"
708
- }
709
- }
710
- },
711
- "name": {
712
- "enum": [
713
- "symmetry"
714
- ]
715
- }
539
+ "title": "vector 3d schema",
540
+ "type": "array",
541
+ "minItems": 3,
542
+ "maxItems": 3,
543
+ "items": {
544
+ "type": "number"
716
545
  }
717
546
  },
718
- {
719
- "$schema": "http://json-schema.org/draft-07/schema#",
720
- "title": "elemental-ratio",
721
- "description": "ration of this element in the compound",
722
- "type": "object",
723
- "required": [
724
- "value"
725
- ],
726
- "properties": {
727
- "name": {
728
- "enum": [
729
- "elemental_ratio"
730
- ]
731
- },
732
- "value": {
733
- "type": "number",
734
- "minimum": 0,
735
- "maximum": 1
736
- },
737
- "element": {
738
- "type": "string",
739
- "description": "the element this ratio is for"
740
- }
741
- }
547
+ "alat": {
548
+ "description": "lattice parameter for fractional coordinates",
549
+ "type": "number",
550
+ "default": 1
742
551
  },
743
- {
552
+ "units": {
744
553
  "$schema": "http://json-schema.org/draft-07/schema#",
745
- "title": "p_norm",
746
- "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm",
747
- "type": "object",
748
- "required": [
749
- "value"
554
+ "title": "lattice vectors units enum",
555
+ "enum": [
556
+ "angstrom",
557
+ "bohr"
750
558
  ],
751
- "properties": {
752
- "name": {
753
- "enum": [
754
- "p-norm"
755
- ]
756
- },
757
- "degree": {
758
- "type": "integer",
759
- "description": "degree of the dimensionality of the norm"
760
- },
761
- "value": {
762
- "type": "number"
763
- }
764
- }
765
- },
766
- {
559
+ "default": "angstrom"
560
+ }
561
+ }
562
+ },
563
+ "type": {
564
+ "$schema": "http://json-schema.org/draft-07/schema#",
565
+ "title": "lattice type enum",
566
+ "type": "string",
567
+ "enum": [
568
+ "CUB",
569
+ "BCC",
570
+ "FCC",
571
+ "TET",
572
+ "MCL",
573
+ "ORC",
574
+ "ORCC",
575
+ "ORCF",
576
+ "ORCI",
577
+ "HEX",
578
+ "BCT",
579
+ "TRI",
580
+ "MCLC",
581
+ "RHL"
582
+ ],
583
+ "default": "TRI"
584
+ },
585
+ "units": {
586
+ "$schema": "http://json-schema.org/draft-07/schema#",
587
+ "title": "Lattice units schema",
588
+ "type": "object",
589
+ "default": {
590
+ "length": "angstrom",
591
+ "angle": "degree"
592
+ },
593
+ "properties": {
594
+ "length": {
767
595
  "$schema": "http://json-schema.org/draft-07/schema#",
768
- "title": "InChI representation schema",
769
- "type": "object",
770
- "required": [
771
- "value"
596
+ "title": "lattice units length enum",
597
+ "enum": [
598
+ "angstrom",
599
+ "bohr"
772
600
  ],
773
- "properties": {
774
- "name": {
775
- "enum": [
776
- "inchi"
777
- ]
778
- },
779
- "value": {
780
- "type": "string"
781
- }
782
- }
601
+ "default": "angstrom"
783
602
  },
784
- {
603
+ "angle": {
785
604
  "$schema": "http://json-schema.org/draft-07/schema#",
786
- "title": "InChI key representation schema",
787
- "type": "object",
788
- "required": [
789
- "value"
605
+ "title": "lattice units angle enum",
606
+ "enum": [
607
+ "degree",
608
+ "radian"
790
609
  ],
791
- "properties": {
792
- "name": {
793
- "enum": [
794
- "inchi_key"
795
- ]
796
- },
797
- "value": {
798
- "type": "string"
799
- }
610
+ "default": "degree"
611
+ }
612
+ }
613
+ }
614
+ }
615
+ },
616
+ "derivedProperties": {
617
+ "$schema": "http://json-schema.org/draft-07/schema#",
618
+ "title": "derived properties schema",
619
+ "type": "array",
620
+ "items": {
621
+ "oneOf": [
622
+ {
623
+ "$schema": "http://json-schema.org/draft-07/schema#",
624
+ "title": "volume schema",
625
+ "type": "object",
626
+ "required": [
627
+ "value"
628
+ ],
629
+ "properties": {
630
+ "name": {
631
+ "enum": [
632
+ "volume"
633
+ ]
634
+ },
635
+ "units": {
636
+ "enum": [
637
+ "angstrom^3"
638
+ ]
639
+ },
640
+ "value": {
641
+ "type": "number"
800
642
  }
801
643
  }
802
- ],
803
- "discriminator": {
804
- "propertyName": "name"
805
644
  },
806
- "required": [
807
- "name"
808
- ]
809
- }
810
- },
811
- "external": {
812
- "$schema": "http://json-schema.org/draft-07/schema#",
813
- "title": "database source schema",
814
- "description": "information about a database source",
815
- "type": "object",
816
- "required": [
817
- "id",
818
- "source",
819
- "origin"
820
- ],
821
- "properties": {
822
- "id": {
823
- "description": "ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32",
824
- "oneOf": [
825
- {
826
- "type": "string"
645
+ {
646
+ "$schema": "http://json-schema.org/draft-07/schema#",
647
+ "title": "density schema",
648
+ "type": "object",
649
+ "required": [
650
+ "value"
651
+ ],
652
+ "properties": {
653
+ "name": {
654
+ "enum": [
655
+ "density"
656
+ ]
827
657
  },
828
- {
658
+ "units": {
659
+ "enum": [
660
+ "g/cm^3"
661
+ ]
662
+ },
663
+ "value": {
829
664
  "type": "number"
830
665
  }
831
- ]
666
+ }
832
667
  },
833
- "source": {
834
- "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.",
835
- "type": "string"
668
+ {
669
+ "$schema": "http://json-schema.org/draft-07/schema#",
670
+ "title": "symmetry schema",
671
+ "type": "object",
672
+ "properties": {
673
+ "pointGroupSymbol": {
674
+ "description": "point group symbol in Schoenflies notation",
675
+ "type": "string"
676
+ },
677
+ "spaceGroupSymbol": {
678
+ "description": "space group symbol in Hermann–Mauguin notation",
679
+ "type": "string"
680
+ },
681
+ "tolerance": {
682
+ "type": "object",
683
+ "description": "tolerance used for symmetry calculation",
684
+ "$schema": "http://json-schema.org/draft-07/schema#",
685
+ "title": "scalar schema",
686
+ "required": [
687
+ "value"
688
+ ],
689
+ "properties": {
690
+ "units": {
691
+ "enum": [
692
+ "angstrom"
693
+ ]
694
+ },
695
+ "value": {
696
+ "type": "number"
697
+ }
698
+ }
699
+ },
700
+ "name": {
701
+ "enum": [
702
+ "symmetry"
703
+ ]
704
+ }
705
+ }
836
706
  },
837
- "origin": {
838
- "description": "Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).",
839
- "type": "boolean"
707
+ {
708
+ "$schema": "http://json-schema.org/draft-07/schema#",
709
+ "title": "elemental-ratio",
710
+ "description": "ration of this element in the compound",
711
+ "type": "object",
712
+ "required": [
713
+ "value"
714
+ ],
715
+ "properties": {
716
+ "name": {
717
+ "enum": [
718
+ "elemental_ratio"
719
+ ]
720
+ },
721
+ "value": {
722
+ "type": "number",
723
+ "minimum": 0,
724
+ "maximum": 1
725
+ },
726
+ "element": {
727
+ "type": "string",
728
+ "description": "the element this ratio is for"
729
+ }
730
+ }
840
731
  },
841
- "data": {
842
- "description": "Original response from external source.",
843
- "type": "object"
732
+ {
733
+ "$schema": "http://json-schema.org/draft-07/schema#",
734
+ "title": "p_norm",
735
+ "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm",
736
+ "type": "object",
737
+ "required": [
738
+ "value"
739
+ ],
740
+ "properties": {
741
+ "name": {
742
+ "enum": [
743
+ "p-norm"
744
+ ]
745
+ },
746
+ "degree": {
747
+ "type": "integer",
748
+ "description": "degree of the dimensionality of the norm"
749
+ },
750
+ "value": {
751
+ "type": "number"
752
+ }
753
+ }
844
754
  },
845
- "doi": {
846
- "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506",
847
- "type": "string"
755
+ {
756
+ "$schema": "http://json-schema.org/draft-07/schema#",
757
+ "title": "InChI representation schema",
758
+ "type": "object",
759
+ "required": [
760
+ "value"
761
+ ],
762
+ "properties": {
763
+ "name": {
764
+ "enum": [
765
+ "inchi"
766
+ ]
767
+ },
768
+ "value": {
769
+ "type": "string"
770
+ }
771
+ }
848
772
  },
849
- "url": {
850
- "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers",
851
- "type": "string"
773
+ {
774
+ "$schema": "http://json-schema.org/draft-07/schema#",
775
+ "title": "InChI key representation schema",
776
+ "type": "object",
777
+ "required": [
778
+ "value"
779
+ ],
780
+ "properties": {
781
+ "name": {
782
+ "enum": [
783
+ "inchi_key"
784
+ ]
785
+ },
786
+ "value": {
787
+ "type": "string"
788
+ }
789
+ }
852
790
  }
791
+ ],
792
+ "discriminator": {
793
+ "propertyName": "name"
794
+ },
795
+ "required": [
796
+ "name"
797
+ ]
798
+ }
799
+ },
800
+ "external": {
801
+ "$schema": "http://json-schema.org/draft-07/schema#",
802
+ "title": "database source schema",
803
+ "description": "information about a database source",
804
+ "type": "object",
805
+ "required": [
806
+ "id",
807
+ "source",
808
+ "origin"
809
+ ],
810
+ "properties": {
811
+ "id": {
812
+ "description": "ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32",
813
+ "oneOf": [
814
+ {
815
+ "type": "string"
816
+ },
817
+ {
818
+ "type": "number"
819
+ }
820
+ ]
821
+ },
822
+ "source": {
823
+ "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.",
824
+ "type": "string"
825
+ },
826
+ "origin": {
827
+ "description": "Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).",
828
+ "type": "boolean"
829
+ },
830
+ "data": {
831
+ "description": "Original response from external source.",
832
+ "type": "object"
833
+ },
834
+ "doi": {
835
+ "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506",
836
+ "type": "string"
837
+ },
838
+ "url": {
839
+ "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers",
840
+ "type": "string"
853
841
  }
854
- },
855
- "src": {
842
+ }
843
+ },
844
+ "src": {
845
+ "$schema": "http://json-schema.org/draft-07/schema#",
846
+ "title": "file source schema",
847
+ "description": "file source with the information inside",
848
+ "type": "object",
849
+ "required": [
850
+ "filename",
851
+ "text",
852
+ "hash"
853
+ ],
854
+ "properties": {
855
+ "extension": {
856
+ "description": "file extension",
857
+ "type": "string"
858
+ },
859
+ "filename": {
860
+ "description": "file name without extension",
861
+ "type": "string"
862
+ },
863
+ "text": {
864
+ "description": "file content as raw text",
865
+ "type": "string"
866
+ },
867
+ "hash": {
868
+ "description": "MD5 hash based on file content",
869
+ "type": "string"
870
+ }
871
+ }
872
+ },
873
+ "scaledHash": {
874
+ "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).",
875
+ "type": "string"
876
+ },
877
+ "icsdId": {
878
+ "description": "Corresponding ICSD id of the material",
879
+ "type": "integer"
880
+ },
881
+ "isNonPeriodic": {
882
+ "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)",
883
+ "type": "boolean"
884
+ },
885
+ "consistencyChecks": {
886
+ "type": "array",
887
+ "items": {
856
888
  "$schema": "http://json-schema.org/draft-07/schema#",
857
- "title": "file source schema",
858
- "description": "file source with the information inside",
889
+ "title": "material consistency check schema",
859
890
  "type": "object",
891
+ "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.",
860
892
  "required": [
861
- "filename",
862
- "text",
863
- "hash"
893
+ "key",
894
+ "name",
895
+ "severity",
896
+ "message"
864
897
  ],
865
898
  "properties": {
866
- "extension": {
867
- "description": "file extension",
868
- "type": "string"
899
+ "name": {
900
+ "type": "string",
901
+ "enum": [
902
+ "default",
903
+ "atomsTooClose",
904
+ "atomsOverlap"
905
+ ],
906
+ "description": "Name of the consistency check that is performed, which is listed in an enum."
869
907
  },
870
- "filename": {
871
- "description": "file name without extension",
872
- "type": "string"
908
+ "key": {
909
+ "type": "string",
910
+ "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"
873
911
  },
874
- "text": {
875
- "description": "file content as raw text",
876
- "type": "string"
912
+ "severity": {
913
+ "enum": [
914
+ "info",
915
+ "warning",
916
+ "error"
917
+ ],
918
+ "description": "Severity level of the problem, which is used in UI to differentiate."
877
919
  },
878
- "hash": {
879
- "description": "MD5 hash based on file content",
880
- "type": "string"
920
+ "message": {
921
+ "type": "string",
922
+ "description": "Message generated by the consistency check describing the problem."
923
+ }
924
+ }
925
+ }
926
+ },
927
+ "_id": {
928
+ "description": "entity identity",
929
+ "type": "string"
930
+ },
931
+ "slug": {
932
+ "description": "entity slug",
933
+ "type": "string"
934
+ },
935
+ "systemName": {
936
+ "type": "string"
937
+ },
938
+ "schemaVersion": {
939
+ "description": "entity's schema version. Used to distinct between different schemas.",
940
+ "type": "string",
941
+ "default": "2022.8.16"
942
+ },
943
+ "name": {
944
+ "description": "entity name",
945
+ "type": "string"
946
+ },
947
+ "isDefault": {
948
+ "description": "Identifies that entity is defaultable",
949
+ "type": "boolean",
950
+ "default": false
951
+ },
952
+ "metadata": {
953
+ "type": "object"
954
+ }
955
+ }
956
+ },
957
+ "use_conventional_cell": {
958
+ "type": "boolean",
959
+ "description": "Use the conventional cell for the crystal structure",
960
+ "default": true
961
+ }
962
+ }
963
+ },
964
+ {
965
+ "$schema": "http://json-schema.org/draft-07/schema#",
966
+ "title": "Vacuum Configuration Schema",
967
+ "description": "A vacuum slab that breaks periodicity in a specified direction",
968
+ "type": "object",
969
+ "required": [
970
+ "direction",
971
+ "size",
972
+ "crystal"
973
+ ],
974
+ "properties": {
975
+ "direction": {
976
+ "$schema": "http://json-schema.org/draft-07/schema#",
977
+ "title": "Axis Enum",
978
+ "type": "string",
979
+ "description": "Enum for axis types",
980
+ "enum": [
981
+ "x",
982
+ "y",
983
+ "z"
984
+ ]
985
+ },
986
+ "size": {
987
+ "type": "number",
988
+ "description": "Size of the vacuum slab in angstroms",
989
+ "minimum": 0,
990
+ "default": 10
991
+ },
992
+ "crystal": {
993
+ "$schema": "http://json-schema.org/draft-07/schema#",
994
+ "title": "Crystal Schema",
995
+ "description": "A crystal structure, referencing the base material schema",
996
+ "type": "object",
997
+ "required": [
998
+ "basis",
999
+ "lattice"
1000
+ ],
1001
+ "properties": {
1002
+ "formula": {
1003
+ "description": "reduced chemical formula",
1004
+ "type": "string"
1005
+ },
1006
+ "unitCellFormula": {
1007
+ "description": "chemical formula based on the number of atoms of each element in the supercell",
1008
+ "type": "string"
1009
+ },
1010
+ "basis": {
1011
+ "$schema": "http://json-schema.org/draft-07/schema#",
1012
+ "title": "basis schema",
1013
+ "type": "object",
1014
+ "required": [
1015
+ "elements",
1016
+ "coordinates"
1017
+ ],
1018
+ "properties": {
1019
+ "elements": {
1020
+ "$schema": "http://json-schema.org/draft-07/schema#",
1021
+ "title": "atomic elements schema",
1022
+ "description": "atomic elements schema",
1023
+ "type": "array",
1024
+ "items": {
1025
+ "$schema": "http://json-schema.org/draft-07/schema#",
1026
+ "title": "atomic element schema",
1027
+ "description": "chemical element of an atom according to the periodic table",
1028
+ "type": "object",
1029
+ "required": [
1030
+ "id",
1031
+ "value"
1032
+ ],
1033
+ "properties": {
1034
+ "value": {
1035
+ "description": "All elements, including extra elements",
1036
+ "anyOf": [
1037
+ {
1038
+ "enum": [
1039
+ "H",
1040
+ "He",
1041
+ "Li",
1042
+ "Be",
1043
+ "B",
1044
+ "C",
1045
+ "N",
1046
+ "O",
1047
+ "F",
1048
+ "Ne",
1049
+ "Na",
1050
+ "Mg",
1051
+ "Al",
1052
+ "Si",
1053
+ "P",
1054
+ "S",
1055
+ "Cl",
1056
+ "Ar",
1057
+ "K",
1058
+ "Ca",
1059
+ "Sc",
1060
+ "Ti",
1061
+ "V",
1062
+ "Cr",
1063
+ "Mn",
1064
+ "Fe",
1065
+ "Co",
1066
+ "Ni",
1067
+ "Cu",
1068
+ "Zn",
1069
+ "Ga",
1070
+ "Ge",
1071
+ "As",
1072
+ "Se",
1073
+ "Br",
1074
+ "Kr",
1075
+ "Rb",
1076
+ "Sr",
1077
+ "Y",
1078
+ "Zr",
1079
+ "Nb",
1080
+ "Mo",
1081
+ "Tc",
1082
+ "Ru",
1083
+ "Rh",
1084
+ "Pd",
1085
+ "Ag",
1086
+ "Cd",
1087
+ "In",
1088
+ "Sn",
1089
+ "Sb",
1090
+ "Te",
1091
+ "I",
1092
+ "Xe",
1093
+ "Cs",
1094
+ "Ba",
1095
+ "La",
1096
+ "Ce",
1097
+ "Pr",
1098
+ "Nd",
1099
+ "Pm",
1100
+ "Sm",
1101
+ "Eu",
1102
+ "Gd",
1103
+ "Tb",
1104
+ "Dy",
1105
+ "Ho",
1106
+ "Er",
1107
+ "Tm",
1108
+ "Yb",
1109
+ "Lu",
1110
+ "Hf",
1111
+ "Ta",
1112
+ "W",
1113
+ "Re",
1114
+ "Os",
1115
+ "Ir",
1116
+ "Pt",
1117
+ "Au",
1118
+ "Hg",
1119
+ "Tl",
1120
+ "Pb",
1121
+ "Bi",
1122
+ "Po",
1123
+ "At",
1124
+ "Rn",
1125
+ "Fr",
1126
+ "Ra",
1127
+ "Ac",
1128
+ "Th",
1129
+ "Pa",
1130
+ "U",
1131
+ "Np",
1132
+ "Pu",
1133
+ "Am",
1134
+ "Cm",
1135
+ "Bk",
1136
+ "Cf",
1137
+ "Es",
1138
+ "Fm",
1139
+ "Md",
1140
+ "No",
1141
+ "Lr",
1142
+ "Rf",
1143
+ "Db",
1144
+ "Sg",
1145
+ "Bh",
1146
+ "Hs",
1147
+ "Mt",
1148
+ "Ds",
1149
+ "Rg",
1150
+ "Cn",
1151
+ "Nh",
1152
+ "Fl",
1153
+ "Mc",
1154
+ "Lv",
1155
+ "Ts",
1156
+ "Og"
1157
+ ]
1158
+ },
1159
+ {
1160
+ "description": "Extra elements, used for convenience purposed",
1161
+ "enum": [
1162
+ "X",
1163
+ "Vac"
1164
+ ]
1165
+ }
1166
+ ],
1167
+ "type": "string"
1168
+ },
1169
+ "id": {
1170
+ "description": "integer id of this entry",
1171
+ "type": "integer"
1172
+ }
1173
+ }
1174
+ }
1175
+ },
1176
+ "coordinates": {
1177
+ "$schema": "http://json-schema.org/draft-07/schema#",
1178
+ "title": "atomic coordinates schema",
1179
+ "description": "atomic coordinates schema",
1180
+ "type": "array",
1181
+ "items": {
1182
+ "$schema": "http://json-schema.org/draft-07/schema#",
1183
+ "title": "atomic coordinate schema",
1184
+ "description": "coordinate of an atom",
1185
+ "type": "object",
1186
+ "required": [
1187
+ "id",
1188
+ "value"
1189
+ ],
1190
+ "properties": {
1191
+ "value": {
1192
+ "$schema": "http://json-schema.org/draft-07/schema#",
1193
+ "title": "coordinate 3d schema",
1194
+ "type": "array",
1195
+ "minItems": 3,
1196
+ "maxItems": 3,
1197
+ "description": "value of this entry",
1198
+ "items": {
1199
+ "type": "number"
1200
+ }
1201
+ },
1202
+ "id": {
1203
+ "description": "integer id of this entry",
1204
+ "type": "integer"
1205
+ }
1206
+ }
1207
+ }
1208
+ },
1209
+ "units": {
1210
+ "$schema": "http://json-schema.org/draft-07/schema#",
1211
+ "title": "basis units enum",
1212
+ "enum": [
1213
+ "crystal",
1214
+ "cartesian"
1215
+ ],
1216
+ "default": "crystal"
1217
+ },
1218
+ "labels": {
1219
+ "$schema": "http://json-schema.org/draft-07/schema#",
1220
+ "title": "atomic labels schema",
1221
+ "description": "atomic labels schema",
1222
+ "type": "array",
1223
+ "items": {
1224
+ "$schema": "http://json-schema.org/draft-07/schema#",
1225
+ "title": "atomic label schema",
1226
+ "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
1227
+ "type": "object",
1228
+ "required": [
1229
+ "id",
1230
+ "value"
1231
+ ],
1232
+ "properties": {
1233
+ "value": {
1234
+ "anyOf": [
1235
+ {
1236
+ "type": [
1237
+ "integer",
1238
+ "string",
1239
+ "number"
1240
+ ]
1241
+ },
1242
+ {
1243
+ "$schema": "http://json-schema.org/draft-07/schema#",
1244
+ "title": "integer positive single digit",
1245
+ "type": "integer",
1246
+ "minimum": 1,
1247
+ "maximum": 9
1248
+ }
1249
+ ],
1250
+ "description": "value of this entry"
1251
+ },
1252
+ "id": {
1253
+ "description": "integer id of this entry",
1254
+ "type": "integer"
1255
+ }
1256
+ }
881
1257
  }
882
1258
  }
883
- },
884
- "scaledHash": {
885
- "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).",
886
- "type": "string"
887
- },
888
- "icsdId": {
889
- "description": "Corresponding ICSD id of the material",
890
- "type": "integer"
891
- },
892
- "isNonPeriodic": {
893
- "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)",
894
- "type": "boolean"
895
- },
896
- "consistencyChecks": {
897
- "type": "array",
898
- "items": {
1259
+ }
1260
+ },
1261
+ "lattice": {
1262
+ "$schema": "http://json-schema.org/draft-07/schema#",
1263
+ "title": "lattice schema",
1264
+ "type": "object",
1265
+ "required": [
1266
+ "a",
1267
+ "b",
1268
+ "c",
1269
+ "alpha",
1270
+ "beta",
1271
+ "gamma"
1272
+ ],
1273
+ "properties": {
1274
+ "a": {
1275
+ "description": "length of the first lattice vector",
1276
+ "type": "number"
1277
+ },
1278
+ "b": {
1279
+ "description": "length of the second lattice vector",
1280
+ "type": "number"
1281
+ },
1282
+ "c": {
1283
+ "description": "length of the third lattice vector",
1284
+ "type": "number"
1285
+ },
1286
+ "alpha": {
1287
+ "description": "angle between first and second lattice vector",
1288
+ "type": "number"
1289
+ },
1290
+ "beta": {
1291
+ "description": "angle between second and third lattice vector",
1292
+ "type": "number"
1293
+ },
1294
+ "gamma": {
1295
+ "description": "angle between first and third lattice vector",
1296
+ "type": "number"
1297
+ },
1298
+ "vectors": {
899
1299
  "$schema": "http://json-schema.org/draft-07/schema#",
900
- "title": "material consistency check schema",
1300
+ "title": "lattice vectors schema",
901
1301
  "type": "object",
902
- "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.",
903
1302
  "required": [
904
- "key",
905
- "name",
906
- "severity",
907
- "message"
1303
+ "a",
1304
+ "b",
1305
+ "c"
908
1306
  ],
909
1307
  "properties": {
910
- "name": {
911
- "type": "string",
912
- "enum": [
913
- "default",
914
- "atomsTooClose",
915
- "atomsOverlap"
916
- ],
917
- "description": "Name of the consistency check that is performed, which is listed in an enum."
1308
+ "a": {
1309
+ "$schema": "http://json-schema.org/draft-07/schema#",
1310
+ "title": "vector 3d schema",
1311
+ "type": "array",
1312
+ "minItems": 3,
1313
+ "maxItems": 3,
1314
+ "items": {
1315
+ "type": "number"
1316
+ }
1317
+ },
1318
+ "b": {
1319
+ "$schema": "http://json-schema.org/draft-07/schema#",
1320
+ "title": "vector 3d schema",
1321
+ "type": "array",
1322
+ "minItems": 3,
1323
+ "maxItems": 3,
1324
+ "items": {
1325
+ "type": "number"
1326
+ }
1327
+ },
1328
+ "c": {
1329
+ "$schema": "http://json-schema.org/draft-07/schema#",
1330
+ "title": "vector 3d schema",
1331
+ "type": "array",
1332
+ "minItems": 3,
1333
+ "maxItems": 3,
1334
+ "items": {
1335
+ "type": "number"
1336
+ }
918
1337
  },
919
- "key": {
920
- "type": "string",
921
- "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"
1338
+ "alat": {
1339
+ "description": "lattice parameter for fractional coordinates",
1340
+ "type": "number",
1341
+ "default": 1
922
1342
  },
923
- "severity": {
1343
+ "units": {
1344
+ "$schema": "http://json-schema.org/draft-07/schema#",
1345
+ "title": "lattice vectors units enum",
1346
+ "enum": [
1347
+ "angstrom",
1348
+ "bohr"
1349
+ ],
1350
+ "default": "angstrom"
1351
+ }
1352
+ }
1353
+ },
1354
+ "type": {
1355
+ "$schema": "http://json-schema.org/draft-07/schema#",
1356
+ "title": "lattice type enum",
1357
+ "type": "string",
1358
+ "enum": [
1359
+ "CUB",
1360
+ "BCC",
1361
+ "FCC",
1362
+ "TET",
1363
+ "MCL",
1364
+ "ORC",
1365
+ "ORCC",
1366
+ "ORCF",
1367
+ "ORCI",
1368
+ "HEX",
1369
+ "BCT",
1370
+ "TRI",
1371
+ "MCLC",
1372
+ "RHL"
1373
+ ],
1374
+ "default": "TRI"
1375
+ },
1376
+ "units": {
1377
+ "$schema": "http://json-schema.org/draft-07/schema#",
1378
+ "title": "Lattice units schema",
1379
+ "type": "object",
1380
+ "default": {
1381
+ "length": "angstrom",
1382
+ "angle": "degree"
1383
+ },
1384
+ "properties": {
1385
+ "length": {
1386
+ "$schema": "http://json-schema.org/draft-07/schema#",
1387
+ "title": "lattice units length enum",
924
1388
  "enum": [
925
- "info",
926
- "warning",
927
- "error"
1389
+ "angstrom",
1390
+ "bohr"
928
1391
  ],
929
- "description": "Severity level of the problem, which is used in UI to differentiate."
1392
+ "default": "angstrom"
930
1393
  },
931
- "message": {
932
- "type": "string",
933
- "description": "Message generated by the consistency check describing the problem."
1394
+ "angle": {
1395
+ "$schema": "http://json-schema.org/draft-07/schema#",
1396
+ "title": "lattice units angle enum",
1397
+ "enum": [
1398
+ "degree",
1399
+ "radian"
1400
+ ],
1401
+ "default": "degree"
934
1402
  }
935
1403
  }
936
1404
  }
937
- },
938
- "_id": {
939
- "description": "entity identity",
940
- "type": "string"
941
- },
942
- "slug": {
943
- "description": "entity slug",
944
- "type": "string"
945
- },
946
- "systemName": {
947
- "type": "string"
948
- },
949
- "schemaVersion": {
950
- "description": "entity's schema version. Used to distinct between different schemas.",
951
- "type": "string",
952
- "default": "2022.8.16"
953
- },
954
- "name": {
955
- "description": "entity name",
956
- "type": "string"
957
- },
958
- "isDefault": {
959
- "description": "Identifies that entity is defaultable",
960
- "type": "boolean",
961
- "default": false
962
- },
963
- "metadata": {
964
- "type": "object"
965
1405
  }
966
- }
967
- },
968
- "miller_indices": {
969
- "$schema": "http://json-schema.org/draft-07/schema#",
970
- "title": "Miller Indices Schema",
971
- "description": "Miller indices [h, k, l] defining crystallographic planes",
972
- "default": [
973
- 0,
974
- 0,
975
- 1
976
- ],
977
- "type": "array",
978
- "minItems": 3,
979
- "maxItems": 3,
980
- "items": {
981
- "type": "integer"
982
- }
983
- },
984
- "use_conventional_cell": {
985
- "type": "boolean",
986
- "description": "Use the conventional cell for the crystal structure",
987
- "default": true
988
- }
989
- }
990
- },
991
- {
992
- "$schema": "http://json-schema.org/draft-07/schema#",
993
- "title": "Vacuum Configuration Schema",
994
- "description": "A vacuum slab that breaks periodicity in a specified direction",
995
- "type": "object",
996
- "properties": {
997
- "direction": {
998
- "$schema": "http://json-schema.org/draft-07/schema#",
999
- "title": "Axis Enum",
1000
- "type": "string",
1001
- "description": "Enum for axis types",
1002
- "enum": [
1003
- "x",
1004
- "y",
1005
- "z"
1006
- ]
1007
- },
1008
- "size": {
1009
- "type": "number",
1010
- "description": "Size of the vacuum slab in angstroms",
1011
- "minimum": 0,
1012
- "default": 10
1013
- },
1014
- "crystal": {
1015
- "$schema": "http://json-schema.org/draft-07/schema#",
1016
- "title": "Crystal Schema",
1017
- "description": "A crystal structure, referencing the base material schema",
1018
- "type": "object",
1019
- "required": [
1020
- "basis",
1021
- "lattice"
1022
- ],
1023
- "properties": {
1024
- "formula": {
1025
- "description": "reduced chemical formula",
1026
- "type": "string"
1027
- },
1028
- "unitCellFormula": {
1029
- "description": "chemical formula based on the number of atoms of each element in the supercell",
1030
- "type": "string"
1031
- },
1032
- "basis": {
1033
- "$schema": "http://json-schema.org/draft-07/schema#",
1034
- "title": "basis schema",
1035
- "type": "object",
1036
- "required": [
1037
- "elements",
1038
- "coordinates"
1039
- ],
1040
- "properties": {
1041
- "elements": {
1406
+ },
1407
+ "derivedProperties": {
1408
+ "$schema": "http://json-schema.org/draft-07/schema#",
1409
+ "title": "derived properties schema",
1410
+ "type": "array",
1411
+ "items": {
1412
+ "oneOf": [
1413
+ {
1042
1414
  "$schema": "http://json-schema.org/draft-07/schema#",
1043
- "title": "atomic elements schema",
1044
- "description": "atomic elements schema",
1045
- "type": "array",
1046
- "items": {
1047
- "$schema": "http://json-schema.org/draft-07/schema#",
1048
- "title": "atomic element schema",
1049
- "description": "chemical element of an atom according to the periodic table",
1050
- "type": "object",
1051
- "required": [
1052
- "id",
1053
- "value"
1054
- ],
1055
- "properties": {
1056
- "value": {
1057
- "description": "All elements, including extra elements",
1058
- "anyOf": [
1059
- {
1060
- "enum": [
1061
- "H",
1062
- "He",
1063
- "Li",
1064
- "Be",
1065
- "B",
1066
- "C",
1067
- "N",
1068
- "O",
1069
- "F",
1070
- "Ne",
1071
- "Na",
1072
- "Mg",
1073
- "Al",
1074
- "Si",
1075
- "P",
1076
- "S",
1077
- "Cl",
1078
- "Ar",
1079
- "K",
1080
- "Ca",
1081
- "Sc",
1082
- "Ti",
1083
- "V",
1084
- "Cr",
1085
- "Mn",
1086
- "Fe",
1087
- "Co",
1088
- "Ni",
1089
- "Cu",
1090
- "Zn",
1091
- "Ga",
1092
- "Ge",
1093
- "As",
1094
- "Se",
1095
- "Br",
1096
- "Kr",
1097
- "Rb",
1098
- "Sr",
1099
- "Y",
1100
- "Zr",
1101
- "Nb",
1102
- "Mo",
1103
- "Tc",
1104
- "Ru",
1105
- "Rh",
1106
- "Pd",
1107
- "Ag",
1108
- "Cd",
1109
- "In",
1110
- "Sn",
1111
- "Sb",
1112
- "Te",
1113
- "I",
1114
- "Xe",
1115
- "Cs",
1116
- "Ba",
1117
- "La",
1118
- "Ce",
1119
- "Pr",
1120
- "Nd",
1121
- "Pm",
1122
- "Sm",
1123
- "Eu",
1124
- "Gd",
1125
- "Tb",
1126
- "Dy",
1127
- "Ho",
1128
- "Er",
1129
- "Tm",
1130
- "Yb",
1131
- "Lu",
1132
- "Hf",
1133
- "Ta",
1134
- "W",
1135
- "Re",
1136
- "Os",
1137
- "Ir",
1138
- "Pt",
1139
- "Au",
1140
- "Hg",
1141
- "Tl",
1142
- "Pb",
1143
- "Bi",
1144
- "Po",
1145
- "At",
1146
- "Rn",
1147
- "Fr",
1148
- "Ra",
1149
- "Ac",
1150
- "Th",
1151
- "Pa",
1152
- "U",
1153
- "Np",
1154
- "Pu",
1155
- "Am",
1156
- "Cm",
1157
- "Bk",
1158
- "Cf",
1159
- "Es",
1160
- "Fm",
1161
- "Md",
1162
- "No",
1163
- "Lr",
1164
- "Rf",
1165
- "Db",
1166
- "Sg",
1167
- "Bh",
1168
- "Hs",
1169
- "Mt",
1170
- "Ds",
1171
- "Rg",
1172
- "Cn",
1173
- "Nh",
1174
- "Fl",
1175
- "Mc",
1176
- "Lv",
1177
- "Ts",
1178
- "Og"
1179
- ]
1180
- },
1181
- {
1182
- "description": "Extra elements, used for convenience purposed",
1183
- "enum": [
1184
- "X",
1185
- "Vac"
1186
- ]
1187
- }
1188
- ],
1189
- "type": "string"
1190
- },
1191
- "id": {
1192
- "description": "integer id of this entry",
1193
- "type": "integer"
1194
- }
1415
+ "title": "volume schema",
1416
+ "type": "object",
1417
+ "required": [
1418
+ "value"
1419
+ ],
1420
+ "properties": {
1421
+ "name": {
1422
+ "enum": [
1423
+ "volume"
1424
+ ]
1425
+ },
1426
+ "units": {
1427
+ "enum": [
1428
+ "angstrom^3"
1429
+ ]
1430
+ },
1431
+ "value": {
1432
+ "type": "number"
1195
1433
  }
1196
1434
  }
1197
1435
  },
1198
- "coordinates": {
1436
+ {
1199
1437
  "$schema": "http://json-schema.org/draft-07/schema#",
1200
- "title": "atomic coordinates schema",
1201
- "description": "atomic coordinates schema",
1202
- "type": "array",
1203
- "items": {
1204
- "$schema": "http://json-schema.org/draft-07/schema#",
1205
- "title": "atomic coordinate schema",
1206
- "description": "coordinate of an atom",
1207
- "type": "object",
1208
- "required": [
1209
- "id",
1210
- "value"
1211
- ],
1212
- "properties": {
1213
- "value": {
1214
- "$schema": "http://json-schema.org/draft-07/schema#",
1215
- "title": "coordinate 3d schema",
1216
- "type": "array",
1217
- "minItems": 3,
1218
- "maxItems": 3,
1219
- "description": "value of this entry",
1220
- "items": {
1438
+ "title": "density schema",
1439
+ "type": "object",
1440
+ "required": [
1441
+ "value"
1442
+ ],
1443
+ "properties": {
1444
+ "name": {
1445
+ "enum": [
1446
+ "density"
1447
+ ]
1448
+ },
1449
+ "units": {
1450
+ "enum": [
1451
+ "g/cm^3"
1452
+ ]
1453
+ },
1454
+ "value": {
1455
+ "type": "number"
1456
+ }
1457
+ }
1458
+ },
1459
+ {
1460
+ "$schema": "http://json-schema.org/draft-07/schema#",
1461
+ "title": "symmetry schema",
1462
+ "type": "object",
1463
+ "properties": {
1464
+ "pointGroupSymbol": {
1465
+ "description": "point group symbol in Schoenflies notation",
1466
+ "type": "string"
1467
+ },
1468
+ "spaceGroupSymbol": {
1469
+ "description": "space group symbol in Hermann–Mauguin notation",
1470
+ "type": "string"
1471
+ },
1472
+ "tolerance": {
1473
+ "type": "object",
1474
+ "description": "tolerance used for symmetry calculation",
1475
+ "$schema": "http://json-schema.org/draft-07/schema#",
1476
+ "title": "scalar schema",
1477
+ "required": [
1478
+ "value"
1479
+ ],
1480
+ "properties": {
1481
+ "units": {
1482
+ "enum": [
1483
+ "angstrom"
1484
+ ]
1485
+ },
1486
+ "value": {
1221
1487
  "type": "number"
1222
1488
  }
1223
- },
1224
- "id": {
1225
- "description": "integer id of this entry",
1226
- "type": "integer"
1227
1489
  }
1490
+ },
1491
+ "name": {
1492
+ "enum": [
1493
+ "symmetry"
1494
+ ]
1228
1495
  }
1229
1496
  }
1230
1497
  },
1231
- "units": {
1498
+ {
1232
1499
  "$schema": "http://json-schema.org/draft-07/schema#",
1233
- "title": "basis units enum",
1234
- "enum": [
1235
- "crystal",
1236
- "cartesian"
1500
+ "title": "elemental-ratio",
1501
+ "description": "ration of this element in the compound",
1502
+ "type": "object",
1503
+ "required": [
1504
+ "value"
1237
1505
  ],
1238
- "default": "crystal"
1239
- },
1240
- "labels": {
1241
- "$schema": "http://json-schema.org/draft-07/schema#",
1242
- "title": "atomic labels schema",
1243
- "description": "atomic labels schema",
1244
- "type": "array",
1245
- "items": {
1246
- "$schema": "http://json-schema.org/draft-07/schema#",
1247
- "title": "atomic label schema",
1248
- "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
1249
- "type": "object",
1250
- "required": [
1251
- "id",
1252
- "value"
1253
- ],
1254
- "properties": {
1255
- "value": {
1256
- "anyOf": [
1257
- {
1258
- "type": [
1259
- "integer",
1260
- "string",
1261
- "number"
1262
- ]
1263
- },
1264
- {
1265
- "$schema": "http://json-schema.org/draft-07/schema#",
1266
- "title": "integer positive single digit",
1267
- "type": "integer",
1268
- "minimum": 1,
1269
- "maximum": 9
1270
- }
1271
- ],
1272
- "description": "value of this entry"
1273
- },
1274
- "id": {
1275
- "description": "integer id of this entry",
1276
- "type": "integer"
1277
- }
1506
+ "properties": {
1507
+ "name": {
1508
+ "enum": [
1509
+ "elemental_ratio"
1510
+ ]
1511
+ },
1512
+ "value": {
1513
+ "type": "number",
1514
+ "minimum": 0,
1515
+ "maximum": 1
1516
+ },
1517
+ "element": {
1518
+ "type": "string",
1519
+ "description": "the element this ratio is for"
1278
1520
  }
1279
1521
  }
1280
- }
1281
- }
1282
- },
1283
- "lattice": {
1284
- "$schema": "http://json-schema.org/draft-07/schema#",
1285
- "title": "lattice schema",
1286
- "type": "object",
1287
- "required": [
1288
- "a",
1289
- "b",
1290
- "c",
1291
- "alpha",
1292
- "beta",
1293
- "gamma"
1294
- ],
1295
- "properties": {
1296
- "a": {
1297
- "description": "length of the first lattice vector",
1298
- "type": "number"
1299
- },
1300
- "b": {
1301
- "description": "length of the second lattice vector",
1302
- "type": "number"
1303
- },
1304
- "c": {
1305
- "description": "length of the third lattice vector",
1306
- "type": "number"
1307
- },
1308
- "alpha": {
1309
- "description": "angle between first and second lattice vector",
1310
- "type": "number"
1311
1522
  },
1312
- "beta": {
1313
- "description": "angle between second and third lattice vector",
1314
- "type": "number"
1315
- },
1316
- "gamma": {
1317
- "description": "angle between first and third lattice vector",
1318
- "type": "number"
1319
- },
1320
- "vectors": {
1523
+ {
1321
1524
  "$schema": "http://json-schema.org/draft-07/schema#",
1322
- "title": "lattice vectors schema",
1525
+ "title": "p_norm",
1526
+ "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm",
1323
1527
  "type": "object",
1324
1528
  "required": [
1325
- "a",
1326
- "b",
1327
- "c"
1529
+ "value"
1328
1530
  ],
1329
1531
  "properties": {
1330
- "a": {
1331
- "$schema": "http://json-schema.org/draft-07/schema#",
1332
- "title": "vector 3d schema",
1333
- "type": "array",
1334
- "minItems": 3,
1335
- "maxItems": 3,
1336
- "items": {
1337
- "type": "number"
1338
- }
1339
- },
1340
- "b": {
1341
- "$schema": "http://json-schema.org/draft-07/schema#",
1342
- "title": "vector 3d schema",
1343
- "type": "array",
1344
- "minItems": 3,
1345
- "maxItems": 3,
1346
- "items": {
1347
- "type": "number"
1348
- }
1349
- },
1350
- "c": {
1351
- "$schema": "http://json-schema.org/draft-07/schema#",
1352
- "title": "vector 3d schema",
1353
- "type": "array",
1354
- "minItems": 3,
1355
- "maxItems": 3,
1356
- "items": {
1357
- "type": "number"
1358
- }
1532
+ "name": {
1533
+ "enum": [
1534
+ "p-norm"
1535
+ ]
1359
1536
  },
1360
- "alat": {
1361
- "description": "lattice parameter for fractional coordinates",
1362
- "type": "number",
1363
- "default": 1
1537
+ "degree": {
1538
+ "type": "integer",
1539
+ "description": "degree of the dimensionality of the norm"
1364
1540
  },
1365
- "units": {
1366
- "$schema": "http://json-schema.org/draft-07/schema#",
1367
- "title": "lattice vectors units enum",
1368
- "enum": [
1369
- "angstrom",
1370
- "bohr"
1371
- ],
1372
- "default": "angstrom"
1541
+ "value": {
1542
+ "type": "number"
1373
1543
  }
1374
1544
  }
1375
1545
  },
1376
- "type": {
1546
+ {
1377
1547
  "$schema": "http://json-schema.org/draft-07/schema#",
1378
- "title": "lattice type enum",
1379
- "type": "string",
1380
- "enum": [
1381
- "CUB",
1382
- "BCC",
1383
- "FCC",
1384
- "TET",
1385
- "MCL",
1386
- "ORC",
1387
- "ORCC",
1388
- "ORCF",
1389
- "ORCI",
1390
- "HEX",
1391
- "BCT",
1392
- "TRI",
1393
- "MCLC",
1394
- "RHL"
1548
+ "title": "InChI representation schema",
1549
+ "type": "object",
1550
+ "required": [
1551
+ "value"
1395
1552
  ],
1396
- "default": "TRI"
1553
+ "properties": {
1554
+ "name": {
1555
+ "enum": [
1556
+ "inchi"
1557
+ ]
1558
+ },
1559
+ "value": {
1560
+ "type": "string"
1561
+ }
1562
+ }
1397
1563
  },
1398
- "units": {
1564
+ {
1399
1565
  "$schema": "http://json-schema.org/draft-07/schema#",
1400
- "title": "Lattice units schema",
1566
+ "title": "InChI key representation schema",
1401
1567
  "type": "object",
1402
- "default": {
1403
- "length": "angstrom",
1404
- "angle": "degree"
1405
- },
1568
+ "required": [
1569
+ "value"
1570
+ ],
1406
1571
  "properties": {
1407
- "length": {
1408
- "$schema": "http://json-schema.org/draft-07/schema#",
1409
- "title": "lattice units length enum",
1572
+ "name": {
1410
1573
  "enum": [
1411
- "angstrom",
1412
- "bohr"
1413
- ],
1414
- "default": "angstrom"
1574
+ "inchi_key"
1575
+ ]
1415
1576
  },
1416
- "angle": {
1417
- "$schema": "http://json-schema.org/draft-07/schema#",
1418
- "title": "lattice units angle enum",
1419
- "enum": [
1420
- "degree",
1421
- "radian"
1422
- ],
1423
- "default": "degree"
1577
+ "value": {
1578
+ "type": "string"
1424
1579
  }
1425
1580
  }
1426
1581
  }
1427
- }
1428
- },
1429
- "derivedProperties": {
1430
- "$schema": "http://json-schema.org/draft-07/schema#",
1431
- "title": "derived properties schema",
1432
- "type": "array",
1433
- "items": {
1582
+ ],
1583
+ "discriminator": {
1584
+ "propertyName": "name"
1585
+ },
1586
+ "required": [
1587
+ "name"
1588
+ ]
1589
+ }
1590
+ },
1591
+ "external": {
1592
+ "$schema": "http://json-schema.org/draft-07/schema#",
1593
+ "title": "database source schema",
1594
+ "description": "information about a database source",
1595
+ "type": "object",
1596
+ "required": [
1597
+ "id",
1598
+ "source",
1599
+ "origin"
1600
+ ],
1601
+ "properties": {
1602
+ "id": {
1603
+ "description": "ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32",
1434
1604
  "oneOf": [
1435
1605
  {
1436
- "$schema": "http://json-schema.org/draft-07/schema#",
1437
- "title": "volume schema",
1438
- "type": "object",
1439
- "required": [
1440
- "value"
1441
- ],
1442
- "properties": {
1443
- "name": {
1444
- "enum": [
1445
- "volume"
1446
- ]
1447
- },
1448
- "units": {
1449
- "enum": [
1450
- "angstrom^3"
1451
- ]
1452
- },
1453
- "value": {
1454
- "type": "number"
1455
- }
1456
- }
1457
- },
1458
- {
1459
- "$schema": "http://json-schema.org/draft-07/schema#",
1460
- "title": "density schema",
1461
- "type": "object",
1462
- "required": [
1463
- "value"
1464
- ],
1465
- "properties": {
1466
- "name": {
1467
- "enum": [
1468
- "density"
1469
- ]
1470
- },
1471
- "units": {
1472
- "enum": [
1473
- "g/cm^3"
1474
- ]
1475
- },
1476
- "value": {
1477
- "type": "number"
1478
- }
1479
- }
1480
- },
1481
- {
1482
- "$schema": "http://json-schema.org/draft-07/schema#",
1483
- "title": "symmetry schema",
1484
- "type": "object",
1485
- "properties": {
1486
- "pointGroupSymbol": {
1487
- "description": "point group symbol in Schoenflies notation",
1488
- "type": "string"
1489
- },
1490
- "spaceGroupSymbol": {
1491
- "description": "space group symbol in Hermann–Mauguin notation",
1492
- "type": "string"
1493
- },
1494
- "tolerance": {
1495
- "type": "object",
1496
- "description": "tolerance used for symmetry calculation",
1497
- "$schema": "http://json-schema.org/draft-07/schema#",
1498
- "title": "scalar schema",
1499
- "required": [
1500
- "value"
1501
- ],
1502
- "properties": {
1503
- "units": {
1504
- "enum": [
1505
- "angstrom"
1506
- ]
1507
- },
1508
- "value": {
1509
- "type": "number"
1510
- }
1511
- }
1512
- },
1513
- "name": {
1514
- "enum": [
1515
- "symmetry"
1516
- ]
1517
- }
1518
- }
1519
- },
1520
- {
1521
- "$schema": "http://json-schema.org/draft-07/schema#",
1522
- "title": "elemental-ratio",
1523
- "description": "ration of this element in the compound",
1524
- "type": "object",
1525
- "required": [
1526
- "value"
1527
- ],
1528
- "properties": {
1529
- "name": {
1530
- "enum": [
1531
- "elemental_ratio"
1532
- ]
1533
- },
1534
- "value": {
1535
- "type": "number",
1536
- "minimum": 0,
1537
- "maximum": 1
1538
- },
1539
- "element": {
1540
- "type": "string",
1541
- "description": "the element this ratio is for"
1542
- }
1543
- }
1544
- },
1545
- {
1546
- "$schema": "http://json-schema.org/draft-07/schema#",
1547
- "title": "p_norm",
1548
- "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm",
1549
- "type": "object",
1550
- "required": [
1551
- "value"
1552
- ],
1553
- "properties": {
1554
- "name": {
1555
- "enum": [
1556
- "p-norm"
1557
- ]
1558
- },
1559
- "degree": {
1560
- "type": "integer",
1561
- "description": "degree of the dimensionality of the norm"
1562
- },
1563
- "value": {
1564
- "type": "number"
1565
- }
1566
- }
1567
- },
1568
- {
1569
- "$schema": "http://json-schema.org/draft-07/schema#",
1570
- "title": "InChI representation schema",
1571
- "type": "object",
1572
- "required": [
1573
- "value"
1574
- ],
1575
- "properties": {
1576
- "name": {
1577
- "enum": [
1578
- "inchi"
1579
- ]
1580
- },
1581
- "value": {
1582
- "type": "string"
1583
- }
1584
- }
1606
+ "type": "string"
1585
1607
  },
1586
1608
  {
1587
- "$schema": "http://json-schema.org/draft-07/schema#",
1588
- "title": "InChI key representation schema",
1589
- "type": "object",
1590
- "required": [
1591
- "value"
1592
- ],
1593
- "properties": {
1594
- "name": {
1595
- "enum": [
1596
- "inchi_key"
1597
- ]
1598
- },
1599
- "value": {
1600
- "type": "string"
1601
- }
1602
- }
1609
+ "type": "number"
1603
1610
  }
1604
- ],
1605
- "discriminator": {
1606
- "propertyName": "name"
1607
- },
1608
- "required": [
1609
- "name"
1610
1611
  ]
1612
+ },
1613
+ "source": {
1614
+ "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.",
1615
+ "type": "string"
1616
+ },
1617
+ "origin": {
1618
+ "description": "Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).",
1619
+ "type": "boolean"
1620
+ },
1621
+ "data": {
1622
+ "description": "Original response from external source.",
1623
+ "type": "object"
1624
+ },
1625
+ "doi": {
1626
+ "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506",
1627
+ "type": "string"
1628
+ },
1629
+ "url": {
1630
+ "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers",
1631
+ "type": "string"
1611
1632
  }
1612
- },
1613
- "external": {
1614
- "$schema": "http://json-schema.org/draft-07/schema#",
1615
- "title": "database source schema",
1616
- "description": "information about a database source",
1617
- "type": "object",
1618
- "required": [
1619
- "id",
1620
- "source",
1621
- "origin"
1622
- ],
1623
- "properties": {
1624
- "id": {
1625
- "description": "ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32",
1626
- "oneOf": [
1627
- {
1628
- "type": "string"
1629
- },
1630
- {
1631
- "type": "number"
1632
- }
1633
- ]
1634
- },
1635
- "source": {
1636
- "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.",
1637
- "type": "string"
1638
- },
1639
- "origin": {
1640
- "description": "Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).",
1641
- "type": "boolean"
1642
- },
1643
- "data": {
1644
- "description": "Original response from external source.",
1645
- "type": "object"
1646
- },
1647
- "doi": {
1648
- "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506",
1649
- "type": "string"
1650
- },
1651
- "url": {
1652
- "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers",
1653
- "type": "string"
1654
- }
1633
+ }
1634
+ },
1635
+ "src": {
1636
+ "$schema": "http://json-schema.org/draft-07/schema#",
1637
+ "title": "file source schema",
1638
+ "description": "file source with the information inside",
1639
+ "type": "object",
1640
+ "required": [
1641
+ "filename",
1642
+ "text",
1643
+ "hash"
1644
+ ],
1645
+ "properties": {
1646
+ "extension": {
1647
+ "description": "file extension",
1648
+ "type": "string"
1649
+ },
1650
+ "filename": {
1651
+ "description": "file name without extension",
1652
+ "type": "string"
1653
+ },
1654
+ "text": {
1655
+ "description": "file content as raw text",
1656
+ "type": "string"
1657
+ },
1658
+ "hash": {
1659
+ "description": "MD5 hash based on file content",
1660
+ "type": "string"
1655
1661
  }
1656
- },
1657
- "src": {
1662
+ }
1663
+ },
1664
+ "scaledHash": {
1665
+ "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).",
1666
+ "type": "string"
1667
+ },
1668
+ "icsdId": {
1669
+ "description": "Corresponding ICSD id of the material",
1670
+ "type": "integer"
1671
+ },
1672
+ "isNonPeriodic": {
1673
+ "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)",
1674
+ "type": "boolean"
1675
+ },
1676
+ "consistencyChecks": {
1677
+ "type": "array",
1678
+ "items": {
1658
1679
  "$schema": "http://json-schema.org/draft-07/schema#",
1659
- "title": "file source schema",
1660
- "description": "file source with the information inside",
1680
+ "title": "material consistency check schema",
1661
1681
  "type": "object",
1682
+ "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.",
1662
1683
  "required": [
1663
- "filename",
1664
- "text",
1665
- "hash"
1684
+ "key",
1685
+ "name",
1686
+ "severity",
1687
+ "message"
1666
1688
  ],
1667
1689
  "properties": {
1668
- "extension": {
1669
- "description": "file extension",
1670
- "type": "string"
1690
+ "name": {
1691
+ "type": "string",
1692
+ "enum": [
1693
+ "default",
1694
+ "atomsTooClose",
1695
+ "atomsOverlap"
1696
+ ],
1697
+ "description": "Name of the consistency check that is performed, which is listed in an enum."
1671
1698
  },
1672
- "filename": {
1673
- "description": "file name without extension",
1674
- "type": "string"
1699
+ "key": {
1700
+ "type": "string",
1701
+ "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"
1675
1702
  },
1676
- "text": {
1677
- "description": "file content as raw text",
1678
- "type": "string"
1703
+ "severity": {
1704
+ "enum": [
1705
+ "info",
1706
+ "warning",
1707
+ "error"
1708
+ ],
1709
+ "description": "Severity level of the problem, which is used in UI to differentiate."
1679
1710
  },
1680
- "hash": {
1681
- "description": "MD5 hash based on file content",
1682
- "type": "string"
1683
- }
1684
- }
1685
- },
1686
- "scaledHash": {
1687
- "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).",
1688
- "type": "string"
1689
- },
1690
- "icsdId": {
1691
- "description": "Corresponding ICSD id of the material",
1692
- "type": "integer"
1693
- },
1694
- "isNonPeriodic": {
1695
- "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)",
1696
- "type": "boolean"
1697
- },
1698
- "consistencyChecks": {
1699
- "type": "array",
1700
- "items": {
1701
- "$schema": "http://json-schema.org/draft-07/schema#",
1702
- "title": "material consistency check schema",
1703
- "type": "object",
1704
- "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.",
1705
- "required": [
1706
- "key",
1707
- "name",
1708
- "severity",
1709
- "message"
1710
- ],
1711
- "properties": {
1712
- "name": {
1713
- "type": "string",
1714
- "enum": [
1715
- "default",
1716
- "atomsTooClose",
1717
- "atomsOverlap"
1718
- ],
1719
- "description": "Name of the consistency check that is performed, which is listed in an enum."
1720
- },
1721
- "key": {
1722
- "type": "string",
1723
- "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"
1724
- },
1725
- "severity": {
1726
- "enum": [
1727
- "info",
1728
- "warning",
1729
- "error"
1730
- ],
1731
- "description": "Severity level of the problem, which is used in UI to differentiate."
1732
- },
1733
- "message": {
1734
- "type": "string",
1735
- "description": "Message generated by the consistency check describing the problem."
1736
- }
1711
+ "message": {
1712
+ "type": "string",
1713
+ "description": "Message generated by the consistency check describing the problem."
1737
1714
  }
1738
1715
  }
1739
- },
1740
- "_id": {
1741
- "description": "entity identity",
1742
- "type": "string"
1743
- },
1744
- "slug": {
1745
- "description": "entity slug",
1746
- "type": "string"
1747
- },
1748
- "systemName": {
1749
- "type": "string"
1750
- },
1751
- "schemaVersion": {
1752
- "description": "entity's schema version. Used to distinct between different schemas.",
1753
- "type": "string",
1754
- "default": "2022.8.16"
1755
- },
1756
- "name": {
1757
- "description": "entity name",
1758
- "type": "string"
1759
- },
1760
- "isDefault": {
1761
- "description": "Identifies that entity is defaultable",
1762
- "type": "boolean",
1763
- "default": false
1764
- },
1765
- "metadata": {
1766
- "type": "object"
1767
1716
  }
1717
+ },
1718
+ "_id": {
1719
+ "description": "entity identity",
1720
+ "type": "string"
1721
+ },
1722
+ "slug": {
1723
+ "description": "entity slug",
1724
+ "type": "string"
1725
+ },
1726
+ "systemName": {
1727
+ "type": "string"
1728
+ },
1729
+ "schemaVersion": {
1730
+ "description": "entity's schema version. Used to distinct between different schemas.",
1731
+ "type": "string",
1732
+ "default": "2022.8.16"
1733
+ },
1734
+ "name": {
1735
+ "description": "entity name",
1736
+ "type": "string"
1737
+ },
1738
+ "isDefault": {
1739
+ "description": "Identifies that entity is defaultable",
1740
+ "type": "boolean",
1741
+ "default": false
1742
+ },
1743
+ "metadata": {
1744
+ "type": "object"
1768
1745
  }
1769
1746
  }
1770
- },
1771
- "required": [
1772
- "direction",
1773
- "size",
1774
- "crystal"
1775
- ]
1747
+ }
1776
1748
  }
1777
- ]
1778
- }
1749
+ }
1750
+ ]
1779
1751
  },
1780
1752
  "direction": {
1753
+ "default": "z",
1781
1754
  "$schema": "http://json-schema.org/draft-07/schema#",
1782
1755
  "title": "Axis Enum",
1783
1756
  "type": "string",