diff --git a/py/example/3pse/file/applications/espresso/7.2/pw.x.json b/py/example/3pse/file/applications/espresso/7.2/pw.x.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/3pse/file/applications/espresso/7.2/pw.x.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/2d_data.json b/py/example/core/abstract/2d_data.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/2d_data.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/2d_plot.json b/py/example/core/abstract/2d_plot.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/2d_plot.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/3d_grid.json b/py/example/core/abstract/3d_grid.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/3d_grid.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/3d_tensor.json b/py/example/core/abstract/3d_tensor.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/3d_tensor.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/3d_vector_basis.json b/py/example/core/abstract/3d_vector_basis.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/3d_vector_basis.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/point.json b/py/example/core/abstract/point.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/point.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/abstract/vector.json b/py/example/core/abstract/vector.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/abstract/vector.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/1d_data_series.json b/py/example/core/primitive/1d_data_series.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/1d_data_series.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/3d_lattice.json b/py/example/core/primitive/3d_lattice.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/3d_lattice.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/array_of_3_booleans.json b/py/example/core/primitive/array_of_3_booleans.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/array_of_3_booleans.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/array_of_3_numbers.json b/py/example/core/primitive/array_of_3_numbers.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/array_of_3_numbers.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/array_of_ids.json b/py/example/core/primitive/array_of_ids.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/array_of_ids.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/axis.json b/py/example/core/primitive/axis.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/axis.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/scalar.json b/py/example/core/primitive/scalar.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/scalar.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/primitive/string.json b/py/example/core/primitive/string.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/primitive/string.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference.json b/py/example/core/reference.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/experiment.json b/py/example/core/reference/experiment.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/experiment.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/experiment/condition.json b/py/example/core/reference/experiment/condition.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/experiment/condition.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/experiment/location.json b/py/example/core/reference/experiment/location.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/experiment/location.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/literature.json b/py/example/core/reference/literature.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/literature.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/literature/name.json b/py/example/core/reference/literature/name.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/literature/name.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/literature/pages.json b/py/example/core/reference/literature/pages.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/literature/pages.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/modeling.json b/py/example/core/reference/modeling.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/modeling.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reference/modeling/exabyte.json b/py/example/core/reference/modeling/exabyte.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reference/modeling/exabyte.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reusable/atomic_vectors.json b/py/example/core/reusable/atomic_vectors.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reusable/atomic_vectors.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reusable/band_gap.json b/py/example/core/reusable/band_gap.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reusable/band_gap.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reusable/energy.json b/py/example/core/reusable/energy.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reusable/energy.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reusable/file_metadata.json b/py/example/core/reusable/file_metadata.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reusable/file_metadata.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/core/reusable/object_storage_container_data.json b/py/example/core/reusable/object_storage_container_data.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/core/reusable/object_storage_container_data.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/element.json b/py/example/element.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/element.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/job.json b/py/example/job.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/job.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/job/compute.json b/py/example/job/compute.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/job/compute.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/material.json b/py/example/material.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/material.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/method.json b/py/example/method.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/method.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/method/categorized_method.json b/py/example/method/categorized_method.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/method/categorized_method.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/method/method_parameters.json b/py/example/method/method_parameters.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/method/method_parameters.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/legacy/localorbital.json b/py/example/methods_directory/legacy/localorbital.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/legacy/localorbital.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/legacy/pseudopotential.json b/py/example/methods_directory/legacy/pseudopotential.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/legacy/pseudopotential.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/legacy/regression.json b/py/example/methods_directory/legacy/regression.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/legacy/regression.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/legacy/unknown.json b/py/example/methods_directory/legacy/unknown.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/legacy/unknown.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/mathematical/cg.json b/py/example/methods_directory/mathematical/cg.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/mathematical/cg.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/mathematical/regression.json b/py/example/methods_directory/mathematical/regression.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/mathematical/regression.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/physical/ao/dunning.json b/py/example/methods_directory/physical/ao/dunning.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/physical/ao/dunning.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/physical/psp.json b/py/example/methods_directory/physical/psp.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/physical/psp.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/physical/psp/file.json b/py/example/methods_directory/physical/psp/file.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/physical/psp/file.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/physical/pw.json b/py/example/methods_directory/physical/pw.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/physical/pw.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/physical/smearing.json b/py/example/methods_directory/physical/smearing.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/physical/smearing.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/methods_directory/physical/tetrahedron.json b/py/example/methods_directory/physical/tetrahedron.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/methods_directory/physical/tetrahedron.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/model.json b/py/example/model.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/model.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/model/categorized_model.json b/py/example/model/categorized_model.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/model/categorized_model.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/model/model_parameters.json b/py/example/model/model_parameters.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/model/model_parameters.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_category/pb/qm/abin/gw.json b/py/example/models_category/pb/qm/abin/gw.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_category/pb/qm/abin/gw.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_category/pb/qm/dft/ksdft.json b/py/example/models_category/pb/qm/dft/ksdft.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_category/pb/qm/dft/ksdft.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_category/pb/qm/semp.json b/py/example/models_category/pb/qm/semp.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_category/pb/qm/semp.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/gga.json b/py/example/models_directory/gga.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/gga.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/gw.json b/py/example/models_directory/gw.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/gw.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/hybrid.json b/py/example/models_directory/hybrid.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/hybrid.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/lda.json b/py/example/models_directory/lda.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/lda.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/legacy/dft.json b/py/example/models_directory/legacy/dft.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/legacy/dft.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/legacy/ml.json b/py/example/models_directory/legacy/ml.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/legacy/ml.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/legacy/unknown.json b/py/example/models_directory/legacy/unknown.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/legacy/unknown.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/models_directory/re.json b/py/example/models_directory/re.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/models_directory/re.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/project.json b/py/example/project.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/project.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/electronic_configuration.json b/py/example/properties_directory/electronic_configuration.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/electronic_configuration.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/elemental/atomic_radius.json b/py/example/properties_directory/elemental/atomic_radius.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/elemental/atomic_radius.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/elemental/electronegativity.json b/py/example/properties_directory/elemental/electronegativity.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/elemental/electronegativity.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/elemental/ionization_potential.json b/py/example/properties_directory/elemental/ionization_potential.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/elemental/ionization_potential.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/band_gaps.json b/py/example/properties_directory/non_scalar/band_gaps.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/band_gaps.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/band_structure.json b/py/example/properties_directory/non_scalar/band_structure.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/band_structure.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/charge_density_profile.json b/py/example/properties_directory/non_scalar/charge_density_profile.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/charge_density_profile.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/density_of_states.json b/py/example/properties_directory/non_scalar/density_of_states.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/density_of_states.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/dielectric_tensor.json b/py/example/properties_directory/non_scalar/dielectric_tensor.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/dielectric_tensor.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/file_content.json b/py/example/properties_directory/non_scalar/file_content.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/file_content.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/hubbard_u.json b/py/example/properties_directory/non_scalar/hubbard_u.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/hubbard_u.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/hubbard_v.json b/py/example/properties_directory/non_scalar/hubbard_v.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/hubbard_v.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/phonon_dispersions.json b/py/example/properties_directory/non_scalar/phonon_dispersions.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/phonon_dispersions.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/phonon_dos.json b/py/example/properties_directory/non_scalar/phonon_dos.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/phonon_dos.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/potential_profile.json b/py/example/properties_directory/non_scalar/potential_profile.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/potential_profile.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/reaction_energy_profile.json b/py/example/properties_directory/non_scalar/reaction_energy_profile.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/reaction_energy_profile.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/stress_tensor.json b/py/example/properties_directory/non_scalar/stress_tensor.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/stress_tensor.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/total_energy_contributions.json b/py/example/properties_directory/non_scalar/total_energy_contributions.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/total_energy_contributions.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/non_scalar/vibrational_spectrum.json b/py/example/properties_directory/non_scalar/vibrational_spectrum.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/non_scalar/vibrational_spectrum.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/electron_affinity.json b/py/example/properties_directory/scalar/electron_affinity.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/electron_affinity.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/fermi_energy.json b/py/example/properties_directory/scalar/fermi_energy.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/fermi_energy.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/formation_energy.json b/py/example/properties_directory/scalar/formation_energy.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/formation_energy.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/ionization_potential.json b/py/example/properties_directory/scalar/ionization_potential.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/ionization_potential.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/pressure.json b/py/example/properties_directory/scalar/pressure.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/pressure.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/reaction_energy_barrier.json b/py/example/properties_directory/scalar/reaction_energy_barrier.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/reaction_energy_barrier.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/surface_energy.json b/py/example/properties_directory/scalar/surface_energy.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/surface_energy.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/total_energy.json b/py/example/properties_directory/scalar/total_energy.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/total_energy.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/total_force.json b/py/example/properties_directory/scalar/total_force.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/total_force.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/valence_band_offset.json b/py/example/properties_directory/scalar/valence_band_offset.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/valence_band_offset.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/scalar/zero_point_energy.json b/py/example/properties_directory/scalar/zero_point_energy.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/scalar/zero_point_energy.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/atomic_forces.json b/py/example/properties_directory/structural/atomic_forces.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/atomic_forces.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/basis.json b/py/example/properties_directory/structural/basis.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/basis.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/basis/atomic_constraints.json b/py/example/properties_directory/structural/basis/atomic_constraints.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/basis/atomic_constraints.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/basis/atomic_coordinate.json b/py/example/properties_directory/structural/basis/atomic_coordinate.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/basis/atomic_coordinate.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/basis/atomic_coordinates.json b/py/example/properties_directory/structural/basis/atomic_coordinates.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/basis/atomic_coordinates.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/basis/atomic_element.json b/py/example/properties_directory/structural/basis/atomic_element.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/basis/atomic_element.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/basis/bonds.json b/py/example/properties_directory/structural/basis/bonds.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/basis/bonds.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/density.json b/py/example/properties_directory/structural/density.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/density.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/elemental_ratio.json b/py/example/properties_directory/structural/elemental_ratio.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/elemental_ratio.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/inchi.json b/py/example/properties_directory/structural/inchi.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/inchi.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/inchi_key.json b/py/example/properties_directory/structural/inchi_key.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/inchi_key.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/lattice.json b/py/example/properties_directory/structural/lattice.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/lattice.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/lattice/lattice_bravais.json b/py/example/properties_directory/structural/lattice/lattice_bravais.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/lattice/lattice_bravais.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/lattice/lattice_vectors.json b/py/example/properties_directory/structural/lattice/lattice_vectors.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/lattice/lattice_vectors.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/magnetic_moments.json b/py/example/properties_directory/structural/magnetic_moments.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/magnetic_moments.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/molecular_pattern.json b/py/example/properties_directory/structural/molecular_pattern.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/molecular_pattern.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/p_norm.json b/py/example/properties_directory/structural/p_norm.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/p_norm.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/symmetry.json b/py/example/properties_directory/structural/symmetry.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/symmetry.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/structural/volume.json b/py/example/properties_directory/structural/volume.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/structural/volume.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/workflow/convergence/electronic.json b/py/example/properties_directory/workflow/convergence/electronic.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/workflow/convergence/electronic.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/workflow/convergence/ionic.json b/py/example/properties_directory/workflow/convergence/ionic.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/workflow/convergence/ionic.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/properties_directory/workflow/convergence/kpoint.json b/py/example/properties_directory/workflow/convergence/kpoint.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/properties_directory/workflow/convergence/kpoint.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/property/base.json b/py/example/property/base.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/property/base.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software/application.json b/py/example/software/application.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software/application.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software/executable.json b/py/example/software/executable.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software/executable.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software/flavor.json b/py/example/software/flavor.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software/flavor.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software/template.json b/py/example/software/template.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software/template.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/exabyteml.json b/py/example/software_directory/ml/exabyteml.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/exabyteml.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/execution/evaluate/cross_validate.json b/py/example/software_directory/ml/unit/execution/evaluate/cross_validate.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/execution/evaluate/cross_validate.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/execution/initialize.json b/py/example/software_directory/ml/unit/execution/initialize.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/execution/initialize.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/execution/score.json b/py/example/software_directory/ml/unit/execution/score.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/execution/score.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/execution/train.json b/py/example/software_directory/ml/unit/execution/train.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/execution/train.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/processing/data_transformation/manipulation.json b/py/example/software_directory/ml/unit/processing/data_transformation/manipulation.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/processing/data_transformation/manipulation.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.json b/py/example/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/ml/unit/processing/feature_selection/filter_based.json b/py/example/software_directory/ml/unit/processing/feature_selection/filter_based.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/ml/unit/processing/feature_selection/filter_based.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/modeling/espresso.json b/py/example/software_directory/modeling/espresso.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/modeling/espresso.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/modeling/espresso/arguments.json b/py/example/software_directory/modeling/espresso/arguments.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/modeling/espresso/arguments.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/modeling/nwchem.json b/py/example/software_directory/modeling/nwchem.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/modeling/nwchem.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/modeling/unit/execution.json b/py/example/software_directory/modeling/unit/execution.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/modeling/unit/execution.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/modeling/vasp.json b/py/example/software_directory/modeling/vasp.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/modeling/vasp.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/scripting/jupyter_lab.json b/py/example/software_directory/scripting/jupyter_lab.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/scripting/jupyter_lab.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/scripting/python.json b/py/example/software_directory/scripting/python.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/scripting/python.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/scripting/shell.json b/py/example/software_directory/scripting/shell.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/scripting/shell.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/software_directory/scripting/unit/execution.json b/py/example/software_directory/scripting/unit/execution.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/software_directory/scripting/unit/execution.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/_material.json b/py/example/system/_material.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/_material.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/_parent_job.json b/py/example/system/_parent_job.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/_parent_job.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/_project.json b/py/example/system/_project.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/_project.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/consistency_check.json b/py/example/system/consistency_check.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/consistency_check.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/creator.json b/py/example/system/creator.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/creator.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/entity_reference.json b/py/example/system/entity_reference.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/entity_reference.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/file_source.json b/py/example/system/file_source.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/file_source.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/message.json b/py/example/system/message.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/message.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/system/owner.json b/py/example/system/owner.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/system/owner.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow.json b/py/example/workflow.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/subworkflow.json b/py/example/workflow/subworkflow.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/subworkflow.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit.json b/py/example/workflow/unit.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/assignment.json b/py/example/workflow/unit/assignment.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/assignment.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/condition.json b/py/example/workflow/unit/condition.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/condition.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/execution.json b/py/example/workflow/unit/execution.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/execution.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/input/_inputItemScope.json b/py/example/workflow/unit/input/_inputItemScope.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/input/_inputItemScope.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/io.json b/py/example/workflow/unit/io.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/io.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/io/api.json b/py/example/workflow/unit/io/api.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/io/api.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/io/db.json b/py/example/workflow/unit/io/db.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/io/db.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/io/object_storage.json b/py/example/workflow/unit/io/object_storage.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/io/object_storage.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/map.json b/py/example/workflow/unit/map.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/map.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/processing.json b/py/example/workflow/unit/processing.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/processing.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/reduce.json b/py/example/workflow/unit/reduce.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/reduce.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/example/workflow/unit/runtime/runtime_items.json b/py/example/workflow/unit/runtime/runtime_items.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/example/workflow/unit/runtime/runtime_items.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x.json new file mode 100644 index 000000000..29e0b65ea --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x.json @@ -0,0 +1,1782 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "&CELL": { + "oneOf": [ + { + "$id": "3pse/file/applications/espresso/7.2/pw.x/cell", + "additionalProperties": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "cell_dynamics": { + "default": "bfgs", + "description": "CASE ( calculation == 'vc-relax' )", + "enum": [ + "none", + "sd", + "damp-pr", + "damp-w", + "bfgs" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "cell_dynamics": { + "description": "CASE ( calculation == 'vc-md' )", + "enum": [ + "none", + "pr", + "w" + ], + "type": "string" + } + }, + "type": "object" + } + ], + "properties": { + "cell_dofree": { + "default": "all", + "description": "Select which of the cell parameters should be moved", + "enum": [ + "all", + "ibrav", + "a", + "b", + "c", + "fixa", + "fixb", + "fixc", + "x", + "y", + "xy", + "xz", + "xyz", + "shape", + "volume", + "2Dxy", + "2Dshape", + "epitaxial_ab", + "epitaxial_ac", + "epitaxial_bc" + ], + "type": "string" + }, + "cell_factor": { + "description": "Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise", + "type": "number" + }, + "press": { + "default": 0, + "description": "Target pressure [KBar] in a variable-cell md or relaxation run.", + "type": "number" + }, + "press_conv_thr": { + "default": 0.5, + "description": "Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well).", + "type": "number" + }, + "wmass": { + "description": "Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD", + "type": "number" + } + }, + "title": "cell schema", + "type": "object" + }, + { + "type": "null" + } + ] + }, + "&CONTROL": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/control", + "additionalProperties": false, + "properties": { + "calculation": { + "default": "scf", + "description": "A string describing the task to be performed", + "enum": [ + "scf", + "nscf", + "bands", + "relax", + "md", + "vc-relax", + "vc-md" + ], + "type": "string" + }, + "dipfield": { + "default": false, + "description": "If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE.", + "type": "boolean" + }, + "disk_io": { + "description": "Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )", + "enum": [ + "high", + "medium", + "low", + "nowf", + "none" + ], + "type": "string" + }, + "dt": { + "default": 20, + "description": "time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)", + "type": "number" + }, + "etot_conv_thr": { + "default": 0.0001, + "description": "Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied", + "type": "number" + }, + "forc_conv_thr": { + "default": 0.001, + "description": "Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied", + "type": "number" + }, + "gate": { + "default": false, + "description": "In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called \"monopole\" in v6.0 and 6.1 of pw.x", + "type": "boolean" + }, + "gdir": { + "description": "For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) \"gdir\" is the direction of the field.", + "type": "number" + }, + "iprint": { + "description": "band energies are written every iprint iterations", + "type": "number" + }, + "lberry": { + "default": false, + "description": "If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation", + "type": "boolean" + }, + "lelfield": { + "default": false, + "description": "If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !", + "type": "boolean" + }, + "lfcp": { + "default": false, + "description": "If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP.", + "type": "boolean" + }, + "lkpoint_dir": { + "description": "OBSOLETE - NO LONGER IMPLEMENTED", + "type": "boolean" + }, + "lorbm": { + "default": false, + "description": "If .TRUE. perform orbital magnetization calculation.", + "type": "boolean" + }, + "max_seconds": { + "default": 10000000, + "description": "Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues.", + "type": "number" + }, + "nberrycyc": { + "default": 1, + "description": "In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density", + "type": "integer" + }, + "nppstr": { + "description": "For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.).", + "type": "number" + }, + "nstep": { + "default": 1, + "description": "Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick \"dry run\", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform \"nstep\" steps even if restarting from a previously interrupted calculation.", + "type": "number" + }, + "outdir": { + "description": "input, temporary, output files are found in this directory, see also wfcdir", + "type": "string" + }, + "prefix": { + "default": "pwscf", + "description": "prepended to input/output filenames: prefix.wfc, prefix.rho, etc.", + "type": "string" + }, + "pseudo_dir": { + "description": "directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise", + "type": "string" + }, + "restart_mode": { + "default": "from_scratch", + "enum": [ + "from_scratch", + "restart" + ], + "type": "string" + }, + "tefield": { + "default": false, + "description": "If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential.", + "type": "boolean" + }, + "title": { + "default": "", + "description": "reprinted on output.", + "type": "string" + }, + "tprnfor": { + "description": "calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'", + "type": "boolean" + }, + "trism": { + "default": false, + "description": "If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. .", + "type": "boolean" + }, + "tstress": { + "default": false, + "description": "calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'", + "type": "boolean" + }, + "twochem": { + "default": false, + "description": "IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold.", + "type": "boolean" + }, + "verbosity": { + "default": "low", + "description": "Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'", + "enum": [ + "high", + "low", + "debug", + "medium", + "minimal", + "default" + ], + "type": "string" + }, + "wf_collect": { + "description": "OBSOLETE - NO LONGER IMPLEMENTED", + "type": "boolean" + }, + "wfcdir": { + "description": "This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x.", + "type": "string" + } + }, + "title": "control schema", + "type": "object" + }, + "&ELECTRONS": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/electrons", + "additionalProperties": false, + "properties": { + "adaptive_thr": { + "default": false, + "description": "If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX.", + "type": "boolean" + }, + "conv_thr": { + "type": "number" + }, + "conv_thr_init": { + "description": "When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle.", + "type": "number" + }, + "conv_thr_multi": { + "description": "When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )", + "type": "number" + }, + "diago_cg_maxiter": { + "description": "For conjugate gradient diagonalization: max number of iterations", + "type": "integer" + }, + "diago_david_ndim": { + "default": 2, + "description": "For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed).", + "type": "integer" + }, + "diago_full_acc": { + "default": false, + "description": "If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties).", + "type": "boolean" + }, + "diago_gs_nblock": { + "default": 16, + "description": "For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization", + "type": "integer" + }, + "diago_ppcg_maxiter": { + "description": "For ppcg diagonalization: max number of iterations", + "type": "integer" + }, + "diago_rmm_conv": { + "default": false, + "description": "If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once.", + "type": "boolean" + }, + "diago_rmm_ndim": { + "default": 4, + "description": "For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed).", + "type": "integer" + }, + "diago_thr_init": { + "description": "Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence).", + "type": "number" + }, + "diagonalization": { + "default": "david", + "enum": [ + "david", + "cg", + "ppcg", + "paro", + "ParO", + "rmm-davidson", + "rmm-paro" + ], + "type": "string" + }, + "efield": { + "description": "Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic.", + "type": "number" + }, + "efield_cart": { + "$id": "core/primitive/array-of-3-numbers", + "description": "Finite electric field (in Ry a.u.=36.3609*10^10 V/m) in cartesian axis. Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are automatic.", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "efield_phase": { + "default": "none", + "enum": [ + "read", + "write", + "none" + ], + "type": "string" + }, + "electron_maxstep": { + "default": 100, + "description": "maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops.", + "type": "integer" + }, + "exx_maxstep": { + "default": 100, + "description": "maximum number of outer iterations in a scf calculation with exact exchange.", + "type": "integer" + }, + "mixing_beta": { + "description": "mixing factor for self-consistency", + "type": "number" + }, + "mixing_fixed_ns": { + "default": 0, + "description": "For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term ).", + "type": "integer" + }, + "mixing_mode": { + "default": "plain", + "enum": [ + "plain", + "TF", + "local-TF" + ], + "type": "string" + }, + "mixing_ndim": { + "default": 8, + "description": "number of iterations used in mixing scheme", + "type": "integer" + }, + "real_space": { + "default": false, + "description": "If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!", + "type": "boolean" + }, + "scf_must_converge": { + "default": true, + "description": "If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care.", + "type": "boolean" + }, + "startingpot": { + "enum": [ + "atomic", + "file" + ], + "type": "string" + }, + "startingwfc": { + "default": "atomic+random", + "enum": [ + "atomic", + "atomic+random", + "random", + "file" + ], + "type": "string" + }, + "tqr": { + "default": false, + "description": "If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!", + "type": "boolean" + } + }, + "title": "electrons schema", + "type": "object" + }, + "&IONS": { + "oneOf": [ + { + "$id": "3pse/file/applications/espresso/7.2/pw.x/ions", + "additionalProperties": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "bfgs", + "description": "CASE: calculation == 'relax'", + "enum": [ + "bfgs", + "damp", + "fire" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "verlet", + "description": "CASE: calculation == 'md'", + "enum": [ + "verlet", + "langevin", + "langevin-smc" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "bfgs", + "description": "CASE: calculation == 'vc-relax'", + "enum": [ + "bfgs", + "damp" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "beeman", + "description": "CASE: calculation == 'vc-md'", + "enum": [ + "beeman" + ], + "type": "string" + } + }, + "type": "object" + } + ], + "properties": { + "bfgs_ndim": { + "default": 1, + "description": "Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm.", + "type": "integer" + }, + "delta_t": { + "default": 1, + "type": "number" + }, + "fire_alpha_init": { + "default": 0.2, + "description": "Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3", + "type": "number" + }, + "fire_dtmax": { + "default": 10, + "description": "Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt", + "type": "number" + }, + "fire_f_dec": { + "default": 0.5, + "description": "Factor for decreasing dt", + "type": "number" + }, + "fire_f_inc": { + "default": 1.1, + "description": "Factor for increasing dt", + "type": "number" + }, + "fire_falpha": { + "default": 0.99, + "description": "Scaling of the alpha mixing parameter for steps with P > 0;", + "type": "number" + }, + "fire_nmin": { + "default": 5, + "description": "Minimum number of steps with P > 0 before increase of dt", + "type": "integer" + }, + "ion_positions": { + "default": "default", + "enum": [ + "default", + "from_input" + ], + "type": "string" + }, + "ion_temperature": { + "default": "not_controlled", + "enum": [ + "rescaling", + "rescale-v", + "rescale-T", + "reduce-T", + "berendsen", + "andersen", + "svr", + "initial", + "not_controlled" + ], + "type": "string" + }, + "ion_velocities": { + "default": "default", + "enum": [ + "default", + "from_input" + ], + "type": "string" + }, + "nraise": { + "default": 1, + "type": "integer" + }, + "pot_extrapolation": { + "default": "atomic", + "description": "Used to extrapolate the potential from preceding ionic steps.", + "enum": [ + "none", + "atomic", + "first_order", + "second_order" + ], + "type": "string" + }, + "refold_pos": { + "default": false, + "description": "This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell.", + "type": "boolean" + }, + "remove_rigid_rot": { + "default": false, + "description": "This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells.", + "type": "boolean" + }, + "tempw": { + "default": 300, + "description": "Starting temperature (Kelvin) in MD runs target temperature for most thermostats.", + "type": "number" + }, + "tolp": { + "default": 100, + "description": "Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.", + "type": "number" + }, + "trust_radius_ini": { + "default": 0.5, + "description": "Initial ionic displacement in the structural relaxation. (bfgs only)", + "type": "number" + }, + "trust_radius_max": { + "default": 0.8, + "description": "Maximum ionic displacement in the structural relaxation. (bfgs only)", + "type": "number" + }, + "trust_radius_min": { + "default": 0.001, + "description": "Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)", + "type": "number" + }, + "upscale": { + "default": 100, + "description": "Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.", + "type": "number" + }, + "w_1": { + "default": 0.01, + "type": "number" + }, + "w_2": { + "default": 0.5, + "description": "Parameters used in line search based on the Wolfe conditions. (bfgs only)", + "type": "number" + }, + "wfc_extrapolation": { + "default": "none", + "description": "Used to extrapolate the wavefunctions from preceding ionic steps.", + "enum": [ + "none", + "first_order", + "second_order" + ], + "type": "string" + } + }, + "title": "ions schema", + "type": "object" + }, + { + "type": "null" + } + ] + }, + "&SYSTEM": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/system", + "additionalProperties": false, + "anyOf": [ + { + "properties": { + "celldm": { + "items": { + "type": "number" + }, + "maxLength": 6, + "minLength": 6, + "type": "array" + } + } + }, + { + "properties": { + "A": { + "type": "number" + }, + "B": { + "type": "number" + }, + "C": { + "type": "number" + }, + "cosAB": { + "type": "number" + }, + "cosAC": { + "type": "number" + }, + "cosBC": { + "type": "number" + } + } + } + ], + "properties": { + "Hubbard_alpha": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + }, + "Hubbard_beta": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + }, + "Hubbard_occ": { + "items": { + "items": [ + { + "minimum": 1, + "type": "integer" + }, + { + "maximum": 3, + "minimum": 1, + "type": "integer" + }, + { + "type": "number" + } + ], + "type": "array" + }, + "type": "array" + }, + "ace": { + "default": true, + "description": "Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092", + "type": "boolean" + }, + "angle1": { + "description": "The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.", + "items": { + "type": "number" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "angle2": { + "description": "The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.", + "items": { + "type": "number" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "assume_isolated": { + "default": "none", + "definition": "Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)", + "enum": [ + "none", + "makov-payne", + "m-p", + "mp", + "martyna-tuckerman", + "m-t", + "mt", + "esm", + "2D" + ], + "type": "string" + }, + "block": { + "default": false, + "description": "used only if gate = .TRUE.", + "type": "boolean" + }, + "block_1": { + "default": 0.45, + "description": "used only if gate = .TRUE. and block = .TRUE.", + "type": "number" + }, + "block_2": { + "default": 0.55, + "description": "used only if gate = .TRUE. and block = .TRUE.", + "type": "number" + }, + "block_height": { + "default": 0.1, + "description": "used only if gate = .TRUE. and block = .TRUE.", + "type": "number" + }, + "constrained_magnetization": { + "default": "none", + "description": "Used to perform constrained calculations in magnetic systems.", + "enum": [ + "none", + "total", + "atomic", + "total direction", + "atomic direction" + ], + "type": "string" + }, + "degauss": { + "default": 0, + "description": "value of the gaussian spreading (Ry) for brillouin-zone integration in metals.", + "type": "number" + }, + "degauss_cond": { + "default": 0, + "description": "value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.).", + "type": "number" + }, + "dftd3_threebody": { + "default": true, + "description": "Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled.", + "type": "boolean" + }, + "dftd3_version": { + "default": 3, + "description": "Version of Grimme implementation of Grimme-D3", + "maximum": 6, + "minimum": 2, + "type": "integer" + }, + "dmft": { + "default": false, + "description": "If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1.", + "type": "boolean" + }, + "dmft_prefix": { + "description": "prepended to hdf5 archive: dmft_prefix.h5", + "type": "string" + }, + "eamp": { + "default": 0.001, + "type": "number" + }, + "ecfixed": { + "default": 0, + "type": "number" + }, + "ecutfock": { + "description": "Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials.", + "type": "number" + }, + "ecutrho": { + "description": "Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc", + "type": "number" + }, + "ecutvcut": { + "description": "Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors.", + "type": "number" + }, + "ecutwfc": { + "description": "kinetic energy cutoff (Ry) for wavefunctions", + "type": "number" + }, + "edir": { + "description": "The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE.", + "type": "integer" + }, + "emaxpos": { + "default": 0.5, + "description": "Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE.", + "type": "number" + }, + "ensemble_energies": { + "default": false, + "description": "If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation.", + "type": "boolean" + }, + "eopreg": { + "default": 0.1, + "description": "Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE.", + "type": "number" + }, + "esm_bc": { + "default": "pbc", + "definition": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab.", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "type": "string" + }, + "esm_efield": { + "default": 0, + "description": "If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes.", + "type": "number" + }, + "esm_nfit": { + "default": 4, + "description": "If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge.", + "type": "integer" + }, + "esm_w": { + "default": 0, + "description": "If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ).", + "type": "number" + }, + "exx_fraction": { + "description": "Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20.", + "type": "number" + }, + "exxdiv_treatment": { + "default": "gygi-baldereschi", + "enum": [ + "gygi-baldereschi", + "vcut_spherical", + "vcut_ws", + "none" + ], + "type": "string" + }, + "fixed_magnetization": { + "items": { + "default": 0, + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "force_symmorphic": { + "default": false, + "description": "if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation", + "type": "boolean" + }, + "gcscf_beta": { + "default": 0.05, + "description": "Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite.", + "type": "number" + }, + "gcscf_conv_thr": { + "default": 0.01, + "description": "Convergence threshold of Fermi energy (eV) for GC-SCF.", + "type": "number" + }, + "gcscf_mu": { + "description": "The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge", + "type": "number" + }, + "ibrav": { + "type": "integer" + }, + "input_dft": { + "description": "Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!", + "type": "string" + }, + "lambda": { + "default": 1, + "description": "parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda", + "type": "number" + }, + "lforcet": { + "description": "When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1", + "type": "boolean" + }, + "lgcscf": { + "default": false, + "description": "If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF.", + "type": "boolean" + }, + "localization_thr": { + "default": 0, + "description": "Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation", + "type": "number" + }, + "london": { + "default": false, + "description": "OBSOLESCENT, same as vdw_corr='DFT-D'", + "type": "boolean" + }, + "london_c6": { + "description": "atomic C6 coefficient of each atom type", + "type": "number" + }, + "london_rcut": { + "default": 200, + "description": "cutoff radius (a.u.) for dispersion interactions", + "type": "number" + }, + "london_rvdw": { + "description": "atomic vdw radii of each atom type", + "type": "number" + }, + "london_s6": { + "default": 0.75, + "description": "global scaling parameter for DFT-D. Default is good for PBE.", + "type": "number" + }, + "lspinorb": { + "description": "if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit.", + "type": "boolean" + }, + "nat": { + "description": "number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)", + "type": "integer" + }, + "nbnd": { + "description": "Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)", + "type": "integer" + }, + "nbnd_cond": { + "description": "Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case.", + "type": "integer" + }, + "nelec_cond": { + "default": 0, + "description": "Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold.", + "type": "number" + }, + "nextffield": { + "default": 0, + "description": "Number of activated external ionic force fields.", + "type": "integer" + }, + "no_t_rev": { + "default": false, + "description": "if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal.", + "type": "boolean" + }, + "noinv": { + "default": false, + "description": "if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation", + "type": "boolean" + }, + "noncolin": { + "default": false, + "description": "if .true. the program will perform a noncollinear calculation.", + "type": "boolean" + }, + "nosym": { + "default": false, + "type": "boolean" + }, + "nosym_evc": { + "default": false, + "type": "boolean" + }, + "nqx1": { + "default": 0, + "description": "Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.", + "type": "integer" + }, + "nqx2": { + "description": "Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.", + "type": "integer" + }, + "nqx3": { + "description": "Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.", + "type": "integer" + }, + "nr1": { + "description": "Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)", + "type": "integer" + }, + "nr1s": { + "description": "Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )", + "type": "integer" + }, + "nr2": { + "description": "Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)", + "type": "integer" + }, + "nr2s": { + "description": "Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )", + "type": "integer" + }, + "nr3": { + "description": "Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)", + "type": "integer" + }, + "nr3s": { + "description": "Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )", + "type": "integer" + }, + "nspin": { + "default": 1, + "type": "integer" + }, + "ntyp": { + "description": "number of types of atoms in the unit cell", + "type": "integer" + }, + "occupations": { + "enum": [ + "smearing", + "tetrahedra", + "tetrahedra_lin", + "tetrahedra_opt", + "fixed", + "from_input" + ], + "type": "string" + }, + "one_atom_occupations": { + "default": false, + "type": "boolean" + }, + "origin_choice": { + "default": 1, + "description": "Used only for space groups that in the ITA allow the use of two different origins", + "type": "integer" + }, + "pol_type": { + "description": "Type of polaron in gammaDFT.", + "enum": [ + "e", + "h" + ], + "type": "string" + }, + "q2sigma": { + "default": 0.1, + "type": "number" + }, + "qcutz": { + "default": 0, + "type": "number" + }, + "relaxz": { + "default": false, + "description": "used only if gate = .TRUE.", + "type": "boolean" + }, + "report": { + "default": -1, + "description": "determines when atomic magnetic moments are printed on output", + "type": "integer" + }, + "rhombohedral": { + "default": true, + "description": "Used only for rhombohedral space groups.", + "type": "boolean" + }, + "sci_cb": { + "default": 0, + "description": "Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.", + "type": "number" + }, + "sci_vb": { + "default": 0, + "description": "Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.", + "type": "number" + }, + "screening_parameter": { + "default": 0.106, + "description": "screening_parameter for HSE like hybrid functionals.", + "type": "number" + }, + "sic_energy": { + "default": false, + "description": "Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost.", + "type": "boolean" + }, + "sic_gamma": { + "default": 0, + "description": "Strength of the gammaDFT potential.", + "type": "number" + }, + "smearing": { + "default": "gaussian", + "enum": [ + "gaussian", + "gauss", + "methfessel-paxton", + "m-p", + "mp", + "marzari-vanderbilt", + "cold", + "m-v", + "mv", + "fermi-dirac", + "f-d", + "fd" + ], + "type": "string" + }, + "space_group": { + "default": 0, + "description": "The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)", + "type": "integer" + }, + "starting_charge": { + "default": 0, + "description": "starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'.", + "type": "number" + }, + "starting_magnetization": { + "items": { + "default": 0, + "maximum": 1, + "minimum": -1, + "type": "number" + }, + "type": "array" + }, + "starting_ns_eigenvalue": { + "items": { + "items": { + "items": { + "type": "number" + }, + "type": "array" + }, + "type": "array" + }, + "type": "array" + }, + "starting_spin_angle": { + "default": false, + "type": "boolean" + }, + "tot_charge": { + "default": 0, + "type": "number" + }, + "tot_magnetization": { + "default": -10000, + "description": "Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle.", + "type": "number" + }, + "ts_vdw_econv_thr": { + "default": 1e-06, + "description": "Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it", + "type": "number" + }, + "ts_vdw_isolated": { + "default": false, + "description": "Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system.", + "type": "boolean" + }, + "uniqueb": { + "default": false, + "description": "Used only for monoclinic lattices", + "type": "boolean" + }, + "use_all_frac": { + "default": false, + "type": "boolean" + }, + "vdw_corr": { + "default": "none", + "description": "Type of Van der Waals correction", + "enum": [ + "grimme-d2", + "Grimme-D2", + "DFT-D", + "dft-d", + "grimme-d3", + "Grimme-D3", + "DFT-D3", + "dft-d3", + "TS", + "ts", + "ts-vdw", + "ts-vdW", + "tkatchenko-scheffler", + "MBD", + "mbd", + "many-body-dispersion", + "mbd_vdw", + "XDM", + "xdm" + ], + "type": "string" + }, + "x_gamma_extrapolation": { + "default": true, + "description": "Specific for EXX. If .true., extrapolate the G=0 term of the potential", + "type": "boolean" + }, + "xdm": { + "default": false, + "description": "OBSOLESCENT, same as vdw_corr='xdm'", + "type": "boolean" + }, + "xdm_a1": { + "default": 0.6836, + "description": "Damping function parameter a1 (adimensional)", + "type": "number" + }, + "xdm_a2": { + "default": 1.5045, + "description": "Damping function parameter a2 (angstrom)", + "type": "number" + }, + "zgate": { + "default": 0.5, + "description": "used only if gate = .TRUE.", + "type": "number" + } + }, + "required": [ + "ibrav", + "nat", + "ntyp", + "ecutwfc" + ], + "title": "system schema", + "type": "object" + }, + "ATOMIC_POSITIONS": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/atomic-positions", + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493", + "properties": { + "card_option": { + "default": "alat", + "enum": [ + "alat", + "bohr", + "angstrom", + "crystal", + "crystal_sg" + ], + "type": "string" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "X": { + "description": "label of the atom as specified in ATOMIC_SPECIES", + "type": "string" + }, + "if_pos(1)": { + "$id": "core/primitive/integer-one-or-zero", + "default": 1, + "description": "component i of the force for this atom is multiplied by if_pos(i), which must be either 0 or 1. Used to keep selected atoms and/or selected components fixed in MD dynamics or structural optimization run.", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" + }, + "if_pos(2)": { + "$id": "core/primitive/integer-one-or-zero", + "default": 1, + "description": "component i of the force for this atom is multiplied by if_pos(i), which must be either 0 or 1. Used to keep selected atoms and/or selected components fixed in MD dynamics or structural optimization run.", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" + }, + "if_pos(3)": { + "$id": "core/primitive/integer-one-or-zero", + "default": 1, + "description": "component i of the force for this atom is multiplied by if_pos(i), which must be either 0 or 1. Used to keep selected atoms and/or selected components fixed in MD dynamics or structural optimization run.", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" + }, + "x": { + "description": "atomic positions", + "type": "number" + }, + "y": { + "description": "atomic positions", + "type": "number" + }, + "z": { + "description": "atomic positions", + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "type": "array" + } + }, + "title": "atomic positions schema", + "type": "object" + }, + "ATOMIC_SPECIES": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/atomic-species", + "additionalProperties": false, + "properties": { + "values": { + "items": { + "additionalProperties": false, + "properties": { + "Mass_X": { + "description": "mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)", + "type": "number" + }, + "PseudoPot_X": { + "description": "PseudoPot_X", + "type": "string" + }, + "X": { + "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "title": "atomic species schema", + "type": "object" + }, + "CELL_PARAMETERS": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/cell-parameters", + "additionalProperties": false, + "properties": { + "card_option": { + "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)", + "enum": [ + "alat", + "bohr", + "angstrom" + ], + "type": "string" + }, + "values": { + "additionalProperties": false, + "properties": { + "v1": { + "$id": "core/primitive/array-of-3-numbers", + "description": "1st lattice vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "v2": { + "$id": "core/primitive/array-of-3-numbers", + "description": "2nd lattice vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "v3": { + "$id": "core/primitive/array-of-3-numbers", + "description": "3rd lattice vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "type": "object" + } + }, + "title": "cell parameters schema", + "type": "object" + }, + "HUBBARD": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/hubbard", + "additionalProperties": false, + "properties": { + "card_option": { + "enum": [ + "atomic", + "ortho-atomic", + "norm-atomic", + "wf", + "pseudo" + ], + "type": "string" + }, + "values": { + "oneOf": [ + { + "description": "IF DFT+U", + "items": { + "oneOf": [ + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1764", + "properties": { + "U": { + "description": "string constant \"U\"; indicates the specs for the U parameter will be given", + "enum": [ + "U" + ], + "type": "string" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + }, + "u_val": { + "description": "value of the U parameter (in eV)", + "type": "number" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1784", + "properties": { + "J0": { + "description": "string constant \"J0\"; indicates the specs for the J0 parameter will be given", + "enum": [ + "J0" + ], + "type": "string" + }, + "j0_val": { + "description": "value of the J0 parameter (in eV)", + "type": "number" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + } + }, + "type": "object" + } + ] + }, + "type": "array" + }, + { + "description": "IF DFT+U+J", + "items": { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1817", + "properties": { + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + }, + "paramType": { + "description": "character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)", + "enum": [ + "U", + "J", + "B", + "E2", + "E3" + ], + "type": "string" + }, + "paramValue": { + "description": "value of the J0 parameter (in eV)", + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + { + "description": "IF DFT+U+V", + "items": { + "oneOf": [ + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1847", + "properties": { + "U": { + "description": "string constant \"U\"; indicates the specs for the U parameter will be given", + "enum": [ + "U" + ], + "type": "string" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + }, + "u_val": { + "description": "value of the U parameter (in eV)", + "type": "number" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1865", + "properties": { + "J0": { + "description": "string constant \"J0\"; indicates the specs for the J0 parameter will be given", + "enum": [ + "J0" + ], + "type": "string" + }, + "j0_val": { + "description": "value of the J0 parameter (in eV)", + "type": "number" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1884", + "properties": { + "I": { + "description": "index of the atom I", + "type": "integer" + }, + "J": { + "description": "index of the atom J", + "type": "integer" + }, + "V": { + "description": "string constant \"V\"; indicates the specs for the V parameter will be given", + "enum": [ + "V" + ], + "type": "string" + }, + "label(I)": { + "description": "label of the atom I (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "label(J)": { + "description": "label of the atom J (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold(I)": { + "description": "specs of the manifold for atom I (e.g., 3d, 2p...)", + "type": "string" + }, + "manifold(J)": { + "description": "specs of the manifold for atom J (e.g., 3d, 2p...)", + "type": "string" + }, + "v_val(I,J)": { + "description": "value of the V parameter for the atom pair I,J (in eV)", + "type": "number" + } + }, + "type": "object" + } + ] + }, + "type": "array" + } + ] + } + }, + "title": "hubbard schema", + "type": "object" + }, + "K_POINTS": { + "$id": "3pse/file/applications/espresso/7.2/pw.x/k-points", + "additionalProperties": false, + "properties": { + "card_option": { + "enum": [ + "tpiba", + "automatic", + "crystal", + "gamma", + "tpiba_b", + "crystal_b", + "tpiba_c", + "crystal_c" + ], + "type": "string" + }, + "values": { + "oneOf": [ + { + "description": "K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c", + "items": { + "additionalProperties": false, + "properties": { + "nks": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "wk": { + "type": "number" + }, + "xk_x": { + "type": "number" + }, + "xk_y": { + "type": "number" + }, + "xk_z": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + { + "additionalProperties": false, + "description": "K_POINTS automatic", + "properties": { + "nk1": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "nk2": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "nk3": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "sk1": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "sk2": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "sk3": { + "description": "Number of supplied special k-points.", + "type": "integer" + } + }, + "type": "object" + }, + { + "description": "K_POINTS gamma", + "type": "null" + } + ] + } + }, + "title": "k points schema", + "type": "object" + } + }, + "title": "pwx main schema" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/atomic_positions.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/atomic_positions.json new file mode 100644 index 000000000..30f1fcead --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/atomic_positions.json @@ -0,0 +1,78 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/atomic-positions", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493", + "properties": { + "card_option": { + "default": "alat", + "enum": [ + "alat", + "bohr", + "angstrom", + "crystal", + "crystal_sg" + ], + "type": "string" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "X": { + "description": "label of the atom as specified in ATOMIC_SPECIES", + "type": "string" + }, + "if_pos(1)": { + "$id": "core/primitive/integer-one-or-zero", + "default": 1, + "description": "component i of the force for this atom is multiplied by if_pos(i), which must be either 0 or 1. Used to keep selected atoms and/or selected components fixed in MD dynamics or structural optimization run.", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" + }, + "if_pos(2)": { + "$id": "core/primitive/integer-one-or-zero", + "default": 1, + "description": "component i of the force for this atom is multiplied by if_pos(i), which must be either 0 or 1. Used to keep selected atoms and/or selected components fixed in MD dynamics or structural optimization run.", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" + }, + "if_pos(3)": { + "$id": "core/primitive/integer-one-or-zero", + "default": 1, + "description": "component i of the force for this atom is multiplied by if_pos(i), which must be either 0 or 1. Used to keep selected atoms and/or selected components fixed in MD dynamics or structural optimization run.", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" + }, + "x": { + "description": "atomic positions", + "type": "number" + }, + "y": { + "description": "atomic positions", + "type": "number" + }, + "z": { + "description": "atomic positions", + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "type": "array" + } + }, + "title": "atomic positions schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/atomic_species.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/atomic_species.json new file mode 100644 index 000000000..160cf4dce --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/atomic_species.json @@ -0,0 +1,30 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/atomic-species", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "values": { + "items": { + "additionalProperties": false, + "properties": { + "Mass_X": { + "description": "mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)", + "type": "number" + }, + "PseudoPot_X": { + "description": "PseudoPot_X", + "type": "string" + }, + "X": { + "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "title": "atomic species schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/cell.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/cell.json new file mode 100644 index 000000000..07ac8be44 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/cell.json @@ -0,0 +1,89 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/cell", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "cell_dynamics": { + "default": "bfgs", + "description": "CASE ( calculation == 'vc-relax' )", + "enum": [ + "none", + "sd", + "damp-pr", + "damp-w", + "bfgs" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "cell_dynamics": { + "description": "CASE ( calculation == 'vc-md' )", + "enum": [ + "none", + "pr", + "w" + ], + "type": "string" + } + }, + "type": "object" + } + ], + "properties": { + "cell_dofree": { + "default": "all", + "description": "Select which of the cell parameters should be moved", + "enum": [ + "all", + "ibrav", + "a", + "b", + "c", + "fixa", + "fixb", + "fixc", + "x", + "y", + "xy", + "xz", + "xyz", + "shape", + "volume", + "2Dxy", + "2Dshape", + "epitaxial_ab", + "epitaxial_ac", + "epitaxial_bc" + ], + "type": "string" + }, + "cell_factor": { + "description": "Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise", + "type": "number" + }, + "press": { + "default": 0, + "description": "Target pressure [KBar] in a variable-cell md or relaxation run.", + "type": "number" + }, + "press_conv_thr": { + "default": 0.5, + "description": "Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well).", + "type": "number" + }, + "wmass": { + "description": "Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD", + "type": "number" + } + }, + "title": "cell schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/cell_parameters.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/cell_parameters.json new file mode 100644 index 000000000..142cd3af2 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/cell_parameters.json @@ -0,0 +1,57 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/cell-parameters", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "card_option": { + "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)", + "enum": [ + "alat", + "bohr", + "angstrom" + ], + "type": "string" + }, + "values": { + "additionalProperties": false, + "properties": { + "v1": { + "$id": "core/primitive/array-of-3-numbers", + "description": "1st lattice vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "v2": { + "$id": "core/primitive/array-of-3-numbers", + "description": "2nd lattice vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "v3": { + "$id": "core/primitive/array-of-3-numbers", + "description": "3rd lattice vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "type": "object" + } + }, + "title": "cell parameters schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/control.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/control.json new file mode 100644 index 000000000..ce16313e8 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/control.json @@ -0,0 +1,181 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/control", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "calculation": { + "default": "scf", + "description": "A string describing the task to be performed", + "enum": [ + "scf", + "nscf", + "bands", + "relax", + "md", + "vc-relax", + "vc-md" + ], + "type": "string" + }, + "dipfield": { + "default": false, + "description": "If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE.", + "type": "boolean" + }, + "disk_io": { + "description": "Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )", + "enum": [ + "high", + "medium", + "low", + "nowf", + "none" + ], + "type": "string" + }, + "dt": { + "default": 20, + "description": "time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)", + "type": "number" + }, + "etot_conv_thr": { + "default": 0.0001, + "description": "Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied", + "type": "number" + }, + "forc_conv_thr": { + "default": 0.001, + "description": "Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied", + "type": "number" + }, + "gate": { + "default": false, + "description": "In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called \"monopole\" in v6.0 and 6.1 of pw.x", + "type": "boolean" + }, + "gdir": { + "description": "For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) \"gdir\" is the direction of the field.", + "type": "number" + }, + "iprint": { + "description": "band energies are written every iprint iterations", + "type": "number" + }, + "lberry": { + "default": false, + "description": "If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation", + "type": "boolean" + }, + "lelfield": { + "default": false, + "description": "If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !", + "type": "boolean" + }, + "lfcp": { + "default": false, + "description": "If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP.", + "type": "boolean" + }, + "lkpoint_dir": { + "description": "OBSOLETE - NO LONGER IMPLEMENTED", + "type": "boolean" + }, + "lorbm": { + "default": false, + "description": "If .TRUE. perform orbital magnetization calculation.", + "type": "boolean" + }, + "max_seconds": { + "default": 10000000, + "description": "Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues.", + "type": "number" + }, + "nberrycyc": { + "default": 1, + "description": "In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density", + "type": "integer" + }, + "nppstr": { + "description": "For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.).", + "type": "number" + }, + "nstep": { + "default": 1, + "description": "Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick \"dry run\", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform \"nstep\" steps even if restarting from a previously interrupted calculation.", + "type": "number" + }, + "outdir": { + "description": "input, temporary, output files are found in this directory, see also wfcdir", + "type": "string" + }, + "prefix": { + "default": "pwscf", + "description": "prepended to input/output filenames: prefix.wfc, prefix.rho, etc.", + "type": "string" + }, + "pseudo_dir": { + "description": "directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise", + "type": "string" + }, + "restart_mode": { + "default": "from_scratch", + "enum": [ + "from_scratch", + "restart" + ], + "type": "string" + }, + "tefield": { + "default": false, + "description": "If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential.", + "type": "boolean" + }, + "title": { + "default": "", + "description": "reprinted on output.", + "type": "string" + }, + "tprnfor": { + "description": "calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'", + "type": "boolean" + }, + "trism": { + "default": false, + "description": "If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. .", + "type": "boolean" + }, + "tstress": { + "default": false, + "description": "calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'", + "type": "boolean" + }, + "twochem": { + "default": false, + "description": "IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold.", + "type": "boolean" + }, + "verbosity": { + "default": "low", + "description": "Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'", + "enum": [ + "high", + "low", + "debug", + "medium", + "minimal", + "default" + ], + "type": "string" + }, + "wf_collect": { + "description": "OBSOLETE - NO LONGER IMPLEMENTED", + "type": "boolean" + }, + "wfcdir": { + "description": "This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x.", + "type": "string" + } + }, + "title": "control schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/electrons.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/electrons.json new file mode 100644 index 000000000..752e5b928 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/electrons.json @@ -0,0 +1,164 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/electrons", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "adaptive_thr": { + "default": false, + "description": "If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX.", + "type": "boolean" + }, + "conv_thr": { + "type": "number" + }, + "conv_thr_init": { + "description": "When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle.", + "type": "number" + }, + "conv_thr_multi": { + "description": "When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )", + "type": "number" + }, + "diago_cg_maxiter": { + "description": "For conjugate gradient diagonalization: max number of iterations", + "type": "integer" + }, + "diago_david_ndim": { + "default": 2, + "description": "For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed).", + "type": "integer" + }, + "diago_full_acc": { + "default": false, + "description": "If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties).", + "type": "boolean" + }, + "diago_gs_nblock": { + "default": 16, + "description": "For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization", + "type": "integer" + }, + "diago_ppcg_maxiter": { + "description": "For ppcg diagonalization: max number of iterations", + "type": "integer" + }, + "diago_rmm_conv": { + "default": false, + "description": "If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once.", + "type": "boolean" + }, + "diago_rmm_ndim": { + "default": 4, + "description": "For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed).", + "type": "integer" + }, + "diago_thr_init": { + "description": "Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence).", + "type": "number" + }, + "diagonalization": { + "default": "david", + "enum": [ + "david", + "cg", + "ppcg", + "paro", + "ParO", + "rmm-davidson", + "rmm-paro" + ], + "type": "string" + }, + "efield": { + "description": "Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic.", + "type": "number" + }, + "efield_cart": { + "$id": "core/primitive/array-of-3-numbers", + "description": "Finite electric field (in Ry a.u.=36.3609*10^10 V/m) in cartesian axis. Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are automatic.", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "efield_phase": { + "default": "none", + "enum": [ + "read", + "write", + "none" + ], + "type": "string" + }, + "electron_maxstep": { + "default": 100, + "description": "maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops.", + "type": "integer" + }, + "exx_maxstep": { + "default": 100, + "description": "maximum number of outer iterations in a scf calculation with exact exchange.", + "type": "integer" + }, + "mixing_beta": { + "description": "mixing factor for self-consistency", + "type": "number" + }, + "mixing_fixed_ns": { + "default": 0, + "description": "For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term ).", + "type": "integer" + }, + "mixing_mode": { + "default": "plain", + "enum": [ + "plain", + "TF", + "local-TF" + ], + "type": "string" + }, + "mixing_ndim": { + "default": 8, + "description": "number of iterations used in mixing scheme", + "type": "integer" + }, + "real_space": { + "default": false, + "description": "If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!", + "type": "boolean" + }, + "scf_must_converge": { + "default": true, + "description": "If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care.", + "type": "boolean" + }, + "startingpot": { + "enum": [ + "atomic", + "file" + ], + "type": "string" + }, + "startingwfc": { + "default": "atomic+random", + "enum": [ + "atomic", + "atomic+random", + "random", + "file" + ], + "type": "string" + }, + "tqr": { + "default": false, + "description": "If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!", + "type": "boolean" + } + }, + "title": "electrons schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/hubbard.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/hubbard.json new file mode 100644 index 000000000..18449a9a1 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/hubbard.json @@ -0,0 +1,219 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/hubbard", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "card_option": { + "enum": [ + "atomic", + "ortho-atomic", + "norm-atomic", + "wf", + "pseudo" + ], + "type": "string" + }, + "values": { + "oneOf": [ + { + "description": "IF DFT+U", + "items": { + "oneOf": [ + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1764", + "properties": { + "U": { + "description": "string constant \"U\"; indicates the specs for the U parameter will be given", + "enum": [ + "U" + ], + "type": "string" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + }, + "u_val": { + "description": "value of the U parameter (in eV)", + "type": "number" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1784", + "properties": { + "J0": { + "description": "string constant \"J0\"; indicates the specs for the J0 parameter will be given", + "enum": [ + "J0" + ], + "type": "string" + }, + "j0_val": { + "description": "value of the J0 parameter (in eV)", + "type": "number" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + } + }, + "type": "object" + } + ] + }, + "type": "array" + }, + { + "description": "IF DFT+U+J", + "items": { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1817", + "properties": { + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + }, + "paramType": { + "description": "character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)", + "enum": [ + "U", + "J", + "B", + "E2", + "E3" + ], + "type": "string" + }, + "paramValue": { + "description": "value of the J0 parameter (in eV)", + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + { + "description": "IF DFT+U+V", + "items": { + "oneOf": [ + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1847", + "properties": { + "U": { + "description": "string constant \"U\"; indicates the specs for the U parameter will be given", + "enum": [ + "U" + ], + "type": "string" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + }, + "u_val": { + "description": "value of the U parameter (in eV)", + "type": "number" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1865", + "properties": { + "J0": { + "description": "string constant \"J0\"; indicates the specs for the J0 parameter will be given", + "enum": [ + "J0" + ], + "type": "string" + }, + "j0_val": { + "description": "value of the J0 parameter (in eV)", + "type": "number" + }, + "label": { + "description": "label of the atom (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold": { + "description": "specs of the manifold (e.g., 3d, 2p...)", + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1884", + "properties": { + "I": { + "description": "index of the atom I", + "type": "integer" + }, + "J": { + "description": "index of the atom J", + "type": "integer" + }, + "V": { + "description": "string constant \"V\"; indicates the specs for the V parameter will be given", + "enum": [ + "V" + ], + "type": "string" + }, + "label(I)": { + "description": "label of the atom I (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "label(J)": { + "description": "label of the atom J (as defined in ATOMIC_SPECIES)", + "type": "string" + }, + "manifold(I)": { + "description": "specs of the manifold for atom I (e.g., 3d, 2p...)", + "type": "string" + }, + "manifold(J)": { + "description": "specs of the manifold for atom J (e.g., 3d, 2p...)", + "type": "string" + }, + "v_val(I,J)": { + "description": "value of the V parameter for the atom pair I,J (in eV)", + "type": "number" + } + }, + "type": "object" + } + ] + }, + "type": "array" + } + ] + } + }, + "title": "hubbard schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/ions.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/ions.json new file mode 100644 index 000000000..812410a3b --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/ions.json @@ -0,0 +1,216 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/ions", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "bfgs", + "description": "CASE: calculation == 'relax'", + "enum": [ + "bfgs", + "damp", + "fire" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "verlet", + "description": "CASE: calculation == 'md'", + "enum": [ + "verlet", + "langevin", + "langevin-smc" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "bfgs", + "description": "CASE: calculation == 'vc-relax'", + "enum": [ + "bfgs", + "damp" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ion_dynamics": { + "default": "beeman", + "description": "CASE: calculation == 'vc-md'", + "enum": [ + "beeman" + ], + "type": "string" + } + }, + "type": "object" + } + ], + "properties": { + "bfgs_ndim": { + "default": 1, + "description": "Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm.", + "type": "integer" + }, + "delta_t": { + "default": 1, + "type": "number" + }, + "fire_alpha_init": { + "default": 0.2, + "description": "Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3", + "type": "number" + }, + "fire_dtmax": { + "default": 10, + "description": "Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt", + "type": "number" + }, + "fire_f_dec": { + "default": 0.5, + "description": "Factor for decreasing dt", + "type": "number" + }, + "fire_f_inc": { + "default": 1.1, + "description": "Factor for increasing dt", + "type": "number" + }, + "fire_falpha": { + "default": 0.99, + "description": "Scaling of the alpha mixing parameter for steps with P > 0;", + "type": "number" + }, + "fire_nmin": { + "default": 5, + "description": "Minimum number of steps with P > 0 before increase of dt", + "type": "integer" + }, + "ion_positions": { + "default": "default", + "enum": [ + "default", + "from_input" + ], + "type": "string" + }, + "ion_temperature": { + "default": "not_controlled", + "enum": [ + "rescaling", + "rescale-v", + "rescale-T", + "reduce-T", + "berendsen", + "andersen", + "svr", + "initial", + "not_controlled" + ], + "type": "string" + }, + "ion_velocities": { + "default": "default", + "enum": [ + "default", + "from_input" + ], + "type": "string" + }, + "nraise": { + "default": 1, + "type": "integer" + }, + "pot_extrapolation": { + "default": "atomic", + "description": "Used to extrapolate the potential from preceding ionic steps.", + "enum": [ + "none", + "atomic", + "first_order", + "second_order" + ], + "type": "string" + }, + "refold_pos": { + "default": false, + "description": "This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell.", + "type": "boolean" + }, + "remove_rigid_rot": { + "default": false, + "description": "This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells.", + "type": "boolean" + }, + "tempw": { + "default": 300, + "description": "Starting temperature (Kelvin) in MD runs target temperature for most thermostats.", + "type": "number" + }, + "tolp": { + "default": 100, + "description": "Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.", + "type": "number" + }, + "trust_radius_ini": { + "default": 0.5, + "description": "Initial ionic displacement in the structural relaxation. (bfgs only)", + "type": "number" + }, + "trust_radius_max": { + "default": 0.8, + "description": "Maximum ionic displacement in the structural relaxation. (bfgs only)", + "type": "number" + }, + "trust_radius_min": { + "default": 0.001, + "description": "Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)", + "type": "number" + }, + "upscale": { + "default": 100, + "description": "Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.", + "type": "number" + }, + "w_1": { + "default": 0.01, + "type": "number" + }, + "w_2": { + "default": 0.5, + "description": "Parameters used in line search based on the Wolfe conditions. (bfgs only)", + "type": "number" + }, + "wfc_extrapolation": { + "default": "none", + "description": "Used to extrapolate the wavefunctions from preceding ionic steps.", + "enum": [ + "none", + "first_order", + "second_order" + ], + "type": "string" + } + }, + "title": "ions schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/k_points.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/k_points.json new file mode 100644 index 000000000..717ae5f10 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/k_points.json @@ -0,0 +1,87 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/k-points", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "card_option": { + "enum": [ + "tpiba", + "automatic", + "crystal", + "gamma", + "tpiba_b", + "crystal_b", + "tpiba_c", + "crystal_c" + ], + "type": "string" + }, + "values": { + "oneOf": [ + { + "description": "K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c", + "items": { + "additionalProperties": false, + "properties": { + "nks": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "wk": { + "type": "number" + }, + "xk_x": { + "type": "number" + }, + "xk_y": { + "type": "number" + }, + "xk_z": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + { + "additionalProperties": false, + "description": "K_POINTS automatic", + "properties": { + "nk1": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "nk2": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "nk3": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "sk1": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "sk2": { + "description": "Number of supplied special k-points.", + "type": "integer" + }, + "sk3": { + "description": "Number of supplied special k-points.", + "type": "integer" + } + }, + "type": "object" + }, + { + "description": "K_POINTS gamma", + "type": "null" + } + ] + } + }, + "title": "k points schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/3pse/file/applications/espresso/7.2/pw.x/system.json b/py/schema/3pse/file/applications/espresso/7.2/pw.x/system.json new file mode 100644 index 000000000..419726c95 --- /dev/null +++ b/py/schema/3pse/file/applications/espresso/7.2/pw.x/system.json @@ -0,0 +1,649 @@ +{ + "$id": "3pse/file/applications/espresso/7.2/pw.x/system", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "anyOf": [ + { + "properties": { + "celldm": { + "items": { + "type": "number" + }, + "maxLength": 6, + "minLength": 6, + "type": "array" + } + } + }, + { + "properties": { + "A": { + "type": "number" + }, + "B": { + "type": "number" + }, + "C": { + "type": "number" + }, + "cosAB": { + "type": "number" + }, + "cosAC": { + "type": "number" + }, + "cosBC": { + "type": "number" + } + } + } + ], + "properties": { + "Hubbard_alpha": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + }, + "Hubbard_beta": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + }, + "Hubbard_occ": { + "items": { + "items": [ + { + "minimum": 1, + "type": "integer" + }, + { + "maximum": 3, + "minimum": 1, + "type": "integer" + }, + { + "type": "number" + } + ], + "type": "array" + }, + "type": "array" + }, + "ace": { + "default": true, + "description": "Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092", + "type": "boolean" + }, + "angle1": { + "description": "The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.", + "items": { + "type": "number" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "angle2": { + "description": "The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.", + "items": { + "type": "number" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "assume_isolated": { + "default": "none", + "definition": "Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)", + "enum": [ + "none", + "makov-payne", + "m-p", + "mp", + "martyna-tuckerman", + "m-t", + "mt", + "esm", + "2D" + ], + "type": "string" + }, + "block": { + "default": false, + "description": "used only if gate = .TRUE.", + "type": "boolean" + }, + "block_1": { + "default": 0.45, + "description": "used only if gate = .TRUE. and block = .TRUE.", + "type": "number" + }, + "block_2": { + "default": 0.55, + "description": "used only if gate = .TRUE. and block = .TRUE.", + "type": "number" + }, + "block_height": { + "default": 0.1, + "description": "used only if gate = .TRUE. and block = .TRUE.", + "type": "number" + }, + "constrained_magnetization": { + "default": "none", + "description": "Used to perform constrained calculations in magnetic systems.", + "enum": [ + "none", + "total", + "atomic", + "total direction", + "atomic direction" + ], + "type": "string" + }, + "degauss": { + "default": 0, + "description": "value of the gaussian spreading (Ry) for brillouin-zone integration in metals.", + "type": "number" + }, + "degauss_cond": { + "default": 0, + "description": "value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.).", + "type": "number" + }, + "dftd3_threebody": { + "default": true, + "description": "Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled.", + "type": "boolean" + }, + "dftd3_version": { + "default": 3, + "description": "Version of Grimme implementation of Grimme-D3", + "maximum": 6, + "minimum": 2, + "type": "integer" + }, + "dmft": { + "default": false, + "description": "If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1.", + "type": "boolean" + }, + "dmft_prefix": { + "description": "prepended to hdf5 archive: dmft_prefix.h5", + "type": "string" + }, + "eamp": { + "default": 0.001, + "type": "number" + }, + "ecfixed": { + "default": 0, + "type": "number" + }, + "ecutfock": { + "description": "Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials.", + "type": "number" + }, + "ecutrho": { + "description": "Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc", + "type": "number" + }, + "ecutvcut": { + "description": "Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors.", + "type": "number" + }, + "ecutwfc": { + "description": "kinetic energy cutoff (Ry) for wavefunctions", + "type": "number" + }, + "edir": { + "description": "The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE.", + "type": "integer" + }, + "emaxpos": { + "default": 0.5, + "description": "Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE.", + "type": "number" + }, + "ensemble_energies": { + "default": false, + "description": "If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation.", + "type": "boolean" + }, + "eopreg": { + "default": 0.1, + "description": "Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE.", + "type": "number" + }, + "esm_bc": { + "default": "pbc", + "definition": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab.", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "type": "string" + }, + "esm_efield": { + "default": 0, + "description": "If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes.", + "type": "number" + }, + "esm_nfit": { + "default": 4, + "description": "If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge.", + "type": "integer" + }, + "esm_w": { + "default": 0, + "description": "If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ).", + "type": "number" + }, + "exx_fraction": { + "description": "Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20.", + "type": "number" + }, + "exxdiv_treatment": { + "default": "gygi-baldereschi", + "enum": [ + "gygi-baldereschi", + "vcut_spherical", + "vcut_ws", + "none" + ], + "type": "string" + }, + "fixed_magnetization": { + "items": { + "default": 0, + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "force_symmorphic": { + "default": false, + "description": "if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation", + "type": "boolean" + }, + "gcscf_beta": { + "default": 0.05, + "description": "Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite.", + "type": "number" + }, + "gcscf_conv_thr": { + "default": 0.01, + "description": "Convergence threshold of Fermi energy (eV) for GC-SCF.", + "type": "number" + }, + "gcscf_mu": { + "description": "The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge", + "type": "number" + }, + "ibrav": { + "type": "integer" + }, + "input_dft": { + "description": "Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!", + "type": "string" + }, + "lambda": { + "default": 1, + "description": "parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda", + "type": "number" + }, + "lforcet": { + "description": "When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1", + "type": "boolean" + }, + "lgcscf": { + "default": false, + "description": "If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF.", + "type": "boolean" + }, + "localization_thr": { + "default": 0, + "description": "Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation", + "type": "number" + }, + "london": { + "default": false, + "description": "OBSOLESCENT, same as vdw_corr='DFT-D'", + "type": "boolean" + }, + "london_c6": { + "description": "atomic C6 coefficient of each atom type", + "type": "number" + }, + "london_rcut": { + "default": 200, + "description": "cutoff radius (a.u.) for dispersion interactions", + "type": "number" + }, + "london_rvdw": { + "description": "atomic vdw radii of each atom type", + "type": "number" + }, + "london_s6": { + "default": 0.75, + "description": "global scaling parameter for DFT-D. Default is good for PBE.", + "type": "number" + }, + "lspinorb": { + "description": "if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit.", + "type": "boolean" + }, + "nat": { + "description": "number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)", + "type": "integer" + }, + "nbnd": { + "description": "Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)", + "type": "integer" + }, + "nbnd_cond": { + "description": "Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case.", + "type": "integer" + }, + "nelec_cond": { + "default": 0, + "description": "Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold.", + "type": "number" + }, + "nextffield": { + "default": 0, + "description": "Number of activated external ionic force fields.", + "type": "integer" + }, + "no_t_rev": { + "default": false, + "description": "if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal.", + "type": "boolean" + }, + "noinv": { + "default": false, + "description": "if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation", + "type": "boolean" + }, + "noncolin": { + "default": false, + "description": "if .true. the program will perform a noncollinear calculation.", + "type": "boolean" + }, + "nosym": { + "default": false, + "type": "boolean" + }, + "nosym_evc": { + "default": false, + "type": "boolean" + }, + "nqx1": { + "default": 0, + "description": "Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.", + "type": "integer" + }, + "nqx2": { + "description": "Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.", + "type": "integer" + }, + "nqx3": { + "description": "Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.", + "type": "integer" + }, + "nr1": { + "description": "Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)", + "type": "integer" + }, + "nr1s": { + "description": "Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )", + "type": "integer" + }, + "nr2": { + "description": "Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)", + "type": "integer" + }, + "nr2s": { + "description": "Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )", + "type": "integer" + }, + "nr3": { + "description": "Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)", + "type": "integer" + }, + "nr3s": { + "description": "Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )", + "type": "integer" + }, + "nspin": { + "default": 1, + "type": "integer" + }, + "ntyp": { + "description": "number of types of atoms in the unit cell", + "type": "integer" + }, + "occupations": { + "enum": [ + "smearing", + "tetrahedra", + "tetrahedra_lin", + "tetrahedra_opt", + "fixed", + "from_input" + ], + "type": "string" + }, + "one_atom_occupations": { + "default": false, + "type": "boolean" + }, + "origin_choice": { + "default": 1, + "description": "Used only for space groups that in the ITA allow the use of two different origins", + "type": "integer" + }, + "pol_type": { + "description": "Type of polaron in gammaDFT.", + "enum": [ + "e", + "h" + ], + "type": "string" + }, + "q2sigma": { + "default": 0.1, + "type": "number" + }, + "qcutz": { + "default": 0, + "type": "number" + }, + "relaxz": { + "default": false, + "description": "used only if gate = .TRUE.", + "type": "boolean" + }, + "report": { + "default": -1, + "description": "determines when atomic magnetic moments are printed on output", + "type": "integer" + }, + "rhombohedral": { + "default": true, + "description": "Used only for rhombohedral space groups.", + "type": "boolean" + }, + "sci_cb": { + "default": 0, + "description": "Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.", + "type": "number" + }, + "sci_vb": { + "default": 0, + "description": "Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.", + "type": "number" + }, + "screening_parameter": { + "default": 0.106, + "description": "screening_parameter for HSE like hybrid functionals.", + "type": "number" + }, + "sic_energy": { + "default": false, + "description": "Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost.", + "type": "boolean" + }, + "sic_gamma": { + "default": 0, + "description": "Strength of the gammaDFT potential.", + "type": "number" + }, + "smearing": { + "default": "gaussian", + "enum": [ + "gaussian", + "gauss", + "methfessel-paxton", + "m-p", + "mp", + "marzari-vanderbilt", + "cold", + "m-v", + "mv", + "fermi-dirac", + "f-d", + "fd" + ], + "type": "string" + }, + "space_group": { + "default": 0, + "description": "The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)", + "type": "integer" + }, + "starting_charge": { + "default": 0, + "description": "starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'.", + "type": "number" + }, + "starting_magnetization": { + "items": { + "default": 0, + "maximum": 1, + "minimum": -1, + "type": "number" + }, + "type": "array" + }, + "starting_ns_eigenvalue": { + "items": { + "items": { + "items": { + "type": "number" + }, + "type": "array" + }, + "type": "array" + }, + "type": "array" + }, + "starting_spin_angle": { + "default": false, + "type": "boolean" + }, + "tot_charge": { + "default": 0, + "type": "number" + }, + "tot_magnetization": { + "default": -10000, + "description": "Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle.", + "type": "number" + }, + "ts_vdw_econv_thr": { + "default": 1e-06, + "description": "Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it", + "type": "number" + }, + "ts_vdw_isolated": { + "default": false, + "description": "Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system.", + "type": "boolean" + }, + "uniqueb": { + "default": false, + "description": "Used only for monoclinic lattices", + "type": "boolean" + }, + "use_all_frac": { + "default": false, + "type": "boolean" + }, + "vdw_corr": { + "default": "none", + "description": "Type of Van der Waals correction", + "enum": [ + "grimme-d2", + "Grimme-D2", + "DFT-D", + "dft-d", + "grimme-d3", + "Grimme-D3", + "DFT-D3", + "dft-d3", + "TS", + "ts", + "ts-vdw", + "ts-vdW", + "tkatchenko-scheffler", + "MBD", + "mbd", + "many-body-dispersion", + "mbd_vdw", + "XDM", + "xdm" + ], + "type": "string" + }, + "x_gamma_extrapolation": { + "default": true, + "description": "Specific for EXX. If .true., extrapolate the G=0 term of the potential", + "type": "boolean" + }, + "xdm": { + "default": false, + "description": "OBSOLESCENT, same as vdw_corr='xdm'", + "type": "boolean" + }, + "xdm_a1": { + "default": 0.6836, + "description": "Damping function parameter a1 (adimensional)", + "type": "number" + }, + "xdm_a2": { + "default": 1.5045, + "description": "Damping function parameter a2 (angstrom)", + "type": "number" + }, + "zgate": { + "default": 0.5, + "description": "used only if gate = .TRUE.", + "type": "number" + } + }, + "required": [ + "ibrav", + "nat", + "ntyp", + "ecutwfc" + ], + "title": "system schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/abstract/2d_data.json b/py/schema/core/abstract/2d_data.json new file mode 100644 index 000000000..7fbbfe764 --- /dev/null +++ b/py/schema/core/abstract/2d_data.json @@ -0,0 +1,31 @@ +{ + "$id": "core/abstract/2d-data", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/abstract/2d_plot.json b/py/schema/core/abstract/2d_plot.json new file mode 100644 index 000000000..54d575747 --- /dev/null +++ b/py/schema/core/abstract/2d_plot.json @@ -0,0 +1,84 @@ +{ + "$id": "core/abstract/2d-plot", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" +} \ No newline at end of file diff --git a/py/schema/core/abstract/3d_grid.json b/py/schema/core/abstract/3d_grid.json new file mode 100644 index 000000000..aff60d78a --- /dev/null +++ b/py/schema/core/abstract/3d_grid.json @@ -0,0 +1,31 @@ +{ + "$id": "core/abstract/3d-grid", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "dimensions": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "shifts": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "required": [ + "dimensions", + "shifts" + ], + "title": "3 dimensional grid schema" +} \ No newline at end of file diff --git a/py/schema/core/abstract/3d_tensor.json b/py/schema/core/abstract/3d_tensor.json new file mode 100644 index 000000000..e9be391d6 --- /dev/null +++ b/py/schema/core/abstract/3d_tensor.json @@ -0,0 +1,18 @@ +{ + "$id": "core/abstract/3d-tensor", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "maxItems": 3, + "minItems": 3, + "title": "3 dimensional tensor schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/abstract/3d_vector_basis.json b/py/schema/core/abstract/3d_vector_basis.json new file mode 100644 index 000000000..fb8ee0f96 --- /dev/null +++ b/py/schema/core/abstract/3d_vector_basis.json @@ -0,0 +1,46 @@ +{ + "$id": "core/abstract/3d-vector-basis", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "a": { + "$id": "core/primitive/array-of-3-numbers", + "description": "first vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "b": { + "$id": "core/primitive/array-of-3-numbers", + "description": "second vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "c": { + "$id": "core/primitive/array-of-3-numbers", + "description": "third vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "required": [ + "a", + "b", + "c" + ], + "title": "3 dimensional vector basis", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/abstract/point.json b/py/schema/core/abstract/point.json new file mode 100644 index 000000000..60270d377 --- /dev/null +++ b/py/schema/core/abstract/point.json @@ -0,0 +1,17 @@ +{ + "$id": "core/abstract/point", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + ], + "title": "point schema" +} \ No newline at end of file diff --git a/py/schema/core/abstract/vector.json b/py/schema/core/abstract/vector.json new file mode 100644 index 000000000..4f1ef4c20 --- /dev/null +++ b/py/schema/core/abstract/vector.json @@ -0,0 +1,27 @@ +{ + "$id": "core/abstract/vector", + "$schema": "http://json-schema.org/draft-04/schema#", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" +} \ No newline at end of file diff --git a/py/schema/core/primitive/1d_data_series.json b/py/schema/core/primitive/1d_data_series.json new file mode 100644 index 000000000..93ff33d40 --- /dev/null +++ b/py/schema/core/primitive/1d_data_series.json @@ -0,0 +1,16 @@ +{ + "$id": "core/primitive/1d-data-series", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/primitive/3d_lattice.json b/py/schema/core/primitive/3d_lattice.json new file mode 100644 index 000000000..133594e0a --- /dev/null +++ b/py/schema/core/primitive/3d_lattice.json @@ -0,0 +1,40 @@ +{ + "$id": "core/primitive/3d-lattice", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "a": { + "description": "length of the first lattice vector", + "type": "number" + }, + "alpha": { + "description": "angle between first and second lattice vector", + "type": "number" + }, + "b": { + "description": "length of the second lattice vector", + "type": "number" + }, + "beta": { + "description": "angle between second and third lattice vector", + "type": "number" + }, + "c": { + "description": "length of the third lattice vector", + "type": "number" + }, + "gamma": { + "description": "angle between first and third lattice vector", + "type": "number" + } + }, + "required": [ + "a", + "b", + "c", + "alpha", + "beta", + "gamma" + ], + "title": "3 dimensional lattice schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/array_of_3_booleans.json b/py/schema/core/primitive/array_of_3_booleans.json new file mode 100644 index 000000000..b08066808 --- /dev/null +++ b/py/schema/core/primitive/array_of_3_booleans.json @@ -0,0 +1,11 @@ +{ + "$id": "core/primitive/array-of-3-booleans", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/primitive/array_of_3_numbers.json b/py/schema/core/primitive/array_of_3_numbers.json new file mode 100644 index 000000000..080ae3029 --- /dev/null +++ b/py/schema/core/primitive/array_of_3_numbers.json @@ -0,0 +1,11 @@ +{ + "$id": "core/primitive/array-of-3-numbers", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/primitive/array_of_ids.json b/py/schema/core/primitive/array_of_ids.json new file mode 100644 index 000000000..63c026a86 --- /dev/null +++ b/py/schema/core/primitive/array_of_ids.json @@ -0,0 +1,17 @@ +{ + "$id": "core/primitive/array-of-ids", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/primitive/array_of_strings.json b/py/schema/core/primitive/array_of_strings.json new file mode 100644 index 000000000..0e3a63711 --- /dev/null +++ b/py/schema/core/primitive/array_of_strings.json @@ -0,0 +1,11 @@ +{ + "$id": "core/primitive/array-of-strings", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "array of strings, e.g. metadata tags", + "items": { + "type": "string", + "uniqueItems": true + }, + "title": "array of strings", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/primitive/axis.json b/py/schema/core/primitive/axis.json new file mode 100644 index 000000000..4205a127b --- /dev/null +++ b/py/schema/core/primitive/axis.json @@ -0,0 +1,18 @@ +{ + "$id": "core/primitive/axis", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" +} \ No newline at end of file diff --git a/py/schema/core/primitive/group_info.json b/py/schema/core/primitive/group_info.json new file mode 100644 index 000000000..ea7b605bb --- /dev/null +++ b/py/schema/core/primitive/group_info.json @@ -0,0 +1,16 @@ +{ + "$id": "core/primitive/group-info", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "groupId": { + "description": "Unique identifier of the group a node belongs to", + "type": "string" + }, + "groupName": { + "description": "Human-readable name of group of nodes", + "type": "string" + } + }, + "title": "Group info schema for nodes in a graph", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/integer_one_or_zero.json b/py/schema/core/primitive/integer_one_or_zero.json new file mode 100644 index 000000000..41a45ab8b --- /dev/null +++ b/py/schema/core/primitive/integer_one_or_zero.json @@ -0,0 +1,8 @@ +{ + "$id": "core/primitive/integer-one-or-zero", + "$schema": "http://json-schema.org/draft-04/schema#", + "maximum": 1, + "minimum": 0, + "title": "integer one or zero", + "type": "integer" +} \ No newline at end of file diff --git a/py/schema/core/primitive/linked_list.json b/py/schema/core/primitive/linked_list.json new file mode 100644 index 000000000..b77effe5e --- /dev/null +++ b/py/schema/core/primitive/linked_list.json @@ -0,0 +1,244 @@ +{ + "$id": "core/primitive/linked-list", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "anyOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + }, + { + "$id": "core/primitive/linked-list/named-node", + "allOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + } + ], + "title": "Named node schema", + "type": "object" + }, + { + "$id": "core/primitive/linked-list/named-node-in-group", + "allOf": [ + { + "$id": "core/primitive/linked-list/named-node", + "allOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + } + ], + "title": "Named node schema", + "type": "object" + }, + { + "$id": "core/primitive/group-info", + "properties": { + "groupId": { + "description": "Unique identifier of the group a node belongs to", + "type": "string" + }, + "groupName": { + "description": "Human-readable name of group of nodes", + "type": "string" + } + }, + "title": "Group info schema for nodes in a graph", + "type": "object" + } + ], + "title": "Named node in group schema", + "type": "object" + }, + { + "$id": "core/primitive/linked-list/node-with-type", + "allOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + } + ], + "properties": { + "type": { + "type": "string" + } + }, + "title": "Typed node schema", + "type": "object" + } + ], + "type": "object", + "uniqueItems": true + }, + "title": "linked list schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/core/primitive/linked_list/base_node.json b/py/schema/core/primitive/linked_list/base_node.json new file mode 100644 index 000000000..acf6de31a --- /dev/null +++ b/py/schema/core/primitive/linked_list/base_node.json @@ -0,0 +1,42 @@ +{ + "$id": "core/primitive/linked-list/base-node", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/linked_list/named_node.json b/py/schema/core/primitive/linked_list/named_node.json new file mode 100644 index 000000000..d5d89f2c6 --- /dev/null +++ b/py/schema/core/primitive/linked_list/named_node.json @@ -0,0 +1,59 @@ +{ + "$id": "core/primitive/linked-list/named-node", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + } + ], + "title": "Named node schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/linked_list/named_node_in_group.json b/py/schema/core/primitive/linked_list/named_node_in_group.json new file mode 100644 index 000000000..689a2e3f6 --- /dev/null +++ b/py/schema/core/primitive/linked_list/named_node_in_group.json @@ -0,0 +1,81 @@ +{ + "$id": "core/primitive/linked-list/named-node-in-group", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/linked-list/named-node", + "allOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + } + ], + "title": "Named node schema", + "type": "object" + }, + { + "$id": "core/primitive/group-info", + "properties": { + "groupId": { + "description": "Unique identifier of the group a node belongs to", + "type": "string" + }, + "groupName": { + "description": "Human-readable name of group of nodes", + "type": "string" + } + }, + "title": "Group info schema for nodes in a graph", + "type": "object" + } + ], + "title": "Named node in group schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/linked_list/node_with_type.json b/py/schema/core/primitive/linked_list/node_with_type.json new file mode 100644 index 000000000..61185e33e --- /dev/null +++ b/py/schema/core/primitive/linked_list/node_with_type.json @@ -0,0 +1,54 @@ +{ + "$id": "core/primitive/linked-list/node-with-type", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/linked-list/base-node", + "allOf": [ + { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + ], + "definitions": { + "flowchart-id": { + "properties": { + "flowchartId": { + "description": "Unique flowchart ID of node", + "type": "string" + } + }, + "required": [ + "flowchartId" + ] + } + }, + "properties": { + "head": { + "description": "Whether node is head node or not", + "type": "boolean" + }, + "next": { + "description": "Flowchart ID of next node", + "type": "string" + } + }, + "title": "basic node schema (linked list)", + "type": "object" + } + ], + "properties": { + "type": { + "type": "string" + } + }, + "title": "Typed node schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/scalar.json b/py/schema/core/primitive/scalar.json new file mode 100644 index 000000000..f10ed9979 --- /dev/null +++ b/py/schema/core/primitive/scalar.json @@ -0,0 +1,14 @@ +{ + "$id": "core/primitive/scalar", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/slugified_entry.json b/py/schema/core/primitive/slugified_entry.json new file mode 100644 index 000000000..f61410784 --- /dev/null +++ b/py/schema/core/primitive/slugified_entry.json @@ -0,0 +1,21 @@ +{ + "$id": "core/primitive/slugified-entry", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/primitive/slugified_entry_or_slug.json b/py/schema/core/primitive/slugified_entry_or_slug.json new file mode 100644 index 000000000..5080aa916 --- /dev/null +++ b/py/schema/core/primitive/slugified_entry_or_slug.json @@ -0,0 +1,31 @@ +{ + "$id": "core/primitive/slugified-entry-or-slug", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" +} \ No newline at end of file diff --git a/py/schema/core/primitive/string.json b/py/schema/core/primitive/string.json new file mode 100644 index 000000000..a7a5433a7 --- /dev/null +++ b/py/schema/core/primitive/string.json @@ -0,0 +1,14 @@ +{ + "$id": "core/primitive/string", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reference.json b/py/schema/core/reference.json new file mode 100644 index 000000000..c97af3e66 --- /dev/null +++ b/py/schema/core/reference.json @@ -0,0 +1,439 @@ +{ + "$id": "core/reference", + "$schema": "http://json-schema.org/draft-04/schema#", + "anyOf": [ + { + "$id": "core/reference/modeling", + "oneOf": [ + { + "$id": "core/reference/modeling/exabyte", + "properties": { + "_id": { + "description": "job identifier", + "type": "string" + }, + "owner": { + "$id": "system/entity-reference", + "description": "owner entity reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "title": { + "description": "Human-readable title of the job", + "maxLength": 300, + "type": "string" + }, + "type": { + "enum": [ + "exabyte" + ] + } + }, + "required": [ + "title", + "_id", + "owner" + ], + "title": "info for characteristic obtained by exabyte calculation" + } + ], + "title": "info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable" + }, + { + "$id": "core/reference/experiment", + "properties": { + "authors": { + "description": "experiment authors", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "conditions": { + "items": { + "$id": "core/reference/experiment/condition", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" + }, + "type": "array" + }, + "location": { + "$id": "core/reference/experiment/location", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" + }, + "method": { + "description": "method used in experiment", + "type": "string" + }, + "note": { + "description": "Note about experiment", + "type": "string" + }, + "references": { + "description": "references to literature articles", + "items": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + }, + "type": "array" + }, + "timestamp": { + "description": "epoch time.", + "type": "number" + }, + "title": { + "description": "experiment title", + "type": "string" + }, + "type": { + "enum": [ + "experiment" + ] + } + }, + "required": [ + "conditions", + "authors", + "title", + "method", + "timestamp" + ], + "title": "info for characteristic obtained by experiment" + }, + { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + ], + "title": "reference schema (using `anyOf` instead of `oneOf` below b/c current reference schemas overlap)" +} \ No newline at end of file diff --git a/py/schema/core/reference/exabyte.json b/py/schema/core/reference/exabyte.json new file mode 100644 index 000000000..b431e2881 --- /dev/null +++ b/py/schema/core/reference/exabyte.json @@ -0,0 +1,19 @@ +{ + "$id": "core/reference/exabyte", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "jobId": { + "description": "Job's identity", + "type": "string" + }, + "materialId": { + "description": "Material's identity. Used for protoProperties.", + "type": "string" + }, + "unitId": { + "description": "Id of the unit that extracted the result", + "type": "string" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reference/experiment.json b/py/schema/core/reference/experiment.json new file mode 100644 index 000000000..e336b5480 --- /dev/null +++ b/py/schema/core/reference/experiment.json @@ -0,0 +1,249 @@ +{ + "$id": "core/reference/experiment", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "authors": { + "description": "experiment authors", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "conditions": { + "items": { + "$id": "core/reference/experiment/condition", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" + }, + "type": "array" + }, + "location": { + "$id": "core/reference/experiment/location", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" + }, + "method": { + "description": "method used in experiment", + "type": "string" + }, + "note": { + "description": "Note about experiment", + "type": "string" + }, + "references": { + "description": "references to literature articles", + "items": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + }, + "type": "array" + }, + "timestamp": { + "description": "epoch time.", + "type": "number" + }, + "title": { + "description": "experiment title", + "type": "string" + }, + "type": { + "enum": [ + "experiment" + ] + } + }, + "required": [ + "conditions", + "authors", + "title", + "method", + "timestamp" + ], + "title": "info for characteristic obtained by experiment" +} \ No newline at end of file diff --git a/py/schema/core/reference/experiment/condition.json b/py/schema/core/reference/experiment/condition.json new file mode 100644 index 000000000..21b53071a --- /dev/null +++ b/py/schema/core/reference/experiment/condition.json @@ -0,0 +1,29 @@ +{ + "$id": "core/reference/experiment/condition", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" +} \ No newline at end of file diff --git a/py/schema/core/reference/experiment/location.json b/py/schema/core/reference/experiment/location.json new file mode 100644 index 000000000..81fc94315 --- /dev/null +++ b/py/schema/core/reference/experiment/location.json @@ -0,0 +1,19 @@ +{ + "$id": "core/reference/experiment/location", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" +} \ No newline at end of file diff --git a/py/schema/core/reference/literature.json b/py/schema/core/reference/literature.json new file mode 100644 index 000000000..ed2a435d0 --- /dev/null +++ b/py/schema/core/reference/literature.json @@ -0,0 +1,135 @@ +{ + "$id": "core/reference/literature", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" +} \ No newline at end of file diff --git a/py/schema/core/reference/literature/name.json b/py/schema/core/reference/literature/name.json new file mode 100644 index 000000000..31d5093e3 --- /dev/null +++ b/py/schema/core/reference/literature/name.json @@ -0,0 +1,24 @@ +{ + "$id": "core/reference/literature/name", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reference/literature/pages.json b/py/schema/core/reference/literature/pages.json new file mode 100644 index 000000000..4b59be0db --- /dev/null +++ b/py/schema/core/reference/literature/pages.json @@ -0,0 +1,17 @@ +{ + "$id": "core/reference/literature/pages", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reference/modeling.json b/py/schema/core/reference/modeling.json new file mode 100644 index 000000000..6e2572a33 --- /dev/null +++ b/py/schema/core/reference/modeling.json @@ -0,0 +1,51 @@ +{ + "$id": "core/reference/modeling", + "$schema": "http://json-schema.org/draft-04/schema#", + "oneOf": [ + { + "$id": "core/reference/modeling/exabyte", + "properties": { + "_id": { + "description": "job identifier", + "type": "string" + }, + "owner": { + "$id": "system/entity-reference", + "description": "owner entity reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "title": { + "description": "Human-readable title of the job", + "maxLength": 300, + "type": "string" + }, + "type": { + "enum": [ + "exabyte" + ] + } + }, + "required": [ + "title", + "_id", + "owner" + ], + "title": "info for characteristic obtained by exabyte calculation" + } + ], + "title": "info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable" +} \ No newline at end of file diff --git a/py/schema/core/reference/modeling/exabyte.json b/py/schema/core/reference/modeling/exabyte.json new file mode 100644 index 000000000..01d92739d --- /dev/null +++ b/py/schema/core/reference/modeling/exabyte.json @@ -0,0 +1,45 @@ +{ + "$id": "core/reference/modeling/exabyte", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "_id": { + "description": "job identifier", + "type": "string" + }, + "owner": { + "$id": "system/entity-reference", + "description": "owner entity reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "title": { + "description": "Human-readable title of the job", + "maxLength": 300, + "type": "string" + }, + "type": { + "enum": [ + "exabyte" + ] + } + }, + "required": [ + "title", + "_id", + "owner" + ], + "title": "info for characteristic obtained by exabyte calculation" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_data/per_orbital.json b/py/schema/core/reusable/atomic_data/per_orbital.json new file mode 100644 index 000000000..71f053e8c --- /dev/null +++ b/py/schema/core/reusable/atomic_data/per_orbital.json @@ -0,0 +1,22 @@ +{ + "$id": "core/reusable/atomic-data/per-orbital", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Atomic properties per orbital e.g., Hubbard U parameters.", + "properties": { + "atomicSpecies": { + "description": "Example: Co1, Mn", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "id": { + "description": "Site number or index in the lattice", + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + } + }, + "title": "Atomic data per orbital", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_data/per_orbital_pair.json b/py/schema/core/reusable/atomic_data/per_orbital_pair.json new file mode 100644 index 000000000..ea9ef4f62 --- /dev/null +++ b/py/schema/core/reusable/atomic_data/per_orbital_pair.json @@ -0,0 +1,39 @@ +{ + "$id": "core/reusable/atomic-data/per-orbital-pair", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Atomic properties per orbital pair e.g., Hubbard V parameters.", + "properties": { + "atomicSpecies": { + "description": "Example: Co1, Mn", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "atomicSpecies2": { + "description": "Example: Co2, O", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "distance": { + "description": "Distance between two sites in angstrom.", + "type": "number" + }, + "id": { + "description": "Site number or index in the lattice", + "type": "integer" + }, + "id2": { + "description": "Site number or index in the lattice of second site", + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "orbitalName2": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + } + }, + "title": "Atomic data per orbital pair", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_data/string_value.json b/py/schema/core/reusable/atomic_data/string_value.json new file mode 100644 index 000000000..3a44e6a85 --- /dev/null +++ b/py/schema/core/reusable/atomic_data/string_value.json @@ -0,0 +1,13 @@ +{ + "$id": "core/reusable/atomic-data/string-value", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "String value specific to atomic data", + "properties": { + "value": { + "description": "String value specific to atomic data", + "type": "string" + } + }, + "title": "Atomic data string properties", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_data/value_number.json b/py/schema/core/reusable/atomic_data/value_number.json new file mode 100644 index 000000000..5ee39da07 --- /dev/null +++ b/py/schema/core/reusable/atomic_data/value_number.json @@ -0,0 +1,13 @@ +{ + "$id": "core/reusable/atomic-data/value-number", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Numeric value specific to atomic data", + "properties": { + "value": { + "description": "Value related to a specific property, e.g., Hubbard U, V etc.", + "type": "number" + } + }, + "title": "Atomic data numeric properties", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_data_per_orbital_numeric.json b/py/schema/core/reusable/atomic_data_per_orbital_numeric.json new file mode 100644 index 000000000..fd5b7d673 --- /dev/null +++ b/py/schema/core/reusable/atomic_data_per_orbital_numeric.json @@ -0,0 +1,42 @@ +{ + "$id": "core/reusable/atomic-data-per-orbital-numeric", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/atomic-data/per-orbital", + "description": "Atomic properties per orbital e.g., Hubbard U parameters.", + "properties": { + "atomicSpecies": { + "description": "Example: Co1, Mn", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "id": { + "description": "Site number or index in the lattice", + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + } + }, + "title": "Atomic data per orbital", + "type": "object" + }, + { + "$id": "core/reusable/atomic-data/value-number", + "description": "Numeric value specific to atomic data", + "properties": { + "value": { + "description": "Value related to a specific property, e.g., Hubbard U, V etc.", + "type": "number" + } + }, + "title": "Atomic data numeric properties", + "type": "object" + } + ], + "description": "Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.", + "title": "Atomic data per orbital numeric", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_data_per_orbital_pair_numeric.json b/py/schema/core/reusable/atomic_data_per_orbital_pair_numeric.json new file mode 100644 index 000000000..41bf6aa0e --- /dev/null +++ b/py/schema/core/reusable/atomic_data_per_orbital_pair_numeric.json @@ -0,0 +1,59 @@ +{ + "$id": "core/reusable/atomic-data-per-orbital-pair-numeric", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/atomic-data/per-orbital-pair", + "description": "Atomic properties per orbital pair e.g., Hubbard V parameters.", + "properties": { + "atomicSpecies": { + "description": "Example: Co1, Mn", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "atomicSpecies2": { + "description": "Example: Co2, O", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "distance": { + "description": "Distance between two sites in angstrom.", + "type": "number" + }, + "id": { + "description": "Site number or index in the lattice", + "type": "integer" + }, + "id2": { + "description": "Site number or index in the lattice of second site", + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "orbitalName2": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + } + }, + "title": "Atomic data per orbital pair", + "type": "object" + }, + { + "$id": "core/reusable/atomic-data/value-number", + "description": "Numeric value specific to atomic data", + "properties": { + "value": { + "description": "Value related to a specific property, e.g., Hubbard U, V etc.", + "type": "number" + } + }, + "title": "Atomic data numeric properties", + "type": "object" + } + ], + "description": "Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.", + "title": "Atomic data per orbital pair numeric", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_orbital.json b/py/schema/core/reusable/atomic_orbital.json new file mode 100644 index 000000000..3e496a00e --- /dev/null +++ b/py/schema/core/reusable/atomic_orbital.json @@ -0,0 +1,32 @@ +{ + "$id": "core/reusable/atomic-orbital", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "angularMomentum": { + "maximum": 3, + "minimum": 0, + "type": "integer" + }, + "occupation": { + "description": "Shell occupation", + "maximum": 14, + "minimum": 0, + "type": "number" + }, + "orbitalIndex": { + "minimum": 1, + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "principalNumber": { + "maximum": 7, + "minimum": 1, + "type": "integer" + } + }, + "title": "atomic orbital schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_scalars.json b/py/schema/core/reusable/atomic_scalars.json new file mode 100644 index 000000000..d00983881 --- /dev/null +++ b/py/schema/core/reusable/atomic_scalars.json @@ -0,0 +1,40 @@ +{ + "$id": "core/reusable/atomic-scalars", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "value": { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + } + }, + "title": "atomic scalars vectors schema" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_strings.json b/py/schema/core/reusable/atomic_strings.json new file mode 100644 index 000000000..d46c0ec41 --- /dev/null +++ b/py/schema/core/reusable/atomic_strings.json @@ -0,0 +1,30 @@ +{ + "$id": "core/reusable/atomic-strings", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "title": "atomic strings vectors schema" +} \ No newline at end of file diff --git a/py/schema/core/reusable/atomic_vectors.json b/py/schema/core/reusable/atomic_vectors.json new file mode 100644 index 000000000..1764a0418 --- /dev/null +++ b/py/schema/core/reusable/atomic_vectors.json @@ -0,0 +1,53 @@ +{ + "$id": "core/reusable/atomic-vectors", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + } + }, + "title": "atomic vectors schema" +} \ No newline at end of file diff --git a/py/schema/core/reusable/band_gap.json b/py/schema/core/reusable/band_gap.json new file mode 100644 index 000000000..de36e40f7 --- /dev/null +++ b/py/schema/core/reusable/band_gap.json @@ -0,0 +1,88 @@ +{ + "$id": "core/reusable/band-gap", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "eigenvalueConduction": { + "description": "eigenvalue at k-point in conduction band", + "type": "number" + }, + "eigenvalueValence": { + "description": "eigenvalue at k-point in valence band", + "type": "number" + }, + "kpointConduction": { + "$id": "core/abstract/point", + "allOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + ], + "description": "kpoint inside conduction band in crystal coordinates", + "title": "point schema" + }, + "kpointValence": { + "$id": "core/abstract/point", + "allOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + ], + "description": "kpoint inside valence band in crystal coordinates", + "title": "point schema" + }, + "spin": { + "type": "number" + }, + "type": { + "enum": [ + "direct", + "indirect" + ], + "type": "string" + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + }, + "required": [ + "type" + ], + "title": "band gap schema" +} \ No newline at end of file diff --git a/py/schema/core/reusable/categories.json b/py/schema/core/reusable/categories.json new file mode 100644 index 000000000..abec6e575 --- /dev/null +++ b/py/schema/core/reusable/categories.json @@ -0,0 +1,159 @@ +{ + "$id": "core/reusable/categories", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/category_path.json b/py/schema/core/reusable/category_path.json new file mode 100644 index 000000000..bb5b90895 --- /dev/null +++ b/py/schema/core/reusable/category_path.json @@ -0,0 +1,7 @@ +{ + "$id": "core/reusable/category-path", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" +} \ No newline at end of file diff --git a/py/schema/core/reusable/dielectric_tensor_component.json b/py/schema/core/reusable/dielectric_tensor_component.json new file mode 100644 index 000000000..8e90c9bb4 --- /dev/null +++ b/py/schema/core/reusable/dielectric_tensor_component.json @@ -0,0 +1,54 @@ +{ + "$id": "core/reusable/dielectric-tensor-component", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/frequency-function-matrix", + "description": "Schema for a function of frequency yielding a nx3 matrix", + "properties": { + "components": { + "description": "Matrix with 3 columns, e.g. x, y, z", + "items": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "type": "array" + }, + "frequencies": { + "description": "Frequencies", + "items": { + "type": "number" + }, + "type": "array" + } + }, + "title": "", + "type": "object" + } + ], + "properties": { + "part": { + "description": "Real or imaginary part of the dielectric tensor component", + "enum": [ + "real", + "imaginary" + ], + "type": "string" + }, + "spin": { + "type": "number" + } + }, + "required": [ + "part", + "frequencies", + "components" + ], + "title": "Dielectric Tensor" +} \ No newline at end of file diff --git a/py/schema/core/reusable/energy.json b/py/schema/core/reusable/energy.json new file mode 100644 index 000000000..8c3b29e4b --- /dev/null +++ b/py/schema/core/reusable/energy.json @@ -0,0 +1,49 @@ +{ + "$id": "core/reusable/energy", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" +} \ No newline at end of file diff --git a/py/schema/core/reusable/file_metadata.json b/py/schema/core/reusable/file_metadata.json new file mode 100644 index 000000000..5502b6cfc --- /dev/null +++ b/py/schema/core/reusable/file_metadata.json @@ -0,0 +1,20 @@ +{ + "$id": "core/reusable/file-metadata", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "basename": { + "$comment": "isGenerative:true", + "description": "Basename of the file", + "type": "string" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + } + }, + "title": "file_metadata" +} \ No newline at end of file diff --git a/py/schema/core/reusable/frequency_function_matrix.json b/py/schema/core/reusable/frequency_function_matrix.json new file mode 100644 index 000000000..922883189 --- /dev/null +++ b/py/schema/core/reusable/frequency_function_matrix.json @@ -0,0 +1,30 @@ +{ + "$id": "core/reusable/frequency-function-matrix", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Schema for a function of frequency yielding a nx3 matrix", + "properties": { + "components": { + "description": "Matrix with 3 columns, e.g. x, y, z", + "items": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "type": "array" + }, + "frequencies": { + "description": "Frequencies", + "items": { + "type": "number" + }, + "type": "array" + } + }, + "title": "", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/core/reusable/object_storage_container_data.json b/py/schema/core/reusable/object_storage_container_data.json new file mode 100644 index 000000000..a518de840 --- /dev/null +++ b/py/schema/core/reusable/object_storage_container_data.json @@ -0,0 +1,37 @@ +{ + "$id": "core/reusable/object-storage-container-data", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + }, + "required": [ + "CONTAINER", + "NAME", + "PROVIDER", + "REGION" + ], + "title": "Object Storage Container Data" +} \ No newline at end of file diff --git a/py/schema/definitions/units.json b/py/schema/definitions/units.json new file mode 100644 index 000000000..2c332d89e --- /dev/null +++ b/py/schema/definitions/units.json @@ -0,0 +1,103 @@ +{ + "$id": "definitions/units", + "chargeDensity": { + "enum": [ + "e/A" + ] + }, + "density": { + "enum": [ + "g/cm^3" + ] + }, + "electronicDOS": { + "enum": [ + "states/unitcell" + ] + }, + "energy": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + "force": { + "enum": [ + "eV/bohr", + "eV/angstrom", + "rydberg/a.u.", + "newton", + "kg*m/s^2", + "eV/a.u." + ] + }, + "frequency": { + "enum": [ + "cm-1", + "THz", + "meV" + ] + }, + "length": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + }, + "magnetic": { + "enum": [ + "uB" + ] + }, + "numberDensity": { + "enum": [ + "1/angstrom^3" + ] + }, + "phononDOS": { + "enum": [ + "states/cm-1", + "states/THz", + "states/meV" + ] + }, + "pressure": { + "enum": [ + "kbar", + "pa" + ] + }, + "spectralIntensity": { + "enum": [ + "(debye/angstrom)^2", + "km/mol", + "m/mol", + "a.u." + ] + }, + "surface_energy": { + "enum": [ + "eV/A^2" + ] + }, + "volume": { + "enum": [ + "cm^3", + "angstrom^3" + ] + } +} \ No newline at end of file diff --git a/py/schema/element.json b/py/schema/element.json new file mode 100644 index 000000000..3725a65bd --- /dev/null +++ b/py/schema/element.json @@ -0,0 +1,126 @@ +{ + "$id": "element", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "properties": { + "description": "list of elemental properties", + "items": { + "anyOf": [ + { + "$id": "properties-directory/elemental/atomic-radius", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "atomic radius", + "properties": { + "name": { + "enum": [ + "atomic_radius" + ] + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + }, + "title": "atomic radius" + }, + { + "$id": "properties-directory/elemental/electronegativity", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "electronegativity for the element (Pauling scale)", + "properties": { + "name": { + "enum": [ + "electronegativity" + ] + } + }, + "title": "electronegativity" + }, + { + "$id": "properties-directory/elemental/ionization-potential", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "ionization potential for the element", + "properties": { + "name": { + "enum": [ + "ionization_potential" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + }, + "title": "ionization potential" + } + ] + }, + "type": "array" + }, + "symbol": { + "description": "Element symbol.", + "type": "string" + } + }, + "title": "element schema" +} \ No newline at end of file diff --git a/py/schema/in_memory_entity/base.json b/py/schema/in_memory_entity/base.json new file mode 100644 index 000000000..7f9ec3a6d --- /dev/null +++ b/py/schema/in_memory_entity/base.json @@ -0,0 +1,73 @@ +{ + "$id": "in-memory-entity/base", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" +} \ No newline at end of file diff --git a/py/schema/in_memory_entity/defaultable.json b/py/schema/in_memory_entity/defaultable.json new file mode 100644 index 000000000..27e0c1530 --- /dev/null +++ b/py/schema/in_memory_entity/defaultable.json @@ -0,0 +1,90 @@ +{ + "$id": "in-memory-entity/defaultable", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + } + ], + "title": "Defaultable in-memory entity schema" +} \ No newline at end of file diff --git a/py/schema/in_memory_entity/named.json b/py/schema/in_memory_entity/named.json new file mode 100644 index 000000000..b2605fc5a --- /dev/null +++ b/py/schema/in_memory_entity/named.json @@ -0,0 +1,89 @@ +{ + "$id": "in-memory-entity/named", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + } + ], + "title": "Named in-memory entity schema" +} \ No newline at end of file diff --git a/py/schema/in_memory_entity/named_defaultable.json b/py/schema/in_memory_entity/named_defaultable.json new file mode 100644 index 000000000..6083d2d02 --- /dev/null +++ b/py/schema/in_memory_entity/named_defaultable.json @@ -0,0 +1,100 @@ +{ + "$id": "in-memory-entity/named-defaultable", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + } + ], + "title": "Named defaultable in-memory entity schema" +} \ No newline at end of file diff --git a/py/schema/in_memory_entity/named_defaultable_has_metadata.json b/py/schema/in_memory_entity/named_defaultable_has_metadata.json new file mode 100644 index 000000000..298a061d2 --- /dev/null +++ b/py/schema/in_memory_entity/named_defaultable_has_metadata.json @@ -0,0 +1,109 @@ +{ + "$id": "in-memory-entity/named-defaultable-has-metadata", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "title": "Named defaultable has metadata in-memory entity schema" +} \ No newline at end of file diff --git a/py/schema/in_memory_entity/named_defaultable_runtime_items.json b/py/schema/in_memory_entity/named_defaultable_runtime_items.json new file mode 100644 index 000000000..7132dbe13 --- /dev/null +++ b/py/schema/in_memory_entity/named_defaultable_runtime_items.json @@ -0,0 +1,227 @@ +{ + "$id": "in-memory-entity/named-defaultable-runtime-items", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" +} \ No newline at end of file diff --git a/py/schema/job.json b/py/schema/job.json new file mode 100644 index 000000000..763eb034b --- /dev/null +++ b/py/schema/job.json @@ -0,0 +1,4881 @@ +{ + "$id": "job", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "job/base", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "description": "in-memory entity", + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "_material": { + "$id": "system/entity-reference", + "description": "Subset of the full information about the materials used inside this job.", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "_project": { + "$id": "system/entity-reference", + "description": "Subset of the full information about the project that this job belongs to.", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "compute": { + "$id": "job/compute", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" + }, + "parent": { + "$id": "system/entity-reference", + "description": "Subset of the full information about the parent job for the job. Only a job from the same project can be assigned as a parent one.", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "rmsId": { + "description": "Identity used to track jobs originated from command-line", + "type": "string" + }, + "runtimeContext": { + "description": "Context variables that the job will have access to at runtime", + "type": "object" + }, + "scopeTrack": { + "description": "history of the workflow scope on each update", + "items": { + "properties": { + "repetition": { + "type": "number" + }, + "scope": { + "$id": "workflow/scope", + "properties": { + "global": { + "additionalProperties": true, + "type": "object" + }, + "local": { + "additionalProperties": true, + "type": "object" + } + }, + "required": [ + "global", + "local" + ], + "title": "workflow scope schema", + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "startTime": { + "description": "Approximate start time of the job. e.g. within 10 min", + "type": "string" + }, + "status": { + "description": "job status", + "enum": [ + "pre-submission", + "queued", + "submitted", + "active", + "finished", + "terminate-queued", + "terminated", + "error", + "deleted", + "timeout" + ] + }, + "workDir": { + "description": "The path to the working directory of this job, when the job originates from command-line", + "type": "string" + } + }, + "required": [ + "status", + "compute", + "_project" + ], + "title": "base job schema" + } + ], + "properties": { + "workflow": { + "$id": "workflow", + "allOf": [ + { + "$id": "workflow/base", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "isUsingDataset": { + "description": "Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.", + "type": "boolean" + }, + "properties": { + "description": "Array of characteristic properties calculated by this workflow (TODO: add enums)", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + }, + "workflows": { + "description": "Array of workflows with the same schema as the current one.", + "items": { + "type": "object" + }, + "type": "array" + } + }, + "title": "base workflow schema", + "type": "object" + } + ], + "description": "Arch-workflow for the job", + "properties": { + "subworkflows": { + "description": "Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting", + "items": { + "allOf": [ + { + "$id": "workflow/subworkflow", + "allOf": [ + { + "$id": "workflow/base-flow", + "properties": { + "_id": { + "description": "subworkflow identity", + "type": "string" + }, + "compute": { + "$id": "job/compute", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" + }, + "name": { + "description": "Human-readable name of the subworkflow. e.g. Total-energy", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "name", + "units" + ], + "title": "BaseFlow", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "isDraft": { + "default": false, + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean" + }, + "model": { + "$id": "model", + "additionalProperties": true, + "description": "Model used inside the subworkflow", + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" + }, + "units": { + "description": "Contains the Units of the subworkflow", + "items": { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "model", + "application" + ], + "title": "Subworkflow", + "type": "object" + } + ] + }, + "type": "array" + }, + "units": { + "description": "Contains the Units of the Workflow", + "items": { + "oneOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/io", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "items": { + "anyOf": [ + { + "$id": "workflow/unit/io/api", + "properties": { + "endpoint": { + "description": "rest API endpoint", + "type": "string" + }, + "endpoint_options": { + "description": "rest API endpoint options", + "type": "object" + }, + "name": { + "description": "the name of the variable in local scope to save the data under", + "type": "string" + } + }, + "required": [ + "endpoint", + "endpoint_options" + ], + "title": "data IO rest API input schema", + "type": "object" + }, + { + "$id": "workflow/unit/io/db", + "oneOf": [ + { + "properties": { + "ids": { + "description": "IDs of item to retrieve from db", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ids" + ] + }, + { + "properties": { + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "default": true, + "description": "whether the result should be saved as draft", + "type": "boolean" + } + }, + "required": [ + "collection", + "draft" + ] + } + ], + "title": "data IO database input/output schema", + "type": "object" + }, + { + "$id": "workflow/unit/io/object-storage", + "allof": [ + { + "$id": "core/reusable/file-metadata", + "properties": { + "basename": { + "$comment": "isGenerative:true", + "description": "Basename of the file", + "type": "string" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + } + }, + "title": "file_metadata" + } + ], + "properties": { + "objectData": { + "$id": "core/reusable/object-storage-container-data", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + }, + "required": [ + "CONTAINER", + "NAME", + "PROVIDER", + "REGION" + ], + "title": "Object Storage Container Data" + }, + "overwrite": { + "default": false, + "description": "if a file with the same filename already exists, whether to overwrite the old file", + "type": "boolean" + } + }, + "required": [ + "objectData", + "basename" + ], + "title": "object_storage io schema", + "type": "object" + } + ] + }, + "type": "array" + }, + "source": { + "enum": [ + "api", + "db", + "object_storage" + ] + }, + "subtype": { + "enum": [ + "input", + "output", + "dataFrame" + ] + }, + "type": { + "enum": [ + "io" + ] + } + }, + "required": [ + "subtype", + "source", + "input" + ], + "title": "data IO unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/map", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "Input information for map.", + "properties": { + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "useValues": { + "type": "boolean" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "type": { + "enum": [ + "map" + ] + }, + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + } + }, + "required": [ + "input", + "workflowId" + ], + "title": "map unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/reduce", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "input information for reduce unit", + "items": { + "properties": { + "arguments": { + "description": "arguments which are passed to reduce operation function", + "items": { + "type": "string" + }, + "type": "array" + }, + "operation": { + "description": "reduce operation, e.g. aggregate", + "type": "string" + } + }, + "required": [ + "operation", + "arguments" + ], + "type": "object" + }, + "type": "array" + }, + "mapFlowchartId": { + "description": "corresponding map unit flowchart ID", + "type": "string" + }, + "type": { + "enum": [ + "reduce" + ] + } + }, + "required": [ + "mapFlowchartId", + "input" + ], + "title": "reduce unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/condition", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", + "type": "string" + }, + "input": { + "description": "Input information for condition.", + "items": { + "$id": "workflow/unit/input/-inputItemScope", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" + }, + "type": "array" + }, + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" + }, + "statement": { + "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", + "type": "string" + }, + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", + "type": "string" + }, + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + }, + "type": { + "enum": [ + "condition" + ] + } + }, + "required": [ + "input", + "statement", + "then", + "else" + ], + "title": "condition unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/assertion", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "errorMessage": { + "type": "string" + }, + "statement": { + "type": "string" + }, + "type": { + "enum": [ + "assertion" + ] + } + }, + "required": [ + "name", + "statement" + ], + "title": "assertion unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + }, + { + "$id": "workflow/unit/assignment", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "items": { + "$id": "workflow/unit/input/-inputItemScope", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" + }, + "type": "array" + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "type": { + "enum": [ + "assignment" + ] + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "title": "assignment unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "units", + "subworkflows" + ], + "title": "workflow schema", + "type": "object" + } + }, + "required": [ + "workflow" + ], + "title": "job schema" +} \ No newline at end of file diff --git a/py/schema/job/base.json b/py/schema/job/base.json new file mode 100644 index 000000000..07108da5c --- /dev/null +++ b/py/schema/job/base.json @@ -0,0 +1,426 @@ +{ + "$id": "job/base", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "description": "in-memory entity", + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "_material": { + "$id": "system/entity-reference", + "description": "Subset of the full information about the materials used inside this job.", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "_project": { + "$id": "system/entity-reference", + "description": "Subset of the full information about the project that this job belongs to.", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "compute": { + "$id": "job/compute", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" + }, + "parent": { + "$id": "system/entity-reference", + "description": "Subset of the full information about the parent job for the job. Only a job from the same project can be assigned as a parent one.", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + "rmsId": { + "description": "Identity used to track jobs originated from command-line", + "type": "string" + }, + "runtimeContext": { + "description": "Context variables that the job will have access to at runtime", + "type": "object" + }, + "scopeTrack": { + "description": "history of the workflow scope on each update", + "items": { + "properties": { + "repetition": { + "type": "number" + }, + "scope": { + "$id": "workflow/scope", + "properties": { + "global": { + "additionalProperties": true, + "type": "object" + }, + "local": { + "additionalProperties": true, + "type": "object" + } + }, + "required": [ + "global", + "local" + ], + "title": "workflow scope schema", + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "startTime": { + "description": "Approximate start time of the job. e.g. within 10 min", + "type": "string" + }, + "status": { + "description": "job status", + "enum": [ + "pre-submission", + "queued", + "submitted", + "active", + "finished", + "terminate-queued", + "terminated", + "error", + "deleted", + "timeout" + ] + }, + "workDir": { + "description": "The path to the working directory of this job, when the job originates from command-line", + "type": "string" + } + }, + "required": [ + "status", + "compute", + "_project" + ], + "title": "base job schema" +} \ No newline at end of file diff --git a/py/schema/job/compute.json b/py/schema/job/compute.json new file mode 100644 index 000000000..35d7afda7 --- /dev/null +++ b/py/schema/job/compute.json @@ -0,0 +1,185 @@ +{ + "$id": "job/compute", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" +} \ No newline at end of file diff --git a/py/schema/material.json b/py/schema/material.json new file mode 100644 index 000000000..010cf8c3b --- /dev/null +++ b/py/schema/material.json @@ -0,0 +1,759 @@ +{ + "$id": "material", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "description": "in-memory entity", + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "basis": { + "$id": "properties-directory/structural/basis", + "description": "object containing an array of elements and coordinates in the supercell", + "properties": { + "bonds": { + "$id": "properties-directory/structural/basis/bonds", + "items": { + "properties": { + "atomPair": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "description": "indices of the two connected atoms", + "maxItems": 2, + "minItems": 2 + }, + "bondType": { + "enum": [ + "single", + "double", + "triple", + "quadruple", + "aromatic", + "tautomeric", + "dative", + "other" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": "bonds schema", + "type": "array", + "uniqueItems": true + }, + "coordinates": { + "items": { + "$id": "properties-directory/structural/basis/atomic-coordinate", + "description": "coordinates of atoms by ids, vector, unitless", + "properties": { + "id": { + "type": "number" + }, + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + }, + "title": "atomic coordinate" + }, + "type": "array" + }, + "elements": { + "items": { + "$id": "properties-directory/structural/basis/atomic-element", + "description": "elements of atoms by ids, string, unitless", + "properties": { + "id": { + "type": "number" + }, + "occurrence": { + "description": "Occurrence is for fractional occupations", + "type": "number" + }, + "oxidationState": { + "type": "number" + }, + "value": { + "type": "string" + } + }, + "required": [ + "id", + "value" + ], + "title": "atomic elements" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "units": { + "type": "string" + } + }, + "required": [ + "elements", + "coordinates" + ], + "title": "basis schema", + "type": "object" + }, + "derivedProperties": { + "$id": "properties-directory/derived-properties", + "description": "object defining the lattice cell size and shape", + "items": { + "anyOf": [ + { + "$id": "properties-directory/structural/volume", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "volume" + ] + }, + "units": { + "enum": [ + "angstrom^3" + ] + } + }, + "title": "volume schema" + }, + { + "$id": "properties-directory/structural/density", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "density" + ] + }, + "units": { + "enum": [ + "g/cm^3" + ] + } + }, + "title": "density schema" + }, + { + "$id": "properties-directory/structural/symmetry", + "properties": { + "name": { + "enum": [ + "symmetry" + ] + }, + "pointGroupSymbol": { + "description": "point group symbol in Schoenflies notation", + "type": "string" + }, + "spaceGroupSymbol": { + "description": "space group symbol in Hermann\u2013Mauguin notation", + "type": "string" + }, + "tolerance": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "tolerance used for symmetry calculation", + "properties": { + "units": { + "enum": [ + "angstrom" + ] + } + } + } + }, + "title": "symmetry schema" + }, + { + "$id": "properties-directory/structural/elemental-ratio", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "ration of this element in the compound", + "properties": { + "element": { + "description": "the element this ratio is for", + "type": "string" + }, + "name": { + "enum": [ + "elemental_ratio" + ] + }, + "value": { + "max": 1, + "min": 0, + "type": "number" + } + }, + "title": "elemental-ratio" + }, + { + "$id": "properties-directory/structural/p-norm", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm", + "properties": { + "degree": { + "description": "degree of the dimensionality of the norm", + "type": "integer" + }, + "name": { + "enum": [ + "p-norm" + ] + } + }, + "title": "p_norm" + }, + { + "$id": "properties-directory/structural/inchi", + "allOf": [ + { + "$id": "core/primitive/string", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "inchi" + ] + } + }, + "title": "InChI representation schema" + }, + { + "$id": "properties-directory/structural/inchi-key", + "allOf": [ + { + "$id": "core/primitive/string", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "inchi_key" + ] + } + }, + "title": "InChI key representation schema" + } + ] + }, + "title": "derived properties schema", + "type": "array" + }, + "external": { + "$id": "system/database-source", + "description": "information about a database source", + "properties": { + "data": { + "description": "Original response from external source.", + "type": "object" + }, + "doi": { + "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506", + "type": "string" + }, + "id": { + "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", + "type": "string" + }, + "origin": { + "comment": "Deprecated. To be removed.", + "description": "A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).", + "type": "boolean" + }, + "source": { + "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.", + "type": "string" + }, + "url": { + "comment": "ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers", + "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48", + "type": "string" + } + }, + "required": [ + "id", + "source", + "origin" + ], + "title": "database source schema", + "type": "object" + }, + "formula": { + "description": "reduced chemical formula", + "type": "string" + }, + "icsdId": { + "description": "Corresponding ICSD id of the material", + "type": "integer" + }, + "isNonPeriodic": { + "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)", + "type": "boolean" + }, + "lattice": { + "$id": "properties-directory/structural/lattice", + "allOf": [ + { + "properties": { + "vectors": { + "$id": "properties-directory/structural/lattice/lattice-vectors", + "allOf": [ + { + "$id": "core/abstract/3d-vector-basis", + "properties": { + "a": { + "$id": "core/primitive/array-of-3-numbers", + "description": "first vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "b": { + "$id": "core/primitive/array-of-3-numbers", + "description": "second vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "c": { + "$id": "core/primitive/array-of-3-numbers", + "description": "third vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "required": [ + "a", + "b", + "c" + ], + "title": "3 dimensional vector basis", + "type": "object" + } + ], + "properties": { + "alat": { + "default": 1, + "description": "lattice parameter for fractional coordinates", + "type": "number" + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + }, + "title": "lattice explicit unit" + } + } + }, + { + "$id": "properties-directory/structural/lattice/lattice-bravais", + "allOf": [ + { + "$id": "core/primitive/3d-lattice", + "properties": { + "a": { + "description": "length of the first lattice vector", + "type": "number" + }, + "alpha": { + "description": "angle between first and second lattice vector", + "type": "number" + }, + "b": { + "description": "length of the second lattice vector", + "type": "number" + }, + "beta": { + "description": "angle between second and third lattice vector", + "type": "number" + }, + "c": { + "description": "length of the third lattice vector", + "type": "number" + }, + "gamma": { + "description": "angle between first and third lattice vector", + "type": "number" + } + }, + "required": [ + "a", + "b", + "c", + "alpha", + "beta", + "gamma" + ], + "title": "3 dimensional lattice schema", + "type": "object" + } + ], + "properties": { + "type": { + "$id": "properties-directory/structural/lattice/type-enum", + "description": "Bravais lattice type in short notation", + "enum": [ + "CUB", + "BCC", + "FCC", + "TET", + "MCL", + "ORC", + "ORCC", + "ORCF", + "ORCI", + "HEX", + "BCT", + "TRI", + "MCLC", + "RHL" + ], + "title": "lattice type schema", + "type": "string" + }, + "units": { + "properties": { + "angle": { + "enum": [ + "degree", + "radian" + ], + "type": "string" + }, + "length": { + "enum": [ + "angstrom", + "bohr" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "type" + ], + "title": "lattice implicit schema" + } + ], + "description": "object defining the lattice cell size and shape", + "properties": { + "name": { + "enum": [ + "lattice" + ] + } + }, + "title": "lattice schema", + "type": "object" + }, + "scaledHash": { + "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).", + "type": "string" + }, + "src": { + "$id": "system/file-source", + "description": "file source with the information inside", + "properties": { + "extension": { + "description": "file extension", + "type": "string" + }, + "filename": { + "description": "file name without extension", + "type": "string" + }, + "hash": { + "description": "MD5 hash based on file content", + "type": "string" + }, + "text": { + "description": "file content as raw text", + "type": "string" + } + }, + "required": [ + "filename", + "text", + "hash" + ], + "title": "file source schema", + "type": "object" + }, + "unitCellFormula": { + "description": "chemical formula based on the number of atoms of each element in the supercell", + "type": "string" + } + }, + "required": [ + "basis", + "lattice" + ], + "title": "material schema" +} \ No newline at end of file diff --git a/py/schema/material/conventional.json b/py/schema/material/conventional.json new file mode 100644 index 000000000..72f111abd --- /dev/null +++ b/py/schema/material/conventional.json @@ -0,0 +1,10 @@ +{ + "$id": "material/conventional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "conventional": { + "type": "object" + } + }, + "title": "material conventional schema" +} \ No newline at end of file diff --git a/py/schema/method.json b/py/schema/method.json new file mode 100644 index 000000000..7568b767b --- /dev/null +++ b/py/schema/method.json @@ -0,0 +1,27 @@ +{ + "$id": "method", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" +} \ No newline at end of file diff --git a/py/schema/method/categorized_method.json b/py/schema/method/categorized_method.json new file mode 100644 index 000000000..1f75fcd3a --- /dev/null +++ b/py/schema/method/categorized_method.json @@ -0,0 +1,273 @@ +{ + "$id": "method/categorized-method", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "units": { + "items": { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + }, + "type": "array" + } + }, + "required": [ + "units" + ], + "title": "categorized method" +} \ No newline at end of file diff --git a/py/schema/method/method_parameters.json b/py/schema/method/method_parameters.json new file mode 100644 index 000000000..a0f9bf8c6 --- /dev/null +++ b/py/schema/method/method_parameters.json @@ -0,0 +1,48 @@ +{ + "$id": "method/method-parameters", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "oneOf": [ + { + "properties": { + "basisSlug": { + "enum": [ + "cc-pvdz", + "cc-pvtz", + "cc-pvqz" + ] + } + } + }, + { + "properties": { + "basisSlug": { + "enum": [ + "3-21G", + "6-31G", + "6-311G" + ] + } + } + }, + { + "properties": { + "basisSlug": { + "enum": [ + "sto-3g", + "sto-4g", + "sto-6g", + "def2-svp", + "def2-tzvp", + "def2-qzvp", + "cbs-qb3" + ] + } + } + } + ] + } + ], + "title": "MethodParameters" +} \ No newline at end of file diff --git a/py/schema/method/unit_method.json b/py/schema/method/unit_method.json new file mode 100644 index 000000000..771556ae0 --- /dev/null +++ b/py/schema/method/unit_method.json @@ -0,0 +1,217 @@ +{ + "$id": "method/unit-method", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/diff.json b/py/schema/methods_category/mathematical/diff.json new file mode 100644 index 000000000..7b46b530f --- /dev/null +++ b/py/schema/methods_category/mathematical/diff.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/mathematical/diff", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Numerical differentiation category schema", + "properties": { + "tier1": { + "enum": [ + "diff" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/diff/enum_options.json b/py/schema/methods_category/mathematical/diff/enum_options.json new file mode 100644 index 000000000..b4823ecd0 --- /dev/null +++ b/py/schema/methods_category/mathematical/diff/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/mathematical/diff/enum-options", + "finiteDifference": { + "enum": [ + "fd" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/diff/fd.json b/py/schema/methods_category/mathematical/diff/fd.json new file mode 100644 index 000000000..47fd2c1ee --- /dev/null +++ b/py/schema/methods_category/mathematical/diff/fd.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/diff/fd", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/diff", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Numerical differentiation category schema", + "properties": { + "tier1": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Finite difference method category schema", + "properties": { + "tier2": { + "enum": [ + "fd" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr.json b/py/schema/methods_category/mathematical/discr.json new file mode 100644 index 000000000..9b8cb4301 --- /dev/null +++ b/py/schema/methods_category/mathematical/discr.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/mathematical/discr", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Discretization category schema", + "properties": { + "tier1": { + "enum": [ + "discr" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/enum_options.json b/py/schema/methods_category/mathematical/discr/enum_options.json new file mode 100644 index 000000000..5aec122fc --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/mathematical/discr/enum-options", + "meshing": { + "enum": [ + "mesh" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh.json b/py/schema/methods_category/mathematical/discr/mesh.json new file mode 100644 index 000000000..cc9bcc24a --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/discr/mesh", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/discr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Discretization category schema", + "properties": { + "tier1": { + "enum": [ + "discr" + ] + } + } + } + ], + "description": "Meshing method category schema", + "properties": { + "tier2": { + "enum": [ + "mesh" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh/enum_options.json b/py/schema/methods_category/mathematical/discr/mesh/enum_options.json new file mode 100644 index 000000000..2eb48de52 --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh/enum_options.json @@ -0,0 +1,18 @@ +{ + "$id": "methods-category/mathematical/discr/mesh/enum-options", + "hybridMesh": { + "enum": [ + "hybrid" + ] + }, + "structuredMesh": { + "enum": [ + "struct" + ] + }, + "unstructuredMesh": { + "enum": [ + "nstruct" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh/hybrid.json b/py/schema/methods_category/mathematical/discr/mesh/hybrid.json new file mode 100644 index 000000000..2092262ec --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh/hybrid.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/discr/mesh/hybrid", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/discr/mesh", + "allOf": [ + { + "$id": "methods-category/mathematical/discr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Discretization category schema", + "properties": { + "tier1": { + "enum": [ + "discr" + ] + } + } + } + ], + "description": "Meshing method category schema", + "properties": { + "tier2": { + "enum": [ + "mesh" + ] + } + } + } + ], + "description": "Hybrid meshing category schema", + "properties": { + "tier3": { + "enum": [ + "hybrid" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh/nstruct.json b/py/schema/methods_category/mathematical/discr/mesh/nstruct.json new file mode 100644 index 000000000..e17c47e8f --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh/nstruct.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/discr/mesh/nstruct", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/discr/mesh", + "allOf": [ + { + "$id": "methods-category/mathematical/discr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Discretization category schema", + "properties": { + "tier1": { + "enum": [ + "discr" + ] + } + } + } + ], + "description": "Meshing method category schema", + "properties": { + "tier2": { + "enum": [ + "mesh" + ] + } + } + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier3": { + "enum": [ + "nstruct" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh/struct.json b/py/schema/methods_category/mathematical/discr/mesh/struct.json new file mode 100644 index 000000000..84156113d --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh/struct.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/discr/mesh/struct", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/discr/mesh", + "allOf": [ + { + "$id": "methods-category/mathematical/discr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Discretization category schema", + "properties": { + "tier1": { + "enum": [ + "discr" + ] + } + } + } + ], + "description": "Meshing method category schema", + "properties": { + "tier2": { + "enum": [ + "mesh" + ] + } + } + } + ], + "description": "Structured meshing category schema", + "properties": { + "tier3": { + "enum": [ + "struct" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh/struct/cartesian.json b/py/schema/methods_category/mathematical/discr/mesh/struct/cartesian.json new file mode 100644 index 000000000..a25bd757a --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh/struct/cartesian.json @@ -0,0 +1,211 @@ +{ + "$id": "methods-category/mathematical/discr/mesh/struct/cartesian", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/discr/mesh/struct", + "allOf": [ + { + "$id": "methods-category/mathematical/discr/mesh", + "allOf": [ + { + "$id": "methods-category/mathematical/discr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Discretization category schema", + "properties": { + "tier1": { + "enum": [ + "discr" + ] + } + } + } + ], + "description": "Meshing method category schema", + "properties": { + "tier2": { + "enum": [ + "mesh" + ] + } + } + } + ], + "description": "Structured meshing category schema", + "properties": { + "tier3": { + "enum": [ + "struct" + ] + } + } + } + ], + "properties": { + "type": { + "enum": [ + "cartesian" + ] + } + }, + "title": "Cartesian grid schema" +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/discr/mesh/struct/enum_options.json b/py/schema/methods_category/mathematical/discr/mesh/struct/enum_options.json new file mode 100644 index 000000000..b19463314 --- /dev/null +++ b/py/schema/methods_category/mathematical/discr/mesh/struct/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/mathematical/discr/mesh/struct/enum-options", + "cartesian": { + "enum": [ + "cartesian" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/enum_options.json b/py/schema/methods_category/mathematical/enum_options.json new file mode 100644 index 000000000..3bc0342b7 --- /dev/null +++ b/py/schema/methods_category/mathematical/enum_options.json @@ -0,0 +1,45 @@ +{ + "$id": "methods-category/mathematical/enum-options", + "differentiation": { + "enum": [ + "diff" + ] + }, + "discretization": { + "enum": [ + "discr" + ] + }, + "functionApproximation": { + "enum": [ + "fapprx" + ] + }, + "integration": { + "enum": [ + "intgr" + ] + }, + "linearAlgebra": { + "enum": [ + "linalg" + ] + }, + "optimization": { + "enum": [ + "opt" + ] + }, + "regressionSubtypes": { + "enum": [ + "least_squares", + "ridge" + ] + }, + "regressionTypes": { + "enum": [ + "linear", + "kernel_ridge" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx.json b/py/schema/methods_category/mathematical/fapprx.json new file mode 100644 index 000000000..7bfe84f2e --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/mathematical/fapprx", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier1": { + "enum": [ + "fapprx" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/basisexp.json b/py/schema/methods_category/mathematical/fapprx/basisexp.json new file mode 100644 index 000000000..6e14680e4 --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/basisexp.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/fapprx/basisexp", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier1": { + "enum": [ + "fapprx" + ] + } + } + } + ], + "description": "Basis expansion category schema", + "properties": { + "tier2": { + "enum": [ + "basisExp" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/enum_options.json b/py/schema/methods_category/mathematical/fapprx/enum_options.json new file mode 100644 index 000000000..63d52cb26 --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/enum_options.json @@ -0,0 +1,13 @@ +{ + "$id": "methods-category/mathematical/fapprx/enum-options", + "basisExpansion": { + "enum": [ + "basisExp" + ] + }, + "interpolation": { + "enum": [ + "ipol" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/ipol.json b/py/schema/methods_category/mathematical/fapprx/ipol.json new file mode 100644 index 000000000..c55afdde9 --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/ipol.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/fapprx/ipol", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier1": { + "enum": [ + "fapprx" + ] + } + } + } + ], + "description": "Interpolation category schema", + "properties": { + "tier2": { + "enum": [ + "ipol" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/ipol/enum_options.json b/py/schema/methods_category/mathematical/fapprx/ipol/enum_options.json new file mode 100644 index 000000000..84013cb24 --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/ipol/enum_options.json @@ -0,0 +1,18 @@ +{ + "$id": "methods-category/mathematical/fapprx/ipol/enum-options", + "linear": { + "enum": [ + "lin" + ] + }, + "polynomial": { + "enum": [ + "poly" + ] + }, + "spline": { + "enum": [ + "spline" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/ipol/lin.json b/py/schema/methods_category/mathematical/fapprx/ipol/lin.json new file mode 100644 index 000000000..2396e2d23 --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/ipol/lin.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/fapprx/ipol/lin", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx/ipol", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier1": { + "enum": [ + "fapprx" + ] + } + } + } + ], + "description": "Interpolation category schema", + "properties": { + "tier2": { + "enum": [ + "ipol" + ] + } + } + } + ], + "description": "Linear interpolation category schema", + "properties": { + "tier3": { + "enum": [ + "lin" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/ipol/poly.json b/py/schema/methods_category/mathematical/fapprx/ipol/poly.json new file mode 100644 index 000000000..e9c4c970c --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/ipol/poly.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/fapprx/ipol/poly", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx/ipol", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier1": { + "enum": [ + "fapprx" + ] + } + } + } + ], + "description": "Interpolation category schema", + "properties": { + "tier2": { + "enum": [ + "ipol" + ] + } + } + } + ], + "description": "Polynomial interpolation category schema", + "properties": { + "tier3": { + "enum": [ + "poly" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/fapprx/ipol/spline.json b/py/schema/methods_category/mathematical/fapprx/ipol/spline.json new file mode 100644 index 000000000..ea7d3a544 --- /dev/null +++ b/py/schema/methods_category/mathematical/fapprx/ipol/spline.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/fapprx/ipol/spline", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx/ipol", + "allOf": [ + { + "$id": "methods-category/mathematical/fapprx", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Unstructured meshing category schema", + "properties": { + "tier1": { + "enum": [ + "fapprx" + ] + } + } + } + ], + "description": "Interpolation category schema", + "properties": { + "tier2": { + "enum": [ + "ipol" + ] + } + } + } + ], + "description": "Spline interpolation category schema", + "properties": { + "tier3": { + "enum": [ + "spline" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr.json b/py/schema/methods_category/mathematical/intgr.json new file mode 100644 index 000000000..8da38e56c --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/mathematical/intgr", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/analytic.json b/py/schema/methods_category/mathematical/intgr/analytic.json new file mode 100644 index 000000000..8663a57b6 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/analytic.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/intgr/analytic", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Analytic integral category schema", + "properties": { + "tier2": { + "enum": [ + "analytic" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/analytic/enum_options.json b/py/schema/methods_category/mathematical/intgr/analytic/enum_options.json new file mode 100644 index 000000000..81332235e --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/analytic/enum_options.json @@ -0,0 +1,20 @@ +{ + "$id": "methods-category/mathematical/intgr/analytic/enum-options", + "volume": { + "enum": [ + "volume" + ] + }, + "volumeSubtypes": { + "enum": [ + "sphere", + "cube", + "rect-prism", + "tri-prism", + "cylinder", + "cone", + "tetrahedron", + "sq-pyr" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/analytic/volume.json b/py/schema/methods_category/mathematical/intgr/analytic/volume.json new file mode 100644 index 000000000..1fe23ad45 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/analytic/volume.json @@ -0,0 +1,210 @@ +{ + "$id": "methods-category/mathematical/intgr/analytic/volume", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr/analytic", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Analytic integral category schema", + "properties": { + "tier2": { + "enum": [ + "analytic" + ] + } + } + } + ], + "description": "analytic volume integral category schema", + "properties": { + "subtype": { + "enum": [ + "sphere", + "cube", + "rect-prism", + "tri-prism", + "cylinder", + "cone", + "tetrahedron", + "sq-pyr" + ] + }, + "type": { + "enum": [ + "volume" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/diffeq.json b/py/schema/methods_category/mathematical/intgr/diffeq.json new file mode 100644 index 000000000..0c0a8334a --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/diffeq.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/intgr/diffeq", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Methods for the numerical integration of differential equations", + "properties": { + "tier2": { + "enum": [ + "diffeq" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/diffeq/enum_options.json b/py/schema/methods_category/mathematical/intgr/diffeq/enum_options.json new file mode 100644 index 000000000..9fdca514a --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/diffeq/enum_options.json @@ -0,0 +1,13 @@ +{ + "$id": "methods-category/mathematical/intgr/diffeq/enum-options", + "firstOrder": { + "enum": [ + "order1" + ] + }, + "secondOrder": { + "enum": [ + "order2" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/diffeq/order1.json b/py/schema/methods_category/mathematical/intgr/diffeq/order1.json new file mode 100644 index 000000000..47f5978df --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/diffeq/order1.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/intgr/diffeq/order1", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr/diffeq", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Methods for the numerical integration of differential equations", + "properties": { + "tier2": { + "enum": [ + "diffeq" + ] + } + } + } + ], + "description": "Categories for the numerical integration of differential equations", + "properties": { + "tier3": { + "enum": [ + "order1" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/diffeq/order2.json b/py/schema/methods_category/mathematical/intgr/diffeq/order2.json new file mode 100644 index 000000000..559d97908 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/diffeq/order2.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/intgr/diffeq/order2", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr/diffeq", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Methods for the numerical integration of differential equations", + "properties": { + "tier2": { + "enum": [ + "diffeq" + ] + } + } + } + ], + "description": "Categories for the numerical integration of differential equations", + "properties": { + "tier3": { + "enum": [ + "order2" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/enum_options.json b/py/schema/methods_category/mathematical/intgr/enum_options.json new file mode 100644 index 000000000..a05fd05a9 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/enum_options.json @@ -0,0 +1,23 @@ +{ + "$id": "methods-category/mathematical/intgr/enum-options", + "analytic": { + "enum": [ + "analytic" + ] + }, + "differentialEquation": { + "enum": [ + "diffeq" + ] + }, + "numericalQuadrature": { + "enum": [ + "numquad" + ] + }, + "transformation": { + "enum": [ + "transf" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/numquad.json b/py/schema/methods_category/mathematical/intgr/numquad.json new file mode 100644 index 000000000..bbe509fbf --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/numquad.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/intgr/numquad", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Methods for the numerical quadrature", + "properties": { + "tier2": { + "enum": [ + "numquad" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/numquad/enum_options.json b/py/schema/methods_category/mathematical/intgr/numquad/enum_options.json new file mode 100644 index 000000000..09bfa71a8 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/numquad/enum_options.json @@ -0,0 +1,13 @@ +{ + "$id": "methods-category/mathematical/intgr/numquad/enum-options", + "gaussQuadrature": { + "enum": [ + "gauss" + ] + }, + "newtonCotes": { + "enum": [ + "newcot" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/numquad/gauss.json b/py/schema/methods_category/mathematical/intgr/numquad/gauss.json new file mode 100644 index 000000000..30577c34e --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/numquad/gauss.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/intgr/numquad/gauss", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr/numquad", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Methods for the numerical quadrature", + "properties": { + "tier2": { + "enum": [ + "numquad" + ] + } + } + } + ], + "description": "Gaussian quadrature rules", + "properties": { + "tier3": { + "enum": [ + "gauss" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/numquad/newcot.json b/py/schema/methods_category/mathematical/intgr/numquad/newcot.json new file mode 100644 index 000000000..4b48506a9 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/numquad/newcot.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/intgr/numquad/newcot", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr/numquad", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Methods for the numerical quadrature", + "properties": { + "tier2": { + "enum": [ + "numquad" + ] + } + } + } + ], + "description": "Newton-Cotes quadrature rules", + "properties": { + "tier3": { + "enum": [ + "newcot" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/transf.json b/py/schema/methods_category/mathematical/intgr/transf.json new file mode 100644 index 000000000..b2eef0feb --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/transf.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/intgr/transf", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Integral transform methods", + "properties": { + "tier2": { + "enum": [ + "transf" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/transf/enum_options.json b/py/schema/methods_category/mathematical/intgr/transf/enum_options.json new file mode 100644 index 000000000..a69f4fa41 --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/transf/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/mathematical/intgr/transf/enum-options", + "fourierTransformation": { + "enum": [ + "fourier" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/intgr/transf/fourier.json b/py/schema/methods_category/mathematical/intgr/transf/fourier.json new file mode 100644 index 000000000..3453063ae --- /dev/null +++ b/py/schema/methods_category/mathematical/intgr/transf/fourier.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/intgr/transf/fourier", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr/transf", + "allOf": [ + { + "$id": "methods-category/mathematical/intgr", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "intgr" + ] + } + } + } + ], + "description": "Integral transform methods", + "properties": { + "tier2": { + "enum": [ + "transf" + ] + } + } + } + ], + "description": "Fourier transform methods", + "properties": { + "type": { + "enum": [ + "fourier" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg.json b/py/schema/methods_category/mathematical/linalg.json new file mode 100644 index 000000000..b5386c467 --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/mathematical/linalg", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/dcomp.json b/py/schema/methods_category/mathematical/linalg/dcomp.json new file mode 100644 index 000000000..37820f8cf --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/dcomp.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/linalg/dcomp", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } + } + ], + "description": "Matrix decomposition methods", + "properties": { + "tier2": { + "enum": [ + "dcomp" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/diag.json b/py/schema/methods_category/mathematical/linalg/diag.json new file mode 100644 index 000000000..d50075605 --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/diag.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/linalg/diag", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } + } + ], + "description": "Matrix diagonalization methods", + "properties": { + "tier2": { + "enum": [ + "diag" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/diag/davidson.json b/py/schema/methods_category/mathematical/linalg/diag/davidson.json new file mode 100644 index 000000000..0866055fe --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/diag/davidson.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/linalg/diag/davidson", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg/diag", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } + } + ], + "description": "Matrix diagonalization methods", + "properties": { + "tier2": { + "enum": [ + "diag" + ] + } + } + } + ], + "description": "Davidson diagonalization method", + "properties": { + "type": { + "enum": [ + "davidson" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/diag/enum_options.json b/py/schema/methods_category/mathematical/linalg/diag/enum_options.json new file mode 100644 index 000000000..81b1b81a4 --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/diag/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/mathematical/linalg/diag/enum-options", + "davidson": { + "enum": [ + "davidson" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/enum_options.json b/py/schema/methods_category/mathematical/linalg/enum_options.json new file mode 100644 index 000000000..736b8f169 --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/enum_options.json @@ -0,0 +1,23 @@ +{ + "$id": "methods-category/mathematical/linalg/enum-options", + "decomposition": { + "enum": [ + "dcomp" + ] + }, + "diagonalization": { + "enum": [ + "diag" + ] + }, + "linearTransformation": { + "enum": [ + "lintra" + ] + }, + "matrixFunction": { + "enum": [ + "matf" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/lintra.json b/py/schema/methods_category/mathematical/linalg/lintra.json new file mode 100644 index 000000000..1ebb5c8ea --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/lintra.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/linalg/lintra", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } + } + ], + "description": "Linear transformation methods", + "properties": { + "tier2": { + "enum": [ + "lintra" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/linalg/matf.json b/py/schema/methods_category/mathematical/linalg/matf.json new file mode 100644 index 000000000..85ece1a4a --- /dev/null +++ b/py/schema/methods_category/mathematical/linalg/matf.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/linalg/matf", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } + } + ], + "description": "Matrix function methods", + "properties": { + "tier2": { + "enum": [ + "matf" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt.json b/py/schema/methods_category/mathematical/opt.json new file mode 100644 index 000000000..9603a5c5f --- /dev/null +++ b/py/schema/methods_category/mathematical/opt.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/mathematical/opt", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff.json b/py/schema/methods_category/mathematical/opt/diff.json new file mode 100644 index 000000000..7ca9e98b0 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/opt/diff", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/bracket.json b/py/schema/methods_category/mathematical/opt/diff/bracket.json new file mode 100644 index 000000000..3c0cb0fe9 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/bracket.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/diff/bracket", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Bracket algorithms for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "bracket" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/enum_options.json b/py/schema/methods_category/mathematical/opt/diff/enum_options.json new file mode 100644 index 000000000..b6d8c5b6a --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/enum_options.json @@ -0,0 +1,28 @@ +{ + "$id": "methods-category/mathematical/opt/diff/enum-options", + "bracketing": { + "enum": [ + "bracket" + ] + }, + "firstOrder": { + "enum": [ + "order1" + ] + }, + "localDescent": { + "enum": [ + "local" + ] + }, + "nOrder": { + "enum": [ + "ordern" + ] + }, + "secondOrder": { + "enum": [ + "order2" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/local.json b/py/schema/methods_category/mathematical/opt/diff/local.json new file mode 100644 index 000000000..e6b1718e3 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/local.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/diff/local", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Local descent methods for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "local" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/order1.json b/py/schema/methods_category/mathematical/opt/diff/order1.json new file mode 100644 index 000000000..74bcf7ce3 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/order1.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/diff/order1", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "First order algorithms for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "order1" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/order2.json b/py/schema/methods_category/mathematical/opt/diff/order2.json new file mode 100644 index 000000000..c4195df54 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/order2.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/diff/order2", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Second order algorithms for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "order2" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/ordern.json b/py/schema/methods_category/mathematical/opt/diff/ordern.json new file mode 100644 index 000000000..30beed0a3 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/ordern.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/diff/ordern", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Mixed order and higher order algorithms for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "ordern" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/ordern/cg.json b/py/schema/methods_category/mathematical/opt/diff/ordern/cg.json new file mode 100644 index 000000000..221b25168 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/ordern/cg.json @@ -0,0 +1,211 @@ +{ + "$id": "methods-category/mathematical/opt/diff/ordern/cg", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff/ordern", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Mixed order and higher order algorithms for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "ordern" + ] + } + } + } + ], + "description": "conjugate gradient method schema", + "properties": { + "type": { + "enum": [ + "cg" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/diff/ordern/enum_options.json b/py/schema/methods_category/mathematical/opt/diff/ordern/enum_options.json new file mode 100644 index 000000000..d3a7e6353 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/diff/ordern/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/mathematical/opt/diff/ordern/enum-options", + "conjugateGradient": { + "enum": [ + "cg" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/enum_options.json b/py/schema/methods_category/mathematical/opt/enum_options.json new file mode 100644 index 000000000..84f29d268 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/enum_options.json @@ -0,0 +1,18 @@ +{ + "$id": "methods-category/mathematical/opt/enum-options", + "differentiable": { + "enum": [ + "diff" + ] + }, + "nonDifferentiable": { + "enum": [ + "ndiff" + ] + }, + "rootFinding": { + "enum": [ + "root" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/ndiff.json b/py/schema/methods_category/mathematical/opt/ndiff.json new file mode 100644 index 000000000..046934d23 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/ndiff.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/opt/ndiff", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for non-differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "ndiff" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/ndiff/direct.json b/py/schema/methods_category/mathematical/opt/ndiff/direct.json new file mode 100644 index 000000000..4277a8fd5 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/ndiff/direct.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/ndiff/direct", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/ndiff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for non-differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "ndiff" + ] + } + } + } + ], + "description": "Direct algorithms for the optimization of non-differentiable functions category schema", + "properties": { + "tier3": { + "enum": [ + "direct" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/ndiff/enum_options.json b/py/schema/methods_category/mathematical/opt/ndiff/enum_options.json new file mode 100644 index 000000000..318e0b8a5 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/ndiff/enum_options.json @@ -0,0 +1,18 @@ +{ + "$id": "methods-category/mathematical/opt/ndiff/enum-options", + "direct": { + "enum": [ + "direct" + ] + }, + "population": { + "enum": [ + "pop" + ] + }, + "stochastic": { + "enum": [ + "stoch" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/ndiff/pop.json b/py/schema/methods_category/mathematical/opt/ndiff/pop.json new file mode 100644 index 000000000..9468c2053 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/ndiff/pop.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/ndiff/pop", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/ndiff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for non-differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "ndiff" + ] + } + } + } + ], + "description": "Population algorithms for the optmization of non-differentiable functions category schema", + "properties": { + "tier3": { + "enum": [ + "pop" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/ndiff/stoch.json b/py/schema/methods_category/mathematical/opt/ndiff/stoch.json new file mode 100644 index 000000000..e708a9d55 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/ndiff/stoch.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/ndiff/stoch", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/ndiff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for non-differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "ndiff" + ] + } + } + } + ], + "description": "Stochastic algorithms for the optmization of non-differentiable functions category schema", + "properties": { + "tier3": { + "enum": [ + "stoch" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/root.json b/py/schema/methods_category/mathematical/opt/root.json new file mode 100644 index 000000000..805e3ac60 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/root.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/mathematical/opt/root", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Root finding category schema", + "properties": { + "tier2": { + "enum": [ + "root" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/root/bracket.json b/py/schema/methods_category/mathematical/opt/root/bracket.json new file mode 100644 index 000000000..fac8659c1 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/root/bracket.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/root/bracket", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/root", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Root finding category schema", + "properties": { + "tier2": { + "enum": [ + "root" + ] + } + } + } + ], + "description": "Bracketing method for finding roots category schema", + "properties": { + "tier3": { + "enum": [ + "bracket" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/root/enum_options.json b/py/schema/methods_category/mathematical/opt/root/enum_options.json new file mode 100644 index 000000000..79c8d0b0a --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/root/enum_options.json @@ -0,0 +1,13 @@ +{ + "$id": "methods-category/mathematical/opt/root/enum-options", + "bracketing": { + "enum": [ + "bracket" + ] + }, + "iterative": { + "enum": [ + "iterative" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/opt/root/iter.json b/py/schema/methods_category/mathematical/opt/root/iter.json new file mode 100644 index 000000000..70c3ca2f6 --- /dev/null +++ b/py/schema/methods_category/mathematical/opt/root/iter.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/mathematical/opt/root/iter", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/root", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Root finding category schema", + "properties": { + "tier2": { + "enum": [ + "root" + ] + } + } + } + ], + "description": "Iterative method for root finding category schema", + "properties": { + "tier3": { + "enum": [ + "iterative" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/mathematical/regression.json b/py/schema/methods_category/mathematical/regression.json new file mode 100644 index 000000000..bf21917bc --- /dev/null +++ b/py/schema/methods_category/mathematical/regression.json @@ -0,0 +1,179 @@ +{ + "$id": "methods-category/mathematical/regression", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "subtype": { + "enum": [ + "least_squares", + "ridge" + ] + }, + "type": { + "enum": [ + "linear", + "kernel_ridge" + ] + } + }, + "title": "linear methods category schema" +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/enum_options.json b/py/schema/methods_category/physical/enum_options.json new file mode 100644 index 000000000..ad80bc562 --- /dev/null +++ b/py/schema/methods_category/physical/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/physical/enum-options", + "quantumMechanical": { + "enum": [ + "qm" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm.json b/py/schema/methods_category/physical/qm.json new file mode 100644 index 000000000..9b2378c43 --- /dev/null +++ b/py/schema/methods_category/physical/qm.json @@ -0,0 +1,172 @@ +{ + "$id": "methods-category/physical/qm", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/enum_options.json b/py/schema/methods_category/physical/qm/enum_options.json new file mode 100644 index 000000000..005996a6d --- /dev/null +++ b/py/schema/methods_category/physical/qm/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "methods-category/physical/qm/enum-options", + "wavefunction": { + "enum": [ + "wf" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf.json b/py/schema/methods_category/physical/qm/wf.json new file mode 100644 index 000000000..dafc81391 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf.json @@ -0,0 +1,185 @@ +{ + "$id": "methods-category/physical/qm/wf", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/ao.json b/py/schema/methods_category/physical/qm/wf/ao.json new file mode 100644 index 000000000..7fa26bcd6 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/ao.json @@ -0,0 +1,205 @@ +{ + "$id": "methods-category/physical/qm/wf/ao", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/ao/dunning.json b/py/schema/methods_category/physical/qm/wf/ao/dunning.json new file mode 100644 index 000000000..cf950de32 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/ao/dunning.json @@ -0,0 +1,218 @@ +{ + "$id": "methods-category/physical/qm/wf/ao/dunning", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf/ao", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } + } + ], + "description": "Dunning correlation-consistent basis set category schema", + "properties": { + "subtype": { + "enum": [ + "dunning" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/ao/other.json b/py/schema/methods_category/physical/qm/wf/ao/other.json new file mode 100644 index 000000000..55ab0f499 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/ao/other.json @@ -0,0 +1,218 @@ +{ + "$id": "methods-category/physical/qm/wf/ao/other", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf/ao", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } + } + ], + "description": "Other (neither Pople nor Dunning) basis set category schema", + "properties": { + "subtype": { + "enum": [ + "other" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/ao/pople.json b/py/schema/methods_category/physical/qm/wf/ao/pople.json new file mode 100644 index 000000000..13489df35 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/ao/pople.json @@ -0,0 +1,218 @@ +{ + "$id": "methods-category/physical/qm/wf/ao/pople", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf/ao", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } + } + ], + "description": "Pople basis set category schema", + "properties": { + "subtype": { + "enum": [ + "pople" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/enum_options.json b/py/schema/methods_category/physical/qm/wf/enum_options.json new file mode 100644 index 000000000..e979eebb6 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/enum_options.json @@ -0,0 +1,63 @@ +{ + "$id": "methods-category/physical/qm/wf/enum-options", + "aoTypes": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "atomicOrbital": { + "enum": [ + "ao" + ] + }, + "planewave": { + "enum": [ + "pw" + ] + }, + "pseudization": { + "enum": [ + "psp" + ] + }, + "pseudoSubtypes": { + "enum": [ + "us", + "nc", + "paw", + "coulomb" + ] + }, + "smearing": { + "enum": [ + "smearing" + ] + }, + "smearingSubtypes": { + "enum": [ + "gaussian", + "marzari-vanderbilt", + "methfessel-paxton", + "fermi-dirac" + ] + }, + "tetrahedron": { + "enum": [ + "tetrahedron" + ] + }, + "tetrahedronSubtypes": { + "enum": [ + "linear", + "optimized", + "bloechl" + ] + }, + "wavelet": { + "enum": [ + "wvl" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/psp.json b/py/schema/methods_category/physical/qm/wf/psp.json new file mode 100644 index 000000000..fd721c59e --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/psp.json @@ -0,0 +1,206 @@ +{ + "$id": "methods-category/physical/qm/wf/psp", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Pseudopotential category schema", + "properties": { + "subtype": { + "enum": [ + "us", + "nc", + "paw", + "coulomb" + ] + }, + "type": { + "enum": [ + "psp" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/pw.json b/py/schema/methods_category/physical/qm/wf/pw.json new file mode 100644 index 000000000..071dd6e39 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/pw.json @@ -0,0 +1,198 @@ +{ + "$id": "methods-category/physical/qm/wf/pw", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Plane wave catgeory schema", + "properties": { + "type": { + "enum": [ + "pw" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/smearing.json b/py/schema/methods_category/physical/qm/wf/smearing.json new file mode 100644 index 000000000..e37f596ee --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/smearing.json @@ -0,0 +1,207 @@ +{ + "$id": "methods-category/physical/qm/wf/smearing", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating Heaviside step function with smooth function", + "properties": { + "subtype": { + "enum": [ + "gaussian", + "marzari-vanderbilt", + "methfessel-paxton", + "fermi-dirac" + ] + }, + "type": { + "enum": [ + "smearing" + ] + } + }, + "title": "Smearing methods category schema" +} \ No newline at end of file diff --git a/py/schema/methods_category/physical/qm/wf/tetrahedron.json b/py/schema/methods_category/physical/qm/wf/tetrahedron.json new file mode 100644 index 000000000..9477a5524 --- /dev/null +++ b/py/schema/methods_category/physical/qm/wf/tetrahedron.json @@ -0,0 +1,205 @@ +{ + "$id": "methods-category/physical/qm/wf/tetrahedron", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Tetrahedron method for Brillouin zone integration category schema ", + "properties": { + "subtype": { + "enum": [ + "linear", + "optimized", + "bloechl" + ] + }, + "type": { + "enum": [ + "tetrahedron" + ] + } + } +} \ No newline at end of file diff --git a/py/schema/methods_directory/legacy/localorbital.json b/py/schema/methods_directory/legacy/localorbital.json new file mode 100644 index 000000000..f1ebfeb83 --- /dev/null +++ b/py/schema/methods_directory/legacy/localorbital.json @@ -0,0 +1,45 @@ +{ + "$id": "methods-directory/legacy/localorbital", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + } + ], + "properties": { + "subtype": { + "enum": [ + "pople" + ] + }, + "type": { + "enum": [ + "localorbital" + ] + } + }, + "title": "legacy method localorbital" +} \ No newline at end of file diff --git a/py/schema/methods_directory/legacy/pseudopotential.json b/py/schema/methods_directory/legacy/pseudopotential.json new file mode 100644 index 000000000..e04a1de5e --- /dev/null +++ b/py/schema/methods_directory/legacy/pseudopotential.json @@ -0,0 +1,48 @@ +{ + "$id": "methods-directory/legacy/pseudopotential", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + } + ], + "properties": { + "subtype": { + "enum": [ + "paw", + "nc", + "us", + "any" + ] + }, + "type": { + "enum": [ + "pseudopotential" + ] + } + }, + "title": "legacy method pseudopotential" +} \ No newline at end of file diff --git a/py/schema/methods_directory/legacy/regression.json b/py/schema/methods_directory/legacy/regression.json new file mode 100644 index 000000000..b396daf67 --- /dev/null +++ b/py/schema/methods_directory/legacy/regression.json @@ -0,0 +1,200 @@ +{ + "$id": "methods-directory/legacy/regression", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + } + ], + "properties": { + "data": { + "$id": "methods-directory/mathematical/regression/data", + "properties": { + "dataSet": { + "$id": "methods-directory/mathematical/regression/dataset", + "description": "dataset for ml", + "properties": { + "exabyteIds": { + "description": "array of exabyteIds for materials in dataset", + "items": { + "type": "string" + }, + "type": "array" + }, + "extra": { + "description": "holder for any extra information, eg. coming from user-uploaded CSV file" + } + }, + "required": [ + "exabyteIds" + ], + "type": "object" + }, + "perProperty": { + "items": { + "oneOf": [ + { + "$id": "methods-directory/mathematical/regression/linear/data-per-property", + "properties": { + "intercept": { + "description": "intercept (shift) from the linear or non-linear fit of data points", + "type": "number" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + } + }, + "required": [ + "intercept", + "perFeature" + ], + "title": "linear regression parameters schema" + }, + { + "$id": "methods-directory/mathematical/regression/kernel-ridge/data-per-property", + "properties": { + "dualCoefficients": { + "description": "dual coefficients", + "type": "array" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + }, + "xFit": { + "description": "training data", + "type": "array" + } + }, + "required": [ + "xFit", + "dualCoefficients", + "perFeature" + ], + "title": "kernel-ridge regression parameters schema" + } + ] + }, + "type": "array" + } + }, + "title": "regression data", + "type": "object" + }, + "precision": { + "$id": "methods-directory/mathematical/regression/precision", + "properties": { + "perProperty": { + "items": { + "$id": "methods-directory/mathematical/regression/precision-per-property", + "properties": { + "name": { + "description": "property name in 'flattened' format", + "type": "string" + }, + "score": { + "description": "prediction score of the estimator. Eg: r2_score", + "type": "number" + }, + "trainingError": { + "description": "training error of the estimator", + "type": "number" + } + }, + "required": [ + "trainingError" + ], + "title": "regression precision per property schema", + "type": "object" + }, + "type": "array" + } + }, + "title": "regression precision", + "type": "object" + }, + "subtype": { + "enum": [ + "least_squares", + "ridge" + ] + }, + "type": { + "enum": [ + "linear", + "kernel_ridge" + ] + } + }, + "required": [ + "precision", + "data" + ], + "title": "legacy method regression" +} \ No newline at end of file diff --git a/py/schema/methods_directory/legacy/unknown.json b/py/schema/methods_directory/legacy/unknown.json new file mode 100644 index 000000000..670db0227 --- /dev/null +++ b/py/schema/methods_directory/legacy/unknown.json @@ -0,0 +1,45 @@ +{ + "$id": "methods-directory/legacy/unknown", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + } + ], + "properties": { + "subtype": { + "enum": [ + "unknown" + ] + }, + "type": { + "enum": [ + "unknown" + ] + } + }, + "title": "legacy method unknown" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/cg.json b/py/schema/methods_directory/mathematical/cg.json new file mode 100644 index 000000000..1aa203084 --- /dev/null +++ b/py/schema/methods_directory/mathematical/cg.json @@ -0,0 +1,439 @@ +{ + "$id": "methods-directory/mathematical/cg", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "description": "conjugate gradient method schema", + "properties": { + "categories": { + "$id": "methods-category/mathematical/opt/diff/ordern/cg", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff/ordern", + "allOf": [ + { + "$id": "methods-category/mathematical/opt/diff", + "allOf": [ + { + "$id": "methods-category/mathematical/opt", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Integration category schema", + "properties": { + "tier1": { + "enum": [ + "opt" + ] + } + } + } + ], + "description": "Optimization methods for differentiable functions category schema", + "properties": { + "tier2": { + "enum": [ + "diff" + ] + } + } + } + ], + "description": "Mixed order and higher order algorithms for the optimization of differentiable functions", + "properties": { + "tier3": { + "enum": [ + "ordern" + ] + } + } + } + ], + "description": "conjugate gradient method schema", + "properties": { + "type": { + "enum": [ + "cg" + ] + } + } + } + }, + "required": [ + "categories" + ], + "title": "unit method conjugate gradient" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/davidson.json b/py/schema/methods_directory/mathematical/davidson.json new file mode 100644 index 000000000..2085708b3 --- /dev/null +++ b/py/schema/methods_directory/mathematical/davidson.json @@ -0,0 +1,426 @@ +{ + "$id": "methods-directory/mathematical/davidson", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "description": "Davidson diagonalization method", + "properties": { + "categories": { + "$id": "methods-category/mathematical/linalg/diag/davidson", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg/diag", + "allOf": [ + { + "$id": "methods-category/mathematical/linalg", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Linear Algebra category schema", + "properties": { + "tier1": { + "enum": [ + "linalg" + ] + } + } + } + ], + "description": "Matrix diagonalization methods", + "properties": { + "tier2": { + "enum": [ + "diag" + ] + } + } + } + ], + "description": "Davidson diagonalization method", + "properties": { + "type": { + "enum": [ + "davidson" + ] + } + } + } + }, + "required": [ + "categories" + ], + "title": "unit method davidson" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression.json b/py/schema/methods_directory/mathematical/regression.json new file mode 100644 index 000000000..f8d2386eb --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression.json @@ -0,0 +1,557 @@ +{ + "$id": "methods-directory/mathematical/regression", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "properties": { + "categories": { + "$id": "methods-category/mathematical/regression", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "subtype": { + "enum": [ + "least_squares", + "ridge" + ] + }, + "type": { + "enum": [ + "linear", + "kernel_ridge" + ] + } + }, + "title": "linear methods category schema" + }, + "data": { + "$id": "methods-directory/mathematical/regression/data", + "properties": { + "dataSet": { + "$id": "methods-directory/mathematical/regression/dataset", + "description": "dataset for ml", + "properties": { + "exabyteIds": { + "description": "array of exabyteIds for materials in dataset", + "items": { + "type": "string" + }, + "type": "array" + }, + "extra": { + "description": "holder for any extra information, eg. coming from user-uploaded CSV file" + } + }, + "required": [ + "exabyteIds" + ], + "type": "object" + }, + "perProperty": { + "items": { + "oneOf": [ + { + "$id": "methods-directory/mathematical/regression/linear/data-per-property", + "properties": { + "intercept": { + "description": "intercept (shift) from the linear or non-linear fit of data points", + "type": "number" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + } + }, + "required": [ + "intercept", + "perFeature" + ], + "title": "linear regression parameters schema" + }, + { + "$id": "methods-directory/mathematical/regression/kernel-ridge/data-per-property", + "properties": { + "dualCoefficients": { + "description": "dual coefficients", + "type": "array" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + }, + "xFit": { + "description": "training data", + "type": "array" + } + }, + "required": [ + "xFit", + "dualCoefficients", + "perFeature" + ], + "title": "kernel-ridge regression parameters schema" + } + ] + }, + "type": "array" + } + }, + "title": "regression data", + "type": "object" + }, + "precision": { + "$id": "methods-directory/mathematical/regression/precision", + "properties": { + "perProperty": { + "items": { + "$id": "methods-directory/mathematical/regression/precision-per-property", + "properties": { + "name": { + "description": "property name in 'flattened' format", + "type": "string" + }, + "score": { + "description": "prediction score of the estimator. Eg: r2_score", + "type": "number" + }, + "trainingError": { + "description": "training error of the estimator", + "type": "number" + } + }, + "required": [ + "trainingError" + ], + "title": "regression precision per property schema", + "type": "object" + }, + "type": "array" + } + }, + "title": "regression precision", + "type": "object" + } + }, + "required": [ + "categories", + "precision", + "data" + ], + "title": "unit method regression" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/data.json b/py/schema/methods_directory/mathematical/regression/data.json new file mode 100644 index 000000000..a652786a9 --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/data.json @@ -0,0 +1,118 @@ +{ + "$id": "methods-directory/mathematical/regression/data", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "dataSet": { + "$id": "methods-directory/mathematical/regression/dataset", + "description": "dataset for ml", + "properties": { + "exabyteIds": { + "description": "array of exabyteIds for materials in dataset", + "items": { + "type": "string" + }, + "type": "array" + }, + "extra": { + "description": "holder for any extra information, eg. coming from user-uploaded CSV file" + } + }, + "required": [ + "exabyteIds" + ], + "type": "object" + }, + "perProperty": { + "items": { + "oneOf": [ + { + "$id": "methods-directory/mathematical/regression/linear/data-per-property", + "properties": { + "intercept": { + "description": "intercept (shift) from the linear or non-linear fit of data points", + "type": "number" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + } + }, + "required": [ + "intercept", + "perFeature" + ], + "title": "linear regression parameters schema" + }, + { + "$id": "methods-directory/mathematical/regression/kernel-ridge/data-per-property", + "properties": { + "dualCoefficients": { + "description": "dual coefficients", + "type": "array" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + }, + "xFit": { + "description": "training data", + "type": "array" + } + }, + "required": [ + "xFit", + "dualCoefficients", + "perFeature" + ], + "title": "kernel-ridge regression parameters schema" + } + ] + }, + "type": "array" + } + }, + "title": "regression data", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/dataset.json b/py/schema/methods_directory/mathematical/regression/dataset.json new file mode 100644 index 000000000..d972ab8cb --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/dataset.json @@ -0,0 +1,21 @@ +{ + "$id": "methods-directory/mathematical/regression/dataset", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "dataset for ml", + "properties": { + "exabyteIds": { + "description": "array of exabyteIds for materials in dataset", + "items": { + "type": "string" + }, + "type": "array" + }, + "extra": { + "description": "holder for any extra information, eg. coming from user-uploaded CSV file" + } + }, + "required": [ + "exabyteIds" + ], + "type": "object" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/kernel_ridge/data_per_property.json b/py/schema/methods_directory/mathematical/regression/kernel_ridge/data_per_property.json new file mode 100644 index 000000000..d2ac8c441 --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/kernel_ridge/data_per_property.json @@ -0,0 +1,45 @@ +{ + "$id": "methods-directory/mathematical/regression/kernel-ridge/data-per-property", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "dualCoefficients": { + "description": "dual coefficients", + "type": "array" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + }, + "xFit": { + "description": "training data", + "type": "array" + } + }, + "required": [ + "xFit", + "dualCoefficients", + "perFeature" + ], + "title": "kernel-ridge regression parameters schema" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/linear/data_per_property.json b/py/schema/methods_directory/mathematical/regression/linear/data_per_property.json new file mode 100644 index 000000000..7d756497f --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/linear/data_per_property.json @@ -0,0 +1,40 @@ +{ + "$id": "methods-directory/mathematical/regression/linear/data-per-property", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "intercept": { + "description": "intercept (shift) from the linear or non-linear fit of data points", + "type": "number" + }, + "perFeature": { + "description": "per-feature (property used for training the ML method/model) parameters", + "items": { + "$id": "methods-directory/mathematical/regression/per-feature-item", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" + }, + "type": "array" + } + }, + "required": [ + "intercept", + "perFeature" + ], + "title": "linear regression parameters schema" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/per_feature_item.json b/py/schema/methods_directory/mathematical/regression/per_feature_item.json new file mode 100644 index 000000000..115349836 --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/per_feature_item.json @@ -0,0 +1,22 @@ +{ + "$id": "methods-directory/mathematical/regression/per-feature-item", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "coefficient": { + "description": "coefficient in linear regression", + "type": "number" + }, + "importance": { + "description": "pvalue: https://en.wikipedia.org/wiki/P-value", + "type": "number" + }, + "name": { + "description": "feature name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "per-feature (property used for training the ML method/model) parameters schema" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/precision.json b/py/schema/methods_directory/mathematical/regression/precision.json new file mode 100644 index 000000000..c43cbf353 --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/precision.json @@ -0,0 +1,33 @@ +{ + "$id": "methods-directory/mathematical/regression/precision", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "perProperty": { + "items": { + "$id": "methods-directory/mathematical/regression/precision-per-property", + "properties": { + "name": { + "description": "property name in 'flattened' format", + "type": "string" + }, + "score": { + "description": "prediction score of the estimator. Eg: r2_score", + "type": "number" + }, + "trainingError": { + "description": "training error of the estimator", + "type": "number" + } + }, + "required": [ + "trainingError" + ], + "title": "regression precision per property schema", + "type": "object" + }, + "type": "array" + } + }, + "title": "regression precision", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/methods_directory/mathematical/regression/precision_per_property.json b/py/schema/methods_directory/mathematical/regression/precision_per_property.json new file mode 100644 index 000000000..dbe030c13 --- /dev/null +++ b/py/schema/methods_directory/mathematical/regression/precision_per_property.json @@ -0,0 +1,23 @@ +{ + "$id": "methods-directory/mathematical/regression/precision-per-property", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "property name in 'flattened' format", + "type": "string" + }, + "score": { + "description": "prediction score of the estimator. Eg: r2_score", + "type": "number" + }, + "trainingError": { + "description": "training error of the estimator", + "type": "number" + } + }, + "required": [ + "trainingError" + ], + "title": "regression precision per property schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/ao/dunning.json b/py/schema/methods_directory/physical/ao/dunning.json new file mode 100644 index 000000000..668a50cc6 --- /dev/null +++ b/py/schema/methods_directory/physical/ao/dunning.json @@ -0,0 +1,474 @@ +{ + "$id": "methods-directory/physical/ao/dunning", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "definitions": { + "ao-basis-dunning": { + "properties": { + "basisSlug": { + "enum": [ + "cc-pvdz", + "cc-pvtz", + "cc-pvqz" + ] + } + } + } + }, + "description": "Dunning correlation-consistent basis set unit method", + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/ao/dunning", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf/ao", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } + } + ], + "description": "Dunning correlation-consistent basis set category schema", + "properties": { + "subtype": { + "enum": [ + "dunning" + ] + } + } + }, + "parameters": { + "allOf": [ + { + "properties": { + "basisSlug": { + "enum": [ + "cc-pvdz", + "cc-pvtz", + "cc-pvqz" + ] + } + } + } + ] + } + }, + "required": [ + "categories" + ], + "title": "unit method ao dunning" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/ao/enum_options.json b/py/schema/methods_directory/physical/ao/enum_options.json new file mode 100644 index 000000000..aa6005590 --- /dev/null +++ b/py/schema/methods_directory/physical/ao/enum_options.json @@ -0,0 +1,28 @@ +{ + "$id": "methods-directory/physical/ao/enum-options", + "dunningAoBasis": { + "enum": [ + "cc-pvdz", + "cc-pvtz", + "cc-pvqz" + ] + }, + "otherAoBasis": { + "enum": [ + "sto-3g", + "sto-4g", + "sto-6g", + "def2-svp", + "def2-tzvp", + "def2-qzvp", + "cbs-qb3" + ] + }, + "popleAoBasis": { + "enum": [ + "3-21G", + "6-31G", + "6-311G" + ] + } +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/ao/other.json b/py/schema/methods_directory/physical/ao/other.json new file mode 100644 index 000000000..1cee3fbb5 --- /dev/null +++ b/py/schema/methods_directory/physical/ao/other.json @@ -0,0 +1,482 @@ +{ + "$id": "methods-directory/physical/ao/other", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "definitions": { + "ao-basis-other": { + "properties": { + "basisSlug": { + "enum": [ + "sto-3g", + "sto-4g", + "sto-6g", + "def2-svp", + "def2-tzvp", + "def2-qzvp", + "cbs-qb3" + ] + } + } + } + }, + "description": "Other (neither Pople nor Dunning) basis set unit method", + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/ao/other", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf/ao", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } + } + ], + "description": "Other (neither Pople nor Dunning) basis set category schema", + "properties": { + "subtype": { + "enum": [ + "other" + ] + } + } + }, + "parameters": { + "allOf": [ + { + "properties": { + "basisSlug": { + "enum": [ + "sto-3g", + "sto-4g", + "sto-6g", + "def2-svp", + "def2-tzvp", + "def2-qzvp", + "cbs-qb3" + ] + } + } + } + ] + } + }, + "required": [ + "categories" + ], + "title": "unit method ao other" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/ao/pople.json b/py/schema/methods_directory/physical/ao/pople.json new file mode 100644 index 000000000..20a5e9fb3 --- /dev/null +++ b/py/schema/methods_directory/physical/ao/pople.json @@ -0,0 +1,474 @@ +{ + "$id": "methods-directory/physical/ao/pople", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "definitions": { + "ao-basis-pople": { + "properties": { + "basisSlug": { + "enum": [ + "3-21G", + "6-31G", + "6-311G" + ] + } + } + } + }, + "description": "Pople basis set unit method", + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/ao/pople", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf/ao", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating the electronic wave function with a atomic orbital basis", + "properties": { + "subtype": { + "enum": [ + "pople", + "dunning", + "other" + ] + }, + "type": { + "enum": [ + "ao" + ] + } + } + } + ], + "description": "Pople basis set category schema", + "properties": { + "subtype": { + "enum": [ + "pople" + ] + } + } + }, + "parameters": { + "allOf": [ + { + "properties": { + "basisSlug": { + "enum": [ + "3-21G", + "6-31G", + "6-311G" + ] + } + } + } + ] + } + }, + "required": [ + "categories" + ], + "title": "unit method ao pople" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/psp.json b/py/schema/methods_directory/physical/psp.json new file mode 100644 index 000000000..9985dcc80 --- /dev/null +++ b/py/schema/methods_directory/physical/psp.json @@ -0,0 +1,578 @@ +{ + "$id": "methods-directory/physical/psp", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "description": "Core-valence separation by means of pseudopotentials (effective potential)", + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/psp", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Pseudopotential category schema", + "properties": { + "subtype": { + "enum": [ + "us", + "nc", + "paw", + "coulomb" + ] + }, + "type": { + "enum": [ + "psp" + ] + } + } + }, + "data": { + "items": { + "$id": "methods-directory/physical/psp/file", + "description": "Specific data based on pseudopotential file.", + "properties": { + "data": { + "$id": "methods-directory/physical/psp/file-data-item", + "description": "Specific data based on pseudopotential file.", + "properties": { + "apps": { + "description": "The names of the simulation engines that can use this pseudopotential, e.g. espresso", + "items": { + "type": "string" + }, + "type": "array" + }, + "element": { + "description": "chemical element", + "type": "string" + }, + "exchangeCorrelation": { + "properties": { + "approximation": { + "description": "DFT approximation", + "type": "string" + }, + "functional": { + "description": "Exchange correlation functional", + "type": "string" + }, + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "type": "object" + }, + "filename": { + "description": "filename of pseudopotential file on filesystem", + "type": "string" + }, + "hash": { + "description": "MD5 hash of the pseudopotential file", + "type": "string" + }, + "name": { + "description": "name of the data category", + "enum": [ + "pseudopotential" + ], + "type": "string" + }, + "path": { + "description": "location of the pseudopotential file on filesystem", + "type": "string" + }, + "source": { + "description": "explains where this came from", + "type": "string" + }, + "type": { + "description": "type of pseudization", + "enum": [ + "us", + "nc", + "paw", + "coulomb" + ], + "type": "string" + }, + "valenceConfiguration": { + "description": "contains pseudo orbital information, including orbital names and occupations", + "items": { + "$id": "core/reusable/atomic-orbital", + "properties": { + "angularMomentum": { + "maximum": 3, + "minimum": 0, + "type": "integer" + }, + "occupation": { + "description": "Shell occupation", + "maximum": 14, + "minimum": 0, + "type": "number" + }, + "orbitalIndex": { + "minimum": 1, + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "principalNumber": { + "maximum": 7, + "minimum": 1, + "type": "integer" + } + }, + "title": "atomic orbital schema", + "type": "object" + }, + "type": "array" + }, + "version": { + "description": "explains the version of where this came from", + "type": "string" + } + }, + "required": [ + "element", + "type", + "exchangeCorrelation", + "source", + "path", + "apps" + ], + "title": "File data item" + }, + "slug": { + "enum": [ + "pseudopotential" + ] + }, + "source": { + "description": "TODO: remove in the future", + "properties": { + "info": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "title": "Pseudopotential file" + }, + "type": "array" + } + }, + "required": [ + "categories" + ], + "title": "unit method pseudopotential" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/psp/file.json b/py/schema/methods_directory/physical/psp/file.json new file mode 100644 index 000000000..eed03b848 --- /dev/null +++ b/py/schema/methods_directory/physical/psp/file.json @@ -0,0 +1,141 @@ +{ + "$id": "methods-directory/physical/psp/file", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "data": { + "$id": "methods-directory/physical/psp/file-data-item", + "description": "Specific data based on pseudopotential file.", + "properties": { + "apps": { + "description": "The names of the simulation engines that can use this pseudopotential, e.g. espresso", + "items": { + "type": "string" + }, + "type": "array" + }, + "element": { + "description": "chemical element", + "type": "string" + }, + "exchangeCorrelation": { + "properties": { + "approximation": { + "description": "DFT approximation", + "type": "string" + }, + "functional": { + "description": "Exchange correlation functional", + "type": "string" + }, + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "type": "object" + }, + "filename": { + "description": "filename of pseudopotential file on filesystem", + "type": "string" + }, + "hash": { + "description": "MD5 hash of the pseudopotential file", + "type": "string" + }, + "name": { + "description": "name of the data category", + "enum": [ + "pseudopotential" + ], + "type": "string" + }, + "path": { + "description": "location of the pseudopotential file on filesystem", + "type": "string" + }, + "source": { + "description": "explains where this came from", + "type": "string" + }, + "type": { + "description": "type of pseudization", + "enum": [ + "us", + "nc", + "paw", + "coulomb" + ], + "type": "string" + }, + "valenceConfiguration": { + "description": "contains pseudo orbital information, including orbital names and occupations", + "items": { + "$id": "core/reusable/atomic-orbital", + "properties": { + "angularMomentum": { + "maximum": 3, + "minimum": 0, + "type": "integer" + }, + "occupation": { + "description": "Shell occupation", + "maximum": 14, + "minimum": 0, + "type": "number" + }, + "orbitalIndex": { + "minimum": 1, + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "principalNumber": { + "maximum": 7, + "minimum": 1, + "type": "integer" + } + }, + "title": "atomic orbital schema", + "type": "object" + }, + "type": "array" + }, + "version": { + "description": "explains the version of where this came from", + "type": "string" + } + }, + "required": [ + "element", + "type", + "exchangeCorrelation", + "source", + "path", + "apps" + ], + "title": "File data item" + }, + "slug": { + "enum": [ + "pseudopotential" + ] + }, + "source": { + "description": "TODO: remove in the future", + "properties": { + "info": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "title": "Pseudopotential file" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/psp/file_data_item.json b/py/schema/methods_directory/physical/psp/file_data_item.json new file mode 100644 index 000000000..284a554d2 --- /dev/null +++ b/py/schema/methods_directory/physical/psp/file_data_item.json @@ -0,0 +1,117 @@ +{ + "$id": "methods-directory/physical/psp/file-data-item", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "apps": { + "description": "The names of the simulation engines that can use this pseudopotential, e.g. espresso", + "items": { + "type": "string" + }, + "type": "array" + }, + "element": { + "description": "chemical element", + "type": "string" + }, + "exchangeCorrelation": { + "properties": { + "approximation": { + "description": "DFT approximation", + "type": "string" + }, + "functional": { + "description": "Exchange correlation functional", + "type": "string" + }, + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "type": "object" + }, + "filename": { + "description": "filename of pseudopotential file on filesystem", + "type": "string" + }, + "hash": { + "description": "MD5 hash of the pseudopotential file", + "type": "string" + }, + "name": { + "description": "name of the data category", + "enum": [ + "pseudopotential" + ], + "type": "string" + }, + "path": { + "description": "location of the pseudopotential file on filesystem", + "type": "string" + }, + "source": { + "description": "explains where this came from", + "type": "string" + }, + "type": { + "description": "type of pseudization", + "enum": [ + "us", + "nc", + "paw", + "coulomb" + ], + "type": "string" + }, + "valenceConfiguration": { + "description": "contains pseudo orbital information, including orbital names and occupations", + "items": { + "$id": "core/reusable/atomic-orbital", + "properties": { + "angularMomentum": { + "maximum": 3, + "minimum": 0, + "type": "integer" + }, + "occupation": { + "description": "Shell occupation", + "maximum": 14, + "minimum": 0, + "type": "number" + }, + "orbitalIndex": { + "minimum": 1, + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "principalNumber": { + "maximum": 7, + "minimum": 1, + "type": "integer" + } + }, + "title": "atomic orbital schema", + "type": "object" + }, + "type": "array" + }, + "version": { + "description": "explains the version of where this came from", + "type": "string" + } + }, + "required": [ + "element", + "type", + "exchangeCorrelation", + "source", + "path", + "apps" + ], + "title": "File data item" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/pw.json b/py/schema/methods_directory/physical/pw.json new file mode 100644 index 000000000..a3bc354a2 --- /dev/null +++ b/py/schema/methods_directory/physical/pw.json @@ -0,0 +1,426 @@ +{ + "$id": "methods-directory/physical/pw", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "description": "Approximating the electronic wave function with a plane wave basis", + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/pw", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Plane wave catgeory schema", + "properties": { + "type": { + "enum": [ + "pw" + ] + } + } + } + }, + "required": [ + "categories" + ], + "title": "unit method plane wave" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/smearing.json b/py/schema/methods_directory/physical/smearing.json new file mode 100644 index 000000000..090a4d621 --- /dev/null +++ b/py/schema/methods_directory/physical/smearing.json @@ -0,0 +1,435 @@ +{ + "$id": "methods-directory/physical/smearing", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "description": "Approximating Heaviside step function with smooth function", + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/smearing", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Approximating Heaviside step function with smooth function", + "properties": { + "subtype": { + "enum": [ + "gaussian", + "marzari-vanderbilt", + "methfessel-paxton", + "fermi-dirac" + ] + }, + "type": { + "enum": [ + "smearing" + ] + } + }, + "title": "Smearing methods category schema" + } + }, + "required": [ + "categories" + ], + "title": "unit method smearing" +} \ No newline at end of file diff --git a/py/schema/methods_directory/physical/tetrahedron.json b/py/schema/methods_directory/physical/tetrahedron.json new file mode 100644 index 000000000..e02db8d19 --- /dev/null +++ b/py/schema/methods_directory/physical/tetrahedron.json @@ -0,0 +1,432 @@ +{ + "$id": "methods-directory/physical/tetrahedron", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + } + ], + "properties": { + "categories": { + "$id": "methods-category/physical/qm/wf/tetrahedron", + "allOf": [ + { + "$id": "methods-category/physical/qm/wf", + "allOf": [ + { + "$id": "methods-category/physical/qm", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "description": "Quantum-Mechanical method category schema", + "properties": { + "tier1": { + "enum": [ + "qm" + ] + } + } + } + ], + "description": "Methods related to wave functions", + "properties": { + "tier2": { + "enum": [ + "wf" + ] + } + } + } + ], + "description": "Tetrahedron method for Brillouin zone integration category schema ", + "properties": { + "subtype": { + "enum": [ + "linear", + "optimized", + "bloechl" + ] + }, + "type": { + "enum": [ + "tetrahedron" + ] + } + } + } + }, + "required": [ + "categories" + ], + "title": "unit method tetrahedron" +} \ No newline at end of file diff --git a/py/schema/model.json b/py/schema/model.json new file mode 100644 index 000000000..676b7ee62 --- /dev/null +++ b/py/schema/model.json @@ -0,0 +1,47 @@ +{ + "$id": "model", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": true, + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" +} \ No newline at end of file diff --git a/py/schema/model/categorized_model.json b/py/schema/model/categorized_model.json new file mode 100644 index 000000000..2a4744555 --- /dev/null +++ b/py/schema/model/categorized_model.json @@ -0,0 +1,634 @@ +{ + "$id": "model/categorized-model", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "method": { + "$id": "method/categorized-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "units": { + "items": { + "$id": "method/unit-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Instructive parameters defining the method", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + } + }, + "title": "categorized unit method" + }, + "type": "array" + } + }, + "required": [ + "units" + ], + "title": "categorized method" + } + }, + "required": [ + "method" + ], + "title": "categorized model" +} \ No newline at end of file diff --git a/py/schema/model/mixins/dft/double_hybrid_functional.json b/py/schema/model/mixins/dft/double_hybrid_functional.json new file mode 100644 index 000000000..d04f81d49 --- /dev/null +++ b/py/schema/model/mixins/dft/double_hybrid_functional.json @@ -0,0 +1,14 @@ +{ + "$id": "model/mixins/dft/double-hybrid-functional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "functional": { + "enum": [ + "b2plyp" + ], + "type": "string" + } + }, + "title": "Double hybrid functional mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/dft/enum_options.json b/py/schema/model/mixins/dft/enum_options.json new file mode 100644 index 000000000..2bfd20c37 --- /dev/null +++ b/py/schema/model/mixins/dft/enum_options.json @@ -0,0 +1,30 @@ +{ + "$id": "model/mixins/dft/enum-options", + "doubleHybrid": { + "enum": [ + "b2plyp" + ] + }, + "gga": { + "enum": [ + "pbe", + "pbesol" + ] + }, + "hybrid": { + "enum": [ + "hse06", + "b3lyp" + ] + }, + "lda": { + "enum": [ + "pz" + ] + }, + "mgga": { + "enum": [ + "scan" + ] + } +} \ No newline at end of file diff --git a/py/schema/model/mixins/dft/gga_functional.json b/py/schema/model/mixins/dft/gga_functional.json new file mode 100644 index 000000000..d89fa52ec --- /dev/null +++ b/py/schema/model/mixins/dft/gga_functional.json @@ -0,0 +1,15 @@ +{ + "$id": "model/mixins/dft/gga-functional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "functional": { + "enum": [ + "pbe", + "pbesol" + ], + "type": "string" + } + }, + "title": "GGA functional mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/dft/hybrid_functional.json b/py/schema/model/mixins/dft/hybrid_functional.json new file mode 100644 index 000000000..23ce73eb5 --- /dev/null +++ b/py/schema/model/mixins/dft/hybrid_functional.json @@ -0,0 +1,15 @@ +{ + "$id": "model/mixins/dft/hybrid-functional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "functional": { + "enum": [ + "hse06", + "b3lyp" + ], + "type": "string" + } + }, + "title": "Hybrid functional mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/dft/lda_functional.json b/py/schema/model/mixins/dft/lda_functional.json new file mode 100644 index 000000000..03029fd4a --- /dev/null +++ b/py/schema/model/mixins/dft/lda_functional.json @@ -0,0 +1,14 @@ +{ + "$id": "model/mixins/dft/lda-functional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "functional": { + "enum": [ + "pz" + ], + "type": "string" + } + }, + "title": "LDA functional mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/dft/mgga_functional.json b/py/schema/model/mixins/dft/mgga_functional.json new file mode 100644 index 000000000..faded5d5b --- /dev/null +++ b/py/schema/model/mixins/dft/mgga_functional.json @@ -0,0 +1,14 @@ +{ + "$id": "model/mixins/dft/mgga-functional", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "functional": { + "enum": [ + "scan" + ], + "type": "string" + } + }, + "title": "Meta-GGA functional mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/dispersion_correction.json b/py/schema/model/mixins/dispersion_correction.json new file mode 100644 index 000000000..f3ada3498 --- /dev/null +++ b/py/schema/model/mixins/dispersion_correction.json @@ -0,0 +1,17 @@ +{ + "$id": "model/mixins/dispersion-correction", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/enum_options.json b/py/schema/model/mixins/enum_options.json new file mode 100644 index 000000000..8eadba04a --- /dev/null +++ b/py/schema/model/mixins/enum_options.json @@ -0,0 +1,22 @@ +{ + "$id": "model/mixins/enum-options", + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ] + }, + "hubbardType": { + "enum": [ + "u" + ] + }, + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ] + } +} \ No newline at end of file diff --git a/py/schema/model/mixins/hubbard.json b/py/schema/model/mixins/hubbard.json new file mode 100644 index 000000000..2f7e61d89 --- /dev/null +++ b/py/schema/model/mixins/hubbard.json @@ -0,0 +1,14 @@ +{ + "$id": "model/mixins/hubbard", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "hubbardType": { + "enum": [ + "u" + ], + "type": "string" + } + }, + "title": "Hubbard model mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/spin_orbit_coupling.json b/py/schema/model/mixins/spin_orbit_coupling.json new file mode 100644 index 000000000..8c5ac2e20 --- /dev/null +++ b/py/schema/model/mixins/spin_orbit_coupling.json @@ -0,0 +1,11 @@ +{ + "$id": "model/mixins/spin-orbit-coupling", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/mixins/spin_polarization.json b/py/schema/model/mixins/spin_polarization.json new file mode 100644 index 000000000..6b23e5cb3 --- /dev/null +++ b/py/schema/model/mixins/spin_polarization.json @@ -0,0 +1,15 @@ +{ + "$id": "model/mixins/spin-polarization", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/model/model_parameters.json b/py/schema/model/model_parameters.json new file mode 100644 index 000000000..d8c60dcc1 --- /dev/null +++ b/py/schema/model/model_parameters.json @@ -0,0 +1,131 @@ +{ + "$id": "model/model-parameters", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/mixins/hubbard", + "properties": { + "hubbardType": { + "enum": [ + "u" + ], + "type": "string" + } + }, + "title": "Hubbard model mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + }, + { + "$id": "model/mixins/dispersion-correction", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" + }, + { + "oneOf": [ + { + "$id": "model/mixins/dft/lda-functional", + "properties": { + "functional": { + "enum": [ + "pz" + ], + "type": "string" + } + }, + "title": "LDA functional mixin", + "type": "object" + }, + { + "$id": "model/mixins/dft/gga-functional", + "properties": { + "functional": { + "enum": [ + "pbe", + "pbesol" + ], + "type": "string" + } + }, + "title": "GGA functional mixin", + "type": "object" + }, + { + "$id": "model/mixins/dft/mgga-functional", + "properties": { + "functional": { + "enum": [ + "scan" + ], + "type": "string" + } + }, + "title": "Meta-GGA functional mixin", + "type": "object" + }, + { + "$id": "model/mixins/dft/hybrid-functional", + "properties": { + "functional": { + "enum": [ + "hse06", + "b3lyp" + ], + "type": "string" + } + }, + "title": "Hybrid functional mixin", + "type": "object" + }, + { + "$id": "model/mixins/dft/double-hybrid-functional", + "properties": { + "functional": { + "enum": [ + "b2plyp" + ], + "type": "string" + } + }, + "title": "Double hybrid functional mixin", + "type": "object" + } + ] + } + ], + "title": "ModelParameters" +} \ No newline at end of file diff --git a/py/schema/model/model_without_method.json b/py/schema/model/model_without_method.json new file mode 100644 index 000000000..36fc2ac42 --- /dev/null +++ b/py/schema/model/model_without_method.json @@ -0,0 +1,351 @@ +{ + "$id": "model/model-without-method", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" +} \ No newline at end of file diff --git a/py/schema/models_category/enum_options.json b/py/schema/models_category/enum_options.json new file mode 100644 index 000000000..2cba9ec55 --- /dev/null +++ b/py/schema/models_category/enum_options.json @@ -0,0 +1,13 @@ +{ + "$id": "models-category/enum-options", + "physicsBased": { + "enum": [ + "pb" + ] + }, + "statistical": { + "enum": [ + "st" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/pb.json b/py/schema/models_category/pb.json new file mode 100644 index 000000000..a7eec334e --- /dev/null +++ b/py/schema/models_category/pb.json @@ -0,0 +1,172 @@ +{ + "$id": "models-category/pb", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/enum_options.json b/py/schema/models_category/pb/enum_options.json new file mode 100644 index 000000000..53130a4e5 --- /dev/null +++ b/py/schema/models_category/pb/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "models-category/pb/enum-options", + "quantumMechanical": { + "enum": [ + "qm" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm.json b/py/schema/models_category/pb/qm.json new file mode 100644 index 000000000..b318bcac8 --- /dev/null +++ b/py/schema/models_category/pb/qm.json @@ -0,0 +1,185 @@ +{ + "$id": "models-category/pb/qm", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/abin.json b/py/schema/models_category/pb/qm/abin.json new file mode 100644 index 000000000..db5abb503 --- /dev/null +++ b/py/schema/models_category/pb/qm/abin.json @@ -0,0 +1,198 @@ +{ + "$id": "models-category/pb/qm/abin", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "abin" + ] + } + }, + "title": "Ab initio category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/abin/enum_options.json b/py/schema/models_category/pb/qm/abin/enum_options.json new file mode 100644 index 000000000..499072b09 --- /dev/null +++ b/py/schema/models_category/pb/qm/abin/enum_options.json @@ -0,0 +1,15 @@ +{ + "$id": "models-category/pb/qm/abin/enum-options", + "gwApproximation": { + "enum": [ + "gw" + ] + }, + "gwSubtypes": { + "enum": [ + "g0w0", + "evgw0", + "evgw" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/abin/gw.json b/py/schema/models_category/pb/qm/abin/gw.json new file mode 100644 index 000000000..e18ddcadd --- /dev/null +++ b/py/schema/models_category/pb/qm/abin/gw.json @@ -0,0 +1,218 @@ +{ + "$id": "models-category/pb/qm/abin/gw", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/abin", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "abin" + ] + } + }, + "title": "Ab initio category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "g0w0", + "evgw0", + "evgw" + ] + }, + "type": { + "enum": [ + "gw" + ] + } + }, + "title": "GW category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft.json b/py/schema/models_category/pb/qm/dft.json new file mode 100644 index 000000000..a171d2faf --- /dev/null +++ b/py/schema/models_category/pb/qm/dft.json @@ -0,0 +1,198 @@ +{ + "$id": "models-category/pb/qm/dft", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/enum_options.json b/py/schema/models_category/pb/qm/dft/enum_options.json new file mode 100644 index 000000000..8e6e932d9 --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "models-category/pb/qm/dft/enum-options", + "kohnSham": { + "enum": [ + "ksdft" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft.json b/py/schema/models_category/pb/qm/dft/ksdft.json new file mode 100644 index 000000000..22d0437da --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft.json @@ -0,0 +1,211 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft/double_hybrid.json b/py/schema/models_category/pb/qm/dft/ksdft/double_hybrid.json new file mode 100644 index 000000000..345646f2e --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft/double_hybrid.json @@ -0,0 +1,224 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft/double-hybrid", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "double-hybrid" + ] + } + }, + "title": "DFT double hybrid functional category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft/enum_options.json b/py/schema/models_category/pb/qm/dft/ksdft/enum_options.json new file mode 100644 index 000000000..9a31214af --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft/enum_options.json @@ -0,0 +1,28 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft/enum-options", + "doubleHybrid": { + "enum": [ + "double-hybrid" + ] + }, + "generalizedGradientApproximation": { + "enum": [ + "gga" + ] + }, + "hybrid": { + "enum": [ + "hybrid" + ] + }, + "localDensityApproximation": { + "enum": [ + "lda" + ] + }, + "metaGGA": { + "enum": [ + "mgga" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft/gga.json b/py/schema/models_category/pb/qm/dft/ksdft/gga.json new file mode 100644 index 000000000..1cef057fb --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft/gga.json @@ -0,0 +1,224 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft/gga", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "gga" + ] + } + }, + "title": "DFT GGA functional category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft/hybrid.json b/py/schema/models_category/pb/qm/dft/ksdft/hybrid.json new file mode 100644 index 000000000..fdb685f55 --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft/hybrid.json @@ -0,0 +1,224 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft/hybrid", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "hybrid" + ] + } + }, + "title": "DFT hybrid functional category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft/lda.json b/py/schema/models_category/pb/qm/dft/ksdft/lda.json new file mode 100644 index 000000000..758a96a80 --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft/lda.json @@ -0,0 +1,224 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft/lda", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "lda" + ] + } + }, + "title": "DFT LDA functional category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/dft/ksdft/mgga.json b/py/schema/models_category/pb/qm/dft/ksdft/mgga.json new file mode 100644 index 000000000..9df1eead7 --- /dev/null +++ b/py/schema/models_category/pb/qm/dft/ksdft/mgga.json @@ -0,0 +1,224 @@ +{ + "$id": "models-category/pb/qm/dft/ksdft/mgga", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "mgga" + ] + } + }, + "title": "DFT meta-GGA functional category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/enum_options.json b/py/schema/models_category/pb/qm/enum_options.json new file mode 100644 index 000000000..7c7b90cf1 --- /dev/null +++ b/py/schema/models_category/pb/qm/enum_options.json @@ -0,0 +1,18 @@ +{ + "$id": "models-category/pb/qm/enum-options", + "abInitio": { + "enum": [ + "abin" + ] + }, + "densityFunctional": { + "enum": [ + "dft" + ] + }, + "semiEmpirical": { + "enum": [ + "semp" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/pb/qm/semp.json b/py/schema/models_category/pb/qm/semp.json new file mode 100644 index 000000000..2428883b3 --- /dev/null +++ b/py/schema/models_category/pb/qm/semp.json @@ -0,0 +1,198 @@ +{ + "$id": "models-category/pb/qm/semp", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "semp" + ] + } + }, + "title": "Semi-empirical category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/st.json b/py/schema/models_category/st.json new file mode 100644 index 000000000..f213838fe --- /dev/null +++ b/py/schema/models_category/st.json @@ -0,0 +1,172 @@ +{ + "$id": "models-category/st", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "st" + ] + } + }, + "title": "statistical model category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/st/det.json b/py/schema/models_category/st/det.json new file mode 100644 index 000000000..95dc7b7fa --- /dev/null +++ b/py/schema/models_category/st/det.json @@ -0,0 +1,185 @@ +{ + "$id": "models-category/st/det", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/st", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "st" + ] + } + }, + "title": "statistical model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "det" + ] + } + }, + "title": "deterministic model category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/st/det/enum_options.json b/py/schema/models_category/st/det/enum_options.json new file mode 100644 index 000000000..a916ee3fd --- /dev/null +++ b/py/schema/models_category/st/det/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "models-category/st/det/enum-options", + "machineLearning": { + "enum": [ + "ml" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/st/det/ml.json b/py/schema/models_category/st/det/ml.json new file mode 100644 index 000000000..d9f7615d5 --- /dev/null +++ b/py/schema/models_category/st/det/ml.json @@ -0,0 +1,198 @@ +{ + "$id": "models-category/st/det/ml", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/st/det", + "allOf": [ + { + "$id": "models-category/st", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "st" + ] + } + }, + "title": "statistical model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "det" + ] + } + }, + "title": "deterministic model category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "ml" + ] + } + }, + "title": "machine learning model category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/st/det/ml/enum_options.json b/py/schema/models_category/st/det/ml/enum_options.json new file mode 100644 index 000000000..2acf97c32 --- /dev/null +++ b/py/schema/models_category/st/det/ml/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "models-category/st/det/ml/enum-options", + "regression": { + "enum": [ + "re" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_category/st/det/ml/re.json b/py/schema/models_category/st/det/ml/re.json new file mode 100644 index 000000000..f2e737261 --- /dev/null +++ b/py/schema/models_category/st/det/ml/re.json @@ -0,0 +1,211 @@ +{ + "$id": "models-category/st/det/ml/re", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "models-category/st/det/ml", + "allOf": [ + { + "$id": "models-category/st/det", + "allOf": [ + { + "$id": "models-category/st", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "st" + ] + } + }, + "title": "statistical model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "det" + ] + } + }, + "title": "deterministic model category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "ml" + ] + } + }, + "title": "machine learning model category schema" + } + ], + "properties": { + "type": { + "enum": [ + "re" + ] + } + }, + "title": "regression model category schema" +} \ No newline at end of file diff --git a/py/schema/models_category/st/enum_options.json b/py/schema/models_category/st/enum_options.json new file mode 100644 index 000000000..8fc07f54e --- /dev/null +++ b/py/schema/models_category/st/enum_options.json @@ -0,0 +1,8 @@ +{ + "$id": "models-category/st/enum-options", + "deterministic": { + "enum": [ + "det" + ] + } +} \ No newline at end of file diff --git a/py/schema/models_directory/double_hybrid.json b/py/schema/models_directory/double_hybrid.json new file mode 100644 index 000000000..dab739d94 --- /dev/null +++ b/py/schema/models_directory/double_hybrid.json @@ -0,0 +1,647 @@ +{ + "$id": "models-directory/double-hybrid", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "categories": { + "$id": "models-category/pb/qm/dft/ksdft/double-hybrid", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "double-hybrid" + ] + } + }, + "title": "DFT double hybrid functional category schema" + }, + "parameters": { + "allOf": [ + { + "$id": "model/mixins/dft/double-hybrid-functional", + "properties": { + "functional": { + "enum": [ + "b2plyp" + ], + "type": "string" + } + }, + "title": "Double hybrid functional mixin", + "type": "object" + }, + { + "anyOf": [ + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + }, + { + "$id": "model/mixins/dispersion-correction", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + } + ] + } + ] + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model double hybrid functional" +} \ No newline at end of file diff --git a/py/schema/models_directory/gga.json b/py/schema/models_directory/gga.json new file mode 100644 index 000000000..00ca9c59a --- /dev/null +++ b/py/schema/models_directory/gga.json @@ -0,0 +1,661 @@ +{ + "$id": "models-directory/gga", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "categories": { + "$id": "models-category/pb/qm/dft/ksdft/gga", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "gga" + ] + } + }, + "title": "DFT GGA functional category schema" + }, + "parameters": { + "allOf": [ + { + "$id": "model/mixins/dft/gga-functional", + "properties": { + "functional": { + "enum": [ + "pbe", + "pbesol" + ], + "type": "string" + } + }, + "title": "GGA functional mixin", + "type": "object" + }, + { + "anyOf": [ + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + }, + { + "$id": "model/mixins/dispersion-correction", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + }, + { + "$id": "model/mixins/hubbard", + "properties": { + "hubbardType": { + "enum": [ + "u" + ], + "type": "string" + } + }, + "title": "Hubbard model mixin", + "type": "object" + } + ] + } + ] + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model generalized gradient approximation" +} \ No newline at end of file diff --git a/py/schema/models_directory/gw.json b/py/schema/models_directory/gw.json new file mode 100644 index 000000000..d373ae6c1 --- /dev/null +++ b/py/schema/models_directory/gw.json @@ -0,0 +1,666 @@ +{ + "$id": "models-directory/gw", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "categories": { + "$id": "models-category/pb/qm/abin/gw", + "allOf": [ + { + "$id": "models-category/pb/qm/abin", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "abin" + ] + } + }, + "title": "Ab initio category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "g0w0", + "evgw0", + "evgw" + ] + }, + "type": { + "enum": [ + "gw" + ] + } + }, + "title": "GW category schema" + }, + "parameters": { + "allOf": [ + { + "properties": { + "require": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + } + }, + { + "oneOf": [ + { + "$id": "model/mixins/dft/lda-functional", + "properties": { + "functional": { + "enum": [ + "pz" + ], + "type": "string" + } + }, + "title": "LDA functional mixin", + "type": "object" + }, + { + "$id": "model/mixins/dft/gga-functional", + "properties": { + "functional": { + "enum": [ + "pbe", + "pbesol" + ], + "type": "string" + } + }, + "title": "GGA functional mixin", + "type": "object" + }, + { + "$id": "model/mixins/dft/mgga-functional", + "properties": { + "functional": { + "enum": [ + "scan" + ], + "type": "string" + } + }, + "title": "Meta-GGA functional mixin", + "type": "object" + } + ] + }, + { + "anyOf": [ + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + } + ] + } + ] + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model gw approximation" +} \ No newline at end of file diff --git a/py/schema/models_directory/hybrid.json b/py/schema/models_directory/hybrid.json new file mode 100644 index 000000000..6f7dbc49c --- /dev/null +++ b/py/schema/models_directory/hybrid.json @@ -0,0 +1,661 @@ +{ + "$id": "models-directory/hybrid", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "categories": { + "$id": "models-category/pb/qm/dft/ksdft/hybrid", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "hybrid" + ] + } + }, + "title": "DFT hybrid functional category schema" + }, + "parameters": { + "allOf": [ + { + "$id": "model/mixins/dft/hybrid-functional", + "properties": { + "functional": { + "enum": [ + "hse06", + "b3lyp" + ], + "type": "string" + } + }, + "title": "Hybrid functional mixin", + "type": "object" + }, + { + "anyOf": [ + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + }, + { + "$id": "model/mixins/dispersion-correction", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + }, + { + "$id": "model/mixins/hubbard", + "properties": { + "hubbardType": { + "enum": [ + "u" + ], + "type": "string" + } + }, + "title": "Hubbard model mixin", + "type": "object" + } + ] + } + ] + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model hybrid functional" +} \ No newline at end of file diff --git a/py/schema/models_directory/lda.json b/py/schema/models_directory/lda.json new file mode 100644 index 000000000..74301eb0d --- /dev/null +++ b/py/schema/models_directory/lda.json @@ -0,0 +1,660 @@ +{ + "$id": "models-directory/lda", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "categories": { + "$id": "models-category/pb/qm/dft/ksdft/lda", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "lda" + ] + } + }, + "title": "DFT LDA functional category schema" + }, + "parameters": { + "allOf": [ + { + "$id": "model/mixins/dft/lda-functional", + "properties": { + "functional": { + "enum": [ + "pz" + ], + "type": "string" + } + }, + "title": "LDA functional mixin", + "type": "object" + }, + { + "anyOf": [ + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + }, + { + "$id": "model/mixins/dispersion-correction", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + }, + { + "$id": "model/mixins/hubbard", + "properties": { + "hubbardType": { + "enum": [ + "u" + ], + "type": "string" + } + }, + "title": "Hubbard model mixin", + "type": "object" + } + ] + } + ] + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model local density approximation" +} \ No newline at end of file diff --git a/py/schema/models_directory/legacy/dft.json b/py/schema/models_directory/legacy/dft.json new file mode 100644 index 000000000..51d171e5d --- /dev/null +++ b/py/schema/models_directory/legacy/dft.json @@ -0,0 +1,164 @@ +{ + "$id": "models-directory/legacy/dft", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model", + "additionalProperties": true, + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" + }, + { + "oneOf": [ + { + "properties": { + "functional": { + "enum": [ + "pz", + "pw", + "vwn", + "other" + ] + }, + "subtype": { + "enum": [ + "lda" + ] + } + } + }, + { + "properties": { + "functional": { + "enum": [ + "pbe", + "pbesol", + "pw91", + "other" + ] + }, + "subtype": { + "enum": [ + "gga" + ] + } + } + }, + { + "properties": { + "functional": { + "enum": [ + "b3lyp", + "hse06" + ] + }, + "subtype": { + "enum": [ + "hybrid" + ] + } + } + } + ] + } + ], + "definitions": { + "gga": { + "properties": { + "functional": { + "enum": [ + "pbe", + "pbesol", + "pw91", + "other" + ] + }, + "subtype": { + "enum": [ + "gga" + ] + } + } + }, + "hybrid": { + "properties": { + "functional": { + "enum": [ + "b3lyp", + "hse06" + ] + }, + "subtype": { + "enum": [ + "hybrid" + ] + } + } + }, + "lda": { + "properties": { + "functional": { + "enum": [ + "pz", + "pw", + "vwn", + "other" + ] + }, + "subtype": { + "enum": [ + "lda" + ] + } + } + } + }, + "properties": { + "type": { + "enum": [ + "dft" + ] + } + }, + "title": "legacy model density functional theory" +} \ No newline at end of file diff --git a/py/schema/models_directory/legacy/ml.json b/py/schema/models_directory/legacy/ml.json new file mode 100644 index 000000000..8a41eedae --- /dev/null +++ b/py/schema/models_directory/legacy/ml.json @@ -0,0 +1,65 @@ +{ + "$id": "models-directory/legacy/ml", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model", + "additionalProperties": true, + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" + } + ], + "properties": { + "subtype": { + "enum": [ + "re" + ] + }, + "type": { + "enum": [ + "ml" + ] + } + }, + "title": "legacy model regression" +} \ No newline at end of file diff --git a/py/schema/models_directory/legacy/unknown.json b/py/schema/models_directory/legacy/unknown.json new file mode 100644 index 000000000..2f3aa036c --- /dev/null +++ b/py/schema/models_directory/legacy/unknown.json @@ -0,0 +1,65 @@ +{ + "$id": "models-directory/legacy/unknown", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model", + "additionalProperties": true, + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" + } + ], + "properties": { + "subtype": { + "enum": [ + "unknown" + ] + }, + "type": { + "enum": [ + "unknown" + ] + } + }, + "title": "legacy model unknown" +} \ No newline at end of file diff --git a/py/schema/models_directory/mgga.json b/py/schema/models_directory/mgga.json new file mode 100644 index 000000000..972905ed6 --- /dev/null +++ b/py/schema/models_directory/mgga.json @@ -0,0 +1,660 @@ +{ + "$id": "models-directory/mgga", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "properties": { + "categories": { + "$id": "models-category/pb/qm/dft/ksdft/mgga", + "allOf": [ + { + "$id": "models-category/pb/qm/dft/ksdft", + "allOf": [ + { + "$id": "models-category/pb/qm/dft", + "allOf": [ + { + "$id": "models-category/pb/qm", + "allOf": [ + { + "$id": "models-category/pb", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "pb" + ] + } + }, + "title": "physics-based model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "qm" + ] + } + }, + "title": "Quantum mechanical category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "dft" + ] + } + }, + "title": "Density functional theory category schema" + } + ], + "properties": { + "type": { + "enum": [ + "ksdft" + ] + } + }, + "title": "Kohn-Sham DFT category schema" + } + ], + "properties": { + "subtype": { + "enum": [ + "mgga" + ] + } + }, + "title": "DFT meta-GGA functional category schema" + }, + "parameters": { + "allOf": [ + { + "$id": "model/mixins/dft/mgga-functional", + "properties": { + "functional": { + "enum": [ + "scan" + ], + "type": "string" + } + }, + "title": "Meta-GGA functional mixin", + "type": "object" + }, + { + "anyOf": [ + { + "$id": "model/mixins/spin-orbit-coupling", + "properties": { + "spinOrbitCoupling": { + "type": "boolean" + } + }, + "title": "Spin-orbit coupling mixin", + "type": "object" + }, + { + "$id": "model/mixins/dispersion-correction", + "properties": { + "dispersionCorrection": { + "enum": [ + "dft-d2", + "dft-d3", + "xdm", + "ts" + ], + "type": "string" + } + }, + "title": "Dispersion correction mixin", + "type": "object" + }, + { + "$id": "model/mixins/spin-polarization", + "properties": { + "spinPolarization": { + "enum": [ + "collinear", + "non-collinear" + ], + "type": "string" + } + }, + "title": "Spin-polarization mixin", + "type": "object" + }, + { + "$id": "model/mixins/hubbard", + "properties": { + "hubbardType": { + "enum": [ + "u" + ], + "type": "string" + } + }, + "title": "Hubbard model mixin", + "type": "object" + } + ] + } + ] + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model meta generalized gradient approximation" +} \ No newline at end of file diff --git a/py/schema/models_directory/re.json b/py/schema/models_directory/re.json new file mode 100644 index 000000000..b4c78d1c3 --- /dev/null +++ b/py/schema/models_directory/re.json @@ -0,0 +1,577 @@ +{ + "$id": "models-directory/re", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "model/model-without-method", + "allOf": [ + { + "$id": "system/path-entity", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "categories": { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + }, + "parameters": { + "description": "Model parameters defined in-place or via model mixins", + "type": "object" + }, + "reference": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model without method schema (base)" + } + ], + "description": "machine learning model type/subtype schema", + "properties": { + "categories": { + "$id": "models-category/st/det/ml/re", + "allOf": [ + { + "$id": "models-category/st/det/ml", + "allOf": [ + { + "$id": "models-category/st/det", + "allOf": [ + { + "$id": "models-category/st", + "allOf": [ + { + "$id": "core/reusable/categories", + "description": "Used to categorize entities such as models and methods", + "properties": { + "subtype": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier1": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier2": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "tier3": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + }, + "type": { + "$id": "core/primitive/slugified-entry-or-slug", + "description": "contains either object with slugified entry or slug only as a string", + "oneOf": [ + { + "$id": "core/primitive/slugified-entry", + "description": "container for machine- and human-readable identifier", + "properties": { + "name": { + "description": "descriptive human-readable name of entry", + "type": "string" + }, + "slug": { + "description": "machine-readable identifier", + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "title": "slugified entry", + "type": "object" + }, + { + "type": "string" + } + ], + "title": "slugified entry or slug" + } + }, + "title": "categories", + "type": "object" + } + ], + "properties": { + "tier1": { + "enum": [ + "st" + ] + } + }, + "title": "statistical model category schema" + } + ], + "properties": { + "tier2": { + "enum": [ + "det" + ] + } + }, + "title": "deterministic model category schema" + } + ], + "properties": { + "tier3": { + "enum": [ + "ml" + ] + } + }, + "title": "machine learning model category schema" + } + ], + "properties": { + "type": { + "enum": [ + "re" + ] + } + }, + "title": "regression model category schema" + }, + "parameters": { + "type": "object" + } + }, + "required": [ + "categories", + "parameters" + ], + "title": "model regression" +} \ No newline at end of file diff --git a/py/schema/project.json b/py/schema/project.json new file mode 100644 index 000000000..499dc29cb --- /dev/null +++ b/py/schema/project.json @@ -0,0 +1,145 @@ +{ + "$id": "project", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "description": "in-memory entity", + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "clusterBasedChargeRates": { + "description": "charge rates info for project", + "items": { + "properties": { + "hostname": { + "type": "string" + }, + "rate": { + "type": "number" + }, + "timestamp": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "gid": { + "description": "project GID", + "type": "number" + }, + "isExternal": { + "default": false, + "type": "boolean" + } + }, + "title": "project schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/derived_properties.json b/py/schema/properties_directory/derived_properties.json new file mode 100644 index 000000000..4a3d4e329 --- /dev/null +++ b/py/schema/properties_directory/derived_properties.json @@ -0,0 +1,235 @@ +{ + "$id": "properties-directory/derived-properties", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "anyOf": [ + { + "$id": "properties-directory/structural/volume", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "volume" + ] + }, + "units": { + "enum": [ + "angstrom^3" + ] + } + }, + "title": "volume schema" + }, + { + "$id": "properties-directory/structural/density", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "density" + ] + }, + "units": { + "enum": [ + "g/cm^3" + ] + } + }, + "title": "density schema" + }, + { + "$id": "properties-directory/structural/symmetry", + "properties": { + "name": { + "enum": [ + "symmetry" + ] + }, + "pointGroupSymbol": { + "description": "point group symbol in Schoenflies notation", + "type": "string" + }, + "spaceGroupSymbol": { + "description": "space group symbol in Hermann\u2013Mauguin notation", + "type": "string" + }, + "tolerance": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "tolerance used for symmetry calculation", + "properties": { + "units": { + "enum": [ + "angstrom" + ] + } + } + } + }, + "title": "symmetry schema" + }, + { + "$id": "properties-directory/structural/elemental-ratio", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "ration of this element in the compound", + "properties": { + "element": { + "description": "the element this ratio is for", + "type": "string" + }, + "name": { + "enum": [ + "elemental_ratio" + ] + }, + "value": { + "max": 1, + "min": 0, + "type": "number" + } + }, + "title": "elemental-ratio" + }, + { + "$id": "properties-directory/structural/p-norm", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm", + "properties": { + "degree": { + "description": "degree of the dimensionality of the norm", + "type": "integer" + }, + "name": { + "enum": [ + "p-norm" + ] + } + }, + "title": "p_norm" + }, + { + "$id": "properties-directory/structural/inchi", + "allOf": [ + { + "$id": "core/primitive/string", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "inchi" + ] + } + }, + "title": "InChI representation schema" + }, + { + "$id": "properties-directory/structural/inchi-key", + "allOf": [ + { + "$id": "core/primitive/string", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "inchi_key" + ] + } + }, + "title": "InChI key representation schema" + } + ] + }, + "title": "derived properties schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/properties_directory/electronic_configuration.json b/py/schema/properties_directory/electronic_configuration.json new file mode 100644 index 000000000..b785f730a --- /dev/null +++ b/py/schema/properties_directory/electronic_configuration.json @@ -0,0 +1,16 @@ +{ + "$id": "properties-directory/electronic-configuration", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "charge": { + "description": "total charge of the molecular system", + "type": "integer" + }, + "multiplicity": { + "description": "calculated as 2S+1, with S is the total spin angular momentum", + "type": "integer" + } + }, + "title": "electronic configuration schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/elemental/atomic_radius.json b/py/schema/properties_directory/elemental/atomic_radius.json new file mode 100644 index 000000000..53742f7c4 --- /dev/null +++ b/py/schema/properties_directory/elemental/atomic_radius.json @@ -0,0 +1,43 @@ +{ + "$id": "properties-directory/elemental/atomic-radius", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "atomic radius", + "properties": { + "name": { + "enum": [ + "atomic_radius" + ] + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + }, + "title": "atomic radius" +} \ No newline at end of file diff --git a/py/schema/properties_directory/elemental/electronegativity.json b/py/schema/properties_directory/elemental/electronegativity.json new file mode 100644 index 000000000..5d9db6872 --- /dev/null +++ b/py/schema/properties_directory/elemental/electronegativity.json @@ -0,0 +1,28 @@ +{ + "$id": "properties-directory/elemental/electronegativity", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "electronegativity for the element (Pauling scale)", + "properties": { + "name": { + "enum": [ + "electronegativity" + ] + } + }, + "title": "electronegativity" +} \ No newline at end of file diff --git a/py/schema/properties_directory/elemental/ionization_potential.json b/py/schema/properties_directory/elemental/ionization_potential.json new file mode 100644 index 000000000..9d95d6854 --- /dev/null +++ b/py/schema/properties_directory/elemental/ionization_potential.json @@ -0,0 +1,39 @@ +{ + "$id": "properties-directory/elemental/ionization-potential", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "ionization potential for the element", + "properties": { + "name": { + "enum": [ + "ionization_potential" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + }, + "title": "ionization potential" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/average_potential_profile.json b/py/schema/properties_directory/non_scalar/average_potential_profile.json new file mode 100644 index 000000000..31b579ae6 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/average_potential_profile.json @@ -0,0 +1,141 @@ +{ + "$id": "properties-directory/non-scalar/average-potential-profile", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "average_potential_profile" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "z coordinate" + ] + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "energy" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + } + } + }, + "title": "average potential profile schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/band_gaps.json b/py/schema/properties_directory/non_scalar/band_gaps.json new file mode 100644 index 000000000..9620f5c99 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/band_gaps.json @@ -0,0 +1,148 @@ +{ + "$id": "properties-directory/non-scalar/band-gaps", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "contains band gap values", + "properties": { + "eigenvalues": { + "items": { + "properties": { + "eigenvalues": { + "items": { + "properties": { + "energies": { + "type": "array" + }, + "occupations": { + "type": "array" + }, + "spin": { + "type": "number" + } + } + }, + "type": "array" + }, + "kpoint": { + "$id": "core/abstract/point", + "allOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + ], + "title": "point schema" + }, + "weight": { + "type": "number" + } + } + }, + "type": "array" + }, + "name": { + "enum": [ + "band_gaps" + ] + }, + "values": { + "items": { + "$id": "core/reusable/band-gap", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "eigenvalueConduction": { + "description": "eigenvalue at k-point in conduction band", + "type": "number" + }, + "eigenvalueValence": { + "description": "eigenvalue at k-point in valence band", + "type": "number" + }, + "kpointConduction": { + "$id": "core/abstract/point", + "allOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + ], + "description": "kpoint inside conduction band in crystal coordinates", + "title": "point schema" + }, + "kpointValence": { + "$id": "core/abstract/point", + "allOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + ], + "description": "kpoint inside valence band in crystal coordinates", + "title": "point schema" + }, + "spin": { + "type": "number" + }, + "type": { + "enum": [ + "direct", + "indirect" + ], + "type": "string" + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + }, + "required": [ + "type" + ], + "title": "band gap schema" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "band gaps schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/band_structure.json b/py/schema/properties_directory/non_scalar/band_structure.json new file mode 100644 index 000000000..154886880 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/band_structure.json @@ -0,0 +1,152 @@ +{ + "$id": "properties-directory/non-scalar/band-structure", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "band_structure" + ] + }, + "spin": { + "description": "spin of each band", + "items": { + "enum": [ + 0.5, + -0.5 + ], + "type": "number" + }, + "type": "array" + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "kpoints" + ] + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "energy" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + } + } + }, + "title": "band structure schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/charge_density_profile.json b/py/schema/properties_directory/non_scalar/charge_density_profile.json new file mode 100644 index 000000000..5259f30d1 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/charge_density_profile.json @@ -0,0 +1,120 @@ +{ + "$id": "properties-directory/non-scalar/charge-density-profile", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "charge_density_profile" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "z coordinate" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "charge density" + ] + }, + "units": { + "enum": [ + "e/A" + ] + } + } + } + }, + "title": "charge density profile schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/density_of_states.json b/py/schema/properties_directory/non_scalar/density_of_states.json new file mode 100644 index 000000000..718afbd37 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/density_of_states.json @@ -0,0 +1,160 @@ +{ + "$id": "properties-directory/non-scalar/density-of-states", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "legend": { + "items": { + "properties": { + "electronicState": { + "description": "electronic character and shell of PDOS, such as `1s` or `s`, or `total`", + "pattern": "^([1-5]{1})?(s|p|d|f|g).*$", + "type": "string" + }, + "element": { + "description": "chemical element", + "type": "string" + }, + "index": { + "description": "index inside sub-array of atoms of the same element type", + "type": "integer" + }, + "spin": { + "description": "spin of the electronic state", + "enum": [ + 0.5, + -0.5 + ], + "type": "number" + } + }, + "type": "object" + } + }, + "name": { + "enum": [ + "density_of_states" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "energy" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "density of states" + ] + }, + "units": { + "enum": [ + "states/unitcell" + ] + } + } + } + }, + "title": "density of states schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/dielectric_tensor.json b/py/schema/properties_directory/non_scalar/dielectric_tensor.json new file mode 100644 index 000000000..59af7e6f1 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/dielectric_tensor.json @@ -0,0 +1,72 @@ +{ + "$id": "properties-directory/non-scalar/dielectric-tensor", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "The real and imaginary parts of the diagonal elements of the dieletric tensor", + "properties": { + "name": { + "enum": [ + "dielectric_tensor" + ] + }, + "values": { + "items": { + "$id": "core/reusable/dielectric-tensor-component", + "allOf": [ + { + "$id": "core/reusable/frequency-function-matrix", + "description": "Schema for a function of frequency yielding a nx3 matrix", + "properties": { + "components": { + "description": "Matrix with 3 columns, e.g. x, y, z", + "items": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "type": "array" + }, + "frequencies": { + "description": "Frequencies", + "items": { + "type": "number" + }, + "type": "array" + } + }, + "title": "", + "type": "object" + } + ], + "properties": { + "part": { + "description": "Real or imaginary part of the dielectric tensor component", + "enum": [ + "real", + "imaginary" + ], + "type": "string" + }, + "spin": { + "type": "number" + } + }, + "required": [ + "part", + "frequencies", + "components" + ], + "title": "Dielectric Tensor" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "dielectric tensor property" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/file_content.json b/py/schema/properties_directory/non_scalar/file_content.json new file mode 100644 index 000000000..5e8f6495b --- /dev/null +++ b/py/schema/properties_directory/non_scalar/file_content.json @@ -0,0 +1,83 @@ +{ + "$id": "properties-directory/non-scalar/file-content", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/file-metadata", + "properties": { + "basename": { + "$comment": "isGenerative:true", + "description": "Basename of the file", + "type": "string" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + } + }, + "title": "file_metadata" + } + ], + "properties": { + "filetype": { + "$comment": "isGenerative:true", + "description": "What kind of file this is, e.g. image / text", + "enum": [ + "image", + "text", + "csv" + ], + "type": "string" + }, + "name": { + "enum": [ + "file_content" + ] + }, + "objectData": { + "$id": "core/reusable/object-storage-container-data", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + }, + "required": [ + "CONTAINER", + "NAME", + "PROVIDER", + "REGION" + ], + "title": "Object Storage Container Data" + } + }, + "required": [ + "name", + "objectData" + ], + "title": "file_content" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/hubbard_u.json b/py/schema/properties_directory/non_scalar/hubbard_u.json new file mode 100644 index 000000000..19a18e84a --- /dev/null +++ b/py/schema/properties_directory/non_scalar/hubbard_u.json @@ -0,0 +1,76 @@ +{ + "$id": "properties-directory/non-scalar/hubbard-u", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Hubbard U value in eV", + "properties": { + "name": { + "enum": [ + "hubbard_u" + ] + }, + "units": { + "enum": [ + "eV" + ] + }, + "values": { + "items": { + "allOf": [ + { + "$id": "core/reusable/atomic-data-per-orbital-numeric", + "allOf": [ + { + "$id": "core/reusable/atomic-data/per-orbital", + "description": "Atomic properties per orbital e.g., Hubbard U parameters.", + "properties": { + "atomicSpecies": { + "description": "Example: Co1, Mn", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "id": { + "description": "Site number or index in the lattice", + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + } + }, + "title": "Atomic data per orbital", + "type": "object" + }, + { + "$id": "core/reusable/atomic-data/value-number", + "description": "Numeric value specific to atomic data", + "properties": { + "value": { + "description": "Value related to a specific property, e.g., Hubbard U, V etc.", + "type": "number" + } + }, + "title": "Atomic data numeric properties", + "type": "object" + } + ], + "description": "Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.", + "title": "Atomic data per orbital numeric", + "type": "object" + } + ], + "required": [ + "id", + "atomicSpecies", + "orbitalName", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "Hubbard U parameters" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/hubbard_v.json b/py/schema/properties_directory/non_scalar/hubbard_v.json new file mode 100644 index 000000000..ad4968b88 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/hubbard_v.json @@ -0,0 +1,94 @@ +{ + "$id": "properties-directory/non-scalar/hubbard-v", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Hubbard V value in eV", + "properties": { + "name": { + "enum": [ + "hubbard_v" + ] + }, + "units": { + "enum": [ + "eV" + ] + }, + "values": { + "items": { + "allOf": [ + { + "$id": "core/reusable/atomic-data-per-orbital-pair-numeric", + "allOf": [ + { + "$id": "core/reusable/atomic-data/per-orbital-pair", + "description": "Atomic properties per orbital pair e.g., Hubbard V parameters.", + "properties": { + "atomicSpecies": { + "description": "Example: Co1, Mn", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "atomicSpecies2": { + "description": "Example: Co2, O", + "pattern": "^[a-zA-Z]{1,2}[\\d+]?$", + "type": "string" + }, + "distance": { + "description": "Distance between two sites in angstrom.", + "type": "number" + }, + "id": { + "description": "Site number or index in the lattice", + "type": "integer" + }, + "id2": { + "description": "Site number or index in the lattice of second site", + "type": "integer" + }, + "orbitalName": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + }, + "orbitalName2": { + "pattern": "^[1-7][sSpPdDfF]$", + "type": "string" + } + }, + "title": "Atomic data per orbital pair", + "type": "object" + }, + { + "$id": "core/reusable/atomic-data/value-number", + "description": "Numeric value specific to atomic data", + "properties": { + "value": { + "description": "Value related to a specific property, e.g., Hubbard U, V etc.", + "type": "number" + } + }, + "title": "Atomic data numeric properties", + "type": "object" + } + ], + "description": "Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.", + "title": "Atomic data per orbital pair numeric", + "type": "object" + } + ], + "required": [ + "id", + "id2", + "atomicSpecies", + "atomicSpecies2", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "Hubbard V parameters" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/phonon_dispersions.json b/py/schema/properties_directory/non_scalar/phonon_dispersions.json new file mode 100644 index 000000000..1a0559c67 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/phonon_dispersions.json @@ -0,0 +1,137 @@ +{ + "$id": "properties-directory/non-scalar/phonon-dispersions", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "phonon_dispersions" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "qpoints" + ] + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "frequency" + ] + }, + "units": { + "enum": [ + "cm-1", + "THz", + "meV" + ] + } + } + } + }, + "title": "phonon band structure schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/phonon_dos.json b/py/schema/properties_directory/non_scalar/phonon_dos.json new file mode 100644 index 000000000..61473addd --- /dev/null +++ b/py/schema/properties_directory/non_scalar/phonon_dos.json @@ -0,0 +1,130 @@ +{ + "$id": "properties-directory/non-scalar/phonon-dos", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "phonon_dos" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "frequency" + ] + }, + "units": { + "enum": [ + "cm-1", + "THz", + "meV" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "Phonon DOS" + ] + }, + "units": { + "enum": [ + "states/cm-1", + "states/THz", + "states/meV" + ] + } + } + } + }, + "title": "Phonon density of states schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/potential_profile.json b/py/schema/properties_directory/non_scalar/potential_profile.json new file mode 100644 index 000000000..678caf69b --- /dev/null +++ b/py/schema/properties_directory/non_scalar/potential_profile.json @@ -0,0 +1,126 @@ +{ + "$id": "properties-directory/non-scalar/potential-profile", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "potential_profile" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "z coordinate" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "energy" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + } + } + }, + "title": "potential profile schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/reaction_energy_profile.json b/py/schema/properties_directory/non_scalar/reaction_energy_profile.json new file mode 100644 index 000000000..6d8380e75 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/reaction_energy_profile.json @@ -0,0 +1,126 @@ +{ + "$id": "properties-directory/non-scalar/reaction-energy-profile", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "reaction_energy_profile" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "reaction coordinate" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "energy" + ] + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + } + } + }, + "title": "reaction energy profile schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/stress_tensor.json b/py/schema/properties_directory/non_scalar/stress_tensor.json new file mode 100644 index 000000000..ddf6ddf82 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/stress_tensor.json @@ -0,0 +1,35 @@ +{ + "$id": "properties-directory/non-scalar/stress-tensor", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "enum": [ + "stress_tensor" + ] + }, + "units": { + "enum": [ + "kbar", + "pa" + ] + }, + "value": { + "$id": "core/abstract/3d-tensor", + "items": { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "maxItems": 3, + "minItems": 3, + "title": "3 dimensional tensor schema", + "type": "array" + } + }, + "title": "stress tensor schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/total_energy_contributions.json b/py/schema/properties_directory/non_scalar/total_energy_contributions.json new file mode 100644 index 000000000..115897324 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/total_energy_contributions.json @@ -0,0 +1,349 @@ +{ + "$id": "properties-directory/non-scalar/total-energy-contributions", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "PAWDoubleCounting2": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "double counting correction 2", + "properties": { + "name": { + "enum": [ + "PAW_double-counting_correction_2" + ] + } + } + }, + "PAWDoubleCounting3": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "double counting correction 3", + "properties": { + "name": { + "enum": [ + "PAW_double-counting_correction_3" + ] + } + } + }, + "alphaZ": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "divergent electrostatic ion interaction in compensating electron gas", + "properties": { + "name": { + "enum": [ + "alphaZ" + ] + } + } + }, + "atomicEnergy": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "kinetic energy of wavefunctions in the atomic limit", + "properties": { + "name": { + "enum": [ + "atomic_energy" + ] + } + } + }, + "eigenvalues": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "sum of one electron energies of kinetic, electrostatic, and exchange correlation", + "properties": { + "name": { + "enum": [ + "eigenvalues" + ] + } + } + }, + "ewald": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "summation of interaction energies at long length scales due to coloumbic interactions", + "properties": { + "name": { + "enum": [ + "ewald" + ] + } + } + }, + "exchange": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "exchange energy", + "properties": { + "name": { + "enum": [ + "exchange" + ] + } + } + }, + "exchangeCorrelation": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "exchange and correlation energy per particle", + "properties": { + "name": { + "enum": [ + "exchange_correlation" + ] + } + } + }, + "harrisFoulkes": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "non self-consitent energy based on an input charge density", + "properties": { + "name": { + "enum": [ + "harris_foulkes" + ] + } + } + }, + "hartree": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "energy due to coulomb potential", + "properties": { + "name": { + "enum": [ + "hartree" + ] + } + } + }, + "hartreeFock": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "hartree-fock contribution", + "properties": { + "name": { + "enum": [ + "hartree_fock" + ] + } + } + }, + "name": { + "enum": [ + "total_energy_contributions" + ] + }, + "oneElectron": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "kinetic + pseudopotential energy", + "properties": { + "name": { + "enum": [ + "one_electron" + ] + } + } + }, + "temperatureEntropy": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "product of temperature and configurational entropy", + "properties": { + "name": { + "enum": [ + "temperature_entropy" + ] + } + } + }, + "units": { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + } + }, + "title": "total energy contributions schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/non_scalar/vibrational_spectrum.json b/py/schema/properties_directory/non_scalar/vibrational_spectrum.json new file mode 100644 index 000000000..37851f893 --- /dev/null +++ b/py/schema/properties_directory/non_scalar/vibrational_spectrum.json @@ -0,0 +1,134 @@ +{ + "$id": "properties-directory/non-scalar/vibrational-spectrum", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/2d-plot", + "allOf": [ + { + "$id": "core/abstract/2d-data", + "properties": { + "xDataArray": { + "description": "array containing values of x Axis", + "type": "array" + }, + "yDataSeries": { + "$id": "core/primitive/1d-data-series", + "items": { + "items": { + "type": [ + "number", + "string" + ] + }, + "minItems": 1, + "type": "array" + }, + "title": "1 dimension data series schema", + "type": "array" + } + }, + "required": [ + "xDataArray", + "yDataSeries" + ], + "title": "2 dimension data schema", + "type": "object" + } + ], + "properties": { + "legend": { + "description": "Legend of y Axis data series", + "minItems": 1, + "type": "array" + }, + "xAxis": { + "$id": "core/primitive/axis", + "description": "x Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + }, + "yAxis": { + "$id": "core/primitive/axis", + "description": "y Axis object", + "properties": { + "label": { + "description": "label of an axis object", + "type": "string" + }, + "units": { + "description": "units for an axis", + "type": "string" + } + }, + "required": [ + "label" + ], + "title": "axis schema" + } + }, + "required": [ + "xAxis", + "yAxis" + ], + "title": "2 dimension plot schema" + } + ], + "properties": { + "name": { + "enum": [ + "vibrational_spectrum" + ] + }, + "xAxis": { + "properties": { + "label": { + "enum": [ + "frequency", + "wavenumber" + ] + }, + "units": { + "enum": [ + "cm-1", + "THz", + "meV" + ] + } + } + }, + "yAxis": { + "properties": { + "label": { + "enum": [ + "Intensity", + "Absorbance", + "Absorption coefficient" + ] + }, + "units": { + "enum": [ + "(debye/angstrom)^2", + "km/mol", + "m/mol", + "a.u." + ] + } + } + } + }, + "title": "Vibrational spectrum schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/electron_affinity.json b/py/schema/properties_directory/scalar/electron_affinity.json new file mode 100644 index 000000000..e0434e465 --- /dev/null +++ b/py/schema/properties_directory/scalar/electron_affinity.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/electron-affinity", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "electron_affinity" + ] + } + }, + "title": "electron affinity schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/fermi_energy.json b/py/schema/properties_directory/scalar/fermi_energy.json new file mode 100644 index 000000000..9a3b71a97 --- /dev/null +++ b/py/schema/properties_directory/scalar/fermi_energy.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/fermi-energy", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "fermi_energy" + ] + } + }, + "title": "fermi energy schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/formation_energy.json b/py/schema/properties_directory/scalar/formation_energy.json new file mode 100644 index 000000000..347399f08 --- /dev/null +++ b/py/schema/properties_directory/scalar/formation_energy.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/formation-energy", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "formation_energy" + ] + } + }, + "title": "formation energy schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/ionization_potential.json b/py/schema/properties_directory/scalar/ionization_potential.json new file mode 100644 index 000000000..10cc02134 --- /dev/null +++ b/py/schema/properties_directory/scalar/ionization_potential.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/ionization-potential", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "ionization_potential" + ] + } + }, + "title": "ionization potential schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/pressure.json b/py/schema/properties_directory/scalar/pressure.json new file mode 100644 index 000000000..2df514378 --- /dev/null +++ b/py/schema/properties_directory/scalar/pressure.json @@ -0,0 +1,34 @@ +{ + "$id": "properties-directory/scalar/pressure", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "average pressure in unit cell", + "properties": { + "name": { + "enum": [ + "pressure" + ] + }, + "units": { + "enum": [ + "kbar", + "pa" + ] + } + }, + "title": "pressure" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/reaction_energy_barrier.json b/py/schema/properties_directory/scalar/reaction_energy_barrier.json new file mode 100644 index 000000000..818c68923 --- /dev/null +++ b/py/schema/properties_directory/scalar/reaction_energy_barrier.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/reaction-energy-barrier", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "reaction_energy_barrier" + ] + } + }, + "title": "reaction energy barrier schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/surface_energy.json b/py/schema/properties_directory/scalar/surface_energy.json new file mode 100644 index 000000000..d6e36e9aa --- /dev/null +++ b/py/schema/properties_directory/scalar/surface_energy.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/surface-energy", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "surface_energy" + ] + } + }, + "title": "surface energy schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/total_energy.json b/py/schema/properties_directory/scalar/total_energy.json new file mode 100644 index 000000000..10ff67614 --- /dev/null +++ b/py/schema/properties_directory/scalar/total_energy.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/total-energy", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "total_energy" + ] + } + }, + "title": "total energy schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/total_force.json b/py/schema/properties_directory/scalar/total_force.json new file mode 100644 index 000000000..aeb39d882 --- /dev/null +++ b/py/schema/properties_directory/scalar/total_force.json @@ -0,0 +1,37 @@ +{ + "$id": "properties-directory/scalar/total-force", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "total_force" + ] + }, + "units": { + "enum": [ + "eV/bohr", + "eV/angstrom", + "rydberg/a.u.", + "newton", + "kg*m/s^2", + "eV/a.u." + ] + } + }, + "title": "total forces schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/valence_band_offset.json b/py/schema/properties_directory/scalar/valence_band_offset.json new file mode 100644 index 000000000..763083b5f --- /dev/null +++ b/py/schema/properties_directory/scalar/valence_band_offset.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/valence-band-offset", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "valence_band_offset" + ] + } + }, + "title": "valence band offset schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/scalar/zero_point_energy.json b/py/schema/properties_directory/scalar/zero_point_energy.json new file mode 100644 index 000000000..3866e4f30 --- /dev/null +++ b/py/schema/properties_directory/scalar/zero_point_energy.json @@ -0,0 +1,62 @@ +{ + "$id": "properties-directory/scalar/zero-point-energy", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/reusable/energy", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "type": "string" + }, + "units": { + "anyOf": [ + { + "enum": [ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "rydberg", + "eV/atom" + ] + }, + { + "enum": [ + "eV/A^2" + ] + } + ] + } + }, + "required": [ + "name", + "units" + ], + "title": "energy schema" + } + ], + "properties": { + "name": { + "enum": [ + "zero_point_energy" + ] + } + }, + "title": "zero point energy schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/atomic_forces.json b/py/schema/properties_directory/structural/atomic_forces.json new file mode 100644 index 000000000..eafd99732 --- /dev/null +++ b/py/schema/properties_directory/structural/atomic_forces.json @@ -0,0 +1,75 @@ +{ + "$id": "properties-directory/structural/atomic-forces", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "coordinates of atoms by ids, vector, unitless", + "properties": { + "name": { + "enum": [ + "atomic_forces" + ] + }, + "units": { + "enum": [ + "eV/bohr", + "eV/angstrom", + "rydberg/a.u.", + "newton", + "kg*m/s^2", + "eV/a.u." + ] + }, + "values": { + "$id": "core/reusable/atomic-vectors", + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + } + }, + "title": "atomic vectors schema" + } + }, + "title": "atomic forces" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/basis.json b/py/schema/properties_directory/structural/basis.json new file mode 100644 index 000000000..2d90a3264 --- /dev/null +++ b/py/schema/properties_directory/structural/basis.json @@ -0,0 +1,131 @@ +{ + "$id": "properties-directory/structural/basis", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "bonds": { + "$id": "properties-directory/structural/basis/bonds", + "items": { + "properties": { + "atomPair": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "description": "indices of the two connected atoms", + "maxItems": 2, + "minItems": 2 + }, + "bondType": { + "enum": [ + "single", + "double", + "triple", + "quadruple", + "aromatic", + "tautomeric", + "dative", + "other" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": "bonds schema", + "type": "array", + "uniqueItems": true + }, + "coordinates": { + "items": { + "$id": "properties-directory/structural/basis/atomic-coordinate", + "description": "coordinates of atoms by ids, vector, unitless", + "properties": { + "id": { + "type": "number" + }, + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + }, + "title": "atomic coordinate" + }, + "type": "array" + }, + "elements": { + "items": { + "$id": "properties-directory/structural/basis/atomic-element", + "description": "elements of atoms by ids, string, unitless", + "properties": { + "id": { + "type": "number" + }, + "occurrence": { + "description": "Occurrence is for fractional occupations", + "type": "number" + }, + "oxidationState": { + "type": "number" + }, + "value": { + "type": "string" + } + }, + "required": [ + "id", + "value" + ], + "title": "atomic elements" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "units": { + "type": "string" + } + }, + "required": [ + "elements", + "coordinates" + ], + "title": "basis schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/basis/atomic_constraints.json b/py/schema/properties_directory/structural/basis/atomic_constraints.json new file mode 100644 index 000000000..6d9cef6d3 --- /dev/null +++ b/py/schema/properties_directory/structural/basis/atomic_constraints.json @@ -0,0 +1,65 @@ +{ + "$id": "properties-directory/structural/basis/atomic-constraints", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "atomic constraints schema", + "properties": { + "name": { + "enum": [ + "atomic_constraints" + ] + }, + "values": { + "$id": "core/reusable/atomic-vectors", + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + } + }, + "title": "atomic vectors schema" + } + }, + "title": "atomic constraints" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/basis/atomic_coordinate.json b/py/schema/properties_directory/structural/basis/atomic_coordinate.json new file mode 100644 index 000000000..5d88a49a6 --- /dev/null +++ b/py/schema/properties_directory/structural/basis/atomic_coordinate.json @@ -0,0 +1,37 @@ +{ + "$id": "properties-directory/structural/basis/atomic-coordinate", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "coordinates of atoms by ids, vector, unitless", + "properties": { + "id": { + "type": "number" + }, + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + }, + "title": "atomic coordinate" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/basis/atomic_coordinates.json b/py/schema/properties_directory/structural/basis/atomic_coordinates.json new file mode 100644 index 000000000..4863abfc3 --- /dev/null +++ b/py/schema/properties_directory/structural/basis/atomic_coordinates.json @@ -0,0 +1,66 @@ +{ + "$id": "properties-directory/structural/basis/atomic-coordinates", + "description": "coordinates of atoms by ids, vector, unitless", + "properties": { + "name": { + "enum": [ + "atomic_coordinates" + ] + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + }, + "values": { + "items": { + "$id": "properties-directory/structural/basis/atomic-coordinate", + "description": "coordinates of atoms by ids, vector, unitless", + "properties": { + "id": { + "type": "number" + }, + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + }, + "title": "atomic coordinate" + }, + "type": "array" + } + }, + "title": "atomic coordinates" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/basis/atomic_element.json b/py/schema/properties_directory/structural/basis/atomic_element.json new file mode 100644 index 000000000..d7946537c --- /dev/null +++ b/py/schema/properties_directory/structural/basis/atomic_element.json @@ -0,0 +1,25 @@ +{ + "$id": "properties-directory/structural/basis/atomic-element", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "elements of atoms by ids, string, unitless", + "properties": { + "id": { + "type": "number" + }, + "occurrence": { + "description": "Occurrence is for fractional occupations", + "type": "number" + }, + "oxidationState": { + "type": "number" + }, + "value": { + "type": "string" + } + }, + "required": [ + "id", + "value" + ], + "title": "atomic elements" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/basis/bonds.json b/py/schema/properties_directory/structural/basis/bonds.json new file mode 100644 index 000000000..9ca166f76 --- /dev/null +++ b/py/schema/properties_directory/structural/basis/bonds.json @@ -0,0 +1,48 @@ +{ + "$id": "properties-directory/structural/basis/bonds", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "properties": { + "atomPair": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "description": "indices of the two connected atoms", + "maxItems": 2, + "minItems": 2 + }, + "bondType": { + "enum": [ + "single", + "double", + "triple", + "quadruple", + "aromatic", + "tautomeric", + "dative", + "other" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": "bonds schema", + "type": "array", + "uniqueItems": true +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/density.json b/py/schema/properties_directory/structural/density.json new file mode 100644 index 000000000..840a98b66 --- /dev/null +++ b/py/schema/properties_directory/structural/density.json @@ -0,0 +1,32 @@ +{ + "$id": "properties-directory/structural/density", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "density" + ] + }, + "units": { + "enum": [ + "g/cm^3" + ] + } + }, + "title": "density schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/elemental_ratio.json b/py/schema/properties_directory/structural/elemental_ratio.json new file mode 100644 index 000000000..833e50b16 --- /dev/null +++ b/py/schema/properties_directory/structural/elemental_ratio.json @@ -0,0 +1,37 @@ +{ + "$id": "properties-directory/structural/elemental-ratio", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "ration of this element in the compound", + "properties": { + "element": { + "description": "the element this ratio is for", + "type": "string" + }, + "name": { + "enum": [ + "elemental_ratio" + ] + }, + "value": { + "max": 1, + "min": 0, + "type": "number" + } + }, + "title": "elemental-ratio" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/inchi.json b/py/schema/properties_directory/structural/inchi.json new file mode 100644 index 000000000..d43789d7e --- /dev/null +++ b/py/schema/properties_directory/structural/inchi.json @@ -0,0 +1,27 @@ +{ + "$id": "properties-directory/structural/inchi", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/string", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "inchi" + ] + } + }, + "title": "InChI representation schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/inchi_key.json b/py/schema/properties_directory/structural/inchi_key.json new file mode 100644 index 000000000..847df1975 --- /dev/null +++ b/py/schema/properties_directory/structural/inchi_key.json @@ -0,0 +1,27 @@ +{ + "$id": "properties-directory/structural/inchi-key", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/string", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "title": "PrimitiveString", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "inchi_key" + ] + } + }, + "title": "InChI key representation schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/lattice.json b/py/schema/properties_directory/structural/lattice.json new file mode 100644 index 000000000..bb89c335a --- /dev/null +++ b/py/schema/properties_directory/structural/lattice.json @@ -0,0 +1,183 @@ +{ + "$id": "properties-directory/structural/lattice", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "properties": { + "vectors": { + "$id": "properties-directory/structural/lattice/lattice-vectors", + "allOf": [ + { + "$id": "core/abstract/3d-vector-basis", + "properties": { + "a": { + "$id": "core/primitive/array-of-3-numbers", + "description": "first vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "b": { + "$id": "core/primitive/array-of-3-numbers", + "description": "second vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "c": { + "$id": "core/primitive/array-of-3-numbers", + "description": "third vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "required": [ + "a", + "b", + "c" + ], + "title": "3 dimensional vector basis", + "type": "object" + } + ], + "properties": { + "alat": { + "default": 1, + "description": "lattice parameter for fractional coordinates", + "type": "number" + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + }, + "title": "lattice explicit unit" + } + } + }, + { + "$id": "properties-directory/structural/lattice/lattice-bravais", + "allOf": [ + { + "$id": "core/primitive/3d-lattice", + "properties": { + "a": { + "description": "length of the first lattice vector", + "type": "number" + }, + "alpha": { + "description": "angle between first and second lattice vector", + "type": "number" + }, + "b": { + "description": "length of the second lattice vector", + "type": "number" + }, + "beta": { + "description": "angle between second and third lattice vector", + "type": "number" + }, + "c": { + "description": "length of the third lattice vector", + "type": "number" + }, + "gamma": { + "description": "angle between first and third lattice vector", + "type": "number" + } + }, + "required": [ + "a", + "b", + "c", + "alpha", + "beta", + "gamma" + ], + "title": "3 dimensional lattice schema", + "type": "object" + } + ], + "properties": { + "type": { + "$id": "properties-directory/structural/lattice/type-enum", + "description": "Bravais lattice type in short notation", + "enum": [ + "CUB", + "BCC", + "FCC", + "TET", + "MCL", + "ORC", + "ORCC", + "ORCF", + "ORCI", + "HEX", + "BCT", + "TRI", + "MCLC", + "RHL" + ], + "title": "lattice type schema", + "type": "string" + }, + "units": { + "properties": { + "angle": { + "enum": [ + "degree", + "radian" + ], + "type": "string" + }, + "length": { + "enum": [ + "angstrom", + "bohr" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "type" + ], + "title": "lattice implicit schema" + } + ], + "properties": { + "name": { + "enum": [ + "lattice" + ] + } + }, + "title": "lattice schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/lattice/lattice_bravais.json b/py/schema/properties_directory/structural/lattice/lattice_bravais.json new file mode 100644 index 000000000..a3a268bc9 --- /dev/null +++ b/py/schema/properties_directory/structural/lattice/lattice_bravais.json @@ -0,0 +1,92 @@ +{ + "$id": "properties-directory/structural/lattice/lattice-bravais", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/3d-lattice", + "properties": { + "a": { + "description": "length of the first lattice vector", + "type": "number" + }, + "alpha": { + "description": "angle between first and second lattice vector", + "type": "number" + }, + "b": { + "description": "length of the second lattice vector", + "type": "number" + }, + "beta": { + "description": "angle between second and third lattice vector", + "type": "number" + }, + "c": { + "description": "length of the third lattice vector", + "type": "number" + }, + "gamma": { + "description": "angle between first and third lattice vector", + "type": "number" + } + }, + "required": [ + "a", + "b", + "c", + "alpha", + "beta", + "gamma" + ], + "title": "3 dimensional lattice schema", + "type": "object" + } + ], + "properties": { + "type": { + "$id": "properties-directory/structural/lattice/type-enum", + "description": "Bravais lattice type in short notation", + "enum": [ + "CUB", + "BCC", + "FCC", + "TET", + "MCL", + "ORC", + "ORCC", + "ORCF", + "ORCI", + "HEX", + "BCT", + "TRI", + "MCLC", + "RHL" + ], + "title": "lattice type schema", + "type": "string" + }, + "units": { + "properties": { + "angle": { + "enum": [ + "degree", + "radian" + ], + "type": "string" + }, + "length": { + "enum": [ + "angstrom", + "bohr" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "type" + ], + "title": "lattice implicit schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/lattice/lattice_vectors.json b/py/schema/properties_directory/structural/lattice/lattice_vectors.json new file mode 100644 index 000000000..3f6a6ad05 --- /dev/null +++ b/py/schema/properties_directory/structural/lattice/lattice_vectors.json @@ -0,0 +1,74 @@ +{ + "$id": "properties-directory/structural/lattice/lattice-vectors", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/abstract/3d-vector-basis", + "properties": { + "a": { + "$id": "core/primitive/array-of-3-numbers", + "description": "first vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "b": { + "$id": "core/primitive/array-of-3-numbers", + "description": "second vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + "c": { + "$id": "core/primitive/array-of-3-numbers", + "description": "third vector", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + } + }, + "required": [ + "a", + "b", + "c" + ], + "title": "3 dimensional vector basis", + "type": "object" + } + ], + "properties": { + "alat": { + "default": 1, + "description": "lattice parameter for fractional coordinates", + "type": "number" + }, + "units": { + "enum": [ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u.", + "bohr", + "fractional", + "crystal", + "cartesian", + "alat" + ] + } + }, + "title": "lattice explicit unit" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/lattice/type_enum.json b/py/schema/properties_directory/structural/lattice/type_enum.json new file mode 100644 index 000000000..3a2bf9668 --- /dev/null +++ b/py/schema/properties_directory/structural/lattice/type_enum.json @@ -0,0 +1,22 @@ +{ + "$id": "properties-directory/structural/lattice/type-enum", + "$schema": "http://json-schema.org/draft-04/schema#", + "enum": [ + "CUB", + "BCC", + "FCC", + "TET", + "MCL", + "ORC", + "ORCC", + "ORCF", + "ORCI", + "HEX", + "BCT", + "TRI", + "MCLC", + "RHL" + ], + "title": "lattice type schema", + "type": "string" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/lattice/type_extended_enum.json b/py/schema/properties_directory/structural/lattice/type_extended_enum.json new file mode 100644 index 000000000..3c24f918c --- /dev/null +++ b/py/schema/properties_directory/structural/lattice/type_extended_enum.json @@ -0,0 +1,32 @@ +{ + "$id": "properties-directory/structural/lattice/type-extended-enum", + "$schema": "http://json-schema.org/draft-04/schema#", + "enum": [ + "BCC", + "BCT-1", + "BCT-2", + "CUB", + "FCC", + "HEX", + "MCL", + "MCLC-1", + "MCLC-2", + "MCLC-3", + "MCLC-4", + "MCLC-5", + "ORC", + "ORCC", + "ORCF-1", + "ORCF-2", + "ORCF-3", + "ORCI", + "RHL-1", + "RHL-2", + "TET", + "TRI_1a", + "TRI_2a", + "TRI_1b" + ], + "title": "lattice type extended schema", + "type": "string" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/magnetic_moments.json b/py/schema/properties_directory/structural/magnetic_moments.json new file mode 100644 index 000000000..68f1538cf --- /dev/null +++ b/py/schema/properties_directory/structural/magnetic_moments.json @@ -0,0 +1,70 @@ +{ + "$id": "properties-directory/structural/magnetic-moments", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "magnetization on each ion", + "properties": { + "name": { + "enum": [ + "magnetic_moments" + ] + }, + "units": { + "enum": [ + "uB" + ] + }, + "values": { + "$id": "core/reusable/atomic-vectors", + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "value": { + "$id": "core/abstract/vector", + "oneOf": [ + { + "$id": "core/primitive/array-of-3-numbers", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 number elements schema", + "type": "array" + }, + { + "$id": "core/primitive/array-of-3-booleans", + "items": { + "type": "boolean" + }, + "maxItems": 3, + "minItems": 3, + "title": "array of 3 boolean elements schema", + "type": "array" + } + ], + "title": "vector schema" + } + } + }, + "title": "atomic vectors schema" + } + }, + "title": "magnetic moments" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/molecular_pattern.json b/py/schema/properties_directory/structural/molecular_pattern.json new file mode 100644 index 000000000..7eb8c6be8 --- /dev/null +++ b/py/schema/properties_directory/structural/molecular_pattern.json @@ -0,0 +1,138 @@ +{ + "$id": "properties-directory/structural/molecular-pattern", + "$schema": "http://json-schema.org/draft-04/schema#", + "items": { + "anyOf": [ + { + "$id": "properties-directory/structural/patterns/functional-group", + "properties": { + "SMARTS": { + "description": "SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification", + "type": "string" + }, + "atoms": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "isConnector": { + "description": "whether atom connects to atoms outside of functional group.", + "type": "boolean" + } + } + } + }, + "name": { + "enum": [ + "functional_group" + ] + } + }, + "title": "functional group pattern schema", + "type": "object" + }, + { + "$id": "properties-directory/structural/patterns/ring", + "properties": { + "atoms": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "isConnector": { + "description": "whether atom connects to atoms outside of functional group.", + "type": "boolean" + } + } + } + }, + "isAromatic": { + "type": "boolean" + }, + "name": { + "enum": [ + "ring" + ] + } + }, + "title": "ring pattern schema", + "type": "object" + }, + { + "$id": "properties-directory/structural/patterns/special-bond", + "description": "Any bonding interaction that cannot be described by simple 2-atom picture, e.g. 3-center-2-electron bond in diborane", + "properties": { + "atoms": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "isConnector": { + "description": "whether atom connects to atoms outside of functional group.", + "type": "boolean" + } + } + } + }, + "name": { + "enum": [ + "special_bond" + ] + } + }, + "title": "special bond pattern schema", + "type": "object" + } + ] + }, + "title": "molecular pattern schema", + "type": "array" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/p_norm.json b/py/schema/properties_directory/structural/p_norm.json new file mode 100644 index 000000000..910cf1ba6 --- /dev/null +++ b/py/schema/properties_directory/structural/p_norm.json @@ -0,0 +1,32 @@ +{ + "$id": "properties-directory/structural/p-norm", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm", + "properties": { + "degree": { + "description": "degree of the dimensionality of the norm", + "type": "integer" + }, + "name": { + "enum": [ + "p-norm" + ] + } + }, + "title": "p_norm" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/patterns/functional_group.json b/py/schema/properties_directory/structural/patterns/functional_group.json new file mode 100644 index 000000000..c90be585d --- /dev/null +++ b/py/schema/properties_directory/structural/patterns/functional_group.json @@ -0,0 +1,45 @@ +{ + "$id": "properties-directory/structural/patterns/functional-group", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "SMARTS": { + "description": "SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification", + "type": "string" + }, + "atoms": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "isConnector": { + "description": "whether atom connects to atoms outside of functional group.", + "type": "boolean" + } + } + } + }, + "name": { + "enum": [ + "functional_group" + ] + } + }, + "title": "functional group pattern schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/patterns/ring.json b/py/schema/properties_directory/structural/patterns/ring.json new file mode 100644 index 000000000..a4baf2563 --- /dev/null +++ b/py/schema/properties_directory/structural/patterns/ring.json @@ -0,0 +1,44 @@ +{ + "$id": "properties-directory/structural/patterns/ring", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "atoms": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "isConnector": { + "description": "whether atom connects to atoms outside of functional group.", + "type": "boolean" + } + } + } + }, + "isAromatic": { + "type": "boolean" + }, + "name": { + "enum": [ + "ring" + ] + } + }, + "title": "ring pattern schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/patterns/special_bond.json b/py/schema/properties_directory/structural/patterns/special_bond.json new file mode 100644 index 000000000..4983c5660 --- /dev/null +++ b/py/schema/properties_directory/structural/patterns/special_bond.json @@ -0,0 +1,42 @@ +{ + "$id": "properties-directory/structural/patterns/special-bond", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Any bonding interaction that cannot be described by simple 2-atom picture, e.g. 3-center-2-electron bond in diborane", + "properties": { + "atoms": { + "allOf": [ + { + "$id": "core/primitive/array-of-ids", + "description": "array of objects containing integer id each", + "items": { + "properties": { + "id": { + "description": "integer id of this entry", + "type": "integer" + } + }, + "type": "object", + "uniqueItems": true + }, + "title": "atomic ids", + "type": "array" + } + ], + "items": { + "properties": { + "isConnector": { + "description": "whether atom connects to atoms outside of functional group.", + "type": "boolean" + } + } + } + }, + "name": { + "enum": [ + "special_bond" + ] + } + }, + "title": "special bond pattern schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/symmetry.json b/py/schema/properties_directory/structural/symmetry.json new file mode 100644 index 000000000..44a2027e9 --- /dev/null +++ b/py/schema/properties_directory/structural/symmetry.json @@ -0,0 +1,45 @@ +{ + "$id": "properties-directory/structural/symmetry", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "enum": [ + "symmetry" + ] + }, + "pointGroupSymbol": { + "description": "point group symbol in Schoenflies notation", + "type": "string" + }, + "spaceGroupSymbol": { + "description": "space group symbol in Hermann\u2013Mauguin notation", + "type": "string" + }, + "tolerance": { + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "description": "tolerance used for symmetry calculation", + "properties": { + "units": { + "enum": [ + "angstrom" + ] + } + } + } + }, + "title": "symmetry schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/structural/volume.json b/py/schema/properties_directory/structural/volume.json new file mode 100644 index 000000000..ffb0a921d --- /dev/null +++ b/py/schema/properties_directory/structural/volume.json @@ -0,0 +1,32 @@ +{ + "$id": "properties-directory/structural/volume", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "core/primitive/scalar", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ], + "title": "scalar schema", + "type": "object" + } + ], + "properties": { + "name": { + "enum": [ + "volume" + ] + }, + "units": { + "enum": [ + "angstrom^3" + ] + } + }, + "title": "volume schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/workflow/convergence/electronic.json b/py/schema/properties_directory/workflow/convergence/electronic.json new file mode 100644 index 000000000..cca92e343 --- /dev/null +++ b/py/schema/properties_directory/workflow/convergence/electronic.json @@ -0,0 +1,31 @@ +{ + "$id": "properties-directory/workflow/convergence/electronic", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "data": { + "items": { + "items": { + "type": "number" + }, + "type": "array" + }, + "type": "array" + }, + "name": { + "enum": [ + "convergence_electronic" + ] + }, + "units": { + "enum": [ + "eV", + "rydberg", + "hartree" + ] + } + }, + "required": [ + "data" + ], + "title": "electronic self consistency convergence schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/workflow/convergence/ionic.json b/py/schema/properties_directory/workflow/convergence/ionic.json new file mode 100644 index 000000000..613225524 --- /dev/null +++ b/py/schema/properties_directory/workflow/convergence/ionic.json @@ -0,0 +1,60 @@ +{ + "$id": "properties-directory/workflow/convergence/ionic", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "data": { + "description": "energetic and structural information", + "items": { + "properties": { + "electronic": { + "description": "data about electronic at this ionic step", + "properties": { + "data": { + "items": { + "type": "number" + }, + "type": "array" + }, + "units": { + "description": "units for force tolerance", + "enum": [ + "eV", + "rydberg", + "hartree" + ] + } + }, + "type": "object" + }, + "energy": { + "description": "converged electronic energy for this structure (last in `electronic`)", + "type": "number" + }, + "structure": { + "description": "TODO: structural information at each step to be here", + "type": "object" + } + }, + "type": "object" + } + }, + "name": { + "enum": [ + "convergence_ionic" + ] + }, + "tolerance": { + "description": "for ionic convergence tolerance shows force tolerance" + }, + "units": { + "description": "units for force tolerance", + "enum": [ + "eV" + ] + } + }, + "required": [ + "data" + ], + "title": "ionic convergence schema" +} \ No newline at end of file diff --git a/py/schema/properties_directory/workflow/convergence/kpoint.json b/py/schema/properties_directory/workflow/convergence/kpoint.json new file mode 100644 index 000000000..63968b820 --- /dev/null +++ b/py/schema/properties_directory/workflow/convergence/kpoint.json @@ -0,0 +1,46 @@ +{ + "$id": "properties-directory/workflow/convergence/kpoint", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "data": { + "description": "kpoint grid and property information", + "items": { + "properties": { + "grid": { + "description": "information about the kpoint grid", + "type": "object" + }, + "spacing": { + "description": "optional kpoint spacing information", + "type": "number" + }, + "value": { + "description": "value of the property at this step" + } + }, + "required": [ + "value", + "grid" + ], + "type": "object" + } + }, + "property": { + "description": "name of the property under investigation", + "type": "string" + }, + "tolerance": { + "description": "tolerance for the property under investigation" + }, + "units": { + "description": "units for the property under investigation", + "type": "string" + } + }, + "required": [ + "tolerance", + "units", + "data" + ], + "title": "convergence schema for converging a property wrt kpoints" +} \ No newline at end of file diff --git a/py/schema/property/base.json b/py/schema/property/base.json new file mode 100644 index 000000000..e5a0ec8bb --- /dev/null +++ b/py/schema/property/base.json @@ -0,0 +1,408 @@ +{ + "$id": "property/base", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "description": "entity schema", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + } + ], + "properties": { + "count": { + "description": "total number of properties among which this property is the best.", + "type": "number" + }, + "data": { + "description": "container of the information, specific to each property", + "type": "object" + }, + "exabyteId": { + "description": "Id of the corresponding item in the entity bank that this property is obtained for", + "items": { + "type": "string" + }, + "type": "array" + }, + "group": { + "description": "property group, e.g. qe:dft:gga:pbe", + "type": "string" + }, + "precision": { + "type": "object" + }, + "slug": { + "description": "property slug, e.g. total_energy", + "type": "string" + }, + "source": { + "$id": "property/source", + "properties": { + "info": { + "oneOf": [ + { + "$id": "core/reference/exabyte", + "properties": { + "jobId": { + "description": "Job's identity", + "type": "string" + }, + "materialId": { + "description": "Material's identity. Used for protoProperties.", + "type": "string" + }, + "unitId": { + "description": "Id of the unit that extracted the result", + "type": "string" + } + }, + "type": "object" + }, + { + "$id": "core/reference/experiment", + "properties": { + "authors": { + "description": "experiment authors", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "conditions": { + "items": { + "$id": "core/reference/experiment/condition", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" + }, + "type": "array" + }, + "location": { + "$id": "core/reference/experiment/location", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" + }, + "method": { + "description": "method used in experiment", + "type": "string" + }, + "note": { + "description": "Note about experiment", + "type": "string" + }, + "references": { + "description": "references to literature articles", + "items": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + }, + "type": "array" + }, + "timestamp": { + "description": "epoch time.", + "type": "number" + }, + "title": { + "description": "experiment title", + "type": "string" + }, + "type": { + "enum": [ + "experiment" + ] + } + }, + "required": [ + "conditions", + "authors", + "title", + "method", + "timestamp" + ], + "title": "info for characteristic obtained by experiment" + } + ] + }, + "type": { + "description": "Type of the material property's source.", + "type": "string" + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + } + }, + "title": "The source of a property. This could be an article, a simulation on Exabyte, an external simulation, etc.", + "type": "object" + }, + "systemTags": { + "description": "property system tags, marks property system characteristics, values refined or best (could be both)", + "items": { + "enum": [ + "isRefined", + "isBest" + ], + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "data", + "source" + ], + "title": "Schema of base material's preliminary property" +} \ No newline at end of file diff --git a/py/schema/property/meta.json b/py/schema/property/meta.json new file mode 100644 index 000000000..8bbacb1ae --- /dev/null +++ b/py/schema/property/meta.json @@ -0,0 +1,414 @@ +{ + "$id": "property/meta", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "property/raw", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "description": "entity schema", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + } + ], + "properties": { + "count": { + "description": "total number of properties among which this property is the best.", + "type": "number" + }, + "data": { + "description": "container of the information, specific to each property", + "type": "object" + }, + "exabyteId": { + "description": "Id of the corresponding item in the entity bank that this property is obtained for", + "items": { + "type": "string" + }, + "type": "array" + }, + "group": { + "description": "property group, e.g. qe:dft:gga:pbe", + "type": "string" + }, + "precision": { + "type": "object" + }, + "slug": { + "description": "property slug, e.g. total_energy", + "type": "string" + }, + "source": { + "$id": "property/source", + "properties": { + "info": { + "oneOf": [ + { + "$id": "core/reference/exabyte", + "properties": { + "jobId": { + "description": "Job's identity", + "type": "string" + }, + "materialId": { + "description": "Material's identity. Used for protoProperties.", + "type": "string" + }, + "unitId": { + "description": "Id of the unit that extracted the result", + "type": "string" + } + }, + "type": "object" + }, + { + "$id": "core/reference/experiment", + "properties": { + "authors": { + "description": "experiment authors", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "conditions": { + "items": { + "$id": "core/reference/experiment/condition", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" + }, + "type": "array" + }, + "location": { + "$id": "core/reference/experiment/location", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" + }, + "method": { + "description": "method used in experiment", + "type": "string" + }, + "note": { + "description": "Note about experiment", + "type": "string" + }, + "references": { + "description": "references to literature articles", + "items": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + }, + "type": "array" + }, + "timestamp": { + "description": "epoch time.", + "type": "number" + }, + "title": { + "description": "experiment title", + "type": "string" + }, + "type": { + "enum": [ + "experiment" + ] + } + }, + "required": [ + "conditions", + "authors", + "title", + "method", + "timestamp" + ], + "title": "info for characteristic obtained by experiment" + } + ] + }, + "type": { + "description": "Type of the material property's source.", + "type": "string" + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + } + }, + "title": "The source of a property. This could be an article, a simulation on Exabyte, an external simulation, etc.", + "type": "object" + }, + "systemTags": { + "description": "property system tags, marks property system characteristics, values refined or best (could be both)", + "items": { + "enum": [ + "isRefined", + "isBest" + ], + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "data", + "source" + ], + "title": "Schema of material's preliminary property" + } + ], + "title": "Schema of material's meta properties" +} \ No newline at end of file diff --git a/py/schema/property/raw.json b/py/schema/property/raw.json new file mode 100644 index 000000000..3f3e0b907 --- /dev/null +++ b/py/schema/property/raw.json @@ -0,0 +1,408 @@ +{ + "$id": "property/raw", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "description": "entity schema", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + } + ], + "properties": { + "count": { + "description": "total number of properties among which this property is the best.", + "type": "number" + }, + "data": { + "description": "container of the information, specific to each property", + "type": "object" + }, + "exabyteId": { + "description": "Id of the corresponding item in the entity bank that this property is obtained for", + "items": { + "type": "string" + }, + "type": "array" + }, + "group": { + "description": "property group, e.g. qe:dft:gga:pbe", + "type": "string" + }, + "precision": { + "type": "object" + }, + "slug": { + "description": "property slug, e.g. total_energy", + "type": "string" + }, + "source": { + "$id": "property/source", + "properties": { + "info": { + "oneOf": [ + { + "$id": "core/reference/exabyte", + "properties": { + "jobId": { + "description": "Job's identity", + "type": "string" + }, + "materialId": { + "description": "Material's identity. Used for protoProperties.", + "type": "string" + }, + "unitId": { + "description": "Id of the unit that extracted the result", + "type": "string" + } + }, + "type": "object" + }, + { + "$id": "core/reference/experiment", + "properties": { + "authors": { + "description": "experiment authors", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "conditions": { + "items": { + "$id": "core/reference/experiment/condition", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" + }, + "type": "array" + }, + "location": { + "$id": "core/reference/experiment/location", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" + }, + "method": { + "description": "method used in experiment", + "type": "string" + }, + "note": { + "description": "Note about experiment", + "type": "string" + }, + "references": { + "description": "references to literature articles", + "items": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + }, + "type": "array" + }, + "timestamp": { + "description": "epoch time.", + "type": "number" + }, + "title": { + "description": "experiment title", + "type": "string" + }, + "type": { + "enum": [ + "experiment" + ] + } + }, + "required": [ + "conditions", + "authors", + "title", + "method", + "timestamp" + ], + "title": "info for characteristic obtained by experiment" + } + ] + }, + "type": { + "description": "Type of the material property's source.", + "type": "string" + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + } + }, + "title": "The source of a property. This could be an article, a simulation on Exabyte, an external simulation, etc.", + "type": "object" + }, + "systemTags": { + "description": "property system tags, marks property system characteristics, values refined or best (could be both)", + "items": { + "enum": [ + "isRefined", + "isBest" + ], + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "data", + "source" + ], + "title": "Schema of material's preliminary property" +} \ No newline at end of file diff --git a/py/schema/property/source.json b/py/schema/property/source.json new file mode 100644 index 000000000..bc40ce40b --- /dev/null +++ b/py/schema/property/source.json @@ -0,0 +1,286 @@ +{ + "$id": "property/source", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "info": { + "oneOf": [ + { + "$id": "core/reference/exabyte", + "properties": { + "jobId": { + "description": "Job's identity", + "type": "string" + }, + "materialId": { + "description": "Material's identity. Used for protoProperties.", + "type": "string" + }, + "unitId": { + "description": "Id of the unit that extracted the result", + "type": "string" + } + }, + "type": "object" + }, + { + "$id": "core/reference/experiment", + "properties": { + "authors": { + "description": "experiment authors", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "conditions": { + "items": { + "$id": "core/reference/experiment/condition", + "properties": { + "name": { + "description": "human-readable name of the condition", + "type": "string" + }, + "scalar": { + "description": "array of condition values", + "items": { + "properties": { + "value": { + "type": "string" + } + } + }, + "type": "array" + }, + "units": { + "description": "condition unit", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "condition schema" + }, + "type": "array" + }, + "location": { + "$id": "core/reference/experiment/location", + "properties": { + "latitude": { + "description": "location latitude", + "type": "number" + }, + "longitude": { + "description": "location longitude", + "type": "number" + } + }, + "required": [ + "latitude", + "longitude" + ], + "title": "location schema" + }, + "method": { + "description": "method used in experiment", + "type": "string" + }, + "note": { + "description": "Note about experiment", + "type": "string" + }, + "references": { + "description": "references to literature articles", + "items": { + "$id": "core/reference/literature", + "properties": { + "authors": { + "description": "List of authors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "doi": { + "description": "Digital Object Identifier of the reference.", + "type": "string" + }, + "editors": { + "description": "List of editors of the work.", + "items": { + "$id": "core/reference/literature/name", + "properties": { + "affiliation": { + "type": "string" + }, + "first": { + "type": "string" + }, + "last": { + "type": "string" + }, + "middle": { + "type": "string" + } + }, + "required": [ + "first", + "last" + ], + "title": "experiment author schema", + "type": "object" + }, + "type": "array" + }, + "isbn": { + "description": "International Standard Book Number of the reference.", + "type": "string" + }, + "issn": { + "description": "International Standard Serial Number of the reference.", + "type": "string" + }, + "issue": { + "description": "Issue of the collection in which the work appeared.", + "type": "string" + }, + "journal": { + "description": "Journal in which the work appeared.", + "type": "string" + }, + "pages": { + "allOf": [ + { + "$id": "core/reference/literature/pages", + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start" + ], + "title": "pages schema", + "type": "object" + } + ], + "description": "Start and end pages of the work.", + "type": "object" + }, + "publisher": { + "description": "Publisher of the work.", + "type": "string" + }, + "reference": { + "description": "References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.", + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "description": "Title of the work.", + "type": "string" + }, + "type": { + "enum": [ + "literature" + ] + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + }, + "volume": { + "description": "Volume of the series in which the work appeared.", + "type": "string" + }, + "year": { + "description": "Year in which the reference was published.", + "type": "string" + } + }, + "title": "literature reference schema" + }, + "type": "array" + }, + "timestamp": { + "description": "epoch time.", + "type": "number" + }, + "title": { + "description": "experiment title", + "type": "string" + }, + "type": { + "enum": [ + "experiment" + ] + } + }, + "required": [ + "conditions", + "authors", + "title", + "method", + "timestamp" + ], + "title": "info for characteristic obtained by experiment" + } + ] + }, + "type": { + "description": "Type of the material property's source.", + "type": "string" + }, + "url": { + "description": "Internet address of the reference.", + "type": "string" + } + }, + "title": "The source of a property. This could be an article, a simulation on Exabyte, an external simulation, etc.", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software/application.json b/py/schema/software/application.json new file mode 100644 index 000000000..b596c726f --- /dev/null +++ b/py/schema/software/application.json @@ -0,0 +1,40 @@ +{ + "$id": "software/application", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": true, + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software/executable.json b/py/schema/software/executable.json new file mode 100644 index 000000000..4b1e1b08f --- /dev/null +++ b/py/schema/software/executable.json @@ -0,0 +1,156 @@ +{ + "$id": "software/executable", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software/flavor.json b/py/schema/software/flavor.json new file mode 100644 index 000000000..c3b43d700 --- /dev/null +++ b/py/schema/software/flavor.json @@ -0,0 +1,181 @@ +{ + "$id": "software/flavor", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software/template.json b/py/schema/software/template.json new file mode 100644 index 000000000..ae42b8116 --- /dev/null +++ b/py/schema/software/template.json @@ -0,0 +1,60 @@ +{ + "$id": "software/template", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/input/-inputItem", + "properties": { + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + } + }, + "required": [ + "name", + "content" + ], + "title": "execution unit input item schema for physics-based simulation engines", + "type": "object" + } + ], + "properties": { + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "contextProviders": { + "items": { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "description": "render context provider names", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + "type": "array" + }, + "executableName": { + "type": "string" + } + }, + "required": [ + "name", + "content" + ], + "title": "template schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/exabyteml.json b/py/schema/software_directory/ml/exabyteml.json new file mode 100644 index 000000000..4592f5db8 --- /dev/null +++ b/py/schema/software_directory/ml/exabyteml.json @@ -0,0 +1,23 @@ +{ + "$id": "software-directory/ml/exabyteml", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "enum": [ + "exabyteml" + ] + }, + "summary": { + "enum": [ + "exabyte machine learning engine" + ] + }, + "version": { + "enum": [ + "0.2.0" + ] + } + }, + "title": "exabyte machine learning engine schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/execution.json b/py/schema/software_directory/ml/unit/execution.json new file mode 100644 index 000000000..789bb4ab1 --- /dev/null +++ b/py/schema/software_directory/ml/unit/execution.json @@ -0,0 +1,3382 @@ +{ + "$id": "software-directory/ml/unit/execution", + "oneOf": [ + { + "$id": "software-directory/ml/unit/execution/evaluate/cross-validate", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": { + "description": "TODO: consider keeping executable `evaluate` and flavor `cross-validate` as before", + "properties": { + "nSplits": { + "description": "number of groups to split the training dataset for cross-validation", + "type": "number" + } + }, + "required": [ + "nSplits" + ], + "type": "object" + } + }, + "title": "cross-validation unit schema" + }, + { + "$id": "software-directory/ml/unit/execution/train", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": { + "description": "model train unit (NOTE: info about method, eg. regression/linear is taken from (sub)workflow)", + "properties": { + "features": { + "description": "material features used for model fitting", + "items": { + "description": "material features (properties) in a 'flattened' format", + "type": "string" + }, + "type": "array" + }, + "targets": { + "description": "target properties to train for", + "items": { + "description": "material features (properties) in a 'flattened' format", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "features", + "targets" + ], + "type": "object" + } + }, + "title": "train unit schema" + }, + { + "$id": "software-directory/ml/unit/execution/score", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": {} + }, + "title": "train score schema" + }, + { + "$id": "software-directory/ml/unit/execution/initialize", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": { + "description": "model init unit (NOTE: info about method, eg. regression/linear is taken from (sub)workflow)", + "properties": { + "targets": { + "description": "target properties to predict (NOTE: must be a subset of targets for which training was done)", + "items": { + "description": "material features (properties) in a 'flattened' format", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "targets" + ], + "type": "object" + } + }, + "title": "initialize unit schema" + } + ] +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/execution/evaluate/cross_validate.json b/py/schema/software_directory/ml/unit/execution/evaluate/cross_validate.json new file mode 100644 index 000000000..25e9c0582 --- /dev/null +++ b/py/schema/software_directory/ml/unit/execution/evaluate/cross_validate.json @@ -0,0 +1,844 @@ +{ + "$id": "software-directory/ml/unit/execution/evaluate/cross-validate", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": { + "description": "TODO: consider keeping executable `evaluate` and flavor `cross-validate` as before", + "properties": { + "nSplits": { + "description": "number of groups to split the training dataset for cross-validation", + "type": "number" + } + }, + "required": [ + "nSplits" + ], + "type": "object" + } + }, + "title": "cross-validation unit schema" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/execution/initialize.json b/py/schema/software_directory/ml/unit/execution/initialize.json new file mode 100644 index 000000000..c5ed39760 --- /dev/null +++ b/py/schema/software_directory/ml/unit/execution/initialize.json @@ -0,0 +1,848 @@ +{ + "$id": "software-directory/ml/unit/execution/initialize", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": { + "description": "model init unit (NOTE: info about method, eg. regression/linear is taken from (sub)workflow)", + "properties": { + "targets": { + "description": "target properties to predict (NOTE: must be a subset of targets for which training was done)", + "items": { + "description": "material features (properties) in a 'flattened' format", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "targets" + ], + "type": "object" + } + }, + "title": "initialize unit schema" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/execution/score.json b/py/schema/software_directory/ml/unit/execution/score.json new file mode 100644 index 000000000..d5fdbef2b --- /dev/null +++ b/py/schema/software_directory/ml/unit/execution/score.json @@ -0,0 +1,832 @@ +{ + "$id": "software-directory/ml/unit/execution/score", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": {} + }, + "title": "train score schema" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/execution/train.json b/py/schema/software_directory/ml/unit/execution/train.json new file mode 100644 index 000000000..69b0f4524 --- /dev/null +++ b/py/schema/software_directory/ml/unit/execution/train.json @@ -0,0 +1,857 @@ +{ + "$id": "software-directory/ml/unit/execution/train", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + } + ], + "properties": { + "input": { + "description": "model train unit (NOTE: info about method, eg. regression/linear is taken from (sub)workflow)", + "properties": { + "features": { + "description": "material features used for model fitting", + "items": { + "description": "material features (properties) in a 'flattened' format", + "type": "string" + }, + "type": "array" + }, + "targets": { + "description": "target properties to train for", + "items": { + "description": "material features (properties) in a 'flattened' format", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "features", + "targets" + ], + "type": "object" + } + }, + "title": "train unit schema" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/processing.json b/py/schema/software_directory/ml/unit/processing.json new file mode 100644 index 000000000..2852b2e30 --- /dev/null +++ b/py/schema/software_directory/ml/unit/processing.json @@ -0,0 +1,776 @@ +{ + "$id": "software-directory/ml/unit/processing", + "oneOf": [ + { + "$id": "software-directory/ml/unit/processing/data-transformation", + "oneOf": [ + { + "$id": "software-directory/ml/unit/processing/data-transformation/scale-and-reduce", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "perFeature": { + "decription": "per-feature scaling data", + "items": { + "properties": { + "mean": { + "description": "mean value of the original training data", + "type": "number" + }, + "name": { + "description": "feature/property name in 'flattened' format", + "type": "string" + }, + "scale": { + "description": "scale multiplier for this feature/property", + "type": "number" + }, + "variance": { + "description": "variance in original training data", + "type": "number" + } + }, + "required": [ + "name", + "scale" + ], + "type": "object" + }, + "type": "array" + }, + "scaler": { + "default": "standard_scaler", + "description": "type of scaler to be applied", + "enum": [ + "standard_scaler" + ], + "type": "string" + } + }, + "required": [ + "scaler" + ], + "type": "object" + }, + "operation": { + "enum": [ + "data_transformation" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "scale_and_reduce" + ], + "type": "string" + } + }, + "title": "scale and reduce unit schema", + "type": "object" + } + ] + }, + { + "$id": "software-directory/ml/unit/processing/feature-selection", + "oneOf": [ + { + "$id": "software-directory/ml/unit/processing/feature-selection/filter-based", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "algorithm": { + "description": "feature selection algorithm following sklearn.feature_selection", + "enum": [ + "f_regression" + ], + "type": "string" + }, + "nFeatures": { + "description": "number of features to select for model training. If equal to 0, will use all available features", + "type": "number" + } + }, + "required": [ + "nFeatures", + "algorithm" + ], + "type": "object" + }, + "operation": { + "enum": [ + "feature_selection" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "filter_based" + ], + "type": "string" + } + }, + "title": "filter-based feature selection unit schema", + "type": "object" + } + ] + } + ] +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/processing/data_transformation.json b/py/schema/software_directory/ml/unit/processing/data_transformation.json new file mode 100644 index 000000000..9dd351294 --- /dev/null +++ b/py/schema/software_directory/ml/unit/processing/data_transformation.json @@ -0,0 +1,398 @@ +{ + "$id": "software-directory/ml/unit/processing/data-transformation", + "oneOf": [ + { + "$id": "software-directory/ml/unit/processing/data-transformation/scale-and-reduce", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "perFeature": { + "decription": "per-feature scaling data", + "items": { + "properties": { + "mean": { + "description": "mean value of the original training data", + "type": "number" + }, + "name": { + "description": "feature/property name in 'flattened' format", + "type": "string" + }, + "scale": { + "description": "scale multiplier for this feature/property", + "type": "number" + }, + "variance": { + "description": "variance in original training data", + "type": "number" + } + }, + "required": [ + "name", + "scale" + ], + "type": "object" + }, + "type": "array" + }, + "scaler": { + "default": "standard_scaler", + "description": "type of scaler to be applied", + "enum": [ + "standard_scaler" + ], + "type": "string" + } + }, + "required": [ + "scaler" + ], + "type": "object" + }, + "operation": { + "enum": [ + "data_transformation" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "scale_and_reduce" + ], + "type": "string" + } + }, + "title": "scale and reduce unit schema", + "type": "object" + } + ] +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/processing/data_transformation/manipulation.json b/py/schema/software_directory/ml/unit/processing/data_transformation/manipulation.json new file mode 100644 index 000000000..83e89197b --- /dev/null +++ b/py/schema/software_directory/ml/unit/processing/data_transformation/manipulation.json @@ -0,0 +1,374 @@ +{ + "$id": "software-directory/ml/unit/processing/data-transformation/manipulation", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "cleanMissingData": { + "default": true, + "description": "whether to clean missing data, eg. NaN", + "type": "boolean" + }, + "removeDuplicateRows": { + "default": true, + "description": "whether to remove duplicate rows", + "type": "boolean" + }, + "replaceNoneValuesWith": { + "default": 0, + "description": "replace None values with a given value", + "type": "number" + } + }, + "required": [ + "cleanMissingData", + "removeDuplicateRows", + "replaceNoneValuesWith" + ], + "type": "object" + }, + "operation": { + "enum": [ + "data_transformation" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "manipulation" + ], + "type": "string" + } + }, + "title": "manipulation unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.json b/py/schema/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.json new file mode 100644 index 000000000..0c0600856 --- /dev/null +++ b/py/schema/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.json @@ -0,0 +1,394 @@ +{ + "$id": "software-directory/ml/unit/processing/data-transformation/scale-and-reduce", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "perFeature": { + "decription": "per-feature scaling data", + "items": { + "properties": { + "mean": { + "description": "mean value of the original training data", + "type": "number" + }, + "name": { + "description": "feature/property name in 'flattened' format", + "type": "string" + }, + "scale": { + "description": "scale multiplier for this feature/property", + "type": "number" + }, + "variance": { + "description": "variance in original training data", + "type": "number" + } + }, + "required": [ + "name", + "scale" + ], + "type": "object" + }, + "type": "array" + }, + "scaler": { + "default": "standard_scaler", + "description": "type of scaler to be applied", + "enum": [ + "standard_scaler" + ], + "type": "string" + } + }, + "required": [ + "scaler" + ], + "type": "object" + }, + "operation": { + "enum": [ + "data_transformation" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "scale_and_reduce" + ], + "type": "string" + } + }, + "title": "scale and reduce unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/processing/feature_selection.json b/py/schema/software_directory/ml/unit/processing/feature_selection.json new file mode 100644 index 000000000..df94eae64 --- /dev/null +++ b/py/schema/software_directory/ml/unit/processing/feature_selection.json @@ -0,0 +1,373 @@ +{ + "$id": "software-directory/ml/unit/processing/feature-selection", + "oneOf": [ + { + "$id": "software-directory/ml/unit/processing/feature-selection/filter-based", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "algorithm": { + "description": "feature selection algorithm following sklearn.feature_selection", + "enum": [ + "f_regression" + ], + "type": "string" + }, + "nFeatures": { + "description": "number of features to select for model training. If equal to 0, will use all available features", + "type": "number" + } + }, + "required": [ + "nFeatures", + "algorithm" + ], + "type": "object" + }, + "operation": { + "enum": [ + "feature_selection" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "filter_based" + ], + "type": "string" + } + }, + "title": "filter-based feature selection unit schema", + "type": "object" + } + ] +} \ No newline at end of file diff --git a/py/schema/software_directory/ml/unit/processing/feature_selection/filter_based.json b/py/schema/software_directory/ml/unit/processing/feature_selection/filter_based.json new file mode 100644 index 000000000..852767ad5 --- /dev/null +++ b/py/schema/software_directory/ml/unit/processing/feature_selection/filter_based.json @@ -0,0 +1,369 @@ +{ + "$id": "software-directory/ml/unit/processing/feature-selection/filter-based", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "properties": { + "algorithm": { + "description": "feature selection algorithm following sklearn.feature_selection", + "enum": [ + "f_regression" + ], + "type": "string" + }, + "nFeatures": { + "description": "number of features to select for model training. If equal to 0, will use all available features", + "type": "number" + } + }, + "required": [ + "nFeatures", + "algorithm" + ], + "type": "object" + }, + "operation": { + "enum": [ + "feature_selection" + ], + "type": "string" + }, + "operationType": { + "enum": [ + "filter_based" + ], + "type": "string" + } + }, + "title": "filter-based feature selection unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/modeling/espresso.json b/py/schema/software_directory/modeling/espresso.json new file mode 100644 index 000000000..9f5e25767 --- /dev/null +++ b/py/schema/software_directory/modeling/espresso.json @@ -0,0 +1,26 @@ +{ + "$id": "software-directory/modeling/espresso", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "enum": [ + "espresso" + ] + }, + "summary": { + "enum": [ + "Quantum Espresso" + ] + }, + "version": { + "enum": [ + "5.1.1", + "5.2.1", + "5.4.0", + "6.0.0" + ] + } + }, + "title": "espresso app schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/modeling/espresso/arguments.json b/py/schema/software_directory/modeling/espresso/arguments.json new file mode 100644 index 000000000..3bc144ed1 --- /dev/null +++ b/py/schema/software_directory/modeling/espresso/arguments.json @@ -0,0 +1,44 @@ +{ + "$id": "software-directory/modeling/espresso/arguments", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/modeling/nwchem.json b/py/schema/software_directory/modeling/nwchem.json new file mode 100644 index 000000000..f72bf78a7 --- /dev/null +++ b/py/schema/software_directory/modeling/nwchem.json @@ -0,0 +1,70 @@ +{ + "$id": "software-directory/modeling/nwchem", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "software/application", + "additionalProperties": true, + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + } + ], + "properties": { + "exec": { + "enum": [ + "nwchem" + ] + }, + "name": { + "enum": [ + "NWChem" + ] + }, + "summary": { + "enum": [ + "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations" + ] + }, + "version": { + "enum": [ + "6.6", + "7.0.2" + ] + } + }, + "title": "NWChem", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/modeling/unit/execution.json b/py/schema/software_directory/modeling/unit/execution.json new file mode 100644 index 000000000..0bb19c050 --- /dev/null +++ b/py/schema/software_directory/modeling/unit/execution.json @@ -0,0 +1,884 @@ +{ + "$id": "software-directory/modeling/unit/execution", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + }, + { + "$id": "workflow/unit/input/-input", + "properties": { + "input": { + "items": { + "oneOf": [ + { + "$id": "workflow/unit/input/-inputItem", + "properties": { + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + } + }, + "required": [ + "name", + "content" + ], + "title": "execution unit input item schema for physics-based simulation engines", + "type": "object" + }, + { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + } + ] + }, + "title": "execution unit input schema", + "type": "array" + } + }, + "title": "execution unit input schema for physics-based simulation engines", + "type": "object" + } + ], + "title": "execution unit schema for physics-based simulation engines (defined using espresso as example)", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/modeling/vasp.json b/py/schema/software_directory/modeling/vasp.json new file mode 100644 index 000000000..d8dfc6818 --- /dev/null +++ b/py/schema/software_directory/modeling/vasp.json @@ -0,0 +1,76 @@ +{ + "$id": "software-directory/modeling/vasp", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "software/application", + "additionalProperties": true, + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + } + ], + "properties": { + "exec": { + "enum": [ + "vasp" + ] + }, + "flavor": { + "enum": [ + "vasp", + "vasp_nscf", + "vasp_bands" + ] + }, + "name": { + "enum": [ + "vasp" + ] + }, + "summary": { + "enum": [ + "vienna ab-initio simulation package" + ] + }, + "version": { + "enum": [ + "5.3.5" + ] + } + }, + "title": "vienna ab-inito simulation package", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/scripting/jupyter_lab.json b/py/schema/software_directory/scripting/jupyter_lab.json new file mode 100644 index 000000000..5fcaf4c6a --- /dev/null +++ b/py/schema/software_directory/scripting/jupyter_lab.json @@ -0,0 +1,74 @@ +{ + "$id": "software-directory/scripting/jupyter-lab", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "software/application", + "additionalProperties": true, + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + } + ], + "properties": { + "exec": { + "enum": [ + "jupyter" + ] + }, + "flavor": { + "enum": [ + "notebook" + ] + }, + "name": { + "enum": [ + "jupyterLab" + ] + }, + "summary": { + "enum": [ + "Jupyter Lab" + ] + }, + "version": { + "enum": [ + "0.33.12" + ] + } + }, + "title": "Jupyter Lab Application Schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/scripting/python.json b/py/schema/software_directory/scripting/python.json new file mode 100644 index 000000000..b39f4306c --- /dev/null +++ b/py/schema/software_directory/scripting/python.json @@ -0,0 +1,88 @@ +{ + "$id": "software-directory/scripting/python", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "software/application", + "additionalProperties": true, + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + } + ], + "properties": { + "arguments": { + "description": "Optional arguments passed to the Python script", + "type": "string" + }, + "dependencies": { + "description": "Optional Python dependencies, e.g. amqp==1.4.6", + "type": "array" + }, + "environment": { + "description": "Optional environment variables exported before running the Python script", + "type": "object" + }, + "exec": { + "enum": [ + "python" + ] + }, + "flavor": { + "enum": [ + "python2", + "python3" + ] + }, + "name": { + "enum": [ + "python" + ] + }, + "summary": { + "enum": [ + "Python Script" + ] + }, + "version": { + "enum": [ + "2.7.5", + "3.6.1" + ] + } + }, + "title": "Python Programing Language Schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/scripting/shell.json b/py/schema/software_directory/scripting/shell.json new file mode 100644 index 000000000..3d3af5700 --- /dev/null +++ b/py/schema/software_directory/scripting/shell.json @@ -0,0 +1,88 @@ +{ + "$id": "software-directory/scripting/shell", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "software/application", + "additionalProperties": true, + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + } + ], + "properties": { + "arguments": { + "description": "Optional arguments passed to the Shell script", + "type": "string" + }, + "environment": { + "description": "Optional environment variables exported before running the Shell script", + "type": "object" + }, + "exec": { + "enum": [ + "sh", + "bash", + "zsh", + "csh" + ] + }, + "flavor": { + "enum": [ + "sh", + "bash", + "zsh", + "csh" + ] + }, + "name": { + "enum": [ + "shell" + ] + }, + "summary": { + "enum": [ + "Shell Script" + ] + }, + "version": { + "enum": [ + "4.2.46" + ] + } + }, + "title": "Shell Scripting Language Schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/software_directory/scripting/unit/execution.json b/py/schema/software_directory/scripting/unit/execution.json new file mode 100644 index 000000000..bf3cafe5a --- /dev/null +++ b/py/schema/software_directory/scripting/unit/execution.json @@ -0,0 +1,884 @@ +{ + "$id": "software-directory/scripting/unit/execution", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + }, + { + "$id": "workflow/unit/input/-input", + "properties": { + "input": { + "items": { + "oneOf": [ + { + "$id": "workflow/unit/input/-inputItem", + "properties": { + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + } + }, + "required": [ + "name", + "content" + ], + "title": "execution unit input item schema for physics-based simulation engines", + "type": "object" + }, + { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + } + ] + }, + "title": "execution unit input schema", + "type": "array" + } + }, + "title": "execution unit input schema for physics-based simulation engines", + "type": "object" + } + ], + "title": "execution unit schema for scripting-based applications", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/system/_material.json b/py/schema/system/_material.json new file mode 100644 index 000000000..56b99e1e4 --- /dev/null +++ b/py/schema/system/_material.json @@ -0,0 +1,34 @@ +{ + "$id": "system/-material", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ], + "properties": { + "cls": { + "description": "Material class", + "enum": [ + "Material" + ], + "type": "string" + } + }, + "title": "Material entity reference schema" +} \ No newline at end of file diff --git a/py/schema/system/_parent_job.json b/py/schema/system/_parent_job.json new file mode 100644 index 000000000..bbb126968 --- /dev/null +++ b/py/schema/system/_parent_job.json @@ -0,0 +1,34 @@ +{ + "$id": "system/-parent-job", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ], + "properties": { + "cls": { + "description": "Job class", + "enum": [ + "Job" + ], + "type": "string" + } + }, + "title": "Parent job entity reference schema" +} \ No newline at end of file diff --git a/py/schema/system/_project.json b/py/schema/system/_project.json new file mode 100644 index 000000000..1ffd6e58a --- /dev/null +++ b/py/schema/system/_project.json @@ -0,0 +1,34 @@ +{ + "$id": "system/-project", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ], + "properties": { + "cls": { + "description": "Project class", + "enum": [ + "Project" + ], + "type": "string" + } + }, + "title": "Project entity reference schema" +} \ No newline at end of file diff --git a/py/schema/system/bankable.json b/py/schema/system/bankable.json new file mode 100644 index 000000000..240dbcc55 --- /dev/null +++ b/py/schema/system/bankable.json @@ -0,0 +1,15 @@ +{ + "$id": "system/bankable", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "exabyteId": { + "description": "Identity of the corresponding bank entity", + "type": "string" + }, + "hash": { + "description": "Hash string which is calculated based on the meaningful fields of the entity. Used to identify equal entities.", + "type": "string" + } + }, + "title": "bankable schema" +} \ No newline at end of file diff --git a/py/schema/system/consistency_check.json b/py/schema/system/consistency_check.json new file mode 100644 index 000000000..6f7562808 --- /dev/null +++ b/py/schema/system/consistency_check.json @@ -0,0 +1,39 @@ +{ + "$id": "system/consistency-check", + "$schema": "http://json-schema.org/draft-04/schema#", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/system/creator.json b/py/schema/system/creator.json new file mode 100644 index 000000000..066a7876a --- /dev/null +++ b/py/schema/system/creator.json @@ -0,0 +1,34 @@ +{ + "$id": "system/creator", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ], + "properties": { + "cls": { + "description": "Creator class", + "enum": [ + "User" + ], + "type": "string" + } + }, + "title": "Creator entity reference schema" +} \ No newline at end of file diff --git a/py/schema/system/creator_account.json b/py/schema/system/creator_account.json new file mode 100644 index 000000000..8bd35d808 --- /dev/null +++ b/py/schema/system/creator_account.json @@ -0,0 +1,25 @@ +{ + "$id": "system/creator-account", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "creatorAccount": { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + }, + "title": "creator account schema" +} \ No newline at end of file diff --git a/py/schema/system/database_source.json b/py/schema/system/database_source.json new file mode 100644 index 000000000..e8257e49f --- /dev/null +++ b/py/schema/system/database_source.json @@ -0,0 +1,40 @@ +{ + "$id": "system/database-source", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "information about a database source", + "properties": { + "data": { + "description": "Original response from external source.", + "type": "object" + }, + "doi": { + "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506", + "type": "string" + }, + "id": { + "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", + "type": "string" + }, + "origin": { + "comment": "Deprecated. To be removed.", + "description": "A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).", + "type": "boolean" + }, + "source": { + "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.", + "type": "string" + }, + "url": { + "comment": "ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers", + "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48", + "type": "string" + } + }, + "required": [ + "id", + "source", + "origin" + ], + "title": "database source schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/system/defaultable.json b/py/schema/system/defaultable.json new file mode 100644 index 000000000..c248dedb6 --- /dev/null +++ b/py/schema/system/defaultable.json @@ -0,0 +1,12 @@ +{ + "$id": "system/defaultable", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" +} \ No newline at end of file diff --git a/py/schema/system/description.json b/py/schema/system/description.json new file mode 100644 index 000000000..fb8df240e --- /dev/null +++ b/py/schema/system/description.json @@ -0,0 +1,14 @@ +{ + "$id": "system/description", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "description": { + "description": "entity description", + "type": "string" + }, + "descriptionObject": { + "type": "object" + } + }, + "title": "extended base entity schema" +} \ No newline at end of file diff --git a/py/schema/system/entity_reference.json b/py/schema/system/entity_reference.json new file mode 100644 index 000000000..eccd91e13 --- /dev/null +++ b/py/schema/system/entity_reference.json @@ -0,0 +1,19 @@ +{ + "$id": "system/entity-reference", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" +} \ No newline at end of file diff --git a/py/schema/system/file_source.json b/py/schema/system/file_source.json new file mode 100644 index 000000000..baaeece71 --- /dev/null +++ b/py/schema/system/file_source.json @@ -0,0 +1,30 @@ +{ + "$id": "system/file-source", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "file source with the information inside", + "properties": { + "extension": { + "description": "file extension", + "type": "string" + }, + "filename": { + "description": "file name without extension", + "type": "string" + }, + "hash": { + "description": "MD5 hash based on file content", + "type": "string" + }, + "text": { + "description": "file content as raw text", + "type": "string" + } + }, + "required": [ + "filename", + "text", + "hash" + ], + "title": "file source schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/system/history.json b/py/schema/system/history.json new file mode 100644 index 000000000..43fbe4ab4 --- /dev/null +++ b/py/schema/system/history.json @@ -0,0 +1,25 @@ +{ + "$id": "system/history", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "history": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "revision": { + "type": "number" + } + }, + "required": [ + "id", + "revision" + ], + "type": "object" + }, + "type": "array" + } + }, + "title": "history schema" +} \ No newline at end of file diff --git a/py/schema/system/in_set.json b/py/schema/system/in_set.json new file mode 100644 index 000000000..9896b0463 --- /dev/null +++ b/py/schema/system/in_set.json @@ -0,0 +1,43 @@ +{ + "$id": "system/in-set", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "inSet": { + "items": { + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + }, + { + "properties": { + "index": { + "type": "number" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + ] + }, + "type": "array" + } + }, + "title": "System in-set schema" +} \ No newline at end of file diff --git a/py/schema/system/is_multi_material.json b/py/schema/system/is_multi_material.json new file mode 100644 index 000000000..98a4cdefd --- /dev/null +++ b/py/schema/system/is_multi_material.json @@ -0,0 +1,10 @@ +{ + "$id": "system/is-multi-material", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "isMultiMaterial": { + "type": "boolean" + } + }, + "title": "is multi schema" +} \ No newline at end of file diff --git a/py/schema/system/is_outdated.json b/py/schema/system/is_outdated.json new file mode 100644 index 000000000..0fd648715 --- /dev/null +++ b/py/schema/system/is_outdated.json @@ -0,0 +1,10 @@ +{ + "$id": "system/is-outdated", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "isOutdated": { + "type": "boolean" + } + }, + "title": "is outdated schema" +} \ No newline at end of file diff --git a/py/schema/system/job_extended.json b/py/schema/system/job_extended.json new file mode 100644 index 000000000..d2e57583a --- /dev/null +++ b/py/schema/system/job_extended.json @@ -0,0 +1,69 @@ +{ + "$id": "system/job-extended", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "_materials": { + "items": { + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ] + }, + "type": "array" + }, + "_materialsSet": { + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ] + }, + "dataset": { + "type": "object" + }, + "isExternal": { + "type": "boolean" + }, + "mode": { + "type": "string" + }, + "purged": { + "type": "boolean" + }, + "purgedAt": { + "type": "number" + } + }, + "title": "extended job schema" +} \ No newline at end of file diff --git a/py/schema/system/message.json b/py/schema/system/message.json new file mode 100644 index 000000000..881d1eb87 --- /dev/null +++ b/py/schema/system/message.json @@ -0,0 +1,67 @@ +{ + "$id": "system/message", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "communication message between Rupy and web application.", + "properties": { + "header": { + "properties": { + "entity": { + "properties": { + "_id": { + "description": "job identifier", + "type": "string" + }, + "flowchartId": { + "description": "unit identifier within the workflow", + "type": "string" + }, + "name": { + "description": "entity name.", + "enum": [ + "job", + "unit" + ], + "type": "string" + }, + "probe": { + "description": "source of the message.", + "enum": [ + "monitor", + "postprocessor" + ], + "type": "string" + } + }, + "required": [ + "_id", + "name" + ], + "type": "object" + }, + "timestamp": { + "description": "Timestamp of the message.", + "type": "number" + }, + "version": { + "description": "Rupy-Webapp communication schema version.", + "type": "string" + } + }, + "required": [ + "entity", + "version", + "timestamp" + ], + "type": "object" + }, + "payload": { + "description": "Actual payload of the message.", + "type": "object" + } + }, + "required": [ + "header", + "payload" + ], + "title": "message schema" +} \ No newline at end of file diff --git a/py/schema/system/metadata.json b/py/schema/system/metadata.json new file mode 100644 index 000000000..57c95b18c --- /dev/null +++ b/py/schema/system/metadata.json @@ -0,0 +1,10 @@ +{ + "$id": "system/metadata", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" +} \ No newline at end of file diff --git a/py/schema/system/name.json b/py/schema/system/name.json new file mode 100644 index 000000000..5a9093f09 --- /dev/null +++ b/py/schema/system/name.json @@ -0,0 +1,11 @@ +{ + "$id": "system/name", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" +} \ No newline at end of file diff --git a/py/schema/system/owner.json b/py/schema/system/owner.json new file mode 100644 index 000000000..582747910 --- /dev/null +++ b/py/schema/system/owner.json @@ -0,0 +1,34 @@ +{ + "$id": "system/owner", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/entity-reference", + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "cls": { + "description": "entity class", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + } + }, + "title": "entity reference schema" + } + ], + "properties": { + "cls": { + "description": "Entity owner class", + "enum": [ + "Account" + ], + "type": "string" + } + }, + "title": "Entity owner reference schema" +} \ No newline at end of file diff --git a/py/schema/system/path.json b/py/schema/system/path.json new file mode 100644 index 000000000..118ea5960 --- /dev/null +++ b/py/schema/system/path.json @@ -0,0 +1,14 @@ +{ + "$id": "system/path", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/system/path_entity.json b/py/schema/system/path_entity.json new file mode 100644 index 000000000..83c1959ec --- /dev/null +++ b/py/schema/system/path_entity.json @@ -0,0 +1,30 @@ +{ + "$id": "system/path-entity", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/path", + "properties": { + "path": { + "$id": "core/reusable/category-path", + "description": "TODO: Use regex once schema draft version has been updated", + "title": "category path schema", + "type": "string" + } + }, + "title": "path schema", + "type": "object" + } + ], + "title": "path entity schema" +} \ No newline at end of file diff --git a/py/schema/system/schema_version.json b/py/schema/system/schema_version.json new file mode 100644 index 000000000..f767e9520 --- /dev/null +++ b/py/schema/system/schema_version.json @@ -0,0 +1,12 @@ +{ + "$id": "system/schema-version", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" +} \ No newline at end of file diff --git a/py/schema/system/scope.json b/py/schema/system/scope.json new file mode 100644 index 000000000..8a1d35f25 --- /dev/null +++ b/py/schema/system/scope.json @@ -0,0 +1,10 @@ +{ + "$id": "system/scope", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "scope": { + "type": "string" + } + }, + "title": "scope schema" +} \ No newline at end of file diff --git a/py/schema/system/set.json b/py/schema/system/set.json new file mode 100644 index 000000000..5d37af66c --- /dev/null +++ b/py/schema/system/set.json @@ -0,0 +1,16 @@ +{ + "$id": "system/set", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "entityCls": { + "type": "string" + }, + "entitySetType": { + "type": "string" + }, + "isEntitySet": { + "type": "boolean" + } + }, + "title": "Entity set schema" +} \ No newline at end of file diff --git a/py/schema/system/sharing.json b/py/schema/system/sharing.json new file mode 100644 index 000000000..969631237 --- /dev/null +++ b/py/schema/system/sharing.json @@ -0,0 +1,10 @@ +{ + "$id": "system/sharing", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "sharedCount": { + "type": "number" + } + }, + "title": "extended sharing schema" +} \ No newline at end of file diff --git a/py/schema/system/soft_removable.json b/py/schema/system/soft_removable.json new file mode 100644 index 000000000..d7821f425 --- /dev/null +++ b/py/schema/system/soft_removable.json @@ -0,0 +1,15 @@ +{ + "$id": "system/soft-removable", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "removed": { + "description": "Identifies that entity was removed", + "type": "boolean" + }, + "removedAt": { + "description": "Timestamp of the moment when entity was removed", + "type": "string" + } + }, + "title": "soft removable entity schema" +} \ No newline at end of file diff --git a/py/schema/system/status.json b/py/schema/system/status.json new file mode 100644 index 000000000..5f5dcd6e0 --- /dev/null +++ b/py/schema/system/status.json @@ -0,0 +1,31 @@ +{ + "$id": "system/status", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "status": { + "type": "string" + }, + "statusTrack": { + "items": { + "properties": { + "repetition": { + "type": "number" + }, + "status": { + "type": "string" + }, + "trackedAt": { + "type": "number" + } + }, + "required": [ + "trackedAt", + "status" + ], + "type": "object" + }, + "type": "array" + } + }, + "title": "status schema" +} \ No newline at end of file diff --git a/py/schema/system/tags.json b/py/schema/system/tags.json new file mode 100644 index 000000000..444ad0c50 --- /dev/null +++ b/py/schema/system/tags.json @@ -0,0 +1,14 @@ +{ + "$id": "system/tags", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" +} \ No newline at end of file diff --git a/py/schema/system/timestampable.json b/py/schema/system/timestampable.json new file mode 100644 index 000000000..9178ea792 --- /dev/null +++ b/py/schema/system/timestampable.json @@ -0,0 +1,37 @@ +{ + "$id": "system/timestampable", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "createdAt": { + "description": "entity creation time", + "format": "date-time", + "type": "string" + }, + "createdBy": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "updatedAt": { + "description": "entity last modification time", + "format": "date-time", + "type": "string" + }, + "updatedBy": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "title": "timestampable entity schema" +} \ No newline at end of file diff --git a/py/schema/system/use_values.json b/py/schema/system/use_values.json new file mode 100644 index 000000000..477398b46 --- /dev/null +++ b/py/schema/system/use_values.json @@ -0,0 +1,10 @@ +{ + "$id": "system/use-values", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "useValues": { + "type": "boolean" + } + }, + "title": "use values schema" +} \ No newline at end of file diff --git a/py/schema/workflow.json b/py/schema/workflow.json new file mode 100644 index 000000000..02bc4d3d4 --- /dev/null +++ b/py/schema/workflow.json @@ -0,0 +1,4444 @@ +{ + "$id": "workflow", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/base", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "isUsingDataset": { + "description": "Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.", + "type": "boolean" + }, + "properties": { + "description": "Array of characteristic properties calculated by this workflow (TODO: add enums)", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + }, + "workflows": { + "description": "Array of workflows with the same schema as the current one.", + "items": { + "type": "object" + }, + "type": "array" + } + }, + "title": "base workflow schema", + "type": "object" + } + ], + "properties": { + "subworkflows": { + "description": "Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting", + "items": { + "allOf": [ + { + "$id": "workflow/subworkflow", + "allOf": [ + { + "$id": "workflow/base-flow", + "properties": { + "_id": { + "description": "subworkflow identity", + "type": "string" + }, + "compute": { + "$id": "job/compute", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" + }, + "name": { + "description": "Human-readable name of the subworkflow. e.g. Total-energy", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "name", + "units" + ], + "title": "BaseFlow", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "isDraft": { + "default": false, + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean" + }, + "model": { + "$id": "model", + "additionalProperties": true, + "description": "Model used inside the subworkflow", + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" + }, + "units": { + "description": "Contains the Units of the subworkflow", + "items": { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "model", + "application" + ], + "title": "Subworkflow", + "type": "object" + } + ] + }, + "type": "array" + }, + "units": { + "description": "Contains the Units of the Workflow", + "items": { + "oneOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/io", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "items": { + "anyOf": [ + { + "$id": "workflow/unit/io/api", + "properties": { + "endpoint": { + "description": "rest API endpoint", + "type": "string" + }, + "endpoint_options": { + "description": "rest API endpoint options", + "type": "object" + }, + "name": { + "description": "the name of the variable in local scope to save the data under", + "type": "string" + } + }, + "required": [ + "endpoint", + "endpoint_options" + ], + "title": "data IO rest API input schema", + "type": "object" + }, + { + "$id": "workflow/unit/io/db", + "oneOf": [ + { + "properties": { + "ids": { + "description": "IDs of item to retrieve from db", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ids" + ] + }, + { + "properties": { + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "default": true, + "description": "whether the result should be saved as draft", + "type": "boolean" + } + }, + "required": [ + "collection", + "draft" + ] + } + ], + "title": "data IO database input/output schema", + "type": "object" + }, + { + "$id": "workflow/unit/io/object-storage", + "allof": [ + { + "$id": "core/reusable/file-metadata", + "properties": { + "basename": { + "$comment": "isGenerative:true", + "description": "Basename of the file", + "type": "string" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + } + }, + "title": "file_metadata" + } + ], + "properties": { + "objectData": { + "$id": "core/reusable/object-storage-container-data", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + }, + "required": [ + "CONTAINER", + "NAME", + "PROVIDER", + "REGION" + ], + "title": "Object Storage Container Data" + }, + "overwrite": { + "default": false, + "description": "if a file with the same filename already exists, whether to overwrite the old file", + "type": "boolean" + } + }, + "required": [ + "objectData", + "basename" + ], + "title": "object_storage io schema", + "type": "object" + } + ] + }, + "type": "array" + }, + "source": { + "enum": [ + "api", + "db", + "object_storage" + ] + }, + "subtype": { + "enum": [ + "input", + "output", + "dataFrame" + ] + }, + "type": { + "enum": [ + "io" + ] + } + }, + "required": [ + "subtype", + "source", + "input" + ], + "title": "data IO unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/map", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "Input information for map.", + "properties": { + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "useValues": { + "type": "boolean" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "type": { + "enum": [ + "map" + ] + }, + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + } + }, + "required": [ + "input", + "workflowId" + ], + "title": "map unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/reduce", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "input information for reduce unit", + "items": { + "properties": { + "arguments": { + "description": "arguments which are passed to reduce operation function", + "items": { + "type": "string" + }, + "type": "array" + }, + "operation": { + "description": "reduce operation, e.g. aggregate", + "type": "string" + } + }, + "required": [ + "operation", + "arguments" + ], + "type": "object" + }, + "type": "array" + }, + "mapFlowchartId": { + "description": "corresponding map unit flowchart ID", + "type": "string" + }, + "type": { + "enum": [ + "reduce" + ] + } + }, + "required": [ + "mapFlowchartId", + "input" + ], + "title": "reduce unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/condition", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", + "type": "string" + }, + "input": { + "description": "Input information for condition.", + "items": { + "$id": "workflow/unit/input/-inputItemScope", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" + }, + "type": "array" + }, + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" + }, + "statement": { + "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", + "type": "string" + }, + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", + "type": "string" + }, + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + }, + "type": { + "enum": [ + "condition" + ] + } + }, + "required": [ + "input", + "statement", + "then", + "else" + ], + "title": "condition unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/assertion", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "errorMessage": { + "type": "string" + }, + "statement": { + "type": "string" + }, + "type": { + "enum": [ + "assertion" + ] + } + }, + "required": [ + "name", + "statement" + ], + "title": "assertion unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/execution", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" + }, + { + "$id": "workflow/unit/assignment", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "items": { + "$id": "workflow/unit/input/-inputItemScope", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" + }, + "type": "array" + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "type": { + "enum": [ + "assignment" + ] + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "title": "assignment unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/processing", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "units", + "subworkflows" + ], + "title": "workflow schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/base.json b/py/schema/workflow/base.json new file mode 100644 index 000000000..38e5b4a23 --- /dev/null +++ b/py/schema/workflow/base.json @@ -0,0 +1,144 @@ +{ + "$id": "workflow/base", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-has-metadata", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "system/metadata", + "properties": { + "metadata": { + "type": "object" + } + }, + "title": "metadata schema" + } + ], + "title": "Named defaultable has metadata in-memory entity schema" + } + ], + "properties": { + "isUsingDataset": { + "description": "Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.", + "type": "boolean" + }, + "properties": { + "description": "Array of characteristic properties calculated by this workflow (TODO: add enums)", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + }, + "workflows": { + "description": "Array of workflows with the same schema as the current one.", + "items": { + "type": "object" + }, + "type": "array" + } + }, + "title": "base workflow schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/base_flow.json b/py/schema/workflow/base_flow.json new file mode 100644 index 000000000..72846762c --- /dev/null +++ b/py/schema/workflow/base_flow.json @@ -0,0 +1,219 @@ +{ + "$id": "workflow/base-flow", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "_id": { + "description": "subworkflow identity", + "type": "string" + }, + "compute": { + "$id": "job/compute", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" + }, + "name": { + "description": "Human-readable name of the subworkflow. e.g. Total-energy", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "name", + "units" + ], + "title": "BaseFlow", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/scope.json b/py/schema/workflow/scope.json new file mode 100644 index 000000000..24d77fc75 --- /dev/null +++ b/py/schema/workflow/scope.json @@ -0,0 +1,20 @@ +{ + "$id": "workflow/scope", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "global": { + "additionalProperties": true, + "type": "object" + }, + "local": { + "additionalProperties": true, + "type": "object" + } + }, + "required": [ + "global", + "local" + ], + "title": "workflow scope schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/subworkflow.json b/py/schema/workflow/subworkflow.json new file mode 100644 index 000000000..aa85e8761 --- /dev/null +++ b/py/schema/workflow/subworkflow.json @@ -0,0 +1,625 @@ +{ + "$id": "workflow/subworkflow", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/base-flow", + "properties": { + "_id": { + "description": "subworkflow identity", + "type": "string" + }, + "compute": { + "$id": "job/compute", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "properties": { + "arguments": { + "default": {}, + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "oneOf": [ + { + "$id": "software-directory/modeling/espresso/arguments", + "additionalProperties": false, + "properties": { + "nband": { + "default": 1, + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ndiag": { + "default": 1, + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "nimage": { + "default": 1, + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "npools": { + "default": 1, + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "ntg": { + "default": 1, + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "title": "quantum espresso arguments schema", + "type": "object" + } + ], + "type": "object" + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + }, + "type": "object" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "items": { + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ], + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + }, + "isRestartable": { + "default": true, + "description": "Job is allowed to restart on termination.", + "type": "boolean" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer", + "validateNodes": {} + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer", + "validatePpn": {} + }, + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ], + "type": "string" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string", + "validateTimeLimit": {} + }, + "timeLimitType": { + "default": "per single attempt", + "description": "Convention to use when reasoning about time limits", + "enum": [ + "per single attempt", + "compound" + ], + "type": "string" + } + }, + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "title": "compute arguments schema" + }, + "name": { + "description": "Human-readable name of the subworkflow. e.g. Total-energy", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "name", + "units" + ], + "title": "BaseFlow", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "isDraft": { + "default": false, + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean" + }, + "model": { + "$id": "model", + "additionalProperties": true, + "description": "Model used inside the subworkflow", + "properties": { + "method": { + "$id": "method", + "properties": { + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ], + "title": "base method" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + } + }, + "required": [ + "type", + "subtype", + "method" + ], + "title": "base model" + }, + "units": { + "description": "Contains the Units of the subworkflow", + "items": { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "model", + "application" + ], + "title": "Subworkflow", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit.json b/py/schema/workflow/unit.json new file mode 100644 index 000000000..935a26ad5 --- /dev/null +++ b/py/schema/workflow/unit.json @@ -0,0 +1,298 @@ +{ + "$id": "workflow/unit", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/assertion.json b/py/schema/workflow/unit/assertion.json new file mode 100644 index 000000000..4700d5883 --- /dev/null +++ b/py/schema/workflow/unit/assertion.json @@ -0,0 +1,322 @@ +{ + "$id": "workflow/unit/assertion", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "errorMessage": { + "type": "string" + }, + "statement": { + "type": "string" + }, + "type": { + "enum": [ + "assertion" + ] + } + }, + "required": [ + "name", + "statement" + ], + "title": "assertion unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/assignment.json b/py/schema/workflow/unit/assignment.json new file mode 100644 index 000000000..a33e02ded --- /dev/null +++ b/py/schema/workflow/unit/assignment.json @@ -0,0 +1,347 @@ +{ + "$id": "workflow/unit/assignment", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "items": { + "$id": "workflow/unit/input/-inputItemScope", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" + }, + "type": "array" + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "type": { + "enum": [ + "assignment" + ] + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "title": "assignment unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/condition.json b/py/schema/workflow/unit/condition.json new file mode 100644 index 000000000..ebc8e0c4f --- /dev/null +++ b/py/schema/workflow/unit/condition.json @@ -0,0 +1,361 @@ +{ + "$id": "workflow/unit/condition", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", + "type": "string" + }, + "input": { + "description": "Input information for condition.", + "items": { + "$id": "workflow/unit/input/-inputItemScope", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" + }, + "type": "array" + }, + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" + }, + "statement": { + "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", + "type": "string" + }, + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", + "type": "string" + }, + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + }, + "type": { + "enum": [ + "condition" + ] + } + }, + "required": [ + "input", + "statement", + "then", + "else" + ], + "title": "condition unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/execution.json b/py/schema/workflow/unit/execution.json new file mode 100644 index 000000000..6e8d0b4cb --- /dev/null +++ b/py/schema/workflow/unit/execution.json @@ -0,0 +1,823 @@ +{ + "$id": "workflow/unit/execution", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "properties": { + "application": { + "$id": "software/application", + "additionalProperties": true, + "description": "Contains information about the simulation engine/application.", + "properties": { + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + }, + "name": { + "description": "The name of the application. e.g. espresso", + "type": "string" + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "application schema (base)", + "type": "object" + }, + "executable": { + "$id": "software/executable", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application executable.", + "properties": { + "applicationId": { + "description": "_ids of the application this executable belongs to", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + } + }, + "required": [ + "name", + "applicationId" + ], + "title": "executable schema", + "type": "object" + }, + "flavor": { + "$id": "software/flavor", + "allOf": [ + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "description": "Contains information about the simulation engine/application flavor.", + "properties": { + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "input": { + "items": { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + }, + "title": "execution unit input schema", + "type": "array" + }, + "name": { + "description": "The name of the executable flavor. e.g. `pw_scf`", + "type": "string" + } + }, + "required": [ + "name", + "executableId" + ], + "title": "flavor schema", + "type": "object" + }, + "input": { + "description": "unit input (type to be specified by the application's execution unit)" + }, + "type": { + "enum": [ + "execution" + ] + } + }, + "required": [ + "input", + "application" + ], + "title": "execution unit schema (base)", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/input/_input.json b/py/schema/workflow/unit/input/_input.json new file mode 100644 index 000000000..8e811b55f --- /dev/null +++ b/py/schema/workflow/unit/input/_input.json @@ -0,0 +1,55 @@ +{ + "$id": "workflow/unit/input/-input", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "input": { + "items": { + "oneOf": [ + { + "$id": "workflow/unit/input/-inputItem", + "properties": { + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + } + }, + "required": [ + "name", + "content" + ], + "title": "execution unit input item schema for physics-based simulation engines", + "type": "object" + }, + { + "$id": "workflow/unit/input/-inputItemId", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" + } + ] + }, + "title": "execution unit input schema", + "type": "array" + } + }, + "title": "execution unit input schema for physics-based simulation engines", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/input/_inputItem.json b/py/schema/workflow/unit/input/_inputItem.json new file mode 100644 index 000000000..4f476f01f --- /dev/null +++ b/py/schema/workflow/unit/input/_inputItem.json @@ -0,0 +1,20 @@ +{ + "$id": "workflow/unit/input/-inputItem", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + } + }, + "required": [ + "name", + "content" + ], + "title": "execution unit input item schema for physics-based simulation engines", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/input/_inputItemId.json b/py/schema/workflow/unit/input/_inputItemId.json new file mode 100644 index 000000000..b432e99bf --- /dev/null +++ b/py/schema/workflow/unit/input/_inputItemId.json @@ -0,0 +1,21 @@ +{ + "$id": "workflow/unit/input/-inputItemId", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + }, + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + } + }, + "required": [ + "templateId" + ], + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/input/_inputItemScope.json b/py/schema/workflow/unit/input/_inputItemScope.json new file mode 100644 index 000000000..b9aee52c2 --- /dev/null +++ b/py/schema/workflow/unit/input/_inputItemScope.json @@ -0,0 +1,20 @@ +{ + "$id": "workflow/unit/input/-inputItemScope", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + }, + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ], + "title": "workflow unit input schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/io.json b/py/schema/workflow/unit/io.json new file mode 100644 index 000000000..590cbce0f --- /dev/null +++ b/py/schema/workflow/unit/io.json @@ -0,0 +1,472 @@ +{ + "$id": "workflow/unit/io", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "items": { + "anyOf": [ + { + "$id": "workflow/unit/io/api", + "properties": { + "endpoint": { + "description": "rest API endpoint", + "type": "string" + }, + "endpoint_options": { + "description": "rest API endpoint options", + "type": "object" + }, + "name": { + "description": "the name of the variable in local scope to save the data under", + "type": "string" + } + }, + "required": [ + "endpoint", + "endpoint_options" + ], + "title": "data IO rest API input schema", + "type": "object" + }, + { + "$id": "workflow/unit/io/db", + "oneOf": [ + { + "properties": { + "ids": { + "description": "IDs of item to retrieve from db", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ids" + ] + }, + { + "properties": { + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "default": true, + "description": "whether the result should be saved as draft", + "type": "boolean" + } + }, + "required": [ + "collection", + "draft" + ] + } + ], + "title": "data IO database input/output schema", + "type": "object" + }, + { + "$id": "workflow/unit/io/object-storage", + "allof": [ + { + "$id": "core/reusable/file-metadata", + "properties": { + "basename": { + "$comment": "isGenerative:true", + "description": "Basename of the file", + "type": "string" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + } + }, + "title": "file_metadata" + } + ], + "properties": { + "objectData": { + "$id": "core/reusable/object-storage-container-data", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + }, + "required": [ + "CONTAINER", + "NAME", + "PROVIDER", + "REGION" + ], + "title": "Object Storage Container Data" + }, + "overwrite": { + "default": false, + "description": "if a file with the same filename already exists, whether to overwrite the old file", + "type": "boolean" + } + }, + "required": [ + "objectData", + "basename" + ], + "title": "object_storage io schema", + "type": "object" + } + ] + }, + "type": "array" + }, + "source": { + "enum": [ + "api", + "db", + "object_storage" + ] + }, + "subtype": { + "enum": [ + "input", + "output", + "dataFrame" + ] + }, + "type": { + "enum": [ + "io" + ] + } + }, + "required": [ + "subtype", + "source", + "input" + ], + "title": "data IO unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/io/api.json b/py/schema/workflow/unit/io/api.json new file mode 100644 index 000000000..006349e29 --- /dev/null +++ b/py/schema/workflow/unit/io/api.json @@ -0,0 +1,24 @@ +{ + "$id": "workflow/unit/io/api", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "endpoint": { + "description": "rest API endpoint", + "type": "string" + }, + "endpoint_options": { + "description": "rest API endpoint options", + "type": "object" + }, + "name": { + "description": "the name of the variable in local scope to save the data under", + "type": "string" + } + }, + "required": [ + "endpoint", + "endpoint_options" + ], + "title": "data IO rest API input schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/io/db.json b/py/schema/workflow/unit/io/db.json new file mode 100644 index 000000000..d9849fc94 --- /dev/null +++ b/py/schema/workflow/unit/io/db.json @@ -0,0 +1,39 @@ +{ + "$id": "workflow/unit/io/db", + "$schema": "http://json-schema.org/draft-04/schema#", + "oneOf": [ + { + "properties": { + "ids": { + "description": "IDs of item to retrieve from db", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ids" + ] + }, + { + "properties": { + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "default": true, + "description": "whether the result should be saved as draft", + "type": "boolean" + } + }, + "required": [ + "collection", + "draft" + ] + } + ], + "title": "data IO database input/output schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/io/object_storage.json b/py/schema/workflow/unit/io/object_storage.json new file mode 100644 index 000000000..937c51adb --- /dev/null +++ b/py/schema/workflow/unit/io/object_storage.json @@ -0,0 +1,74 @@ +{ + "$id": "workflow/unit/io/object-storage", + "$schema": "http://json-schema.org/draft-04/schema#", + "allof": [ + { + "$id": "core/reusable/file-metadata", + "properties": { + "basename": { + "$comment": "isGenerative:true", + "description": "Basename of the file", + "type": "string" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + } + }, + "title": "file_metadata" + } + ], + "properties": { + "objectData": { + "$id": "core/reusable/object-storage-container-data", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + }, + "required": [ + "CONTAINER", + "NAME", + "PROVIDER", + "REGION" + ], + "title": "Object Storage Container Data" + }, + "overwrite": { + "default": false, + "description": "if a file with the same filename already exists, whether to overwrite the old file", + "type": "boolean" + } + }, + "required": [ + "objectData", + "basename" + ], + "title": "object_storage io schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/map.json b/py/schema/workflow/unit/map.json new file mode 100644 index 000000000..278b25895 --- /dev/null +++ b/py/schema/workflow/unit/map.json @@ -0,0 +1,361 @@ +{ + "$id": "workflow/unit/map", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "Input information for map.", + "properties": { + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "useValues": { + "type": "boolean" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "type": { + "enum": [ + "map" + ] + }, + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + } + }, + "required": [ + "input", + "workflowId" + ], + "title": "map unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/processing.json b/py/schema/workflow/unit/processing.json new file mode 100644 index 000000000..a264dbec5 --- /dev/null +++ b/py/schema/workflow/unit/processing.json @@ -0,0 +1,328 @@ +{ + "$id": "workflow/unit/processing", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "inputData": { + "description": "unit input (type to be specified by the child units)" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "type": { + "enum": [ + "processing" + ] + } + }, + "required": [ + "operation", + "operationType", + "inputData" + ], + "title": "processing unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/reduce.json b/py/schema/workflow/unit/reduce.json new file mode 100644 index 000000000..03d3d4bc3 --- /dev/null +++ b/py/schema/workflow/unit/reduce.json @@ -0,0 +1,344 @@ +{ + "$id": "workflow/unit/reduce", + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$id": "workflow/unit", + "additionalProperties": true, + "allOf": [ + { + "$id": "in-memory-entity/named-defaultable-runtime-items", + "allOf": [ + { + "$id": "in-memory-entity/base", + "allOf": [ + { + "$id": "system/schema-version", + "description": "entity schema version", + "properties": { + "schemaVersion": { + "default": "2022.8.16", + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string" + } + }, + "title": "schema version" + } + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "consistencyChecks": { + "items": { + "$id": "system/consistency-check", + "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.", + "properties": { + "key": { + "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'", + "type": "string" + }, + "message": { + "description": "Message generated by the consistency check describing the problem.", + "type": "string" + }, + "name": { + "description": "Name of the consistency check that is performed, which is listed in an enum.", + "enum": [ + "default", + "atomsTooClose", + "atomsOverlap" + ] + }, + "severity": { + "description": "Severity level of the problem, which is used in UI to differentiate.", + "enum": [ + "info", + "warning", + "error" + ] + } + }, + "required": [ + "key", + "name", + "severity", + "message" + ], + "title": "consistency check", + "type": "object" + }, + "type": "array" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + } + }, + "title": "Base in-memory entity schema" + }, + { + "$id": "system/name", + "properties": { + "name": { + "description": "entity name", + "type": "string" + } + }, + "title": "name entity schema" + }, + { + "$id": "system/defaultable", + "properties": { + "isDefault": { + "default": false, + "description": "Identifies that entity is defaultable", + "type": "boolean" + } + }, + "title": "defaultable entity schema" + }, + { + "$id": "workflow/unit/runtime/runtime-items", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" + } + ], + "title": "Named defaultable runtime items in-memory entity schema" + }, + { + "$id": "system/tags", + "properties": { + "tags": { + "description": "entity tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "entity tags schema" + } + ], + "properties": { + "_id": { + "type": "string" + }, + "context": { + "type": "object" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ], + "type": "string" + }, + "type": { + "description": "type of the unit", + "type": "string" + } + }, + "required": [ + "type", + "flowchartId" + ], + "title": "workflow unit schema", + "type": "object" + } + ], + "properties": { + "input": { + "description": "input information for reduce unit", + "items": { + "properties": { + "arguments": { + "description": "arguments which are passed to reduce operation function", + "items": { + "type": "string" + }, + "type": "array" + }, + "operation": { + "description": "reduce operation, e.g. aggregate", + "type": "string" + } + }, + "required": [ + "operation", + "arguments" + ], + "type": "object" + }, + "type": "array" + }, + "mapFlowchartId": { + "description": "corresponding map unit flowchart ID", + "type": "string" + }, + "type": { + "enum": [ + "reduce" + ] + } + }, + "required": [ + "mapFlowchartId", + "input" + ], + "title": "reduce unit schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/runtime/_runtime_item_full_object.json b/py/schema/workflow/unit/runtime/_runtime_item_full_object.json new file mode 100644 index 000000000..15a019c59 --- /dev/null +++ b/py/schema/workflow/unit/runtime/_runtime_item_full_object.json @@ -0,0 +1,15 @@ +{ + "$id": "workflow/unit/runtime/-runtime-item-full-object", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "The name of this item. e.g. 'my_custom_property. '", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "full result schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/runtime/_runtime_item_name_object.json b/py/schema/workflow/unit/runtime/_runtime_item_name_object.json new file mode 100644 index 000000000..aca03d2e1 --- /dev/null +++ b/py/schema/workflow/unit/runtime/_runtime_item_name_object.json @@ -0,0 +1,15 @@ +{ + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/runtime/_runtime_item_string.json b/py/schema/workflow/unit/runtime/_runtime_item_string.json new file mode 100644 index 000000000..6db0904f8 --- /dev/null +++ b/py/schema/workflow/unit/runtime/_runtime_item_string.json @@ -0,0 +1,7 @@ +{ + "$id": "workflow/unit/runtime/-runtime-item-string", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/runtime/runtime_item.json b/py/schema/workflow/unit/runtime/runtime_item.json new file mode 100644 index 000000000..264db86e8 --- /dev/null +++ b/py/schema/workflow/unit/runtime/runtime_item.json @@ -0,0 +1,27 @@ +{ + "$id": "workflow/unit/runtime/runtime-item", + "$schema": "http://json-schema.org/draft-04/schema#", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" +} \ No newline at end of file diff --git a/py/schema/workflow/unit/runtime/runtime_items.json b/py/schema/workflow/unit/runtime/runtime_items.json new file mode 100644 index 000000000..9a6df3713 --- /dev/null +++ b/py/schema/workflow/unit/runtime/runtime_items.json @@ -0,0 +1,128 @@ +{ + "$id": "workflow/unit/runtime/runtime-items", + "$schema": "http://json-schema.org/draft-04/schema#", + "properties": { + "monitors": { + "description": "names of the monitors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + }, + "results": { + "description": "names of the results for this calculation", + "items": { + "$id": "workflow/unit/runtime/runtime-item", + "oneOf": [ + { + "$id": "workflow/unit/runtime/-runtime-item-name-object", + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "name result schema", + "type": "object" + }, + { + "$id": "workflow/unit/runtime/-runtime-item-string", + "description": "name of runtime item in shortened notation", + "title": "RuntimeItemString", + "type": "string" + } + ], + "title": "runtime item schema" + }, + "type": "array" + } + }, + "title": "runtime items schema (pre-/post-processors, monitors, results", + "type": "object" +} \ No newline at end of file